微機原理及接口技術(shù) 第七章 Intel 8253定時器計數(shù)器_第1頁
微機原理及接口技術(shù) 第七章 Intel 8253定時器計數(shù)器_第2頁
微機原理及接口技術(shù) 第七章 Intel 8253定時器計數(shù)器_第3頁
微機原理及接口技術(shù) 第七章 Intel 8253定時器計數(shù)器_第4頁
微機原理及接口技術(shù) 第七章 Intel 8253定時器計數(shù)器_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第七章第七章 Intel 8253定時器定時器/計數(shù)器計數(shù)器 一、概述一、概述 1、定時與計數(shù)器的概念、定時與計數(shù)器的概念 定時器:定時器:在時鐘信號作用下,進行定時的減“1”計數(shù),定時時間到(減“1”計數(shù)回零),從輸出端輸出周期均勻、 頻率恒定的脈沖信號。 由上述可知,定時器強調(diào)的是精確的時間。由上述可知,定時器強調(diào)的是精確的時間。 定時舉例:定時舉例: 一天24小時的計時,稱為日時鐘。 在監(jiān)測系統(tǒng)中,對被測點的定時取樣。 在讀鍵盤時,為去抖,一般延遲一段時間,再讀。 在微機控制系統(tǒng)中,控制某工序定時啟動。 計數(shù)器:計數(shù)器: 在時鐘信號作用下,進行減“1”計數(shù),計數(shù)次數(shù)到計數(shù)次數(shù)到(減(減

2、“1”計數(shù)回零),從輸出端輸出一個脈沖信號。計數(shù)回零),從輸出端輸出一個脈沖信號。 計數(shù)舉例:對零件和產(chǎn)品的計數(shù);對大橋和高速公路上車流量的統(tǒng)計,等等。Intel8253在微機系統(tǒng)中可用作定時器和計數(shù)器。定時時間與計數(shù)次數(shù)是由用戶事 先設(shè)定。 2、 8253 定時與計數(shù)器與CPU的關(guān)系 8253 定時與計數(shù)操作過程與CPU相互獨立,并行操作。 3、8253定時與計數(shù)結(jié)束時產(chǎn)生的脈沖信號可用于對某一事件進行控制,也可作用為一外部終端請求信號。二、二、Intel 8253 定時器定時器/計數(shù)器的計數(shù)器的基本性能參數(shù) 1、一片8253內(nèi)部有3個16位的計數(shù)器(相互獨立) 2、每個計數(shù)器的內(nèi)部結(jié)構(gòu)相同

3、,可通過編程手段設(shè)置為6種不同的工作方式來進行定時/計數(shù) 3、每個計數(shù)器再開始工作前必須預制時間常數(shù)(時間初始)每個計數(shù)器再開始工作前必須預制時間常數(shù)(時間初始) 4、每個計數(shù)器在工作過程中的當前計數(shù)值可被CPU讀出. (注:時間常數(shù)也可在計數(shù)過程中更改)(注:時間常數(shù)也可在計數(shù)過程中更改)三、三、8253 定時器定時器/計數(shù)器的內(nèi)部結(jié)構(gòu)、計數(shù)器的內(nèi)部結(jié)構(gòu)、 1、內(nèi)部結(jié)構(gòu)(下頁) .內(nèi)部邏輯結(jié)構(gòu) 8253/8254內(nèi)部有6個模塊,其結(jié)構(gòu)框圖如圖3.2所示。 8253 定時器定時器/計數(shù)器的內(nèi)部結(jié)構(gòu)框圖計數(shù)器的內(nèi)部結(jié)構(gòu)框圖CLK1GATE1OUT1CLK2GATE2OUT2CLK0GATE0OU

4、T0數(shù)據(jù)總線緩沖器讀/寫邏輯A0A1RDWRCS8CPU控制字寄存器內(nèi)部總線計數(shù)器 0計數(shù)器 1計數(shù)器 2數(shù)據(jù)總線緩沖器。它是一個三態(tài)、雙向8位寄存器,用于將8253與系統(tǒng)數(shù)據(jù)總線D0D7 相連。讀/寫邏輯??刂泼罴拇嫫?。它接受CPU送來的控制字。計數(shù)器。8253有3個獨立的計數(shù)器(計數(shù)通道),其內(nèi)部結(jié)構(gòu)完全相同,定時器定時器/計數(shù)器的內(nèi)部結(jié)構(gòu):計數(shù)器的內(nèi)部結(jié)構(gòu):8253CLKGATEOUT16位當前計數(shù)值鎖存器16位減一計數(shù)器16位計數(shù)初值寄存器&CLKGATEOUTMSBLSBLSBMSB(減1至0時)裝入/讀出初值鎖存厚讀出當前值8253 的內(nèi)部的各計數(shù)器的結(jié)構(gòu)的內(nèi)部的各計數(shù)器

5、的結(jié)構(gòu) 四四. 8253的端口尋址及基本操作的端口尋址及基本操作 CSRDA1WRA0傳 送 方 式00000001111000000011100110010101010寫入計數(shù)器0的初始值寫入計數(shù)器1的初始值寫入計數(shù)器2的初始值寫入控制寄存器控制字讀自計數(shù)器0的OL讀自計數(shù)器1的OL讀自計數(shù)器2的OL五、8253 的控制字格式: 數(shù)制選擇SC1SC0M2RW1RW0 BCDM0M1D7 D6 D5 D4 D3 D2 D1 D0工作方式000 方式0101 方式500 計數(shù)器鎖存命令10 只讀/寫高八位01 只讀/寫低八位11 先讀/寫低八位再讀/寫高八位00 選擇計數(shù)器001選擇計數(shù)器110

6、 選擇計數(shù)器2讀/寫指示計數(shù)器選擇 關(guān)于的控制字關(guān)于的控制字說明說明: 1、8253只有一個工作方式控制字,但是對每個計數(shù)器而言,它們的工作方式控制字內(nèi)容一定各不相同(前兩位不同),所用各計數(shù)器的控制字需要分別設(shè)置所用各計數(shù)器的控制字需要分別設(shè)置,先后不計。 2、8253的工作方式控制字的特殊形式可用于對計數(shù)器的當前計數(shù)值進行鎖存。 3、在工作方式控制字被設(shè)置之后,隨后必須緊接著給計數(shù)器預設(shè)置計數(shù)初值,計數(shù)器方可開始工作??刂谱挚刂谱諷C1SC0M2RW1RW0 BCDM0M1D7 D6 D5 D4 D3 D2 D1 D000 計數(shù)器鎖存命令00 選擇計數(shù)器001選擇計數(shù)器110 選擇計數(shù)器2

7、計數(shù)器選擇 未用 鎖存計數(shù)器當前計數(shù)值控制字鎖存計數(shù)器當前計數(shù)值控制字4.計數(shù)初值計數(shù)初值 計數(shù)初值與輸入時鐘(CLK)頻率及輸出波形(OUT)頻率之間的關(guān)系為:Ci=CLK/OUT 或 Tc=CLK/OUT 5. 8253初始化的工作有兩個內(nèi)容初始化的工作有兩個內(nèi)容:(1)一是向命令寄存器寫入方式命令,以選擇器(3個計數(shù)器之一),確定工作方式(6種方式之一),指定計數(shù)器計數(shù)初值的長度和裝入順序以及計數(shù)值的碼制(BCD或二進制碼)。(2)二是向已選定的計數(shù)器按方式命令的要求寫入計數(shù)初值。v例1:選擇2號計數(shù)器,工作在3方式,計數(shù)初值為533H(2個字節(jié)),采用二進制計數(shù)。其初始化程序段為v M

8、OV DX,307H ;命令口v MOV AL,10110110B ;2號計數(shù)器的初始化v 命 令字v OUT DX,AL ;寫入命令寄存器v MOV DX,306H ;2號計數(shù)器數(shù)據(jù)口v MOV AX,533H ;計數(shù)初值v OUT DX,AL ;選送低字節(jié)到2號計v 數(shù)器v MOV AL,AH ;取高字節(jié)送ALv OUT DX,AL ;后送高字節(jié)到2號v 計數(shù)器v例2:要求讀出并檢查1號計數(shù)器的當前計數(shù)值是否是全“1”(假定計數(shù)值只有低8位),其程序段為v MOV DX,307H ;命令口vL :MOV AL,01000000B ;1號計數(shù)器的鎖存命令v OUT DX,AL ;寫入命令寄存

9、器v MOV DX,305H ;1號計數(shù)器數(shù)據(jù)口v IN AL,DX ;讀1號計數(shù)器的當前計數(shù)值v CMP AL,0FFH ;比較v JNE L ;非全“1”,再讀v HLT ; 是全“1”,暫停 1、方式0 “一次有效一次有效” 1)、計數(shù)器寫完計數(shù)值時,開始計數(shù),相應的輸出信號OUT就開始變成低電平。當計數(shù)器減到零時,OUT立即輸出高電平。 六、六、8253 的工作方式的工作方式 8253/8254芯片的每個計數(shù)器通道都有芯片的每個計數(shù)器通道都有6種種工作方式可供選用。工作方式可供選用。18組11 3)、在計數(shù)器工作期間,如果重新寫入新的計數(shù)值,計數(shù)器將按新寫入的計數(shù)值重新工作。 2)、門

10、控信號GATE位高電平時,計數(shù)器工作;為低電平時,計數(shù)器停止工作,計數(shù)只保持不變。18組118組2n=5n=5CLKCLKOUTOUTWRWR 5 54 43 32 21 10 0圖圖3.4 82533.4 8253的的0 0方式時序波形方式時序波形WRWROUTOUT n=9n=99 98 8n=4n=44 43 32 21 10 0n=5n=5WRWRGATEGATEOUTOUT 5 54 43 32 21 10 04 44 4 MOV DX,307H ;命令口 MOV AL,01110000B ;方式字 OUT DX,AL MOV DX,305H ;T1數(shù)據(jù)口 MOV AL,BYTEL

11、;計數(shù)值低字節(jié) OUT DX,AL MOV AL,BYTEH ;計數(shù)值高字節(jié) OUT DX,AL 例例1:使計數(shù)器:使計數(shù)器T1工作在工作在0方式,進行方式,進行16位二進制計數(shù),計位二進制計數(shù),計數(shù)初值的高低字節(jié)分別為數(shù)初值的高低字節(jié)分別為BYTEH和和BYTEL。其初始化程。其初始化程序段如下:序段如下: 2. 1方式方式-低電平輸出低電平輸出(GATE信號上升沿重新計數(shù)信號上升沿重新計數(shù)) 1方式為可編程的單穩(wěn)態(tài)工作方式。 情況一:情況一:(1)寫入計數(shù)初值后,計數(shù)器并不立即開始工作;(2)門控信號GATE有效,才開始工作,使輸出OUT變成低電平;(3)直到計數(shù)器值減到零后,輸出才變高電

12、平。見圖3.5中。 情況二:情況二: 在計數(shù)器工作期間,當GATE又出現(xiàn)一個上升沿時,計數(shù)器 重新裝入原計數(shù)初值并重新開始計數(shù),見圖見圖3.5中。 21組17 如果工作期間對計數(shù)器寫入新的計數(shù)初值,則要等到當前的 計數(shù)值計滿回零且門控信號再次出現(xiàn)上升沿后,才按新寫入的 計數(shù)初值開始工作,見圖3.5所示。21組121組16圖圖3.5 82533.5 8253的的1 1方式時序波形方式時序波形n=3n=3WRWRn=2n=2OUTOUT 3 32 21 10 02 21 10 0GATEGATEn=4n=4CLKCLKGATEGATEWRWROUTOUT 4 43 32 21 10 0OUTOUT

13、 4 43 32 21 1GATEGATE4 40 0例2:使計數(shù)器T2 工作在1方式,進行8位二進制計數(shù), 并設(shè)計 數(shù) 初值的低8位為BYTEL。 其初始化程序段為 MOV DX,307H ;命令口 MOV AL,10010010B ;方式字 OUT DX,AL MOV DX,306H ;T2數(shù)據(jù)口 MOV AL,BYTEL ;低8位計數(shù)值 OUT DX,AL 3. 方式方式2:頻率發(fā)生器:頻率發(fā)生器 2方式是一種具有自動裝入時間常數(shù)(計數(shù)初 值N) 的 N分頻器。時序波形如下時序波形如下特點:特點:一次設(shè)置計數(shù)初值,計數(shù)器可自動重復進行減“1”計數(shù)操作,減“1”計數(shù)回“0”,可從輸出端輸出

14、一負脈沖信號。OUTOUT3 32 21 15 51 143 32 2n=3n=3CLKCLKWE GATEOUTOUT3 32 21 13 3 2 1 32 2n=5n=5GATEOUTOUT3 32 22 2 1 32 21 2 2 例3:使計數(shù)器T0 工作在2方式,進行16位二進制計數(shù)。 其初始 化程序段為 MOV DX,307H ;命令口 MOV AL,00110100B ;方式字 OUT DX,AL MOV DX,304H ;T2數(shù)據(jù)口 MOV AL,BYTEL ;低8位計數(shù)值 OUT DX,AL MOV AL,BYTEL ;高8位計數(shù)值 OUT DX,AL4. 3方式方式-周期性方

15、波輸出周期性方波輸出 3方式工作方式與2方式基本相同,也具有自動裝入時間常數(shù)(計數(shù)初值)的功能,不同之處在于:不同之處在于:(1)工作在3方式,引腳OUT輸出的不是一個時鐘周期的負脈 沖 , 而是占空比為1:1或近似1:1的方波;當計數(shù)初值為偶 數(shù)時,輸出在前一半的計數(shù)過程中為高電平,在后一半的計數(shù) 過程中為低電平。(2)由于3方式輸出的波形是方波,并且具有自動重裝計數(shù)初 值的功能,因此,8253一旦計數(shù)開始,就會在輸出端OUT輸出 連續(xù)不斷的方波。n=5n=5CLKCLKWRWROUTOUT 2 2n=4n=42 22 22 2圖圖3.7 82533.7 8253的的3 3方式時序波形方式時

16、序波形OUTOUT WRWR3 32 23 32 2 5. 4方式方式-單次負脈沖輸出(軟件觸發(fā))單次負脈沖輸出(軟件觸發(fā)) 4方式工作方式是一種由軟件啟動的計數(shù)方式, 即由寫入計數(shù)初值來觸發(fā)計數(shù)器開始工作。門控信GATE 為高電PIN平時,允許計數(shù)器工作。 例4:使計數(shù)器T1工作方式4方式,進行8位二進制計數(shù), 并 且只裝入高8位計數(shù)值。其初始化程序段為: MOV DX,307H ;命令口 MOV AL,00110100B ;方式字 OUT DX,AL MOV DX,304H ;T2數(shù)據(jù)口 MOV AL,BYTEL ;低8位計數(shù)值 OUT DX,AL 6. 5方式方式-單次負脈沖輸出(硬件觸

17、發(fā))單次負脈沖輸出(硬件觸發(fā)) 5方式工作特點是由GATE上升沿觸發(fā)計數(shù)器開始工作。 在5方式工作方式下,當寫入計數(shù)初值后,計數(shù)器并不立 即開始計數(shù),而要由門控信號的上升沿啟動計數(shù)。30組1 在計數(shù)過程中(或者計數(shù)結(jié)束后),如果門控再次出現(xiàn)上 升沿,計數(shù)器將從原裝入的計數(shù)初值重新計數(shù)。30組2CLKWROUT n=5GATE543210圖3.9 8253的5方式時序波形OUT GATE54543210七七. 8253-/8254-2的應用舉例的應用舉例 一、計數(shù)器-日時鐘1.要求設(shè)計一個計一天時間的日計時器-日時鐘。2.分析利用8253工作在3方式下,其輸出為一系列方波,這種方波的周期是準確的

18、,可以作為定時單位。比如,選用8253的計數(shù)器0,讓其工作在3方式,計數(shù)初值設(shè)置為最大值-65536。當輸入時鐘CLK0=1.1931816MHz,則輸出方波的頻率為 fouto=1.1931816MHz/65536=18.2Hz輸出方波的周期為: Touto=1/18.21000ms=54.945ms 1天天2460601000ms/54.945ms=1573040(計時單位)。 若以十六進制表示,則為 01800B0H個計時單位個計時單位(占用占用4個存儲單元)個存儲單元)。 為存放每次中斷以后加1所得到的計數(shù)值,使用4個存儲字節(jié),其對應雙字變量分別為: TIMER-LO(40H:6CH)

19、 和 TIMER-HI (40H:6EH)。 同理可得:1小時包含小時包含65543個計時單位,個計時單位, 1分鐘包含分鐘包含1092個計時單位,個計時單位, 1秒鐘包含秒鐘包含18.2個計時單位個計時單位。 使用中斷程序?qū)τ嫊r時間單元進行加1累加,中斷請求通過8259的IR0引入。 3.設(shè)計設(shè)計(1)硬件設(shè)計)硬件設(shè)計日時鐘的硬件主要由定時日時鐘的硬件主要由定時/計數(shù)器計數(shù)器8254和中斷控制器和中斷控制器8259A構(gòu)成,共工作原理框圖如圖構(gòu)成,共工作原理框圖如圖3.10所示。該圖還所示。該圖還畫出了在日時鐘運行時對內(nèi)存畫出了在日時鐘運行時對內(nèi)存RAM的使用情況。的使用情況。8254825

20、4OUT0GATE0CLK08259A8259AIRQ0T=54.9msIR0INTD07INTA總線控制器S2S1S0D QQ狀態(tài)=000CPPCLK+5VCPUCPUINTRD07S2S1S0MFEA5HF000HTIMER-LOTIMER-HI存儲器TIMER-INT(中斷程序)00:0000:20H00:23H40:6CH40:6EH向量向量指針時間值+1并保存圖3.10 日時鐘運行原理示意圖2.3863632MHZ中斷號8加1 到24小時?TIMER-OFL置1并使日時鐘復位0點0 TIMER-LO0 TIMER-HIYN開中斷有關(guān)寄存器進棧TIMER-LO加1到0?TIMER-HI

21、加1NY圖3.11 日時鐘中斷8的中斷服務(wù)程序流程圖(2)軟件設(shè)計AA調(diào)用定時報時中斷ICH輸出結(jié)束中斷的命令EOI到8259A有關(guān)寄存器出棧中斷返回關(guān)閉軟驅(qū)電機計算值減1 減至0?電機運行狀態(tài)清零輸出命令關(guān)閉電機NA 二、穩(wěn)定延時 三、發(fā)聲器 1.要求 利用定/計數(shù)器8253發(fā)600Hz的長/短音。按任意鍵,開始 發(fā)聲;按ESC鍵,停止發(fā)聲。8253的輸入時鐘CLK的頻率 1.19318MHz。 2.分析 3.設(shè)計 (1)硬件設(shè)計 (2)軟件設(shè)計 發(fā)聲程序由主程序和子程序組成。主程序流程圖如圖3.13所 示。.發(fā)長音(BL=6)(CALL SSP)發(fā)短音(BL=1)(CALL SSP)按下E

22、sc鍵?關(guān)閉揚聲器返回DOS結(jié)束YYN開始8253初始化計算并裝入初值關(guān)閉揚聲器按下任意鍵?N發(fā)長/短音的程序為:CODE SEGMENT ASSUME CS:CODE,DS:CODE ORG 100H START: JMP BEGIN LONG1 EQU 6 SHORT1 EQU 1 BEGIN: MOV AX,CODE MOV CS,AX MOV DS,AX ;初始化初始化8253 MOV AL,10110110B ; 方式命令 OUT 43H,AL ;命令口 ;裝計數(shù)初值 MOV AX,1983 ;輸出600Hz的計 數(shù)初值 OUT 42H,AL ;先裝低字節(jié) MOV AL,AH ; 后

23、裝高字節(jié) OUT 42H,ALv ; 關(guān)閉揚聲器v IN AL,61H ; 讀入8255的PB口原輸出值v AND AL,0FCH ; 置PB0和PB1為零,關(guān)閉GATE2和與門v OUT 61H,ALv ; 查任意鍵,啟動發(fā)聲器 WAIT1: MOV AH, 0BH ; 功能調(diào)用v INT 21Hv CMP AL,0H ;無按按下,發(fā)出長音v JE WAIT ;有鍵按下,發(fā)出長音v v ;發(fā)長音v LOP: MOV BL,LONG1 ;長音入口參數(shù)v CALL SSP ;;調(diào)發(fā)聲子程序v ;查Esc鍵,停止發(fā)聲v MOV AH,0BH ;功能調(diào)用v INT 21H v CMP AL,0Hv

24、JE CONTINUE1v MOV AH,08H ;有鍵銨下,檢測是Esc鍵?v INT 21Hv CMP AL,1BHv JE QUIT ;是,停止發(fā)聲,并退出v ;發(fā)短音CONTINUE1: MOV BL,SHORT1 ;短音入口參數(shù) CALL SSP ;調(diào)用發(fā)聲子程序 JMP LOP ;循環(huán) ;關(guān)閉揚聲器,并退出 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 ;發(fā)聲子程序SSP PROC NEAR

25、IN AL,61H ;讀取PB口的原值 OR AL,03H ;置PB0和PB1為高,打 開GATE2與門 OUT 61H,AL ;開始發(fā)聲 ;延時 L: LOOP Lv DEC BL ;BL為子程序的入口件v JNZ L v RET v SSP ENDPv CODE ENDSv END START四、波特率時鐘發(fā)生器四、波特率時鐘發(fā)生器 1.要求設(shè)計一個波特率時鐘發(fā)生器,其輸入時鐘CLK=1.19318Mz,波特率因子factor=16,輸出的波特率為8檔,它們分別是110b/s、 150b/s、 300b/s、 600b/s、1200 b/s、2400b/s、4800b/s、9600b/s。

26、要求利用人-機對話方式選擇波特率。按Esc鍵,退出。 2. 分析 發(fā)送時鐘 TxC=BaudFactor Tc = C L K / B a ud F a c t o r = C L K / B F (3.2)3.設(shè)計(1)硬件設(shè)計 波特率時鐘發(fā)生器的硬件包括定時/計數(shù)器8253、并行接口芯片8255A及I/O端口地址譯碼電路等。(2)軟件編程 計算出題目中要求的8檔波特率的定時常數(shù),分別為678H、497H、249H、124H、62H、31H、16H、8H。其次,設(shè)計查表法的波特率時鐘發(fā)生器程序流程圖,如圖3.15所示。 DATA SEGNENT TC-TABLE DW 678 ;0=110b

27、/s ,定時常數(shù)表v DW 497 ;1= 150b/s v DW 249 ;2= 300b/sv DW 124 ;3= 600b/sv DW 62 ;4= 1200b/sv DW 31 ;5= 2400b/sv DW 16 ;6= 4800b/sv DW 8 ;7= 9600b/sDATA ENDS TEMP DB(?) MES DB NOW 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 ,

28、$ DB 5:2400 6:4800 7:9600 ,0DH,0AH, $ ERROR-MES DB INPUT ERROR! TRY AGAIN PLEASE!,0DH,0AH, $CODE SEGMENT ASSUME CS:CODE,DS:DATAOK:MOV AX,CODE 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 LEA DX,INPUT-MES ;提示選擇波特率 MOV AH,09H I

29、NT 21HINPUT:MOV AH,08H INT 21H CMP AL,0 ;選擇波特率是否正確? JB ERROR ;不正確,則轉(zhuǎn)出錯處理 CMP AL,7 開始8253初始化8255初始化關(guān)閉8253 提示選擇波特率選擇波特率選擇有錯?YN波特率代號temp查表獲取計數(shù)初值,并裝入8253(CALL Load)有ESC鍵按下?關(guān)8253返回DOS結(jié)束圖3.15 波特率時鐘發(fā)生器程序流程圖NYv JA ERRORv SUB AL,30H ;正確v MOV TEMP,AL ;則保存波特率代號v CALL LOAD ;裝入計數(shù)初值v JMP BEGIN ;啟動8253波特率時鐘發(fā)生器ERRO

30、R:MOV AH,9H ;出錯處理 LEA DX,ERROR-MES INT 21H JMP INPUT ;重新選擇波特率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 21Hv CMP AL,00v JE LOP ;無,等待v MOV AH,08H;有,檢測是否是Esc鍵v INT 21Hv CMP AL,1BHv JE QUIT;是,則退出v JMP LOP ;不是,循環(huán)查Esc鍵vQUIT:MOV DX,303Hv MOV AL,0CH;關(guān)閉8253v OUT DX,ALv MOV AX,4C00H;退出,返回DOSv INT 21H LOAD PROC NEAR PUSH AX PUSH DX PUSH SI MOV DL,TEMP SHL DL,1;波形代號乘2,存 放在DX中 AND DX,0FH ;只取DX的低4位 MOV SI,OFFSET TC-TABLE

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論