可編程定時計數(shù)控制器_第1頁
可編程定時計數(shù)控制器_第2頁
可編程定時計數(shù)控制器_第3頁
可編程定時計數(shù)控制器_第4頁
可編程定時計數(shù)控制器_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

可編程定時計數(shù)控制器第1頁,共80頁,2023年,2月20日,星期三定時/計數(shù)的基本概念定時與計數(shù)的作用:如何定時?為獲得穩(wěn)定準(zhǔn)確的定時,必須有穩(wěn)定準(zhǔn)確的時間基準(zhǔn)。定時的本質(zhì)是計數(shù),把若干小片的時間單元累加起來,就獲得一段時間。定時的方法1.軟件定時方法2.硬件定時方法軟件定時:利用CPU執(zhí)行指令需要若干指令周期的原理,運(yùn)用軟件編程,循環(huán)執(zhí)行一段程序產(chǎn)生延時,配合簡單輸出接口向外送出定時控制信號。優(yōu)點(diǎn):硬件簡單,只需要編制相應(yīng)的延時程序。缺點(diǎn):增加CPU的時間開銷,浪費(fèi)CPU的資源。不可編程硬件定時:專用的多諧振蕩器件或單穩(wěn)器件。優(yōu)點(diǎn):定時電路簡單、定時時間可以在一定范圍改變?nèi)秉c(diǎn):使用不方便。當(dāng)前采用技術(shù):可編程通用定時器/計數(shù)器芯片。3.軟硬件定時方法可編程硬件定時:軟件硬件相結(jié)合、用可編程定時器芯片構(gòu)成定時電路優(yōu)點(diǎn):具有多種工作方式、能夠輸出多種控制信號第2頁,共80頁,2023年,2月20日,星期三可編程計數(shù)器/定時器具有兩種功能:可編程計數(shù)器/定時器的工作原理作為計數(shù)器設(shè)置好計數(shù)值后,計數(shù)器啟動,每當(dāng)一個計數(shù)脈沖到來時,進(jìn)行減1計數(shù),直至減到0,輸出一個信號。作為定時器設(shè)置好定時器后,定時器工作,在固定頻率的時鐘脈沖驅(qū)動下,進(jìn)行減1計數(shù),并按定時常數(shù)不斷地輸出為時鐘周期整數(shù)倍的定時間隔。第3頁,共80頁,2023年,2月20日,星期三數(shù)據(jù)總線

RD地址線WRCLK

CS

A0

GATE

OUT

預(yù)置計數(shù)值寄存器計數(shù)器控制寄存器譯

碼器狀態(tài)寄存器計數(shù)器輸出寄存器1A第4頁,共80頁,2023年,2月20日,星期三可編程定時/計數(shù)器Intel8253Intel8253:3個獨(dú)立16位計數(shù)器通道;6種工作方式;按二進(jìn)制計數(shù)或BCD碼計數(shù);2.6MHz;單+5V電源,24條引腳雙列直插式封裝;輸入輸出引腳都與TTL兼容。作為可編程的方波頻率發(fā)生器、分頻器、實(shí)時時鐘、事件計數(shù)器和單脈沖發(fā)生器等。第5頁,共80頁,2023年,2月20日,星期三Intel8253的內(nèi)部結(jié)構(gòu)8位雙向三態(tài)緩沖器。對8253進(jìn)行讀計數(shù)器當(dāng)前計數(shù)值和寫計數(shù)初值及設(shè)置8253的工作方式。只能寫入而不能讀出。A1A0=11B時,訪問控制字寄存器,接收控制字,由控制字的D7D6決定控制字寫入哪個計數(shù)器的控制寄存器,由控制字,決定計數(shù)器通道的工作方式、選擇計數(shù)器是按二進(jìn)制或BCD碼計數(shù)、選擇每個計數(shù)器初值的寫入順序。計數(shù)器0、計數(shù)器1、計數(shù)器2完全獨(dú)立、結(jié)構(gòu)相同,16位可預(yù)置的減法計數(shù)器構(gòu)成。第6頁,共80頁,2023年,2月20日,星期三計數(shù)器的結(jié)構(gòu)8253的每個計數(shù)器包括:(1)16位的計數(shù)初值寄存器CR——存放由CPU編程設(shè)定的計數(shù)初值;(2)16位計數(shù)執(zhí)行部件CE——是一個減1計數(shù)器,初值是CR的內(nèi)容。CE只對CLK脈沖計數(shù),一旦計數(shù)器被啟動后,每出現(xiàn)一個CLK脈沖,CE減1。當(dāng)減為0時,通過OUT輸出指示信號,表明CE為0;*當(dāng)CLK是一個非周期性信號時,起計數(shù)功能;*當(dāng)CLK是周期性時鐘信號時,起定時功能。作定時器用時,定時系數(shù)=要求的定時時間/輸入的時鐘脈沖周期,作為計數(shù)初值預(yù)置入CR,第7頁,共80頁,2023年,2月20日,星期三計數(shù)器的結(jié)構(gòu)(3)16位輸出鎖存器OL——跟隨CE的內(nèi)容變化,當(dāng)接受到CPU發(fā)來的鎖存命令時,就鎖定當(dāng)前的計數(shù)值,而不跟隨CE變化,直到CPU從中讀取鎖存值后,才恢復(fù)跟隨CE。(4)GATE——門控脈沖輸入。*高電平時,允許計數(shù)器工作;*低電平時,禁止計數(shù)器工作。4/4/2023第8頁,共80頁,2023年,2月20日,星期三Intel8253的內(nèi)部結(jié)構(gòu)計數(shù)通道結(jié)構(gòu)CPU不能直接訪問CE;CPU隨時可以用輸入指令,將計數(shù)器的當(dāng)前值從輸出鎖存器OL中讀出9第9頁,共80頁,2023年,2月20日,星期三計數(shù)初值—在CLK的下降沿時,計數(shù)器執(zhí)行部件從初值開始作減1計數(shù);其中0是最大初值,1是最小初值;讀計數(shù)值——將某計數(shù)器的計數(shù)值讀到CPU中

讀到的是執(zhí)行輸入指令瞬間計數(shù)器的現(xiàn)行值。16位計數(shù)值要分兩次讀至CPU,故必須將數(shù)據(jù)鎖存。計數(shù)器初始值=時鐘頻率×T(T為定時時間)若以二進(jìn)制數(shù)制計數(shù),則0相當(dāng)于216=65536若以BCD(十進(jìn)制)數(shù)制計數(shù),則0相當(dāng)于104=1000010第10頁,共80頁,2023年,2月20日,星期三Intel8253的內(nèi)部結(jié)構(gòu)8253內(nèi)部控制電路,從系統(tǒng)控制線上接收輸入信號,轉(zhuǎn)變成8253內(nèi)部操作的各種控制信號。11第11頁,共80頁,2023年,2月20日,星期三8253的外部引腳1.與定時計數(shù)電路相連接的引腳CE對CLK輸入脈沖進(jìn)行計數(shù);系統(tǒng)時鐘脈沖、分頻、其它脈沖源提供;均勻、連續(xù)、周期精確;不均勻、不斷續(xù)、周期不定的。12第12頁,共80頁,2023年,2月20日,星期三注意:8253作分頻器,工作于定時器方式:CLK輸入是連續(xù)的、周期精確的時鐘脈沖,OUT輸出必定是頻率降低的、周期精確的時鐘脈沖。8253作計數(shù)器:CLK輸入只是脈沖的數(shù)量,不是脈沖的時間間隔,CLK可以輸入周期不定的脈沖,也可以輸入周期確定的脈沖。當(dāng)計數(shù)到預(yù)置的初值后,從OUT端輸出一個脈沖。CLK的脈沖周期不定,OUT輸出的脈沖周期也不確定。8253的基本工作方式:對外部輸入到CLK引腳上的脈沖進(jìn)行計數(shù)。定時方式還是計數(shù)方式,取決于輸入脈沖的性質(zhì)和用戶的需要。8253的外部引腳13第13頁,共80頁,2023年,2月20日,星期三8253的外部引腳1.與定時計數(shù)電路相連接的引腳減1計數(shù)到零/定時時間到的脈沖輸出;當(dāng)計數(shù)器減1計數(shù)到零時,有電平或脈沖信號輸出;取決于工作方式,它可以是電平、脈沖或方波等。14第14頁,共80頁,2023年,2月20日,星期三8253的外部引腳1.與定時計數(shù)電路相連接的引腳外部控制計數(shù)器工作;作用取決于8253的工作方式:當(dāng)為低電平時,禁止通道的計數(shù)單元計數(shù)、由低電平向高電平變跳過程中會觸發(fā)一次新的計數(shù)。15第15頁,共80頁,2023年,2月20日,星期三8253的外部引腳

地址信號數(shù)據(jù)信號控制信號面向系統(tǒng)的引腳信號按照其傳輸信息的種類不同2.與系統(tǒng)相連接引腳16第16頁,共80頁,2023年,2月20日,星期三8253的外部引腳2.與系統(tǒng)相連接引腳內(nèi)部口地址的選擇,輸入。8253內(nèi)部共有4個端口:A口,B口,C口和控制口;17第17頁,共80頁,2023年,2月20日,星期三8253的外部引腳2.與系統(tǒng)相連接引腳片選,輸入,用來決定芯片是否被選中,由地址總線高位經(jīng)譯碼電路產(chǎn)生18第18頁,共80頁,2023年,2月20日,星期三表8253A端口地址分配表A1A0操作數(shù)據(jù)傳送方式00100001010011001000010010101001011001111××××讀0計數(shù)器讀1計數(shù)器讀2計數(shù)器寫0計數(shù)器寫1計數(shù)器寫2計數(shù)器寫控制口8253無操作未選中0計數(shù)器OL→數(shù)據(jù)總線1計數(shù)器OL→數(shù)據(jù)總線2計數(shù)器OL→數(shù)據(jù)總線數(shù)據(jù)總線數(shù)據(jù)→0計數(shù)器CR數(shù)據(jù)總線數(shù)據(jù)→1計數(shù)器CR數(shù)據(jù)總線數(shù)據(jù)→2計數(shù)器CR數(shù)據(jù)總線數(shù)據(jù)→控制口數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)8253的外部引腳19第19頁,共80頁,2023年,2月20日,星期三8253的外部引腳8位,雙向,三態(tài),用來與系統(tǒng)數(shù)據(jù)總線相連讀信號,輸入,控制8253將數(shù)據(jù)或狀態(tài)信息送給CPU寫信號,輸入,控制CPU將數(shù)據(jù)或控制信息送到82532.與系統(tǒng)相連接引腳20第20頁,共80頁,2023年,2月20日,星期三8253的控制字4個功能段:控制字——在8253的初始化編程中,第一個寫入的一定是方式控制字,規(guī)定8253的工作方式。21第21頁,共80頁,2023年,2月20日,星期三●設(shè)置初值命令用來設(shè)置計數(shù)的初始值。根據(jù)在控制字中D5D4位的約定,計數(shù)初始值可以是8位,也可以是16位。

設(shè)置初值命令●8253在設(shè)置初值后就開始工作了。鎖存命令是為了配合CPU讀取計數(shù)器當(dāng)前值而設(shè)置的。鎖存命令22第22頁,共80頁,2023年,2月20日,星期三(1)8253初始化編程編程時必須遵守以下兩條原則:其二,初始值設(shè)置時,要符合控制字中的格式規(guī)定。是只寫低字節(jié),還是只寫高字節(jié),或者是先寫低字節(jié),后寫高字節(jié)。其一,對計數(shù)器設(shè)置計數(shù)初始值前必須先將控制字寫入23第23頁,共80頁,2023年,2月20日,星期三8253的控制字(2)8253的讀/寫操作*寫入操作——設(shè)置控制字,設(shè)置計數(shù)初值和設(shè)置鎖存命令;使用前,首先初始化:先寫入方式控制字,隨后寫入計數(shù)初值(注意格式)??刂谱謱懭肟刂萍拇嫫鞫丝冢嫈?shù)初值寫入計數(shù)器端口。鎖存命令——D7D6指定要鎖存的計數(shù)器,D5D4=00。*讀出操作——CPU讀取計數(shù)器當(dāng)前的計數(shù)值。在計數(shù)過程中,輸出鎖存器OL跟隨計數(shù)執(zhí)行部件CE變化,在接到CPU發(fā)來的鎖存命令時,當(dāng)前計數(shù)值鎖存于OL中,OL不再變化,保持至CPU用輸入指令讀取該計數(shù)器端口的OL值后,輸出鎖存器自動解除鎖存狀態(tài),再次跟隨CE第24頁,共80頁,2023年,2月20日,星期三8253的的工作方式8253提供6種工作方式,遵循以下基本原則:(1)控制字寫入計數(shù)器,所有的控制邏輯電路復(fù)位,輸出端進(jìn)入初始狀態(tài);(2)初始計數(shù)值寫入后,經(jīng)過一個CLK脈沖后,才由計數(shù)初值寄存器CR送入計數(shù)執(zhí)行部件CE開始計數(shù)。在輸入脈沖的CLK的下降沿,計數(shù)器作減1計數(shù);(3)通常,在輸入脈沖CLK的上升沿,門控信號GATE被采樣。不同的工作方式,GATE信號的觸發(fā)方式有不同的規(guī)定,電平觸發(fā)、邊沿觸發(fā)或兩者都允許;(4)8253內(nèi)部沒有中斷控制電路,也沒有專用的中斷請求線,若需中斷,可將OUT端作為中斷請求信號,通過外部電路實(shí)現(xiàn)對該中斷管理(比如接到8259A的IRi)。第25頁,共80頁,2023年,2月20日,星期三8253的工作方式6種工作方式:方式0—方式5區(qū)別:

OUT輸出的波形不同;計數(shù)過程中GATE信號對計數(shù)操作的影響不同;啟動計數(shù)器的觸發(fā)方式不同26第26頁,共80頁,2023年,2月20日,星期三方式0是典型的事件計數(shù)用法,CLK作為事件計數(shù)輸入信號,當(dāng)計數(shù)執(zhí)行部件CE為0時,OUT端變?yōu)楦唠娖?,可以作為中斷請求信號。工作原理:?dāng)寫入控制字后,OUT變?yōu)榈碗娖?,CPU將計數(shù)初值寫入計數(shù)初值寄存器CR后,利用下一個CLK脈沖的下降沿將CR的內(nèi)容裝入CE中;再從下一個CLK脈沖的下降沿開始,CE執(zhí)行減1計數(shù),減到0時,OUT變?yōu)楦唠娖剑⒈3?。除非重新裝入計數(shù)初值或復(fù)位。

GATE是門控信號,高電平開放計數(shù),低電平禁止計數(shù)。1.方式0—計數(shù)結(jié)束時中斷方式

(InterruptonTerminalCount)4/4/2023第27頁,共80頁,2023年,2月20日,星期三●在此種方式下,控制字寫入8253的控制字寄存器后,使OUT輸出端變低。開始計數(shù)要有兩個條件:其一是門控GATE信號必須為高電平其二是寫入計數(shù)器初值。滿足以上兩個條件計數(shù)器開始計數(shù),直到計數(shù)到“0”時,OUT輸出端變高28第28頁,共80頁,2023年,2月20日,星期三1.方式0—計數(shù)結(jié)束時中斷方式

(InterruptonTerminalCount)方式0波形圖CW:8253控制字;LSB:低8位計數(shù)值;MSB:高8位計數(shù)值29第29頁,共80頁,2023年,2月20日,星期三GATE=1初值N,OUT在寫入命令執(zhí)行后,第N+1個CLK脈沖之后,變?yōu)楦唠娖?.方式0—計數(shù)結(jié)束時中斷方式

(InterruptonTerminalCount)30第30頁,共80頁,2023年,2月20日,星期三1.方式0—計數(shù)結(jié)束時中斷方式

(InterruptonTerminalCount)(b)方式0—GATE作用31第31頁,共80頁,2023年,2月20日,星期三1.方式0—計數(shù)結(jié)束時中斷方式

(InterruptonTerminalCount)32第32頁,共80頁,2023年,2月20日,星期三方式0特點(diǎn)第一,計數(shù)器只計數(shù)一遍。第三,在計數(shù)過程中,可由門控信號控制暫停。第四,在8253計數(shù)過程中可以改變計數(shù)值。第五,若用于中斷方式,可把OUT輸出信號接到8259的中斷請求輸入端,以滿足中斷要求。第二,在CPU執(zhí)行向8253輸出計數(shù)指令的信號上升沿,8253將計數(shù)值寫入通道的可予置計數(shù)值寄存器中。方式0主要用于事件計數(shù),OUT信號可作為中斷請求信號。33第33頁,共80頁,2023年,2月20日,星期三工作方式0例:設(shè)8253的端口地址是70H-73H,若計數(shù)器1工作在方式0,計數(shù)次數(shù)為130次,試編寫初始化程序。解:初始化程序段

MOVAL,71H ;0111

0001,計數(shù)器1,BCD計數(shù)

OUT73H,AL ;控制字寫入控制寄存器

MOVAL,30H ;先送低8位

OUT71H,AL ;低8位送計數(shù)器1 MOVAL,01H ;先送低8位

OUT71H,AL ;高8位送計數(shù)器1

4/4/2023第34頁,共80頁,2023年,2月20日,星期三2.方式1—可編程單穩(wěn)態(tài)觸發(fā)器

(ProgrammableOne―short)方式1波形圖由外部門控信號GATE上升沿觸發(fā),使輸出端變?yōu)榈碗娖?,產(chǎn)生一個單拍負(fù)脈沖信號,脈沖寬度由計數(shù)值決定。35第35頁,共80頁,2023年,2月20日,星期三2.方式1—可編程單穩(wěn)態(tài)觸發(fā)器

(ProgrammableOne―short)36第36頁,共80頁,2023年,2月20日,星期三2方式1——可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器●在這種方式下,CPU執(zhí)行輸出指令向8253寫入控制字之后,輸出OUT將保持為高電平(若原為低,則變?yōu)楦撸??!癞?dāng)CPU又寫入計數(shù)值后,計數(shù)器并不開始計數(shù),要等到外部門控脈沖GATE啟動之后的下一個輸入CLK脈沖的下降沿開始計數(shù)?!裨摲绞娇奢敵鲆粋€單穩(wěn)脈沖,若外部再次觸發(fā)啟動,則再次產(chǎn)生一個單穩(wěn)脈沖?!耖_始計數(shù)時輸出OUT變低,在整個計數(shù)過程中,輸出OUT都維持為低電平,直到計數(shù)到0,輸出OUT方變?yōu)楦摺?7第37頁,共80頁,2023年,2月20日,星期三2.方式1—可編程單穩(wěn)態(tài)觸發(fā)器

(ProgrammableOne―short)38第38頁,共80頁,2023年,2月20日,星期三2.方式1—可編程單穩(wěn)態(tài)觸發(fā)器

(ProgrammableOne―short)39第39頁,共80頁,2023年,2月20日,星期三在方式1下,8253的主要特點(diǎn)第三,在計數(shù)過程中,CPU改變初始計數(shù)值,這時計數(shù)過程不受影響。只有再次觸發(fā)啟動后,計數(shù)器才開始按新計數(shù)值對應(yīng)的脈沖寬度輸出單穩(wěn)脈沖。第一,若設(shè)置的初始計數(shù)值為N,則輸出的單穩(wěn)脈沖的脈寬為N個CLK時鐘周期。第二,可重復(fù)觸發(fā)。第四,在計數(shù)過程中,若外部GATE觸發(fā)脈沖提前到來(即計數(shù)器未減至0時),則在觸發(fā)脈沖上升沿之后的下一個CLK脈沖的下降沿時,計數(shù)器將重新開始計數(shù)。40第40頁,共80頁,2023年,2月20日,星期三工作方式1例:設(shè)8253的端口地址是70H-73H,若計數(shù)器1工作在方式1,計數(shù)次數(shù)為20次,試編寫初始化程序。解:初始化程序段MOVAL,52H ;0101

0010,計數(shù)器1,二進(jìn)制計數(shù)OUT73H,AL ;控制字寫入控制寄存器MOVAL,14H ;OUT71H,AL ;計數(shù)次數(shù)送計數(shù)器14/4/2023第41頁,共80頁,2023年,2月20日,星期三3方式2——速率發(fā)生器、分頻器●當(dāng)計數(shù)到1時,輸出OUT變低,經(jīng)過一個CLK周期輸出OUT變高,并且計數(shù)器開始重新計數(shù)?!裨谶@種方式下,CPU向8253輸出控制字后,計數(shù)器輸出OUT變高。在寫入計數(shù)值后,計數(shù)器在下一個CLK的下降沿對輸入時鐘CLK計數(shù)。42第42頁,共80頁,2023年,2月20日,星期三3.方式2—速率發(fā)生器、分頻器

(RateGenerator)N分頻計數(shù)器43第43頁,共80頁,2023年,2月20日,星期三3.方式2—速率發(fā)生器、分頻器

(RateGenerator)44第44頁,共80頁,2023年,2月20日,星期三3.方式2—速率發(fā)生器、分頻器

(RateGenerator)45第45頁,共80頁,2023年,2月20日,星期三方式2的主要特點(diǎn)第一,不用重新設(shè)置計數(shù)值,通道能連續(xù)工作,輸出固定頻率的脈沖。第三,在計數(shù)過程中可以改變計數(shù)值,這對正在進(jìn)行的計數(shù)過程沒有影響.方式2改變計數(shù)值是在下次計數(shù)周期有效。第二,計數(shù)過程可以由門控脈沖GATE控制。當(dāng)GATE為低電平時,暫停計數(shù)。GATE變?yōu)楦唠娖胶蟮南乱粋€CLK脈沖使計數(shù)器按原初始值重新開始計數(shù)。46第46頁,共80頁,2023年,2月20日,星期三8253的的工作方式2例:8253的計數(shù)器2用作分頻器,將頻率為1.19MHz的輸入脈沖轉(zhuǎn)變成頻率為500Hz的脈沖信號。8253的端口地址為70H-73H。試編寫初始化程序段。解:N=1.19×106/500=2380=094CH則其初始化程序段為: MOVAL,0B4H;10110100,計數(shù)器2方式2二進(jìn)制計數(shù) OUT73H,AL ;控制字送入控制寄存器 MOVAL,4CH OUT72H,AL ;計數(shù)值低8位送入計數(shù)器2 MOVAL,09H OUT72H,AL;計數(shù)值高8位送入計數(shù)器2注:N也稱為分頻系數(shù)4/4/2023第47頁,共80頁,2023年,2月20日,星期三4方式3——方波發(fā)生器●方式3和方式2的工作類似,它們的輸出都是周期性的,但方式3的輸出為方波。方式3下,計數(shù)過程中OUT有一半時間為高,另一半時間為低。所以,若計數(shù)值為N,則方式3的輸出是周期為N個CLK脈沖的方波?!襁@種方式下,當(dāng)CPU將控制字用輸出指令寫入8253后,其輸出OUT為高,CPU繼續(xù)寫入計數(shù)值后就自動開始計數(shù),輸出保持為高。當(dāng)計數(shù)到一半計數(shù)值時,輸出變?yōu)榈?,直至計?shù)到0,輸出又變高,重新從初始計數(shù)值開始計數(shù)。48第48頁,共80頁,2023年,2月20日,星期三4.方式3—方波發(fā)生器

(SquareWaveGenerator)對稱方波(偶數(shù));近似對稱方波(奇數(shù))49第49頁,共80頁,2023年,2月20日,星期三4.方式3—方波發(fā)生器

(SquareWaveGenerator)50第50頁,共80頁,2023年,2月20日,星期三4.方式3—方波發(fā)生器

(SquareWaveGenerator)51第51頁,共80頁,2023年,2月20日,星期三4.方式3—方波發(fā)生器

(SquareWaveGenerator)52第52頁,共80頁,2023年,2月20日,星期三方式3的主要特點(diǎn)第一,若計數(shù)值為偶數(shù),在裝入計數(shù)值后,每一個CLK脈沖使計數(shù)值減1,當(dāng)計數(shù)到N/2時,一方面使輸出改變狀態(tài),另一方面又繼續(xù)計數(shù)至1,此過程將周而復(fù)始地重復(fù)進(jìn)行。第二,GATE信號能使計數(shù)過程重新開始。原則上,GATE=1允許計數(shù),GATE=0禁止計數(shù)。第三,若在計數(shù)期間寫入一個新的計數(shù)值,并不影響現(xiàn)行的計數(shù)過程。53第53頁,共80頁,2023年,2月20日,星期三

方式0方式1方式2方式3功能計最后一個數(shù)中斷硬件觸發(fā)單穩(wěn)觸發(fā)器分頻器方波發(fā)生器啟動條件寫入計數(shù)值外部觸發(fā)寫入計數(shù)值寫入計數(shù)值重復(fù)條件寫計數(shù)值外部觸發(fā)自動重復(fù)自動重復(fù)N與CLK和OUT關(guān)系寫入N后過N+1個CLK后輸出變高單個輸出脈沖寬度為N個CLK每N個CLK輸出一個CLK寬度脈沖寫入N后(偶)輸出N/2個CLK高N/2個CLK低改變計數(shù)值立即有效外部觸發(fā)后有效下一計數(shù)操作周期有效下一計數(shù)操作周期有效寫入控制字后的OUT立即為低高高高54第54頁,共80頁,2023年,2月20日,星期三GATE低或變低禁止計數(shù)

禁止計數(shù)輸出變高禁止計數(shù)輸出變高上升沿

從初值開始重新計數(shù)從初值開始重新計數(shù)從初值開始重新計數(shù)高允許計數(shù)

允許計數(shù)允許計數(shù)計數(shù)器最小值1122計數(shù)器最大值0000計數(shù)到0后狀態(tài)繼續(xù)減1計數(shù)繼續(xù)減1計數(shù)自動裝初值后計數(shù)自動裝初值后計數(shù)

方式0方式1方式2方式355第55頁,共80頁,2023年,2月20日,星期三5.方式4—軟件觸發(fā)選通方式

(SoftwareTriggeredStrobe)56第56頁,共80頁,2023年,2月20日,星期三5.方式4—軟件觸發(fā)選通方式

(SoftwareTriggeredStrobe)57第57頁,共80頁,2023年,2月20日,星期三5.方式4—軟件觸發(fā)選通方式

(SoftwareTriggeredStrobe)58第58頁,共80頁,2023年,2月20日,星期三6.方式5—硬件觸發(fā)選通方式

(HardwareTriggeredStrobe)硬件觸發(fā)計數(shù)方式,即門控信號GATE上升沿觸發(fā)計數(shù)。59第59頁,共80頁,2023年,2月20日,星期三6.方式5—硬件觸發(fā)選通方式

(HardwareTriggeredStrobe)60第60頁,共80頁,2023年,2月20日,星期三6.方式5—硬件觸發(fā)選通方式

(HardwareTriggeredStrobe)61第61頁,共80頁,2023年,2月20日,星期三7.工作方式小結(jié)(1)方式0在寫入控制字后OUT變?yōu)榈碗娖?,其?種方式在寫入控制字后OUT輸出高電平.(2)預(yù)置值N與輸出波形的關(guān)系:方式初值N與波形的關(guān)系0寫入初值N后,經(jīng)N+1個CLK輸出變?yōu)楦唠娖?輸出一個寬度為N個CLK的負(fù)脈沖2每N個CLK脈沖,輸出一個寬度為CLK周期的負(fù)脈沖3方波輸出,周期為N個CLK周期,N為奇數(shù)時高電平比低電平多一個CLK周期4寫入初值N后,計數(shù)結(jié)束后輸出一個寬度為CLK周期的負(fù)脈沖5寫入初值N后,由門控觸發(fā),計數(shù)結(jié)束后輸出一個寬度為CLK周期的負(fù)脈沖62第62頁,共80頁,2023年,2月20日,星期三7.工作方式小結(jié)(3)方式2,4,5相同之處:計數(shù)到終點(diǎn),輸出寬度為1個CLK周期的低電平脈沖。

不同點(diǎn)為:方式2為自動啟動,重復(fù)計數(shù)、輸出低電平脈沖;方式4也為自動啟動,僅輸出一個低電平脈沖;方式5需等待GATE上升沿的到來才開始計數(shù),只輸出一個低電平脈沖。(4)方式2,3相同之處:輸出周期性信號,每當(dāng)計數(shù)到終點(diǎn),初始化時預(yù)置的初值都會被自動重新裝入(減1計數(shù)器)。63第63頁,共80頁,2023年,2月20日,星期三7.工作方式小結(jié)門控信號GATE在不同工作方式下的作用方式GATE引腳輸入狀態(tài)所起的作用輸出波形高電平低電平下降沿上升沿0允許禁止暫停繼續(xù)計數(shù)過程中為低,計數(shù)值減為0時,變高(單次)1不影響不影響不影響開始或重新開始寬度為n個CLK的低電平(單次)2允許禁止停止重新開始周期為n個CLK,寬度1個CLK的負(fù)脈沖(重復(fù))3允許禁止停止重新開始周期為n個CLK的方波(重復(fù))4允許禁止停止重新開始減為0時輸出寬度為1個CLK的負(fù)脈沖(單次)5不影響不影響不影響開始或重新開始減為0時輸出寬度為1個CLK的負(fù)脈沖(單次)64第64頁,共80頁,2023年,2月20日,星期三8253應(yīng)用舉例●在使用8253芯片時,首先要對其進(jìn)行初始化編程。●初始化編程包括寫入控制字和寫入計數(shù)值兩個步驟。第二步,寫入計數(shù)初始值。計數(shù)初始值經(jīng)由各通道的端口地址寫入。第一步,寫入控制字。任一通道的控制字都要從8253的控制口地址寫入,控制哪個通道由控制字的D7D6位來決定。第65頁,共80頁,2023年,2月20日,星期三8253的應(yīng)用舉例1.8253的初始化兩種方法:(1)對每個計數(shù)器分別進(jìn)行初始化,先寫控制字,后寫計數(shù)值。如果計數(shù)值是16位的,則先寫低8位(LSB)再寫高8位(MSB)。(2)先寫所有計數(shù)器的方式控制字,再寫各個計數(shù)器的計數(shù)值。如果計數(shù)值是16位的,則先寫低8位再寫高8位。66第66頁,共80頁,2023年,2月20日,星期三8253的應(yīng)用舉例例:假設(shè)一個8253在某系統(tǒng)中的端口地址40H~43H,如果要將計數(shù)器0設(shè)置為工作方式3,計數(shù)初值為3060H,采用二進(jìn)制計數(shù)法.MOV AL, 36H ;計數(shù)器0,方式3,計數(shù)值16位,;二進(jìn)制計數(shù)OUT 43H, AL ;寫入控制寄存器MOV AX, 3060H ;設(shè)置計數(shù)值OUT 40H, AL ;寫低8位至計數(shù)器0MOV AL, AHOUT 40H, AL ;寫高8位至計數(shù)器067第67頁,共80頁,2023年,2月20日,星期三8253的應(yīng)用舉例2.8253的讀操作原因及過程(注意16位):兩種方法:(1)讀之前先停止計數(shù)

在讀之前用GATE信號,控制計數(shù)器暫停計數(shù),或由外部邏輯禁止所要讀的計數(shù)通道的CLK脈沖輸入。原因:計數(shù)值16位,CPU要執(zhí)行兩次讀入指令,還要把讀入的數(shù)存入寄存器或存儲單元中。兩次讀入有時間間隔。(2)讀之前先送計數(shù)器鎖存命令68第68頁,共80頁,2023年,2月20日,星期三(1)讀之前先停止計數(shù)例:讀計數(shù)器0。這種讀入要求軟件和硬件配合,即先使GATE為低電平,禁止計數(shù)器計數(shù),再執(zhí)行如下讀入程序段(端口地址40H~43H):IN AL, 40H;讀入計數(shù)器0的OL低8位MOV BL, ALIN AL, 40H;讀入計數(shù)器0的OL高8位MOV BH, AL8253的應(yīng)用舉例69第69頁,共80頁,2023年,2月20日,星期三8253的應(yīng)用舉例RL1、RL0為00的一種特殊形式,寫入的端口地址是控制字地址。SC1、SC0編碼,決定所要鎖存的計數(shù)器。鎖存命令的低4位無效,可以為0000B。假設(shè)要讀計數(shù)器2的計數(shù)值:MOV AL, 80H ;計數(shù)器2鎖存命令OUT 43H,AL ;寫入計數(shù)器2控制寄存器IN AL, 42H ;讀計數(shù)器2輸出鎖存器

OL低8位MOV BL, ALIN AL, 42H ;讀計數(shù)器2輸出鎖存器

OL高8位M0V BH, AL(2)讀之前先送計數(shù)器鎖存命令70第70頁,共80頁,2023年,2月20日,星期三(2)讀之前先送計數(shù)器鎖存命令必須先有一次送鎖存命令的寫操作,然后才能進(jìn)行讀操作。當(dāng)執(zhí)行完OUT指令后,計數(shù)值被鎖存在OL內(nèi)。當(dāng)沒有接到鎖存命令之前,在計數(shù)器的計數(shù)過程中,每個計數(shù)器的計數(shù)值輸出鎖存器隨計數(shù)單元CE計數(shù)值的變化而變化。當(dāng)接到鎖存命令后,OL中的計數(shù)值就被鎖存住了,不再隨計數(shù)單元變化。MOV AL, 80H ;計數(shù)器2鎖存命令OUT 43H,AL ;寫入計數(shù)器2控制寄存器IN AL, 42H ;讀計數(shù)器2輸出鎖存器OL低8位MOV BL, ALIN AL, 42H ;讀計數(shù)器2輸出鎖存器OL高8位M0V BH, AL8253的應(yīng)用舉例71第71頁,共80頁,2023年,2月20日,星期三

當(dāng)讀走OL中的數(shù)據(jù)或重新編程后,計數(shù)輸出鎖存器解除鎖存狀態(tài),又開始隨計數(shù)單元的計數(shù)值變化。讀計數(shù)值時,可以不停止計數(shù)器的計數(shù)。CPU可以在任何時刻先送鎖存命令再讀計數(shù)值。送完鎖存命令之后不管什么時候讀計數(shù)值,讀到的總是發(fā)出鎖存命令那個時刻的計數(shù)值。每次讀計數(shù)值之前都必須先送鎖存命令。如果讀之前使用了兩次鎖存命令,則第二個命令是無效的。讀入的計數(shù)值是執(zhí)行第一次鎖存命令時所鎖存的計數(shù)值。8253的應(yīng)用舉例72第72頁,共80頁,2023年,2月20日,星期三習(xí)題某系統(tǒng)中8253的端口地址為F280H~F283H,請按如下要求編制初始化程序:1)計數(shù)器0工作于方式3,BCD計數(shù),CLK0=2.5MHz,要求OUT0輸出速率為1kHz的方波。解:計數(shù)器0的計數(shù)初值N=CLK的頻率/OUT的頻率

=2.5MHz/1kHz =2500初始化程序段:MOVAL,37H;控制字=00110111,計數(shù)器0方式3,先低字節(jié)后高字節(jié),BCD計數(shù)MOVDX,0F283H ;控制寄存器端口大于地址8位,送DXOUTDX,AL ;控制字寫入控制端口,完成初始化MOVDX,0F280H ;計數(shù)器0的地址送DX MOVAL,00H ;計數(shù)初值低字節(jié)送計數(shù)器0 OUTDX,AL ;MOVAL,25H ;計數(shù)初值高字節(jié)送計數(shù)器 OUTDX,AL ;完成送計數(shù)初值 4/4/2023第73頁,共80頁,2023年,2月20日,星期三習(xí)題2)計數(shù)器1工作于方式2,BCD計數(shù),CLK1=2MHz,要求OUT1輸出1kHz頻率的脈沖波。解:計數(shù)器1的計數(shù)初值N=CLK的頻率/OUT的頻率

=2MHz/1kHz

=2000初始化程序段:MOVAL,65H ;控制字=01100101,計數(shù)器1方式2,先低字節(jié)后高字節(jié),BCDMOV DX,0F283H ;大于8位的控制器端口地址送DXOUT DX,AL ;控制字寫入控制器端口MOVDX,0F281H ;計數(shù)器1端口地址送DX MOV AL,00H ;低字節(jié)送計數(shù)器1OUT DX,AL MOV AL,20H ;高字節(jié)送計數(shù)器1OUT DX,AL ;完成送計數(shù)初值4/4/2023第74頁,共80頁,2023年,2月20日,星期三習(xí)題3)計數(shù)器2工作于方式4,用OUT1輸出作計數(shù)脈沖CLK2,計數(shù)值為1000,二進(jìn)制計數(shù),計數(shù)器計到0,給出一個控制脈沖沿。解:計數(shù)器2的計數(shù)初值N=1000=03E8H初始化程序段:MOVAL,0B8H ;控制字=10111000,計數(shù)器2方式4, 先低字節(jié)后高字節(jié),二進(jìn)制計數(shù) MOVDX,0F283H ;大于8位的控制器端口送DXOUT DX,AL ;控制字送控制器端口,完成初始化MOVDX,0F282H ;計

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論