接口技術(shù)定時(shí)器計(jì)數(shù)器_第1頁
接口技術(shù)定時(shí)器計(jì)數(shù)器_第2頁
接口技術(shù)定時(shí)器計(jì)數(shù)器_第3頁
接口技術(shù)定時(shí)器計(jì)數(shù)器_第4頁
接口技術(shù)定時(shí)器計(jì)數(shù)器_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、接口技術(shù)定時(shí)器計(jì)數(shù)器第1頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三第6章 Intel 8253定時(shí)器/計(jì)數(shù)器第2頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 定時(shí)舉例: 一天24小時(shí)的計(jì)時(shí),稱為日時(shí)鐘。 在監(jiān)測(cè)系統(tǒng)中,對(duì)被測(cè)點(diǎn)的定時(shí)取樣。 在讀鍵盤時(shí),為去抖,一般延遲一段時(shí)間,再讀。 在微機(jī)控制系統(tǒng)中,控制某工序定時(shí)啟動(dòng)。第3頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 計(jì)數(shù)器: 在時(shí)鐘信號(hào)作用下,進(jìn)行減“1”計(jì)數(shù),計(jì)數(shù)次數(shù)到(減“1”計(jì)數(shù)回零),從輸出端輸出一個(gè)脈沖信號(hào)。 計(jì)數(shù)舉例:對(duì)零件和產(chǎn)品的計(jì)數(shù);對(duì)大橋和高速公路上車流量的統(tǒng)計(jì),等等。Intel82

2、53在微機(jī)系統(tǒng)中可用作定時(shí)器和計(jì)數(shù)器。定時(shí)時(shí)間與計(jì)數(shù)次數(shù)是由用戶事 先設(shè)定。第4頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 2、 8253 定時(shí)與計(jì)數(shù)器與CPU的關(guān)系 8253 定時(shí)與計(jì)數(shù)操作過程與CPU相互獨(dú)立,并行操作。 3、8253定時(shí)與計(jì)數(shù)結(jié)束時(shí)產(chǎn)生的脈沖信號(hào)可用于對(duì)某一事件進(jìn)行控制,也可作用為一外部終端請(qǐng)求信號(hào)。第5頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三二、Intel 8253 定時(shí)器/計(jì)數(shù)器的基本性能參數(shù) 1、一片8253內(nèi)部有3個(gè)16位的計(jì)數(shù)器(相互獨(dú)立) 2、每個(gè)計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)相同,可通過編程手段設(shè)置為6種不同的工作方式來進(jìn)行定時(shí)/計(jì)數(shù) 3、每

3、個(gè)計(jì)數(shù)器再開始工作前必須預(yù)制時(shí)間常數(shù)(時(shí)間初始) 4、每個(gè)計(jì)數(shù)器在工作過程中的當(dāng)前計(jì)數(shù)值可被CPU讀出. (注:時(shí)間常數(shù)也可在計(jì)數(shù)過程中更改)第6頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三三、8253 定時(shí)器/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)、 1、內(nèi)部結(jié)構(gòu)第7頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 8253 定時(shí)器/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)框圖CLK1GATE1OUT1CLK2GATE2OUT2CLK0GATE0OUT0數(shù)據(jù)總線緩沖器讀/寫邏輯A0A1RDWRCS8CPU控制字寄存器內(nèi)部總線計(jì)數(shù)器 0計(jì)數(shù)器 1計(jì)數(shù)器 2第8頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三數(shù)據(jù)

4、總線緩沖器。它是一個(gè)三態(tài)、雙向8位寄存器,用于將8253與系統(tǒng)數(shù)據(jù)總線D0D7 相連。讀/寫邏輯??刂泼罴拇嫫?。它接受CPU送來的控制字。計(jì)數(shù)器。8253有3個(gè)獨(dú)立的計(jì)數(shù)器(計(jì)數(shù)通道),其內(nèi)部結(jié)構(gòu)完全相同,定時(shí)器/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu):第9頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三GATE16位當(dāng)前計(jì)數(shù)值鎖存器16位減一計(jì)數(shù)器16位計(jì)數(shù)初值寄存器&CLKOUTMSBLSBLSBMSB(減1至0時(shí))裝入/讀出初值鎖存后讀出當(dāng)前值8253 的內(nèi)部的各計(jì)數(shù)器的結(jié)構(gòu)第10頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 四. 8253的端口尋址及基本操作 CSRDA1WRA0傳 送

5、 方 式00000001111000000011100110010101010寫入計(jì)數(shù)器0的初始值寫入計(jì)數(shù)器1的初始值寫入計(jì)數(shù)器2的初始值寫入控制寄存器控制字讀自計(jì)數(shù)器0的OL讀自計(jì)數(shù)器1的OL讀自計(jì)數(shù)器2的OL第11頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三五、8253 的控制字格式: 數(shù)制選擇SC1SC0M2RW1RW0 BCDM0M1D7 D6 D5 D4 D3 D2 D1 D0工作方式000 方式0101 方式500 計(jì)數(shù)器鎖存命令10 只讀/寫高八位01 只讀/寫低八位11 先讀/寫低八位再讀/寫高八位00 選擇計(jì)數(shù)器001選擇計(jì)數(shù)器110 選擇計(jì)數(shù)器2讀/寫指示計(jì)數(shù)器

6、選擇第12頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 關(guān)于的控制字說明: 1、8253只有一個(gè)工作方式控制字,但是對(duì)每個(gè)計(jì)數(shù)器而言,它們的工作方式控制字內(nèi)容一定各不相同(前兩位不同),所用各計(jì)數(shù)器的控制字需要分別設(shè)置,先后不計(jì)。 2、8253的工作方式控制字的特殊形式可用于對(duì)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值進(jìn)行鎖存。 3、在工作方式控制字被設(shè)置之后,隨后必須緊接著給計(jì)數(shù)器預(yù)設(shè)置計(jì)數(shù)初值,計(jì)數(shù)器方可開始工作??刂谱值?3頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三SC1SC0M2RW1RW0 BCDM0M1D7 D6 D5 D4 D3 D2 D1 D000 計(jì)數(shù)器鎖存命令00 選擇計(jì)

7、數(shù)器001選擇計(jì)數(shù)器110 選擇計(jì)數(shù)器2計(jì)數(shù)器選擇 未用 鎖存計(jì)數(shù)器當(dāng)前計(jì)數(shù)值控制字第14頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三4.計(jì)數(shù)初值 計(jì)數(shù)初值與輸入時(shí)鐘(CLK)頻率及輸出波形(OUT)頻率之間的關(guān)系為:C i=CLK/OUT 或 Tc=CLK/OUT 5. 8253初始化的工作有兩個(gè)內(nèi)容:(1)一是向命令寄存器寫入方式命令,以選擇器(3個(gè)計(jì)數(shù)器之一),確定工作方式(6種方式之一),指定計(jì)數(shù)器計(jì)數(shù)初值的長度和裝入順序以及計(jì)數(shù)值的碼制(BCD或二進(jìn)制碼)。(2)二是向已選定的計(jì)數(shù)器按方式命令的要求寫入計(jì)數(shù)初值。第15頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期

8、三例1:選擇2號(hào)計(jì)數(shù)器,工作在3方式,計(jì)數(shù)初值為533H(2個(gè)字節(jié)),采用二進(jìn)制計(jì)數(shù)。其初始化程序段為 MOV DX,307H ;命令口 MOV AL,10110110B ;2號(hào)計(jì)數(shù)器的初始化 命 令字 OUT DX,AL ;寫入命令寄存器 MOV DX,306H ;2號(hào)計(jì)數(shù)器數(shù)據(jù)口 MOV AX,533H ;計(jì)數(shù)初值 OUT DX,AL ;選送低字節(jié)到2號(hào)計(jì) 數(shù)器 MOV AL,AH ;取高字節(jié)送AL OUT DX,AL ;后送高字節(jié)到2號(hào) 計(jì)數(shù)器第16頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三例2:要求讀出并檢查1號(hào)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值是否是全“1”(假定計(jì)數(shù)值16位/8位),

9、其程序段為L : MOV DX,307H ;命令口 MOV AL,01000000B ;1號(hào)計(jì)數(shù)器的鎖存命令 OUT DX,AL ;寫入命令寄存器 MOV DX,305H ;1號(hào)計(jì)數(shù)器數(shù)據(jù)口 IN AL,DX ;讀1號(hào)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值 MOV AH,AL IN AL,DX XCHG AH,AL CMP AX,0FFFFH ;比較 JNE L ;非全“1”,再讀 HLT ; 是全“1”,暫停第17頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 1、方式0 “一次有效”,計(jì)數(shù)結(jié)束產(chǎn)生中斷 1)、計(jì)數(shù)器寫完計(jì)數(shù)值時(shí),開始計(jì)數(shù),相應(yīng)的輸出信號(hào)OUT就開始變成低電平。當(dāng)計(jì)數(shù)器減到零時(shí),OUT

10、立即輸出高電平。 六、8253 的工作方式 8253/8254芯片的每個(gè)計(jì)數(shù)器通道都有6種工作方式可供選用。18組11 3)、在計(jì)數(shù)器工作期間,如果重新寫入新的計(jì)數(shù)值,計(jì)數(shù)器將按新寫入的計(jì)數(shù)值重新工作。 2)、門控信號(hào)GATE位高電平時(shí),計(jì)數(shù)器工作;為低電平時(shí),計(jì)數(shù)器停止工作,計(jì)數(shù)值保持不變。18組118組2第18頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三n=5CLKOUTWR 543210圖6.4 8253的0方式時(shí)序波形WROUT n=998n=443210n=5WRGATEOUT 54321044第19頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 MOV DX,

11、307H ;命令口 MOV AL,01110000B ;方式字 OUT DX,AL MOV DX,305H ;T1數(shù)據(jù)口 MOV AL,BYTEL ;計(jì)數(shù)值低字節(jié) OUT DX,AL MOV AL,BYTEH ;計(jì)數(shù)值高字節(jié) OUT DX,AL 例1:使計(jì)數(shù)器T1工作在0方式,進(jìn)行16位二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值的高低字節(jié)分別為BYTEH和BYTEL。其初始化程序段如下:第20頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 2. 1方式-低電平輸出(GATE信號(hào)上升沿重新計(jì)數(shù)) 可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器 1方式為可編程的單穩(wěn)態(tài)工作方式。(平時(shí)gate無效) 情況一:(1)寫入計(jì)數(shù)初值后,計(jì)

12、數(shù)器并不立即開始工作;(2)門控信號(hào)GATE有效,才開始工作,使輸出OUT變成低電平;(3)直到計(jì)數(shù)器值減到零后,輸出才變高電平。見圖6.5中。 情況二: 在計(jì)數(shù)器工作期間,當(dāng)GATE又出現(xiàn)一個(gè)上升沿時(shí),計(jì)數(shù)器 重新裝入原計(jì)數(shù)初值并重新開始計(jì)數(shù),見圖見圖6.5中。 21組17 如果工作期間對(duì)計(jì)數(shù)器寫入新的計(jì)數(shù)初值,則要等到當(dāng)前的 計(jì)數(shù)值計(jì)滿回零且門控信號(hào)再次出現(xiàn)上升沿后,才按新寫入的 計(jì)數(shù)初值開始工作,見圖6.5所示。21組121組16第21頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三圖6.5 8253的1方式時(shí)序波形n=3WRn=2OUT 3210210GATEn=4CLKGAT

13、EWROUT 43210OUT 4321GATE40第22頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三例2:使計(jì)數(shù)器T2 工作在1方式,進(jìn)行8位二進(jìn)制計(jì)數(shù), 并設(shè)計(jì) 數(shù) 初值的低8位為BYTEL。 其初始化程序段為 MOV DX,307H ;命令口 MOV AL,10010010B ;方式字 OUT DX,AL MOV DX,306H ;T2數(shù)據(jù)口 MOV AL,BYTEL ;低8位計(jì)數(shù)值 OUT DX,AL第23頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 3. 方式2:頻率發(fā)生器 2方式是一種具有自動(dòng)裝入時(shí)間常數(shù)(計(jì)數(shù)初 值N) 的 N分頻器。時(shí)序波形如下特點(diǎn):一次

14、設(shè)置計(jì)數(shù)初值,計(jì)數(shù)器可自動(dòng)重復(fù)進(jìn)行減“1”計(jì)數(shù)操作,減“1”計(jì)數(shù)回“0”,可從輸出端輸出一負(fù)脈沖信號(hào)。第24頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三OUT32151432n=3CLKWE GATEOUT3213 2 1 32n=5GATEOUT322 1 321 2第25頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 例3:使計(jì)數(shù)器T0 工作在2方式,進(jìn)行16位二進(jìn)制計(jì)數(shù)。 其初始 化程序段為 MOV DX,307H ;命令口 MOV AL,00110100B ;方式字 OUT DX,AL MOV DX,304H ;T2數(shù)據(jù)口 MOV AL,BYTEL ;低8位計(jì)數(shù)值

15、 OUT DX,AL MOV AL,BYTEL ;高8位計(jì)數(shù)值 OUT DX,AL第26頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三4. 3方式-周期性方波輸出,方波發(fā)生器 3方式工作方式與2方式基本相同,也具有自動(dòng)裝入時(shí)間常數(shù)(計(jì)數(shù)初值)的功能,不同之處在于:(1)工作在3方式,引腳OUT輸出的不是一個(gè)時(shí)鐘周期的負(fù)脈沖 , 而是占空比為1:1或近似1:1的方波;當(dāng)計(jì)數(shù)初值為偶 數(shù)時(shí),輸出在前一半的計(jì)數(shù)過程中為高電平,在后一半的計(jì)數(shù) 過程中為低電平。(2)由于3方式輸出的波形是方波,并且具有自動(dòng)重裝計(jì)數(shù)初值的功能,因此,8253一旦計(jì)數(shù)開始,就會(huì)在輸出端OUT輸出連續(xù)不斷的方波。第

16、27頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三n=5CLKWROUT 2n=4222圖6.7 8253的3方式時(shí)序波形OUT WR3232第28頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 5. 4方式-單次負(fù)脈沖輸出(軟件觸發(fā)) 4方式工作方式是一種由軟件啟動(dòng)的計(jì)數(shù)方式, 即由寫入計(jì)數(shù)初值來觸發(fā)計(jì)數(shù)器開始工作。門控信GATE 為高電PIN平時(shí),允許計(jì)數(shù)器工作。 例4:使計(jì)數(shù)器T1工作方式4方式,進(jìn)行8位二進(jìn)制計(jì)數(shù), 并 且只裝入高8位計(jì)數(shù)值。其初始化程序段為: MOV DX,307H ;命令口 MOV AL,00110100B ;方式字 OUT DX,AL MOV

17、DX,304H ;T2數(shù)據(jù)口 MOV AL,BYTEL ;低8位計(jì)數(shù)值 OUT DX,AL第29頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三CLKWROUT n=5543210圖6.8:8253的4方式時(shí)序波形OUT GATE544321044第30頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 6. 5方式-單次負(fù)脈沖輸出(硬件觸發(fā)) 5方式工作特點(diǎn)是由GATE上升沿觸發(fā)計(jì)數(shù)器開始工作。 在5方式工作方式下,當(dāng)寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立 即開始計(jì)數(shù),而要由門控信號(hào)的上升沿啟動(dòng)計(jì)數(shù)。30組1 在計(jì)數(shù)過程中(或者計(jì)數(shù)結(jié)束后),如果門控再次出現(xiàn)上 升沿,計(jì)數(shù)器將從原裝入的計(jì)

18、數(shù)初值重新計(jì)數(shù)。30組2第31頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三CLKWROUT n=5GATE543210圖6.9 8253的5方式時(shí)序波形OUT GATE54543210第32頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三使用注意最大初值0=65536CLK與OUT的周期區(qū)別在CLK的下降沿8253的各部件才產(chǎn)生改變模式0,4的gate是電平觸發(fā),1,5為上升沿觸發(fā)(邊沿觸發(fā)器),2,3都可以賦初值后的下個(gè)CLK才裝到執(zhí)行部件,開始計(jì)數(shù)第33頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三七. 8253-/8254-2的應(yīng)用舉例 一、計(jì)數(shù)器-日時(shí)鐘1

19、.要求設(shè)計(jì)一個(gè)計(jì)一天時(shí)間的日計(jì)時(shí)器-日時(shí)鐘。2.分析利用8253工作在3方式下,其輸出為一系列方波,這種方波的周期是準(zhǔn)確的,可以作為定時(shí)單位。比如,選用8253的計(jì)數(shù)器0,讓其工作在3方式,計(jì)數(shù)初值設(shè)置為最大值-65536。當(dāng)輸入時(shí)鐘CLK0=1.1931816MHz,則輸出方波的頻率為 fouto=1.1931816MHz/65536=18.2Hz第34頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三輸出方波的周期為: Touto=1/18.21000ms=54.945ms 1天2460601000ms/54.945ms=1573040(計(jì)時(shí)單位)。 若以十六進(jìn)制表示,則為 0180

20、0B0H個(gè)計(jì)時(shí)單位(占用4個(gè)存儲(chǔ)單元)。 為存放每次中斷以后加1所得到的計(jì)數(shù)值,使用4個(gè)存儲(chǔ)字節(jié),其對(duì)應(yīng)雙字變量分別為: TIMER-LO(40H:6CH) 和 TIMER-HI (40H:6EH)。 同理可得:1小時(shí)包含65543個(gè)計(jì)時(shí)單位, 1分鐘包含1092個(gè)計(jì)時(shí)單位, 1秒鐘包含18.2個(gè)計(jì)時(shí)單位。 使用中斷程序?qū)τ?jì)時(shí)時(shí)間單元進(jìn)行加1累加,中斷請(qǐng)求通過8259的IR0引入。第35頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 3.設(shè)計(jì)(1)硬件設(shè)計(jì)日時(shí)鐘的硬件主要由定時(shí)/計(jì)數(shù)器8254和中斷控制器8259A構(gòu)成,共工作原理框圖如圖6.10所示。該圖還畫出了在日時(shí)鐘運(yùn)行時(shí)對(duì)內(nèi)存

21、RAM的使用情況。第36頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三8254OUT0GATE0CLK08259AIRQ0T=54.9msIR0INTD07INTA總線控制器S2S1S0DQQ狀態(tài)=000CPPCLK+5VCPUINTRD07S2S1S0MFEA5HF000HTIMER-LOTIMER-HI存儲(chǔ)器TIMER-INT(中斷程序)00:0000:20H00:23H40:6CH40:6EH向量向量指針時(shí)間值+1并保存圖6.10 日時(shí)鐘運(yùn)行原理示意圖2.3863632MHZ中斷號(hào)8加1第37頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 到24小時(shí)?TIMER-OF

22、L置1并使日時(shí)鐘復(fù)位0點(diǎn)0 TIMER-LO0 TIMER-HIYN開中斷有關(guān)寄存器進(jìn)棧TIMER-LO加1到0?TIMER-HI加1NY圖6.11 日時(shí)鐘中斷8的中斷服務(wù)程序流程圖(2)軟件設(shè)計(jì)AA第38頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三調(diào)用定時(shí)報(bào)時(shí)中斷ICH輸出結(jié)束中斷的命令EOI到8259A有關(guān)寄存器出棧中斷返回關(guān)閉軟驅(qū)電機(jī)計(jì)算值減1 減至0?電機(jī)運(yùn)行狀態(tài)清零輸出命令關(guān)閉電機(jī)NA第39頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 二、穩(wěn)定延時(shí) 三、發(fā)聲器 1.要求 利用定/計(jì)數(shù)器8253發(fā)600Hz的長/短音。按任意鍵,開始 發(fā)聲;按ESC鍵,停止發(fā)聲。

23、8253的輸入時(shí)鐘CLK的頻率 1.19318MHz。 2.分析 3.設(shè)計(jì) (1)硬件設(shè)計(jì) (2)軟件設(shè)計(jì) 發(fā)聲程序由主程序和子程序組成。主程序流程圖如圖6.13所 示。.第40頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三發(fā)長音(BL=6)(CALL SSP)發(fā)短音(BL=1)(CALL SSP)按下Esc鍵?關(guān)閉揚(yáng)聲器返回DOS結(jié)束YYN開始8253初始化計(jì)算并裝入初值關(guān)閉揚(yáng)聲器按下任意鍵?N第41頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三發(fā)長/短音的程序?yàn)椋篊ODE SEGMENT ASSUME CS:CODE,DS:CODE ORG 100H START: JM

24、P BEGIN LONG1 EQU 6 SHORT1 EQU 1 BEGIN: MOV AX,CODE MOV CS,AX MOV DS,AX第42頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 ;初始化8253 MOV AL,10110110B ; 方式命令 OUT 43H,AL ;命令口 ;裝計(jì)數(shù)初值 MOV AX,1983 ;輸出600Hz的計(jì) 數(shù)初值 OUT 42H,AL ;先裝低字節(jié) MOV AL,AH ; 后裝高字節(jié) OUT 42H,AL第43頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 ; 關(guān)閉揚(yáng)聲器 IN AL,61H ; 讀入8255的PB口原輸出值 A

25、ND AL,0FCH ; 置PB0和PB1為零,關(guān)閉GATE2和與門 OUT 61H,AL ; 查任意鍵,啟動(dòng)發(fā)聲器 WAIT1: MOV AH, 0BH ; 功能調(diào)用 INT 21H CMP AL,0H ;無按按下,發(fā)出長音 JE WAIT ;有鍵按下,發(fā)出長音 第44頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 ;發(fā)長音 LOP: MOV BL,LONG1 ;長音入口參數(shù) CALL SSP ;;調(diào)發(fā)聲子程序 ;查Esc鍵,停止發(fā)聲 MOV AH,0BH ;功能調(diào)用 INT 21H CMP AL,0H JE CONTINUE1 MOV AH,08H ;有鍵銨下,檢測(cè)是Esc鍵?

26、INT 21H第45頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 CMP AL,1BH JE QUIT ;是,停止發(fā)聲,并退出 ;發(fā)短音CONTINUE1: MOV BL,SHORT1 ;短音入口參數(shù) CALL SSP ;調(diào)用發(fā)聲子程序 JMP LOP ;循環(huán)第46頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 ;關(guān)閉揚(yáng)聲器,并退出 QUIT: IN AL, 61H ;停止發(fā)聲 MOV AH,AL AND AL,0FCH OUT 61H,AL MOV AL,AH MOV AX,4C00H ;退出,返回 DOS INT 21H SUB CX,CX ;設(shè)CX的值為216 第4

27、7頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 ;發(fā)聲子程序SSP PROC NEAR IN AL,61H ;讀取PB口的原值 OR AL,03H ;置PB0和PB1為高,打 開GATE2與門 OUT 61H,AL ;開始發(fā)聲 ;延時(shí) L: LOOP L DEC BL ;BL為子程序的入口件 JNZ L RET SSP ENDP CODE ENDS END START第48頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三四、波特率時(shí)鐘發(fā)生器 1.要求設(shè)計(jì)一個(gè)波特率時(shí)鐘發(fā)生器,其輸入時(shí)鐘CLK=1.19318Mz,波特率因子factor=16,輸出的波特率為8檔,它們分別是1

28、10b/s、 150b/s、 300b/s、 600b/s、1200 b/s、2400b/s、4800b/s、9600b/s。要求利用人-機(jī)對(duì)話方式選擇波特率。按Esc鍵,退出。 2. 分析 發(fā)送時(shí)鐘 TxC=BaudFactor Tc=CLK/BaudFactor=CLK/BF (6.2)第49頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三3.設(shè)計(jì)(1)硬件設(shè)計(jì) 波特率時(shí)鐘發(fā)生器的硬件包括定時(shí)/計(jì)數(shù)器8253、并行接口芯片8255A及I/O端口地址譯碼電路等。(2)軟件編程 計(jì)算出題目中要求的8檔波特率的定時(shí)常數(shù),分別為678H、497H、249H、124H、62H、31H、16H

29、、8H。其次,設(shè)計(jì)查表法的波特率時(shí)鐘發(fā)生器程序流程圖,如圖6.15所示。第50頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 DATA SEGNENT TC-TABLE DW 678 ;0=110b/s ,定時(shí)常數(shù)表 DW 497 ;1= 150b/s DW 249 ;2= 300b/s DW 124 ;3= 600b/s DW 62 ;4= 1200b/s DW 31 ;5= 2400b/s DW 16 ;6= 4800b/s DW 8 ;7= 9600b/sDATA ENDS第51頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 TEMP DB(?) MES DB NOW

30、 BEGIN TO GENERATE BAUD-RATES CLK!,0DH,0AH DB HTP ESC TO QUIT !,0DH,OAH,$ INPUR-MES DB 0:110 1:150 2:300 3:600 4:1200,0DH,0AH ,$ DB 5:2400 6:4800 7:9600 ,0DH,0AH, $ ERROR-MES DB INPUT ERROR! TRY AGAIN PLEASE!,0DH,0AH, $第52頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三CODE SEGMENT ASSUME CS:CODE,DS:DATAOK:MOV AX,CODE

31、MOV CS,AX MOV DX,307H ;8253命令口 MOV AL,0B6H ;8253方式命令 OUT DX,AL MOV AL,0CH ;使PC6=0,關(guān)8253 OUT DX,AL MOV AX,DATA MOV DS,AX第53頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 LEA DX,INPUT-MES ;提示選擇波特率 MOV AH,09H INT 21HINPUT:MOV AH,08H INT 21H CMP AL,0 ;選擇波特率是否正確? JB ERROR ;不正確,則轉(zhuǎn)出錯(cuò)處理 CMP AL,7 第54頁,共73頁,2022年,5月20日,15點(diǎn)1分,星

32、期三開始8253初始化8255初始化關(guān)閉8253 提示選擇波特率選擇波特率選擇有錯(cuò)?YN波特率代號(hào)temp查表獲取計(jì)數(shù)初值,并裝入8253(CALL Load)有ESC鍵按下?關(guān)8253返回DOS結(jié)束圖6.15 波特率時(shí)鐘發(fā)生器程序流程圖NY第55頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 JA ERROR SUB AL,30H ;正確 MOV TEMP,AL ;則保存波特率代號(hào) CALL LOAD ;裝入計(jì)數(shù)初值 JMP BEGIN ;啟動(dòng)8253波特率時(shí)鐘發(fā)生器ERROR:MOV AH,9H ;出錯(cuò)處理 LEA DX,ERROR-MES INT 21H JMP INPUT ;

33、重新選擇波特率BEGIN:LEA DX,MES ;顯示提示信息 MOV AH,09H INT 21HSTART:MOV DX,303H ;8255命令口 MOV AL,0DH ;使PC6=1,啟動(dòng)8253, 產(chǎn)生波特率時(shí)鐘 OUT DX,AL NOPLOP: MOV AH,0BH ;檢測(cè)有鍵按下? INT 21H第56頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 CMP AL,00 JE LOP ;無,等待 MOV AH,08H;有,檢測(cè)是否是Esc鍵 INT 21H CMP AL,1BH JE QUIT;是,則退出 JMP LOP ;不是,循環(huán)查Esc鍵QUIT:MOV DX,3

34、03H MOV AL,0CH;關(guān)閉8253 OUT DX,AL MOV AX,4C00H;退出,返回DOS INT 21H LOAD PROC NEAR PUSH AX PUSH DX PUSH SI MOV DL,TEMP第57頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 SHL DL,1;波形代號(hào)乘2,存放在DX中 AND DX,0FH ;只取DX的低4位 MOV SI,OFFSET TC-TABLE ;取定時(shí)常數(shù)表的首址SI ADD SI,DX ;SI為定時(shí)常數(shù)表指針(首址+偏移量) MOV DX,306H ;計(jì)數(shù)器2的數(shù)據(jù)口 MOV AL,SI ;裝入數(shù)初值低字節(jié) OUT

35、DX,AL MOV AL,SI+1 ;裝入計(jì)數(shù)初值高字節(jié) OUT DX,AL POP SI POP DX RETLOAD ENDPCODE ENDS END OK第58頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三八、8253-5在PC的應(yīng)用8253-5在PC中的作用C0-實(shí)時(shí)時(shí)鐘信號(hào)C1-RAM刷新的定時(shí)信號(hào)C2-產(chǎn)生聲音。也可編程用于其它工作基地址:40H8253-5在PC中的連接:時(shí)鐘,初值,門控,工作方式C0: 1.19318MHZ/0/+5V/3雙字節(jié)C1: 1.19318MHZ/18/+5V/2單字節(jié)C2: 1.19318MHZ/533H/PB0/3雙字節(jié)第59頁,共73

36、頁,2022年,5月20日,15點(diǎn)1分,星期三BIOS對(duì)8253-5的初始化C0的初始化MOV AL,36HOUT 43H,ALMOV AL,0OUT 40H,ALOUT 40H,ALC1的初始化MOV AL,54HOUT 43H,ALMOV AL,18OUT 41H,AL第60頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三C2的初始化MOV AL,0B6HOUT 43H,ALMOV AX,533HOUT 42H,ALMOV AL,AHOUT 42H,ALIN AL,61HMOV AH,ALOR AL,3OUT 61H,AL第61頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期

37、三C0應(yīng)用C0的應(yīng)用:精確計(jì)時(shí)觀看40:6C-6F,全寫0再看C2應(yīng)用使喇叭發(fā)出1-7的音符:聲音就是20-20KHZ頻率的喇叭震動(dòng).1-7的對(duì)應(yīng)頻率:523,494,440,392,347,330,294注意喇叭的開和關(guān)的控制用PB0,PB1程序結(jié)束別忘了關(guān)喇叭第62頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三stack segment para stack stack db256 dup(?)stack endsdata segment public data mi dw 523,494,440,392,347,330,294,0data ends code segment para public codestart proc far assume cs:code第63頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 pushds movax,0 pushax movax,data movds,ax assumeds:data moval, 0B6h out

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論