三、程序設定舉例
1.定時器方式
以下各例中信道地址均以1.8:實際地址為例。
【例1】設定信道為定時器方式,自動啟動定時器工作,定標係數,時間常數,允許申請中斷,中斷服務程序地址表指針為22689。
定時器的工作過程:當時間常數裝入時間常數寄存器後,便開始啟動定時器工作。時間常數寄存器將其內容裝入減1計數器,定標器對時鍾進行分頻輸出,輸入定標器16個時鍾少脈衝,定標器輸出1個脈衝給減1計數器,使減1計數器減1。如此下去,直到定標器輸出第三個脈衝,使減1計數器由1減至0,這時由引腳。發出一個正脈衝,同時引腳變為低電平,向請求中斷。所以時間常數寄存器將其內容再次裝入減1計數器,又重複上述過程。
【例2】用外觸發脈衝:上升沿啟動定時器工作。定標係數256。以1信道為例,中斷服務程序地址表指針是226為隻,其他與(例1)相同。假定通道已按(例1)進行程序初始化,所以本例則不用再送入中斷矢量,通道的中斷申請被響應時,中斷服務程序地址表指針自然指向226為9。
定時器工作過程:當通過1/0寫操作,將時間常數裝入時間常數寄存器之後,定時器等待脈衝啟動,一旦出現有效邊沿,在第二個上升沿開始啟動定標器計數。每當輸入第256個時鍾脈衝後,減1計數器減1。如此循環下去,直到減1計數器由1減為0,在上發出一正脈衝,變為低電平。
2.計數器方式
這種工作方式主要用於對外部脈衝信號進行計數。當到達規定數值後,在線上發出脈衝,也可同時發出中斷請求信號即變為低電平。
工作過程當時間常數裝入時間常數寄存器之後,計數器便開始計數。每當從輸入一個計數脈衝,計數脈衝的上升沿使減1計數器減1。當送入第三個計數脈衝後,減1計數器由1減為0,從發出一正脈衝,同時使變低電平。時間常數寄存器再次將]始常數裝入減1計數器,重複上述操作過程。
3.應用舉例
【例1】在上節舉例中,有一程序是使字符“?”在顯示器上有規律地從右往左循環移動。控製移動的速度是由調用延時子程序的次數來達到的,中延時子程序是軟件延時,我們也可以用來實現延時,通道控製字的設定我們假定使用通道,工作在允許中斷、自動定時器方式,因為是長時間的定時,所以選取定標係數,工作是連繼的,我們可以通過程序計數控製的辦法,增加延時間隔,當然這要占用口工作時間,有錢場合是不允許的。這時可以采取二個通道串聯工作的辦法,如使通道工作在禁止中斷、自動定時器方式,通道工作在允許中斷、計數器方式,將信道的回零輸出接到通道的輸入,作為通道的計數脈衝,這就可以擴展的延時範圍,
【例2】作為計時鍾
設定的信道為自動定時器方式,每隔1/100秒產生中斷請求。在中斷服務中讓存儲時間值的“計數器”按1/100秒、秒、分、時為進位製進行累計,並在顯示器上顯示時、分、秒數值:計時鍾周期定。
計時鍾有誤差,若要更精確些,在程序上可作造當修改,顯示1/10秒,並在適當時間間隔對時鍾指針作適當增補撥動(如增減1/100秒單元數值),可獲得較為精確計時。
起動本計時鍾之前,先對單元預置時、分、秒時間初始值。初始時間的預置可以通過鍵盤置入或采用程序置入。
7.4 CPU 與幾種典型外設的接口電路
7.4-1 單個開關接口電路
按鍵開關是最簡單也是最基本的輸入外設之一。它與口的接口電路十分簡單,隻需要在按鍵開關電路與口總線之間,加入一個可尋址的三態緩衝器就可以了。按鍵開關未閉合,八點是高電平,為邏輯“1”;按鍵開關閉合,八點接地,為邏輯“0”。三態緩衝器的數據總線。三態緩衝器由控製信號和口地址譯碼器的輸出來控製。三態緩衝器被選通入電平,否則三態緩衝器處於高阻狀態。
由於按鍵開關的動作速度,相對於口讀、寫周期來講,是屬於慢速度的,所以它的狀態不需要鎖存。
單個開關接口電路定按鍵狀態很容易,隻要執行一條指令,就可以逋過緩衝器讀取它的狀態。這裏是按鍵開關接口電路的地址號。測試入累加器的位的狀態,就是按鍵開關的狀態,若為0,則表示按鍵開關閉合反之,則是打開的。
按鍵是機械式開關,在動作過程中,常常發生“抖動”,即在穩定接觸前,有一個不規則的開閉過程,這過程一般小於10~20015。解決“抖動”的方法,常用的有如下兩種:
【例1】根據按鍵的狀態,設置某一存儲單元的內容,若按鍵未閉合,使存儲單元置;若閉合,則使之清0。
程序很簡單,但很實用。比如單板機的監控程序中,就使用了這技術。在初始化過程中,它判板上開關、的狀態而決定程序的轉向,是繼續往下執行主程序還是轉入執行用戶程序。這就為機器通電,自動進入用戶程序提供一個簡便而可靠實用的方法。
【例2】等待開關狀態變化,而決定程序轉向,口不斷檢查按鍵的狀態,假如狀態沒有變化,則存儲單元保持為1如果狀態發生變化,完成此功能的程序編製。
7.4-2 顯示器接口電路
1.簡單的顯示器接口
一個簡單的半導體發光二極管,就是最簡單的輸出外設之一。它簡稱為180顯示器。1.0顯示器由通電流到發出光亮,這段時間很短,在澉秒數量級,故很適合在掃描方式工作。
2.七段顯示器
一塊(位)七段120顯示器,就是由七個1.0發光二極管,組成8字形120顯示器。其實,一般我們常用的所謂七段1.0顯示器,都是由八個1.0發光二極管組成的,在8字右下腳多加一小數點。它可以顯示數字0~9,和簡單的有限的字母與符號。還有一種是因字形的顯示器,能夠顯示更多的字母與符號,不過價格較貴,電路也較複雜,在一般數字顯示的單板機中不常用,用得較多的,反而是廉價而且電路簡單的七段120顯示器。