版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、微機原理與接口技術第八章 part22第八章 可編程計數(shù)器/定時器8253及其應用內(nèi)容提要8-1 8253工作原理內(nèi)部結(jié)構(gòu)與引腳信號初始化編程步驟和門控信號的功能8253的工作方式8-2 8253的應用舉例定時功能計數(shù)功能38-2 8253的應用舉例一、8253定時功能的應用例子1用8253產(chǎn)生各種定時波形在某個以8086為CPU的系統(tǒng)中使用了一塊8253芯片,通道的基地址為310H,所用的時鐘脈沖頻率為1MHz。要求3個計數(shù)通道分別完成以下功能: 通道0工作于方式3,輸出頻率為2kHz的方波; 通道1產(chǎn)生寬度為480us的單脈沖; 通道2用硬件方式觸發(fā),輸出單脈沖,時間常數(shù)為26。OUT04
2、A9A8A7A6A5M/IOA4A3A0A2A1RDWRD7D08086CPU8-2 8253的應用舉例1用8253產(chǎn)生各種定時波形74LS138CLK0CLK1CLK2GATE2OUT2RDWRD7 D01MHz方波5V2KHz方波480ms寬脈沖單脈沖G1G2AG2BCBAY4GATE0CS8253GATE1A1OUT1A058-2 8253的應用舉例1用8253產(chǎn)生各種定時波形 8253片選信號CS由74LS138構(gòu)成的地址譯碼電路產(chǎn)生,只有當M/IO0,A9A8A7A6A511000時,譯碼器才能工作,當A4A3A0100時,Y40,使8253的片選信號CS有效,選中偶地址端口,端口基
3、地址為310H。CPU的A2A1分別與8253的A1A0相連,用于8253芯片內(nèi)部尋址,使8253的4個端口地址分別為310H、312H、314H和316H。8253的8根數(shù)據(jù)線D7D0必須與CPU的低8位數(shù)據(jù)總線D7D0相連。另外,8253的RD、WR腳分別與CPU的相應引腳相連。3個通道的CLK引腳連在一起,均由頻率為1MHz(周期為1s)的時鐘脈沖驅(qū)動。68-2 8253的應用舉例1用8253產(chǎn)生各種定時波形 續(xù) 通道0:工作于方式3,即構(gòu)成一個方波發(fā)生器,它的控制端GATE0須接+5V,為了輸出2kHz的連續(xù)方波,應使時間常數(shù):N01MHz2kHz500。 通道1:工作于方式1,即構(gòu)成
4、一個單穩(wěn)態(tài)電路,由GATE1的正跳變觸發(fā),輸出一個寬度由時間常數(shù)決定的負脈沖。此功能一次有效,需要再形成一個脈沖時,不但GATE1腳上要有觸發(fā),通道也需重新初始化。需輸出寬度為480us的單脈沖時,應取時間常數(shù):N1480us1us480。 通道2:工作于方式5,即由GATE2的正跳變觸發(fā)減1計數(shù),在計到0時形成一個寬度與時鐘周期相同的負脈沖。此后,若GATE2腳上再次出現(xiàn)正跳變,又能產(chǎn)生一個負脈沖。這里假設預置的時間常數(shù)為26。7MOVDX,316H;控制口地址MOVAL,00110111B ;通道0控制字,先讀寫低字節(jié),;后高字節(jié),方式3,BCD計數(shù)OUTMOVMOVOUTMOVOUTDX
5、,ALDX,310HAL,00HDX,ALAL,05HDX,AL;寫入方式字;通道0口地址;低字節(jié);先寫入低字節(jié);高字節(jié);后寫入高字節(jié)8-2 8253的應用舉例對3個通道的初始化程序如下:;通道0初始化程序8MOVDX,316H;控制口地址MOVAL,01110011B ;通道1控制字,先讀寫低字節(jié),;后高字節(jié),方式1,BCD計數(shù)OUTMOVMOVOUTMOVOUTDX,ALDX,312HAL,80HDX,ALAL,04HDX,AL;寫入方式字;通道1口地址;低字節(jié);先寫入低字節(jié);高字節(jié);后寫入高字節(jié)8-2 8253的應用舉例通道1初始化程序9MOVMOVOUTMOVMOVOUTDX,316H
6、AL,10011011BDX,ALDX,314HAL,26HDX,AL;控制口地址;通道2控制字,只讀寫低字節(jié),;方式5,BCD計數(shù);寫入方式字;通道2口地址;低字節(jié);只寫入低字節(jié)8-2 8253的應用舉例通道2初始化程序10用8253來控制一個LED發(fā)光二極管的點亮和熄滅,要求點亮10秒鐘后再讓它熄滅10秒鐘,并重復上述過程。加上適當?shù)尿?qū)動電路后,便可以用在交通紅綠燈控制和燈塔等場合 。8-2 8253的應用舉例2控制LED的點亮或熄滅D7 D0RDWR5V2MHz方波400HzGATE0GATE1CLK08253OUT0CLK1OUT1CSA1A0I/O譯碼A2A1M/IOA7A0D15
7、D8RDWR118-2 8253的應用舉例2控制LED的點亮或熄滅 假設這是一個8086系統(tǒng),8253的各端口地址為81H、83H、85H和87H。8253的8根數(shù)據(jù)線D7D0與CPU的高8位數(shù)據(jù)線D15D8相連,這樣選中奇地址端口。 通道1的OUT1與LED相連,當它為高電平時,LED點亮,低電平時LED熄滅。只要對8253編程,使OUT1輸出周期為20秒,占空比為1:1的方被,就能使LED交替地點亮和熄滅10秒鐘。若將頻率為2MHz(周期為0.5us)的時鐘直接加到CLK1端,則OUT1輸出的脈沖周期最大只有32.768ms,達不到20秒的要求。為此,需用幾個通道級連的方案來解決問題。82
8、5312沖,其頻率為2MHz/5000400Hz,周期為2.5ms。再把該信號連到CLK1輸入端,并使通道1工作于方式3。為了使OUT1輸出周期為20秒(頻率為1/200.05Hz)的方波,應取時間常數(shù)N1400Hz/0.05Hz8000。8-2 8253的應用舉例2控制LED的點亮或熄滅OUT1RDWRCS5V2MHz方波400HzI/O譯碼GATE0GATE1CLK0A1A0 OUT0D7 D0 CLK1A2A1RDWR 將頻率為2MHz的時鐘信號加在CLK0輸入端,并讓通 M/IO道0工作于方式2。若選擇計數(shù)初值N05000,則從 A7A0OUT0端可得到序列負脈D15 D813MOVO
9、UTMOVOUTMOVOUTMOVOUTMOVOUTMOVOUTAL,00110101B87H,ALAL,00H81H,ALAL,50H81H,ALAL,01110111B87H,ALAL,00H83H,ALAL,80H83H,AL;通道0控制字,先讀寫低字節(jié),;后高字節(jié),方式2,BCD計數(shù);寫入方式字;低字節(jié);先寫入低字節(jié);高字節(jié);后寫入高字節(jié);通道1控制字,先讀寫低字節(jié),;后高字節(jié),方式3,BCD計數(shù);寫入方式字;低字節(jié);先寫入低字節(jié);高字節(jié);后寫入高字節(jié)8-2 8253的應用舉例初始化程序如下:148-2 8253的應用舉例二、8253計數(shù)功能的應用例子假設一個自動化工廠需要統(tǒng)計在流水線
10、上所生產(chǎn)的某種產(chǎn)品的數(shù)量,可采用8086微處理器和8253等芯片來設計實現(xiàn)這種自動計數(shù)的系統(tǒng)。這種自動計數(shù)系統(tǒng)的電路和控制軟件的設計如下:1硬件電路設計151硬件電路設計【說明】 這個自動計數(shù)系統(tǒng)由8086CPU控制,用8253作計數(shù)器。此外,還要用到一片8259A中斷控制器芯片和若干其它電路。圖中僅給出了計數(shù)器部分的電路圖,8086和8259A未畫在圖上。 電路由一個紅外LED發(fā)光管、一個復合型光電晶體管、兩個施密持觸發(fā)器74LS14及一片8253芯片等構(gòu)成。用8253的通道1來進行計數(shù)。 工作過程如下:當LED發(fā)光管與光電管之間無工件通過時,LED發(fā)出的光能照到光電管上,使光電晶體管導通,
11、集電極變?yōu)榈碗娖?。此信號?jīng)施密持觸發(fā)器驅(qū)動整形后,送到8253的CLK1,使8253的CLK1輸入端也變成低電平。當LED與光電管之間有工件通過時,LED發(fā)出的光被它擋住,照不到光電管上,使光電管截止,其集電極輸出高電平,從而使CLK1端也變成高電平。待工件通過后,CLK1端又回到低電平。8-2 8253的應用舉例【計數(shù)功能】168-2 8253的應用舉例【計數(shù)功能】1硬件電路設計 【說明】這樣,每通過一個工件,就從CLK1端輸入一個正脈沖,利用8253的計數(shù)功能對此脈沖計數(shù),就可以統(tǒng)計出工件的個數(shù)來。兩個施密持觸發(fā)反相器74LS14的作用,是將光電晶體管集電極上的緩慢上升信號,變換成滿足計數(shù)
12、電路要求的TTL電平信號。 8253的片選輸入CS端接到I/O端口地址譯碼器的一個輸出端,RD和WR端分別與CPU的RD和WR信號相連。8253的數(shù)據(jù)線D7D0與CPU的低8位地址線相連,這時I/O端口地址必須是偶地址,所以把A1和A0分別與CPU地址總線的A2和A1相連。8253通道1的門控輸入端GATE1接+5V高電平,即始終允許計數(shù)器工作。通道1的輸出端OUT1接到8259A的一個中斷請求輸入端IR0。172初始化編程 編程時,可選擇計數(shù)器1工作于方式0,按BCD碼計數(shù),先讀/寫低字節(jié),后讀/寫高字節(jié),根據(jù)圖9-3可得到控制字為01110001B。 如選取計數(shù)初值n499,則經(jīng)過n+1個
13、脈沖,也就是500個脈沖OUT1端輸出一個正跳變。它作用于8259A的IR0端,通過8259A的控制,向CPU發(fā)出一次中斷請求,表示計滿了500個數(shù),在中斷服務程序中使工件總數(shù)加上500。中斷服務程序執(zhí)行完后,返回主程序,這時需要由程序把計數(shù)初值499再次裝入計數(shù)器1,才能繼續(xù)進行計數(shù)。8-2 8253的應用舉例【計數(shù)功能】182初始化編程設8253的4個端口地址分別為F0H,F(xiàn)2HF4H和F6H,則初始化程序為:MOVOUTMOVOUTMOVOUTAL,01110001B0F6H,ALAL,99H0F2H,ALAL,04H0F2H,AL;控制字;計數(shù)值低字節(jié)送計數(shù)器1;計數(shù)值低字節(jié)送計數(shù)器1
14、8-2 8253的應用舉例【計數(shù)功能】193計數(shù)值的讀取 (1)在讀計數(shù)器現(xiàn)行值時,計數(shù)過程仍在進行,而且不受CPU的控制。因此,在CPU讀取計數(shù)器的輸出值時,可能計數(shù)器的輸出正在發(fā)生改變,即數(shù)值不穩(wěn)定,可能導致錯誤的讀數(shù)。為了防止這種情況發(fā)生,必須在讀數(shù)前設法終止計數(shù)或?qū)⒂嫈?shù)器輸出端的現(xiàn)行值鎖存??刹捎孟旅鎯煞N方法:方法一:在讀數(shù)前用外部硬件切斷計數(shù)脈沖信號,或者使門控信號變?yōu)榈碗娖?,迫?253停止計數(shù)。這種方法的缺點是需要硬件電路配合。此外,由于外部事件源被切斷或正常的計數(shù)過程被禁止,干擾了實際的計數(shù)過程。方法二:先用計數(shù)器鎖存命令鎖存現(xiàn)行計數(shù)值,然后將它讀出。由于每個計數(shù)通道都有一個1
15、6位輸出鎖存器,可在任何時刻將計數(shù)器的現(xiàn)行值鎖住。8-2 8253的應用舉例【計數(shù)功能】203計數(shù)值的讀?。?)當需要讀取計數(shù)器的現(xiàn)行值時,先向8253送一個控制字,并使控制字中的RL1RL000,現(xiàn)行計數(shù)值立即被鎖存起來。該控制字中的SC1SC0用來確定要鎖存的是3個計數(shù)器中的哪一個。控制字的低4位對鎖存命令無影響,可以將它們置為0。讀取計數(shù)值的方法由對8253進行初始化編程時所寫入的控制字中的RL1RL0位來確定,當RL1RL0=01時,只讀取計數(shù)器的低字節(jié),RL1RL010時,只讀取計數(shù)器的高字節(jié),RL1RL011時,先讀寫計數(shù)器低字節(jié),后讀寫高字節(jié)。比較起來,第二種方法完全由軟件實現(xiàn),
16、并可隨時讀取計數(shù)值,而且不會干擾正常的計數(shù)過程和引起錯誤,是常用的方法。8-2 8253的應用舉例【計數(shù)功能】213計數(shù)值的讀?。?)上例中,在要讀取箱子中的現(xiàn)行工件數(shù)時,可執(zhí)行下面的程序段:MOVMOVOUTMOVINMOVAL,01000000BDX,0F6HDX,ALDX,0F2HAL,DXAH,AL;鎖存計數(shù)器1命令;控制口;發(fā)鎖存命令;計數(shù)器1;讀取計數(shù)器1的低8位;保存低8位數(shù)INAL,DX;讀取計數(shù)器1的低高位XCHG AH,AL;將計數(shù)值置于AX中8-2 8253的應用舉例【計數(shù)功能】223計數(shù)值的讀?。?)在計數(shù)器的鎖存命令發(fā)出后,鎖存的計數(shù)值將保持不變,直至被讀出為止。計數(shù)
17、值從鎖存器讀出后,數(shù)值鎖存狀態(tài)即被自動解除,輸出鎖存器的值又將隨計數(shù)器的值而變化。利用這種方法讀取8253的計數(shù)器值時,每執(zhí)行一次鎖存命令,只能鎖存一個通道的計數(shù)值。如果想讀取8253的3個計數(shù)器的值,就要向8253送3個鎖存命令字。同樣,用這種方法也可以讀取8254的內(nèi)部計數(shù)器的數(shù)值。但對于8254來說,還有另外一種讀回功能,一次可以鎖存多個計數(shù)器的值,從而可連續(xù)讀取13個計數(shù)器的值。8-2 8253的應用舉例【計數(shù)功能】2348254的讀回功能8254的讀回命令功能,每次可鎖存13個通道的計數(shù)值。此外,利用8254的讀回功能,還可鎖存13個計數(shù)通道的狀態(tài)字,供CPU讀取。通過讀取狀態(tài)字,可
18、以核對向8254寫入的控制字是否正確,還能了解當前輸出引腳的電平狀態(tài),以及計數(shù)值是否已寫入執(zhí)行單元等。8-2 8253的應用舉例【計數(shù)功能】D71D61D5COUNTD4STATUSD3CNT2D2CNT1D1CNT0D00標志位1:選擇計數(shù)器01:選擇計數(shù)器11:選擇計數(shù)器20:鎖存所選計數(shù)器的狀態(tài)0:鎖存所選計數(shù)器的數(shù)值248-2 8253的應用舉例48254的讀回功能【計數(shù)功能】2548254的讀回功能若D4位置0,將鎖存計數(shù)器的狀態(tài)信息。狀態(tài)信息被鎖存后,也可以由CPU用輸入指令讀回。用戶通過讀取狀態(tài)信息,可核查所選中通道的計數(shù)值、工作方式、輸出引腳OUT的現(xiàn)行狀態(tài)及計數(shù)器是否已寫入計數(shù)通道等信息。狀態(tài)字的格式如圖9-14所示。其中D5D0位即為寫入該通道的控制字的相應部分,RW1RW0相當于8253的RL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 瑜伽軟墊課程設計紙
- 涵洞課程設計
- 電壓導入課程設計思路
- 電工課程設計救護車警報
- 橡膠零件在汽車行業(yè)的應用考核試卷
- 游樂設施施工項目管理軟件應用考核試卷
- 白酒釀造微生物學原理考核試卷
- 礦產(chǎn)勘查中的勘查設備技術發(fā)展考核試卷
- 液液萃取課程設計
- 涵閘畢業(yè)課程設計
- 期末測試卷(一)2024-2025學年 人教版PEP英語五年級上冊(含答案含聽力原文無聽力音頻)
- 漢服娃衣創(chuàng)意設計與制作智慧樹知到期末考試答案章節(jié)答案2024年四川文化產(chǎn)業(yè)職業(yè)學院
- (高清版)通風管道技術規(guī)程JGJ_T 141-2017
- 機制砂檢測報告
- 省教育廳檢查組接待方案
- 變壓器停、送電操作步驟與注意事項
- 氣動潛孔錘施工方案
- 風電項目監(jiān)理大綱附錄風電工程設備監(jiān)理項目表
- 云南省教育科學規(guī)劃課題開題報告 - 云南省教育科學研究院
- 二年級上,數(shù)學,3個兩位數(shù)加減,80題,(豎式計算)
- 人民法院涉訴信訪案件終結(jié)辦法
評論
0/150
提交評論