




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、接口技術(shù)定時器計(jì)數(shù)器第1頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三第6章 Intel 8253定時器/計(jì)數(shù)器第2頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 定時舉例: 一天24小時的計(jì)時,稱為日時鐘。 在監(jiān)測系統(tǒng)中,對被測點(diǎn)的定時取樣。 在讀鍵盤時,為去抖,一般延遲一段時間,再讀。 在微機(jī)控制系統(tǒng)中,控制某工序定時啟動。第3頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 計(jì)數(shù)器: 在時鐘信號作用下,進(jìn)行減“1”計(jì)數(shù),計(jì)數(shù)次數(shù)到(減“1”計(jì)數(shù)回零),從輸出端輸出一個脈沖信號。 計(jì)數(shù)舉例:對零件和產(chǎn)品的計(jì)數(shù);對大橋和高速公路上車流量的統(tǒng)計(jì),等等。Intel82
2、53在微機(jī)系統(tǒng)中可用作定時器和計(jì)數(shù)器。定時時間與計(jì)數(shù)次數(shù)是由用戶事 先設(shè)定。第4頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 2、 8253 定時與計(jì)數(shù)器與CPU的關(guān)系 8253 定時與計(jì)數(shù)操作過程與CPU相互獨(dú)立,并行操作。 3、8253定時與計(jì)數(shù)結(jié)束時產(chǎn)生的脈沖信號可用于對某一事件進(jìn)行控制,也可作用為一外部終端請求信號。第5頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三二、Intel 8253 定時器/計(jì)數(shù)器的基本性能參數(shù) 1、一片8253內(nèi)部有3個16位的計(jì)數(shù)器(相互獨(dú)立) 2、每個計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)相同,可通過編程手段設(shè)置為6種不同的工作方式來進(jìn)行定時/計(jì)數(shù) 3、每
3、個計(jì)數(shù)器再開始工作前必須預(yù)制時間常數(shù)(時間初始) 4、每個計(jì)數(shù)器在工作過程中的當(dāng)前計(jì)數(shù)值可被CPU讀出. (注:時間常數(shù)也可在計(jì)數(shù)過程中更改)第6頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三三、8253 定時器/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)、 1、內(nèi)部結(jié)構(gòu)第7頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 8253 定時器/計(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、總線緩沖器。它是一個三態(tài)、雙向8位寄存器,用于將8253與系統(tǒng)數(shù)據(jù)總線D0D7 相連。讀/寫邏輯??刂泼罴拇嫫鳌K邮蹸PU送來的控制字。計(jì)數(shù)器。8253有3個獨(dú)立的計(jì)數(shù)器(計(jì)數(shù)通道),其內(nèi)部結(jié)構(gòu)完全相同,定時器/計(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時)裝入/讀出初值鎖存后讀出當(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只有一個工作方式控制字,但是對每個計(jì)數(shù)器而言,它們的工作方式控制字內(nèi)容一定各不相同(前兩位不同),所用各計(jì)數(shù)器的控制字需要分別設(shè)置,先后不計(jì)。 2、8253的工作方式控制字的特殊形式可用于對計(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ù)初值與輸入時鐘(CLK)頻率及輸出波形(OUT)頻率之間的關(guān)系為:C i=CLK/OUT 或 Tc=CLK/OUT 5. 8253初始化的工作有兩個內(nèi)容:(1)一是向命令寄存器寫入方式命令,以選擇器(3個計(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號計(jì)數(shù)器,工作在3方式,計(jì)數(shù)初值為533H(2個字節(jié)),采用二進(jìn)制計(jì)數(shù)。其初始化程序段為 MOV DX,307H ;命令口 MOV AL,10110110B ;2號計(jì)數(shù)器的初始化 命 令字 OUT DX,AL ;寫入命令寄存器 MOV DX,306H ;2號計(jì)數(shù)器數(shù)據(jù)口 MOV AX,533H ;計(jì)數(shù)初值 OUT DX,AL ;選送低字節(jié)到2號計(jì) 數(shù)器 MOV AL,AH ;取高字節(jié)送AL OUT DX,AL ;后送高字節(jié)到2號 計(jì)數(shù)器第16頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三例2:要求讀出并檢查1號計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值是否是全“1”(假定計(jì)數(shù)值16位/8位),
9、其程序段為L : MOV DX,307H ;命令口 MOV AL,01000000B ;1號計(jì)數(shù)器的鎖存命令 OUT DX,AL ;寫入命令寄存器 MOV DX,305H ;1號計(jì)數(shù)器數(shù)據(jù)口 IN AL,DX ;讀1號計(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ù)值時,開始計(jì)數(shù),相應(yīng)的輸出信號OUT就開始變成低電平。當(dāng)計(jì)數(shù)器減到零時,OUT
10、立即輸出高電平。 六、8253 的工作方式 8253/8254芯片的每個計(jì)數(shù)器通道都有6種工作方式可供選用。18組11 3)、在計(jì)數(shù)器工作期間,如果重新寫入新的計(jì)數(shù)值,計(jì)數(shù)器將按新寫入的計(jì)數(shù)值重新工作。 2)、門控信號GATE位高電平時,計(jì)數(shù)器工作;為低電平時,計(jì)數(shù)器停止工作,計(jì)數(shù)值保持不變。18組118組2第18頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三n=5CLKOUTWR 543210圖6.4 8253的0方式時序波形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信號上升沿重新計(jì)數(shù)) 可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器 1方式為可編程的單穩(wěn)態(tài)工作方式。(平時gate無效) 情況一:(1)寫入計(jì)數(shù)初值后,計(jì)
12、數(shù)器并不立即開始工作;(2)門控信號GATE有效,才開始工作,使輸出OUT變成低電平;(3)直到計(jì)數(shù)器值減到零后,輸出才變高電平。見圖6.5中。 情況二: 在計(jì)數(shù)器工作期間,當(dāng)GATE又出現(xiàn)一個上升沿時,計(jì)數(shù)器 重新裝入原計(jì)數(shù)初值并重新開始計(jì)數(shù),見圖見圖6.5中。 21組17 如果工作期間對計(jì)數(shù)器寫入新的計(jì)數(shù)初值,則要等到當(dāng)前的 計(jì)數(shù)值計(jì)滿回零且門控信號再次出現(xiàn)上升沿后,才按新寫入的 計(jì)數(shù)初值開始工作,見圖6.5所示。21組121組16第21頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三圖6.5 8253的1方式時序波形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方式是一種具有自動裝入時間常數(shù)(計(jì)數(shù)初 值N) 的 N分頻器。時序波形如下特點(diǎn):一次
14、設(shè)置計(jì)數(shù)初值,計(jì)數(shù)器可自動重復(fù)進(jìn)行減“1”計(jì)數(shù)操作,減“1”計(jì)數(shù)回“0”,可從輸出端輸出一負(fù)脈沖信號。第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方式基本相同,也具有自動裝入時間常數(shù)(計(jì)數(shù)初值)的功能,不同之處在于:(1)工作在3方式,引腳OUT輸出的不是一個時鐘周期的負(fù)脈沖 , 而是占空比為1:1或近似1:1的方波;當(dāng)計(jì)數(shù)初值為偶 數(shù)時,輸出在前一半的計(jì)數(shù)過程中為高電平,在后一半的計(jì)數(shù) 過程中為低電平。(2)由于3方式輸出的波形是方波,并且具有自動重裝計(jì)數(shù)初值的功能,因此,8253一旦計(jì)數(shù)開始,就會在輸出端OUT輸出連續(xù)不斷的方波。第
16、27頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三n=5CLKWROUT 2n=4222圖6.7 8253的3方式時序波形OUT WR3232第28頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 5. 4方式-單次負(fù)脈沖輸出(軟件觸發(fā)) 4方式工作方式是一種由軟件啟動的計(jì)數(shù)方式, 即由寫入計(jì)數(shù)初值來觸發(fā)計(jì)數(shù)器開始工作。門控信GATE 為高電PIN平時,允許計(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方式時序波形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ù),而要由門控信號的上升沿啟動計(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方式時序波形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都可以賦初值后的下個CLK才裝到執(zhí)行部件,開始計(jì)數(shù)第33頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三七. 8253-/8254-2的應(yīng)用舉例 一、計(jì)數(shù)器-日時鐘1
19、.要求設(shè)計(jì)一個計(jì)一天時間的日計(jì)時器-日時鐘。2.分析利用8253工作在3方式下,其輸出為一系列方波,這種方波的周期是準(zhǔn)確的,可以作為定時單位。比如,選用8253的計(jì)數(shù)器0,讓其工作在3方式,計(jì)數(shù)初值設(shè)置為最大值-65536。當(dāng)輸入時鐘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ì)時單位)。 若以十六進(jìn)制表示,則為 0180
20、0B0H個計(jì)時單位(占用4個存儲單元)。 為存放每次中斷以后加1所得到的計(jì)數(shù)值,使用4個存儲字節(jié),其對應(yīng)雙字變量分別為: TIMER-LO(40H:6CH) 和 TIMER-HI (40H:6EH)。 同理可得:1小時包含65543個計(jì)時單位, 1分鐘包含1092個計(jì)時單位, 1秒鐘包含18.2個計(jì)時單位。 使用中斷程序?qū)τ?jì)時時間單元進(jìn)行加1累加,中斷請求通過8259的IR0引入。第35頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 3.設(shè)計(jì)(1)硬件設(shè)計(jì)日時鐘的硬件主要由定時/計(jì)數(shù)器8254和中斷控制器8259A構(gòu)成,共工作原理框圖如圖6.10所示。該圖還畫出了在日時鐘運(yùn)行時對內(nèi)存
21、RAM的使用情況。第36頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三8254OUT0GATE0CLK08259AIRQ0T=54.9msIR0INTD07INTA總線控制器S2S1S0DQQ狀態(tài)=000CPPCLK+5VCPUINTRD07S2S1S0MFEA5HF000HTIMER-LOTIMER-HI存儲器TIMER-INT(中斷程序)00:0000:20H00:23H40:6CH40:6EH向量向量指針時間值+1并保存圖6.10 日時鐘運(yùn)行原理示意圖2.3863632MHZ中斷號8加1第37頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 到24小時?TIMER-OF
22、L置1并使日時鐘復(fù)位0點(diǎn)0 TIMER-LO0 TIMER-HIYN開中斷有關(guān)寄存器進(jìn)棧TIMER-LO加1到0?TIMER-HI加1NY圖6.11 日時鐘中斷8的中斷服務(wù)程序流程圖(2)軟件設(shè)計(jì)AA第38頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三調(diào)用定時報時中斷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)定延時 三、發(fā)聲器 1.要求 利用定/計(jì)數(shù)器8253發(fā)600Hz的長/短音。按任意鍵,開始 發(fā)聲;按ESC鍵,停止發(fā)聲。
23、8253的輸入時鐘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 ; 查任意鍵,啟動發(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 ;有鍵銨下,檢測是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ā)聲 ;延時 L: LOOP L DEC BL ;BL為子程序的入口件 JNZ L RET SSP ENDP CODE ENDS END START第48頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三四、波特率時鐘發(fā)生器 1.要求設(shè)計(jì)一個波特率時鐘發(fā)生器,其輸入時鐘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ī)對話方式選擇波特率。按Esc鍵,退出。 2. 分析 發(fā)送時鐘 TxC=BaudFactor Tc=CLK/BaudFactor=CLK/BF (6.2)第49頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三3.設(shè)計(jì)(1)硬件設(shè)計(jì) 波特率時鐘發(fā)生器的硬件包括定時/計(jì)數(shù)器8253、并行接口芯片8255A及I/O端口地址譯碼電路等。(2)軟件編程 計(jì)算出題目中要求的8檔波特率的定時常數(shù),分別為678H、497H、249H、124H、62H、31H、16H
29、、8H。其次,設(shè)計(jì)查表法的波特率時鐘發(fā)生器程序流程圖,如圖6.15所示。第50頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 DATA SEGNENT TC-TABLE DW 678 ;0=110b/s ,定時常數(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)出錯處理 CMP AL,7 第54頁,共73頁,2022年,5月20日,15點(diǎn)1分,星
32、期三開始8253初始化8255初始化關(guān)閉8253 提示選擇波特率選擇波特率選擇有錯?YN波特率代號temp查表獲取計(jì)數(shù)初值,并裝入8253(CALL Load)有ESC鍵按下?關(guān)8253返回DOS結(jié)束圖6.15 波特率時鐘發(fā)生器程序流程圖NY第55頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 JA ERROR SUB AL,30H ;正確 MOV TEMP,AL ;則保存波特率代號 CALL LOAD ;裝入計(jì)數(shù)初值 JMP BEGIN ;啟動8253波特率時鐘發(fā)生器ERROR:MOV AH,9H ;出錯處理 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,啟動8253, 產(chǎn)生波特率時鐘 OUT DX,AL NOPLOP: MOV AH,0BH ;檢測有鍵按下? INT 21H第56頁,共73頁,2022年,5月20日,15點(diǎn)1分,星期三 CMP AL,00 JE LOP ;無,等待 MOV AH,08H;有,檢測是否是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;波形代號乘2,存放在DX中 AND DX,0FH ;只取DX的低4位 MOV SI,OFFSET TC-TABLE ;取定時常數(shù)表的首址SI ADD SI,DX ;SI為定時常數(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í)時時鐘信號C1-RAM刷新的定時信號C2-產(chǎn)生聲音。也可編程用于其它工作基地址:40H8253-5在PC中的連接:時鐘,初值,門控,工作方式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對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ì)時觀看40:6C-6F,全寫0再看C2應(yīng)用使喇叭發(fā)出1-7的音符:聲音就是20-20KHZ頻率的喇叭震動.1-7的對應(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高考?xì)v史考前必背超級結(jié)論-14個階段特征
- 2024年中級統(tǒng)計(jì)師《統(tǒng)計(jì)工作實(shí)務(wù)》真題及答案解析
- 婦科護(hù)理常用藥
- 2025年校園安全新標(biāo)準(zhǔn):危險品存放領(lǐng)用登記操作流程全覽
- 2025年湖南省長沙市初中一年級上學(xué)期期中語言能力考試試卷
- 2025年室內(nèi)設(shè)計(jì)師職業(yè)資格考試真題卷-室內(nèi)設(shè)計(jì)空間布局與設(shè)計(jì)效果評估試題
- 教材原理2025年計(jì)算機(jī)二級MySQL試題及答案
- 2025年護(hù)士執(zhí)業(yè)資格考試內(nèi)科護(hù)理學(xué)專項(xiàng)護(hù)理倫理模擬考試試卷
- 護(hù)理業(yè)務(wù)查房記錄
- 貴州省六盤水市鐘山區(qū)2024-2025學(xué)年九年級上學(xué)期期末質(zhì)量監(jiān)測英語試題(原卷版+解析版)
- 2024年成都市公共交通集團(tuán)交旅文化發(fā)展有限公司招聘考試真題
- 安置幫教測試題及答案
- 學(xué)做鹵菜簽合同協(xié)議
- GB/T 15340-2025天然、合成生膠取樣及其制樣方法
- 衡水高中宿舍管理制度
- 公路法知識培訓(xùn)課件
- 施工現(xiàn)場臨時設(shè)施專項(xiàng)方案
- 《鄉(xiāng)土中國》課件統(tǒng)編版高一語文必修上冊
- 吡侖帕奈產(chǎn)品簡介
- 《海底電纜工程預(yù)算定額(試行)》
- 馬拉松方案策劃
評論
0/150
提交評論