微機原理與接口技術(shù)-第7章8253_第1頁
微機原理與接口技術(shù)-第7章8253_第2頁
微機原理與接口技術(shù)-第7章8253_第3頁
微機原理與接口技術(shù)-第7章8253_第4頁
微機原理與接口技術(shù)-第7章8253_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機原理與接口技術(shù)第七章可編程計數(shù)器/定時器8253/8254及其應用18253工作原理:結(jié)構(gòu)、引腳、工作方式8253應用舉例:定時功能、計數(shù)功能內(nèi)容提要第七章可編程計數(shù)器/定時器8253及其應用2第七章可編程計數(shù)器/定時器8253及其應用在微型計算機系統(tǒng)中,常需要用到定時功能。例如,按一定的時間間隔對動態(tài)RAM進行刷新;揚聲器的發(fā)聲;在計算機實時控制和處理系統(tǒng)中,按一定的采樣周期對處理對象進行采樣,或定時檢測某些參數(shù),對外部事件進行計數(shù),等等,都需要定時信號。實現(xiàn)定時功能主要有三種方法:軟件定時不可編程的硬件定時可編程的硬件定時第七章可編程計數(shù)器/定時器8253及其應用——概述3軟件定時是最簡單的定時方法,它不需要硬件支持,只要讓機器循環(huán)執(zhí)行某一條或一系列指令,這些指令本身并沒有具體的執(zhí)行目的,但由于執(zhí)行每條指令都需要一定的時間,重復執(zhí)行這些指令就會占用一段固定的時間。利用這種方法定時,完全由軟件編程來控制相改變定時時間,靈活方便,而且節(jié)省費用。但CPU的利用率太低,在定時循環(huán)期間,CPU不能再去做任何其它有用的工作,而僅僅是在反復循環(huán),等待預定的定時時間的到來,這在許多情況下是不允許的。比如,對動態(tài)存儲器的定時刷新操作,只要處于開機狀態(tài),就需要一直不停地進行下去,顯然不能采用軟件定時。1.軟件定時第七章可編程計數(shù)器/定時器8253及其應用——概述4555芯片是一種常用的不可編程器件,加上外接電阻和電容就能構(gòu)成定時電路。這種定時電路結(jié)構(gòu)簡單,價格便宜,通過改變電阻或電容值,可以在一定的定時范圍內(nèi)改變定時時間。但這種電路在硬件已連接好的情況下,定時時間和范圍就不能由程序來控制和改變,而且定時精度也不高。2.不可編程的硬件定時3.可編程的硬件定時可編程定時器/計數(shù)器電路利用硬件電路和中斷方法控制定時,定時時間和范圍完全由軟件來確定和改變,并由微處理器的時鐘信號提供時間基準,這種時鐘信號由晶體振蕩器產(chǎn)生,故計時精確穩(wěn)定。第七章可編程計數(shù)器/定時器8253及其應用——概述5用可編程定時器/計數(shù)器電路進行定時時,先要根據(jù)預定的定時時間,用指令對計數(shù)器/定時器芯片設(shè)定計數(shù)初值,然后啟動芯片進行工作。計數(shù)器一旦開始工作后,CPU就可以去做別的工作,等計數(shù)器計到預定的時間,便自動形成一個輸出信號,該信號可用來向CPU提出產(chǎn)斷請求,通知CPU定時時間已到,使CPU作相應的處理?;蛘咧苯永幂敵鲂盘柸釉O(shè)備工作。這種方法不但顯著提高了CPU的利用率,而且定時時間由軟件設(shè)置,使用起來十分靈活方便,加上定時時間又很精確,所以獲得了廣泛的應用。系統(tǒng)也可以利用計數(shù)器/定時器芯片對外部事件進行計數(shù)。第七章可編程計數(shù)器/定時器8253及其應用——概述6Intel8253就是一種能完成上述功能的計數(shù)器/定時器芯片,被稱為可編程間隔定時器(ProgrammableIntervalTimer,PIT)。4.可編程計數(shù)器/定時器82538253內(nèi)部具有3個獨立的16位計數(shù)器通道,通過對它進行編程,每個計數(shù)器通道均可按6種不同的方式工作,并且都可以按2進制或10進制格式進行計數(shù),最高計數(shù)頻率能達到2MHz。8253還可用作可編程方波頻率產(chǎn)生器、分頻器、程控單脈沖發(fā)生器等。第七章可編程計數(shù)器/定時器8253及其應用——概述75.可編程計數(shù)器/定時器8254InteI8254是8253的增強型產(chǎn)品,它與8253的引腳兼容,功能幾乎完全相同,不同之處在于:8253的最大輸入時鐘頻率為2MHz,而8254的最大輸入時鐘頻率可高達5MHz,8254-2則為l0MHz。8254有讀回(read-back)功能,可以同時鎖存1~3個計數(shù)器的計數(shù)值及狀態(tài)值,供CPU讀取,而8253每次只能鎖存和讀取一個通道的計數(shù)器,且不能讀取狀態(tài)值。第七章可編程計數(shù)器/定時器8253及其應用——概述8§7-18253的工作原理一、8253的內(nèi)部結(jié)構(gòu)和引腳信號圖7-18253的內(nèi)部結(jié)構(gòu)§7-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

圖8-291.數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是8253與系統(tǒng)數(shù)據(jù)總線相連接時用的接口電路,由8位雙向三態(tài)緩沖器構(gòu)成,CPU用輸入/輸出指令對8253進行讀/寫操作的信息,都經(jīng)8位數(shù)據(jù)總線D7~D0傳送,這些信息包括:⑴CPU在對8253進行初始化編程時,向它寫入的控制字。⑵CPU向某一計數(shù)器寫入的計數(shù)初值。⑶從計數(shù)器讀出的計數(shù)值?!?-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

102.讀/寫控制邏輯

接收系統(tǒng)控制總線送來的輸入信號,經(jīng)組合后形成控制信號,對各部分操作進行控制??山邮盏男盘栍校?/p>

⑴CS片選信號,低電平有效,由地址總線經(jīng)I/O端口譯碼電路產(chǎn)生。只有當CS為低電平時,CPU才能對8253進行連寫操作。

⑵RD讀信號,低電平有效。當RD為低電平時,表示CPU正在讀取所選定的計數(shù)器通道中的內(nèi)容。

⑶WR寫信號,低電平有效。當WR為低電平時,表示CPU正在將計數(shù)初值寫入所選中的計數(shù)通道中或者將控制字寫入控制字寄存器中。

⑷A1A0端口選擇信號。在8353內(nèi)部有3個計數(shù)器通道(0~2)和一個控制字寄存器端口。當A1A0=00時,選中通道0;A1A0=01時,選中通道1;A1A0=10時,選中通道2;A1A0=11時,選中控制字寄存器端口。§7-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

11注意:如果8253與8位數(shù)據(jù)總線的微機相連,只要將A1A0分別與地址總線的最低兩位A1A0相連即可。如果系統(tǒng)采用的是8086CPU,則數(shù)據(jù)總線為16位。CPU在傳送數(shù)據(jù)時,總是將低8位數(shù)據(jù)送往偶地址端口,將高8位數(shù)據(jù)送到奇地址端口。反之,偶地址端口的數(shù)據(jù)總是通過低8位數(shù)據(jù)總線送到CPU,奇地址端口的數(shù)據(jù)總是通過高8位數(shù)據(jù)總線送到CPU。當僅具有8位數(shù)據(jù)總線的存儲器或I/O接口芯片與8086的16位數(shù)據(jù)總線相連時,既可以連到高8位數(shù)據(jù)總線,也可以接在低8位數(shù)據(jù)總線上。在實際設(shè)計系統(tǒng)時,為了方便起見,常將這些芯片的數(shù)據(jù)線D7~D0接到系統(tǒng)數(shù)據(jù)總線的低8位,這樣,CPU就要求芯片內(nèi)部的各個端口都使用偶地址(地址總線的A0=0)。應改用地址總線中的A2A1實現(xiàn)端口選擇,即將A2連到8253的A1引腳,而將A1與8253的A0引腳相連?!?-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

12CSRDWRA1A0功能01000寫入計數(shù)器001001寫入計數(shù)器101010寫入計數(shù)器201011寫入控制字寄存器00100讀計數(shù)器000101讀計數(shù)器100110讀計數(shù)器200111無操作1××××禁止使用011××無操作8253輸入信號組合的功能表§7-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

133.計數(shù)器0~2包含3個完全相同的計數(shù)器/定時器通道,對3個通道的操作完全獨立。每個通道都包含:一個8位的控制字寄存器:只寫寄存器。對8253進行編程時,CPU用輸出指令向它寫入控制字,以選定計數(shù)器通道,規(guī)定各通道的工作方式,讀寫格式和數(shù)制。一個16位的計數(shù)初值寄存器:存放由CPU送來的計數(shù)初值。一個計數(shù)器執(zhí)行部件(實際的計數(shù)器):執(zhí)行部件實際是一個16位的減法計數(shù)器,它的起始值就是初值寄存器的值,該值可由程序設(shè)置。輸出鎖存器:用來鎖存計數(shù)器執(zhí)行部件的值,CPU可對它執(zhí)行讀操作,以了解某個時刻計數(shù)器的瞬時值。構(gòu)成§7-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

14§7-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

注意:計數(shù)初值寄存器、計數(shù)器執(zhí)行部件和輸出鎖存器都是16位寄存器,它們均可被分成高8位和低8位兩個部分。因此也可作為8位寄存器來使用。工作原理每個通道工作時,都是對輸入到CLK引腳上的脈沖按2進制或10進制(BCD碼)格式進行計數(shù),計數(shù)采用倒計數(shù)法,先對計數(shù)器預置一個初值,再把初值裝入實際的計數(shù)器。15然后,開始遞減計數(shù)。即每輸入一個時鐘脈沖,計數(shù)器的值減1,當計數(shù)器的值減為0時,便從OUT引腳輸出一個信號。輸出信號的波形主要由工作方式?jīng)Q定,同時還受到從外部加到GATE引腳上的門控信號控制,它決定是否允許計數(shù)。當用8253作外部事件計數(shù)器時,在CLK腳上所加的計數(shù)脈沖是由外部事件產(chǎn)生的,這些脈沖的間隔可以是不相等的。如果要用它作定時器,則CLK引腳上應輸入精確的時鐘脈沖。這時,8253所能實現(xiàn)的定時時間,決定于計數(shù)脈沖的頻率和計數(shù)器的初值,即

定時時間=時鐘脈沖周期tc×預置的計數(shù)初值n§7-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

168253的3個計數(shù)器都各有3個引腳,它們是:

CLK0~CLK2:計數(shù)器0~2的輸入時鐘脈沖從這里輸入。頻率不能大于2MHz。OUT0~OUT2:計數(shù)器0~2的輸出端。GATE0~GATE2:計數(shù)器0~2的門控脈沖輸入端。引腳§7-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

174.控制字寄存器BCDM2M1M0RL1RL0SC1SC0D7D6D5D4D3D2D1D01BCD碼計數(shù)0二進制計數(shù)000方式0001方式1X10方式2X11方式3100方式4101方式500計數(shù)器鎖存,供CPU讀01只讀/寫計數(shù)器低字節(jié)10只讀/寫計數(shù)器高字節(jié)11先讀/寫計數(shù)器低字節(jié),后讀/寫高字節(jié)00選擇通道001選擇通道110選擇通道211無效圖8-38253控制字格式§7-18253的工作原理——8253的內(nèi)部結(jié)構(gòu)和引腳信號

18二、初始化編程步驟和門控信號的功能1.8253的初始化編程步驟剛接通電源時,8253處于未定義狀態(tài),在使用之前,必須用程序把它們初始化為所需的特定模式,這個過程稱為初始化編程。初始化編程按下列步驟進行:

⑴寫入控制字用輸出指令向控制字寄存器寫入一個控制字,以選定計數(shù)器通道,規(guī)定該計數(shù)器的工作方式和計數(shù)格式。寫入控制字還起到復位作用,使輸出端OUT變?yōu)橐?guī)定的初始狀態(tài),并使計數(shù)器清0?!?-18253的工作原理——初始化編程步驟和門控信號的功能

19⑵寫入計數(shù)初值用輸出指令向選中的計數(shù)器端口地址中寫入一個計數(shù)初值,初值可以是8位數(shù)據(jù),也可以是16位數(shù)據(jù)。若是8位數(shù),只要用一條輸出指令就可完成初值的設(shè)置。如果是16位數(shù),則必須用兩條輸出指令來完成,且先送低8位數(shù)據(jù),后送高8位數(shù)據(jù)。注意,計數(shù)初值為0時,也要分成兩次寫入,因為在二進制計數(shù)時,它表示65536,BCD計數(shù)時,它表示10000。說明:由于3個計數(shù)器分別具有獨立的編程地址,而控制字寄存器本身的內(nèi)容又確定了所控制的寄存器的序號,因此對3個計數(shù)器通道的編程沒有先后順序的規(guī)定,可任意選擇某一個計數(shù)器通道進行初始化編理,只要符合先寫入控制字,后寫入計數(shù)初值的規(guī)定即可?!?-18253的工作原理——初始化編程步驟和門控信號的功能

20例如,某微機系統(tǒng)的8253的3個計數(shù)器的端口地址分別為3F0H、3F2H和3F4H,控制字寄存器的端口地址為3F6H,要求8253的通道0工作于方式3,計數(shù)初值n=1234H,則初始化程序為: MOV AL, 00110111B ;控制字:選擇通道0,先讀/寫低字節(jié), ;后高字節(jié),方式3,BCD計數(shù)MOV DX, 3F6H ;指向控制口OUT DX, AL ;送控制字MOV AL, 34H ;計數(shù)值低字節(jié)MOV DX, 3F0H ;指向計數(shù)器0端口OUT DX, AL ;先寫入低字節(jié)MOV AL, 12H ;計數(shù)值高字節(jié)OUT DX, AL ;后寫入高字節(jié)注意:初值寫入后,經(jīng)過一個時鐘脈沖的上升沿和下降沿,才能將初值裝入實際計數(shù)器,再在GATE的控制下,對CLK引腳輸入的脈沖遞減計數(shù)?!?-18253的工作原理——初始化編程步驟和門控信號的功能

212.門控信號控制功能工作方式GATE為低電平或下降沿GATE為上升沿GATE為高電平方式0禁止計數(shù)——允許計數(shù)方式1——從初值開始計數(shù),下一個時鐘后輸出變?yōu)榈碗娖?/p>

——方式2禁止計數(shù),使輸出變高從初值開始計數(shù)允許計數(shù)方式3禁止計數(shù),使輸出變高從初值開始計數(shù)允許計數(shù)方式4禁止計數(shù)——允許計數(shù)方式5——從初值開始計數(shù)——表8-2門控信號GATE的控制功能§7-18253的工作原理——初始化編程步驟和門控信號的功能

01234522三、8253的工作方式1.方式0——計數(shù)結(jié)束中斷方式(InterruptonTerminalCount)§7-18253的工作原理——8253的工作方式

GATE23§7-18253的工作原理——8253的工作方式

24方式0——計數(shù)結(jié)束中斷方式當對8253的任一個通道寫入控制字,并選定工作于方式0時,該通道的輸出端OUT立即變?yōu)榈碗娖?。要?253能夠進行計數(shù),門控信號GATE必須為高電平。若CPU利用輸出指令向計數(shù)通道寫入初值n(=4)時,WRn變成低電平。在WRn的上升沿時,n被寫入8253內(nèi)部的計數(shù)器初值寄存器。在WRn上升沿后的下一個時鐘脈沖的下降沿時,才把n裝入通道內(nèi)的實際計數(shù)器中,開始進行減1計數(shù)。也就是說,從寫入計數(shù)器初值到開始減1計數(shù)之間,有一個時鐘脈沖的延遲。此后,每從CLK引腳輸入一個脈沖,計數(shù)器就減1??偣步?jīng)過n十1個脈沖后,計數(shù)器減為0,表示計數(shù)計到§7-18253的工作原理——8253的工作方式

25終點,計數(shù)過程結(jié)束,這時OUT引腳由低電平變成高電平。這個由低到高的正跳變信號,可以接到8259A的中斷請求輸入端,利用它向CPU發(fā)中斷請求信號。OUT引腳上的高電平信號,一直保持到對該計數(shù)器裝入新的計數(shù)值,或設(shè)置新的工作方式為止。在計數(shù)的過程小,如果GATE變?yōu)榈碗娖剑瑒t暫停減1計數(shù),計數(shù)器保持GATE有效時的值不變,OUT仍為低電平。待GATE回到高電平后,又繼續(xù)往下計數(shù)。按方式0進行計數(shù)時,計數(shù)器只計一遍。當計數(shù)器計到0時,不會再裝入初值重新開始計數(shù),其輸出將保持高電平。若重新寫入一個新的計數(shù)初值,OUT立即變成低電平,計數(shù)器按照新的計數(shù)值開始計數(shù)。

§7-18253的工作原理——8253的工作方式

262.方式1——可編程單穩(wěn)態(tài)輸出方式§7-18253的工作原理——8253的工作方式

GATE2728方式1——可編程單穩(wěn)態(tài)輸出方式(ProgrammableOne-short)當CPU用控制字設(shè)定某計數(shù)器工作于方式1時,該計數(shù)器的輸出OUT立即變?yōu)楦唠娖?。在這種方式下,在CPU裝入計數(shù)值n后,無論GATE是高電平還是低電平,都不進行減1計數(shù),必須等到GATE由低電平向高電平跳變,形成一個上升沿后,才能在下一個時鐘脈沖的下降沿,將n裝入計數(shù)器的執(zhí)行部件,同時,輸出端OUT由高電平向低電平跳變。以后,每來一個時鐘脈沖,計數(shù)器就開始減1操作。§7-18253的工作原理——8253的工作方式

29⑤當計數(shù)器的值減為零時,輸出端OUT產(chǎn)生由低到高的正跳變。這樣,就可在OUT引腳上得到一個負的單脈沖,單脈沖的寬度可由程序來控制,它等于時鐘脈沖的寬度乘以計數(shù)值n。⑥在計數(shù)過程中,若GATE產(chǎn)生負跳變,不會影響計數(shù)過程的進行。但若在計數(shù)器回零前,GATE又產(chǎn)生從低到高的正跳變,則8253又將初值n裝入計數(shù)器執(zhí)行部件,重新開始計數(shù),其結(jié)果會使輸出的單脈沖寬度加寬。因此,只要計數(shù)器沒有回零,利用GATE的上升沿可以多次觸發(fā)計數(shù)器從n開始重新計數(shù),直到計數(shù)器減為0時,OUT才回到高電平?!?-18253的工作原理——8253的工作方式

303.方式2——比率發(fā)生器(RateGenerator)

§7-18253的工作原理——8253的工作方式

GATE3132方式2——比率發(fā)生器(RateGenerator)

當對某一計數(shù)通道寫入控制字,選定工作方式2時,OUT端輸出高電平。如果GATE為高電平,則在寫入計數(shù)值后的下一個時鐘脈沖時,將計數(shù)值裝入執(zhí)行部件。此后,計數(shù)器隨著時鐘脈沖的輸入而遞減計數(shù)。當計數(shù)值減為1時,OUT端由高電平變?yōu)榈碗娖?,待計?shù)器的值減為0時,OUT引腳又回到高電平,即低電平的持續(xù)時間等于一個輸入時鐘周期。與此同時,還將計數(shù)初值重新裝入計數(shù)器,開始一個新的計數(shù)過程,并由此循環(huán)計數(shù)?!?-18253的工作原理——8253的工作方式

33④如果裝入計數(shù)器的初值為n,那么在OUT引腳上,每隔n個時鐘脈沖就產(chǎn)生一個負脈沖,其寬度與時鐘脈沖的周期相同,頻率為輸入時鐘脈沖頻率的n分之一。在操作過程中,任何時候都可由CPU重新寫入新的計數(shù)值,不影響當前計數(shù)過程的進行。當計數(shù)值減為0時,一個計數(shù)周期結(jié)束,8253將按新寫入的計數(shù)值n進行計數(shù)。在計數(shù)過程中,當GATE變?yōu)榈碗娖綍r,使OUT變?yōu)楦唠娖?,禁止計?shù);當GATE從低電平變?yōu)楦唠娖?,GATE端產(chǎn)生上升沿,則在下一個時鐘脈沖時,把預置的計數(shù)初值裝入計數(shù)器,從初值開始遞減計數(shù),并循環(huán)進行。需要產(chǎn)生連續(xù)的負脈沖序列信號時,可使8253工作于方式2。

§7-18253的工作原理——8253的工作方式

344.方式3——方波發(fā)生器(SquareWaveGenerator)

§7-18253的工作原理——8253的工作方式

GATE3536方式3——方波發(fā)生器(SquareWaveGenerator)

方式3和方式2的工作相類似,但從輸出端得到的不是序列負脈沖,而是對稱的方波或基本對稱的矩形波。當輸入控制字后,OUT端輸出變?yōu)楦唠娖?。如果GATE為高電平,則在寫入計數(shù)值后的下一個時鐘脈沖時,將計數(shù)值裝入執(zhí)行部件,并開始計數(shù)。如果寫入計數(shù)器的初值為偶數(shù),則當8253進行計數(shù)時,每輸入一個時鐘脈沖,均使計數(shù)值減2。計數(shù)值減為0時,OUT輸出引腳由高電平變成低電平,同時自動重新裝入計數(shù)初值,繼續(xù)進行計數(shù)。當計數(shù)值減為0時,OUT引腳又回到高電平,同時再一次將計數(shù)初值裝入計數(shù)器,開始下一輪循環(huán)計數(shù);§7-18253的工作原理——8253的工作方式

37如果寫入計數(shù)器的初值為奇數(shù),則當輸出端OUT為高電平時,第一個時鐘脈沖使計數(shù)器減1,以后每來一個時鐘脈沖,都使計數(shù)器減2,當計數(shù)值減為0時,輸出端OUT由高電平變?yōu)榈碗娖?,同時自動重新裝入計數(shù)初值繼續(xù)進行計數(shù)。這時第一個時鐘脈沖使計數(shù)器減3,以后每個時鐘脈沖都使計數(shù)器減2,計數(shù)值減為0時,OUT端又回到高電平,并重新裝入計數(shù)初值后,開始下一輪循環(huán)計數(shù)。在計數(shù)過程中,若GATE變成低電平時,就迫使OUT變?yōu)楦唠娖?,并禁止計?shù),當GATE回到高電平時,§7-18253的工作原理——8253的工作方式

38重新從初值n開始進行計數(shù)。⑦如果希望改變輸出方波的速率,CPU可在任何時侯重新裝入新的計數(shù)初值,在下一個計數(shù)周期就可按新的計數(shù)值計數(shù),從而改變方波的速率。從OUT端輸出的方波頻率都等于時鐘脈沖的頻率除以計數(shù)初值。⑧注意:當寫入的計數(shù)初值為偶數(shù)時,輸出完全對稱的方波,寫入初值為奇數(shù)時,其輸出波形的高電平寬度比低電平多一個時鐘周期?!?-18253的工作原理——8253的工作方式

395.方式4—軟件觸發(fā)選通(SoftwareTriggeredStrobe)§7-18253的工作原理——8253的工作方式

GATE4041方式4——軟件觸發(fā)選通(SoftwareTriggeredStrobe)當對8253寫入控制宇,進入工作方式4后,OUT端輸出變?yōu)楦唠娖?。如果GATE為高電平,那么,寫入計數(shù)初值后,在下一個時鐘脈沖后沿將自動把計數(shù)初值裝入執(zhí)行部件,并開始計數(shù)。當計數(shù)值成為0時,OUT端輸出變低,經(jīng)過一個時鐘周期后,又回到高電平,形成一個負脈沖。用這種方法裝入的計數(shù)初值n僅一次有效,若要繼續(xù)進行計數(shù),必須重新裝入計數(shù)初值。§7-18253的工作原理——8253的工作方式

42⑤若在計數(shù)過程中寫入一個新的計數(shù)值,則在現(xiàn)行計數(shù)周期內(nèi)不受影響,但當計數(shù)值回0后,將按新的計數(shù)初值進行計數(shù),同樣也只計一次。⑥如果在計數(shù)的過程中GATE變?yōu)榈碗娖?,則停止計數(shù),當GATE變?yōu)楦唠娖胶?,又重新將初值裝入計數(shù)器,從初值開始計數(shù),直至計數(shù)器的值減為0時,從OUT端輸出一個負脈沖。§7-18253的工作原理——8253的工作方式

436.方式5—硬件觸發(fā)選通(HardwareTriggeredStrobe)

§7-18253的工作原理——8253的工作方式

GATE4445方式5—硬件觸發(fā)選通(HardwareTriggeredStrobe)

編程進入工作方式5后,OUT端輸出高電平。當裝入計數(shù)值n后,不管GATE是高電平還是低電平,減1計數(shù)器都不會工作。一定要等到從GATE引腳上輸入一個從低到高的正跳變信號時,才能在下一個時鐘脈沖后沿把計數(shù)初值裝入執(zhí)行部件,并開始減1計數(shù)。當計數(shù)器的值減為0時,輸出端OUT產(chǎn)生一個寬度為一個時鐘周期的負脈沖,然后OUT又回到高電平。計數(shù)器回0后,8253又自動將計數(shù)值n裝入執(zhí)行部件,但并不開始計數(shù),要等到GATE端輸入正跳變后,才又開始減1計數(shù)。計數(shù)器在計數(shù)過程中,不受門控信號GATE電平的影響,但只要計數(shù)器未回0,GATE的上升沿卻能多次觸發(fā)§7-18253的工作原理——8253的工作方式

46計數(shù)器,使它重新從計數(shù)初值n開始計數(shù),直到計數(shù)值減為0時,才輸出一個負脈沖。⑥如果在計數(shù)過程中寫入新的計數(shù)值,但沒有觸發(fā)脈沖,則計數(shù)過程不受影響。當計數(shù)器的值減為0后,GATE端又輸入正跳變觸發(fā)脈沖時,將按新寫入的初值進行計數(shù)。7.各種方式的主要特點方式0:在寫入控制字后,輸出端即變低,計數(shù)結(jié)束后,輸出端由低變高,常用該輸出信號作為中斷源。也可實現(xiàn)定時或?qū)ν獠渴录M行計數(shù)。其余5種方式寫入控制字后,輸出均變高。方式1:用來產(chǎn)生單脈沖?!?-18253的工作原理——8253的工作方式

47§7-18253的工作原理——8253的工作方式

②方式2:用來產(chǎn)生序列負脈沖,每個負脈沖的寬度與CLK脈沖的周期相同。③方式3:用于產(chǎn)生連續(xù)的方波。方式2和方式3都實現(xiàn)對時鐘脈沖進行n分頻。④方式4、方式5:波形相同,都在計數(shù)器回0后,從OUT端輸出一個負脈沖,其寬度等于一個時鐘周期。但方式4由軟件(設(shè)置計數(shù)值)觸發(fā)計數(shù),而方式5由硬件(門控信號GATE)觸發(fā)計數(shù)。⑤這6種工作方式中,方式0、1和4,計數(shù)初值裝進計數(shù)器后,僅一次有效。如果要通道再次按此方式工作,必須重新裝入計數(shù)值。對于方式2、3和5,在減1計數(shù)到0值后,8353會自動將計數(shù)值重裝進計數(shù)器。48工作方式小結(jié)方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2N/20/N0N01N01N0149編程原則:①設(shè)置初值前必須先寫控制字②初值設(shè)置要符合控制字中的格式規(guī)定編程命令有兩類:①讀出命令②寫入命令

設(shè)置控制字命令設(shè)置初始值命令鎖存命令

501寫入方式控制字計數(shù)器讀寫格式工作方式數(shù)制D7D6D5D4D3D2D1D000計數(shù)器001計數(shù)器110計數(shù)器211非法00計數(shù)器鎖存命令01只讀寫低字節(jié)10只讀寫高字節(jié)11先讀寫低字節(jié)后讀寫高字節(jié)000方式0001方式1010方式2011方式3100方式4101方式50二進制1十進制控制字寫入控制字I/O地址(A1A0=11)512寫入計數(shù)值選擇二進制時計數(shù)值范圍:0000H~FFFFH0000H是最大值,代表65536選擇十進制(BCD碼)計數(shù)值范圍:0000~99990000代表最大值10000計數(shù)值寫入計數(shù)器各自的I/O地址52§8-28253的應用舉例一、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?!?-28253的應用舉例——8253定時功能的應用例子

53用8253產(chǎn)生各種定時波形§8-28253的應用舉例——8253定時功能的應用例子

CBA54分析:由圖可見,8253芯片的片選信號CS由74LS138構(gòu)成的地址譯碼電路產(chǎn)生,只有當M/IO=0,A9A8A7A6A5=11000時,譯碼器才能工作,當A4A3A0=100時,Y4=0,使8253的片選信號CS有效,選中偶地址端口,端口基地址為310H。CPU的A2A1分別與8253的A1A0相連,用于8253芯片內(nèi)部尋址,使8253的4個端口地址分別為310H、312H、3l4H和316H。8253的8根數(shù)據(jù)線D7~D0必須與CPU的低8位數(shù)據(jù)總線D7~D0相連。另外,8253的RD、WR腳分別與CPU的相應引腳相連。3個通道的CLK引腳連在一起,均由頻率為1MHz(周期為1μs)的時鐘脈沖驅(qū)動。§8-28253的應用舉例——8253定時功能的應用例子

55通道0:工作于方式3,即構(gòu)成一個方波發(fā)生器,它的控制端GATE0須接+5V,為了輸出2kHz的連續(xù)方波,應使時間常數(shù):

N0=1MHz/2kHz=500。通道1:工作于方式1,即構(gòu)成一個單穩(wěn)態(tài)電路,由GATE1的正跳變觸發(fā),輸出一個寬度由時間常數(shù)決定的負脈沖。此功能一次有效,需要再形成一個脈沖時,不但GATE1腳上要有觸發(fā),通道也需重新初始化。需輸出寬度為480us的單脈沖時,應取時間常數(shù):

N1=480us/1us=480。通道2:工作于方式5,即由GATE2的正跳變觸發(fā)減1計數(shù),在計到0時形成一個寬度與時鐘周期相同的負脈沖。此后,若GATE2腳上再次出現(xiàn)正跳變,又能產(chǎn)生一個負脈沖。這里假設(shè)預置的時間常數(shù)為26。§8-28253的應用舉例——8253定時功能的應用例子

56對3個通道的初始化程序如下:

;通道0初始化程序 MOV DX,316H ;控制口地址 MOV AL,00110111B;通道0控制字,先讀寫低字節(jié),后高字節(jié),方式3,BCD計數(shù) OUT DX,AL ;寫入方式字 MOV DX,310H ;通道0口地址 MOV AL,00H ;低字節(jié) OUT DX,AL ;先寫入低字節(jié) MOV AL,05H ;高字節(jié) OUT DX,AL ;后寫入高字節(jié)§8-28253的應用舉例——8253定時功能的應用例子

57

;通道1初始化程序 MOV DX,316H ;控制口地址 MOV AL,01110011B ;通道1控制字,先讀寫低字節(jié),后高字節(jié),方式1,BCD計數(shù) OUT DX,AL ;寫入方式字 MOV DX,312H ;通道1口地址 MOV AL,80H ;低字節(jié) OUT DX,AL ;先寫入低字節(jié) MOV AL,04H ;高字節(jié) OUT DX,AL ;后寫入高字節(jié)§8-28253的應用舉例——8253定時功能的應用例子

58

;通道2初始化程序 MOV DX,316H ;控制口地址 MOV AL,10011011B ;通道2控制字,只讀寫低字節(jié),方式5,BCD計數(shù) OUT DX,AL ;寫入方式字 MOV DX,314H ;通道2口地址 MOV AL,26H ;低字節(jié) OUT DX,AL ;只寫入低字節(jié) §8-28253的應用舉例——8253定時功能的應用例子

5960圖示出了8253用作方波發(fā)生器與8088總線的接口方法。圖中僅用了A7~A2作為8253片選地址線,產(chǎn)生片選信號Y0與8253的CS端相連。CS信號與A1、A0地址線相配合決定了0、1、2#計數(shù)器及控制寄存器的地址號分別為40H、41H、42H、43H。要求2#計數(shù)器用作方波發(fā)生器產(chǎn)生40kHz方波輸出。已知CLK2時鐘端輸入信號頻率為2MHz。根據(jù)上述要求2#計數(shù)器應設(shè)置成方式3工作狀態(tài),按雙字節(jié)傳送的50分頻計數(shù)值應為0032H。此時,2#計數(shù)器的初始化程序如下:61

MOVAL,10110110B;對2#計數(shù)器送控制字。OUT43H,ALMOVAL,32H ;對送50分頻計數(shù)值0032H的低8位。OUT42H,ALXORAL,AL ;送高8位值為00H。OUT42H,AL

622.控制LED的點亮或熄滅用8253來控制一個LED發(fā)光二極管的點亮和熄滅,要求點亮10秒鐘后再讓它熄滅10秒鐘,并重復上述過程。加上適當?shù)尿?qū)動電路后,便可以用在交通紅綠燈控制和燈塔等場合。§8-28253的應用舉例——8253定時功能的應用例子

2MHz63分析:假設(shè)這是一個8086系統(tǒng),8253的各端口地址為81H、83H、85H和87H。8253的8根數(shù)據(jù)線D7~D0與CPU的高8位數(shù)據(jù)線D15~D8相連,這樣選中奇地址瑞口。通道1的OUT1與LED相連,當它為高電平時,LED點亮,低電平時LED熄滅。只要對8253編程,使OUT1輸出周期為20秒,占空比為1:1的方波,就能使LED交替地點亮和熄滅10秒鐘。若將頻率為2MHz(周期為0.5us)的時鐘直接加到CLK1端,則OUT1輸出的脈沖周期最大只有32.768ms,達不到20秒的要求。為此,需用幾個通道級連的方案來解決問題?!?-28253的應用舉例——8253定時功能的應用例子

64③如圖所示,將頻率為2MHz的時鐘信號加在CLK0輸入端,并讓通道0工作于方式2。若選擇計數(shù)初值N0=5000,則從OUT0端可得到序列負脈沖,其頻率為2MHz/5000=400Hz,周期為2.5ms。再把該信號連到CLK1輸入端,并使通道1工作于方式3。為了使OUT1輸出周期為20秒(頻率為1/20=0.05Hz)的方波,應取時間常數(shù)N1=400Hz/0.05Hz=8000。

§8-28253的應用舉例——8253定時功能的應用例子

65初始化程序如下: MOV AL,00110101B ;通道0控制字,先讀寫低字節(jié), ;后高字節(jié),方式2,BCD計數(shù) OUT 87H,AL ;寫入方式字 MOV AL,00H ;低字節(jié) OUT 81H,AL ;先寫入低字節(jié) MOV AL,50H ;高字節(jié) OUT 81H,AL ;后寫入高字節(jié) MOV AL,01110111B ;通道1控制字,先讀寫低字節(jié), ;后高字節(jié),方式3,BCD計數(shù) OUT 87H,AL ;寫入方式字 MOV AL,00H ;低字節(jié) OUT 83H,AL ;先寫入低字節(jié) MOV AL,80H ;高字節(jié) OUT 83H,AL ;后寫入高字節(jié)§8-28253的應用舉例——8253定時功能的應用例子

66二、8253計數(shù)功能的應用例子1.硬件電路設(shè)計假設(shè)一個自動化工廠需要統(tǒng)計在流水線上所生產(chǎn)的某種產(chǎn)品的數(shù)量,可采用8086微處理器和8253等芯片來設(shè)計實現(xiàn)這種自動計數(shù)的系統(tǒng)。這種自動計數(shù)系統(tǒng)的電路和控制軟件的設(shè)計如下:§8-28253的應用舉例——8253計數(shù)功能的應用例子

OUT1圖7-1267自動計數(shù)系統(tǒng)由8086CPU控制,8253作計數(shù)器,8259A作中斷控制器,若干其它電路。圖7-12僅給出了計數(shù)器部分的電路圖。計數(shù)電路:一個紅外LED發(fā)光管,一個復合型光電晶體管,兩個施密持觸發(fā)器74LS14,一片8253芯片。用8253的通道1計數(shù)。工作過程:當LED發(fā)光管與光電管之間無工件通過時,LED發(fā)出的光能照到光電管上,使光電晶體管導通,集電極變?yōu)榈碗娖健4诵盘柦?jīng)施密特觸發(fā)器驅(qū)動整形后,送到8253的CLK1,使CLK1端變成低電平。當LED與光電管之間有工件通過時,LED發(fā)出的光被擋住,照不到光電管上,使光電管截止,其集電極輸出高電平,§8-28253的應用舉例——8253計數(shù)功能的應用例子

分析:68從而使CLK1端變成高電平。待工件通過后,CLK1端又回到低電平。即每通過一個工件,就從CLK1端輸入一個正脈沖,8253對此脈沖計數(shù),就可統(tǒng)計出工件個數(shù)。兩個施密持觸發(fā)反相器74LS14的作用,是將光電晶體管集電極上的緩慢上升信號,變換成滿足計數(shù)電路要求的TTL電平信號。④8253的片選輸入CS端接到I/O端口地址譯碼器的一個輸出端,RD和WR端分別與CPU的RD和WR信號相連。8253的數(shù)據(jù)線D7~D0與CPU的低8位地址線相連,這時I/O端口地址必須是偶地址,所以把A1和A0分別與CPU地址總線的A2和A1相連。8253通道1的門控輸入端GATE1接+5V高電平,即始終允許計數(shù)器工作。通道1的輸出端OUT1接到8259A的一個中斷請求輸入端IR0?!?-28253的應用舉例——8253計數(shù)功能的應用例子

692.初始化編程編程時,可選擇計數(shù)器1工作于方式0,按BCD碼計數(shù),先讀/寫低字節(jié),后讀/寫高字節(jié),根據(jù)圖8-3可得到控制字為01110001B。如選取計數(shù)初值n=499,則經(jīng)過n+1個脈沖,也就是500個脈沖OUT1端輸出一個正跳變。它作用于8259A的IR0端,通過8259A的控制,向CPU發(fā)出一次中斷請求,表示汁滿了500個數(shù),在中斷服務程序中使工件總數(shù)加上500。中斷服務程序執(zhí)行完后,返回主程序,這時需要由程序把計數(shù)初值499再次裝入計數(shù)器1,才能繼續(xù)進行計數(shù)?!?-28253的應用舉例——8253計數(shù)功能的應用例子

70設(shè)8253的4個端口地址分別為F0H,F(xiàn)2H.F4H和F6H,則初始化程序為: MOV AL,01110001B ;控制字 OUT 0F6H,AL MOV AL,99H OUT 0F2H,AL ;計數(shù)值低字節(jié)送計數(shù)器1 MOV AL,04H OUT 0F2H,AL ;計數(shù)值低字節(jié)送計數(shù)器1§8-28253的應用舉例——8253計數(shù)功能的應用例子

713.計數(shù)值的讀取在讀計數(shù)器現(xiàn)行值時,計數(shù)過程仍在進行,而且不受CPU的控制。因此,在CPU讀取計數(shù)器的輸出值時,可能計數(shù)器的輸出正在發(fā)生改變,即數(shù)值不穩(wěn)定,可能導致錯誤的讀數(shù)。為了防止這種情況發(fā)生,必須在讀數(shù)前設(shè)法終止計數(shù)或?qū)⒂嫈?shù)器輸出端的現(xiàn)行值鎖存??刹捎孟旅鎯煞N方法:

方法一:在讀數(shù)前用外部硬件切斷計數(shù)脈沖信號,或者使門控信號變?yōu)榈碗娖?,迫?253停止計數(shù)。這種方法的缺點是需要硬件電路配合。此外,由于外部事件源被切斷或正常的計數(shù)過程被禁止,干擾了實際的計數(shù)過程。

方法二:先用計數(shù)器鎖存命令鎖存現(xiàn)行計數(shù)值,然后將它讀出。由于每個計數(shù)通道都有一個16位輸出鎖存器,可在任何時刻將計數(shù)器的現(xiàn)行值鎖住。§8-28253的應用舉例——8253計數(shù)功能的應用例子

72計數(shù)值的讀取方法二:當需要讀取計數(shù)器的現(xiàn)行值時,先向8253送一個控制字,并使控制字中的RL1RL0=00,現(xiàn)行計數(shù)值立即被鎖存起來。該控制字中的SC1SC0用來確定要鎖存的是3個計數(shù)器中的哪一個。控制字的低4位對鎖存命令無影響,可以將它們置為0。讀取計數(shù)值的方法由對8253進行初始化編程時所寫入的控制字中的RL1RL0位來確定,當RL1RL0=01時,只讀取計數(shù)器的低字節(jié),RL1RL0=10時,只讀取計數(shù)器的高字節(jié),RL1RL0=11時,先讀寫計

溫馨提示

  • 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

提交評論