第10章 可編程定時計數(shù)器芯片_第1頁
第10章 可編程定時計數(shù)器芯片_第2頁
第10章 可編程定時計數(shù)器芯片_第3頁
第10章 可編程定時計數(shù)器芯片_第4頁
第10章 可編程定時計數(shù)器芯片_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

06二月20231第10章可編程定時計數(shù)器芯片10.1定時/計數(shù)器的概念10.28253A可編程定時/計數(shù)器10.38253A控制字和工作方式10.48253A的編程應(yīng)用06二月2023210.1定時/計數(shù)器的概念定時日常生活:日時鐘、實時鐘。微機系統(tǒng):系統(tǒng)時鐘、DRAM刷新定時、周期性控制信號。定時與計數(shù)的關(guān)系相同點由數(shù)字電路中的計數(shù)電路構(gòu)成;定時就是采用時間單位進行計數(shù)。不同點定時是對固定頻率的脈沖信號進行計數(shù);計數(shù)是對隨機性的脈沖信號進行計數(shù)。06二月20233微機系統(tǒng)中的定時內(nèi)部定時:CPU(主機)本身工作的控制時序,如時鐘周期;由硬件結(jié)構(gòu)確定,微機中所有操作都要嚴格按照此節(jié)拍來完成,是固定的,無法更改的。一般為ns(納秒)級;外部定時:外設(shè)工作時,所需要的時序關(guān)系;實時監(jiān)控系統(tǒng)的定時中斷、定時監(jiān)測、定時掃描等;對I/O設(shè)備運行速度和工作頻率的調(diào)整和控制;一般定時為ms(毫秒)級;06二月20234外部定時方法(1/2)軟件定時:定時方法:通過CPU執(zhí)行一段循環(huán)程序,而產(chǎn)生等待延時;需要按延時的時間來計算時間常數(shù)。優(yōu)點:節(jié)省硬件成本;缺點:占用CPU的時間,降低了CPU的工作效率;軟件延時的時間隨主機頻率不同而發(fā)生變化,通用性差。適用于短時間或不頻繁發(fā)生延時的簡單系統(tǒng)。06二月20235延時程序:

……

……MOVDX,

0FFFFH

AGAIN:

MOVCX,DXWAIT:NOPLOOPWAITDECDXJNZAGAIN

……

……也可單獨作為一延時程序,延時時間較短延時常數(shù)決定于:需要的延時時間、系統(tǒng)主頻、指令的執(zhí)行時間延時常數(shù)06二月20236外部定時方法(2/2)硬件定時:方法:采用可編程定時/計數(shù)器或單穩(wěn)延時電路產(chǎn)生定時或延時。特點:不占用CPU時間,提高了CPU的利用率;可以產(chǎn)生精確的時間時隔,形成各種脈沖序列,靈活性強;定時不受主機頻率影響,定時程序通用性強。可用于各種定時計數(shù)場合。06二月2023710.28253A可編程定時/計數(shù)器1、8253A芯片的工作特點2、8253A芯片的外部引腳特性3、8253A的內(nèi)部結(jié)構(gòu)4、計數(shù)初值的設(shè)置06二月202381、8253A芯片的工作特點每片8253A上都有3個獨立的16位的計數(shù)通道;最大可計數(shù)值為216=65536;每個通道計數(shù)均可編程設(shè)置為二進制或BCD碼計數(shù);BCD碼計數(shù)即十進制計數(shù);每個計數(shù)通道都有6種工作方式,可以編程選擇;每種工作方式的輸出波形、觸發(fā)方式等不同;計數(shù)通道都是減法計數(shù)器;計數(shù)/定時啟動之前需要設(shè)置計數(shù)初值/定時常數(shù);06二月202392、8253A芯片的外部引腳特性數(shù)據(jù)總線片選及讀寫控制信號片內(nèi)端口選通信號計數(shù)通道0的輸入、輸出信號計數(shù)通道1的輸入、輸出信號計數(shù)通道2的輸入、輸出信號06二月202310計數(shù)通道的外部信號時鐘輸入信號CLK定時計數(shù)時,每經(jīng)過一個脈沖/時鐘周期,計數(shù)值減1;門控輸入信號GATE用于控制計數(shù)的啟停;可有開關(guān)作用和觸發(fā)作用;計數(shù)器輸出信號OUT各種波形輸出端;可供CPU檢測狀態(tài),也可用于提供請求信號。06二月202311定時/計數(shù)器的讀寫操作類型06二月2023123、8253A的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器:三態(tài)雙向8位寄存器;8253A與CPU之間數(shù)據(jù)交換的部件;讀/寫控制邏輯:接收CPU有關(guān)控制信號,決定操作對象及類型??刂谱旨拇嫫鳎航邮誄PU發(fā)出的控制字,決定各計數(shù)器的工作方式;三個計數(shù)通道共用一個命令端口區(qū)分該芯片內(nèi)部的端口類型!計數(shù)通道為數(shù)據(jù)端口,每個計數(shù)通道分別占用一個端口地址;(計數(shù)通道0—304H、計數(shù)通道1—305H、計數(shù)通道2—306H)控制字寄存器為命令端口,占用一個端口地址(307H);無狀態(tài)端口。06二月202313計數(shù)通道的內(nèi)部結(jié)構(gòu)存放CPU發(fā)出的計數(shù)初值,在計數(shù)過程中不發(fā)生變化;用于自動重裝計數(shù)初值。鎖存當(dāng)前的計數(shù)值,以供CPU讀取。裝入計數(shù)初值,每個計數(shù)脈沖到來時執(zhí)行減1操作。時鐘脈沖輸入端控制輸入端,對計數(shù)操作起開關(guān)作用或觸發(fā)作用輸出端,其輸出波形由操作方式?jīng)Q定注意CPU對計數(shù)器內(nèi)部部件的可訪問性!16位當(dāng)前計數(shù)值鎖存器 —— 只讀16位減1計數(shù)器 —— 不可訪問16位計數(shù)初值寄存器 —— 可讀寫06二月2023144、計數(shù)初值的設(shè)置8253A芯片的初始化步驟:按照命令字格式寫出滿足當(dāng)前操作的命令字,使用I/O指令將其寫入命令端口;寫入命令字后,計數(shù)初值寄存器清零;確定計數(shù)初值(定時常數(shù)),使用I/O指令將初始值裝入指定計數(shù)通道的初值寄存器。計數(shù)初值會通過初值寄存器送入減1計數(shù)器;當(dāng)計數(shù)條件滿足時,減1計數(shù)器即開始定時/計數(shù)。06二月202315計數(shù)初值的確定按定時時間計算:t—定時時間、TCLK

-時鐘周期則計算公式為:n=t/TCLK

按脈沖序列頻率計算:fCLK-輸入時鐘頻率;fOUT-輸出波形頻率則計算公式為:n=fCLK/fOUT計數(shù)初值的范圍:二進制:00000~0FFFFH十進制(BCD碼):00000~9999其中,最大值為0,因為計數(shù)器計數(shù)時先減1后判斷。n-計數(shù)初值(定時常數(shù))06二月202316計數(shù)初值/定時常數(shù)計算例子假定輸入時鐘頻率fCLK=2MHz要求1:定時20msn=t/TCLK=t×fCLK=20×10-3×2×106=40000要求2:產(chǎn)生1KHz的方波n=fCLK/fOUT=2×106/1×103=200006二月20231710.38253A的控制字和工作方式工作方式控制字的作用初始化操作中使用按計數(shù)通道的使用設(shè)置工作方式控制字;將計數(shù)初值寫入對應(yīng)的計數(shù)通道;讀通道中的當(dāng)前計數(shù)值使用工作方式控制字,設(shè)置對應(yīng)通道的鎖存命令;讀對應(yīng)通道,得到當(dāng)前計數(shù)值;06二月202318工作方式控制字SC1SC0RL1RL0M2M1M0BCD計數(shù)器選擇00計數(shù)器001計數(shù)器110計數(shù)器211不用計數(shù)數(shù)制0二進制1BCD碼命令類型00鎖存命令01讀/寫低8位10讀/寫高8位11先讀/寫低8位再讀/寫高8位工作方式選擇000方式0001方式1010方式2011方式3100方式4101方式5110無效11106二月202319工作方式控制字的應(yīng)用舉例(1/4)例1.選擇計數(shù)通道2,工作在方式3下,計數(shù)初值為533H,采用二進制計數(shù),試寫出其初始化程序段。工作方式控制字初始化程序段寫入命令字:寫入計數(shù)初值(先寫低字節(jié),再寫高字節(jié)):MOVDX,306HMOVAL,05HMOVDX,307HMOVAL,0B6HOUTDX,ALOUTDX,ALMOVAL,33HOUTDX,ALSC1SC0RL1RL0M2M1M0BCD1011011006二月202320初始化程序段MOVDX,307HMOVAL,0B6HOUTDX,ALMOVDX,306HMOVAL,33HOUTDX,ALMOVAL,05HOUTDX,AL初始化程序執(zhí)行過程1011011000110011000001010000010100110011000000000000000006二月202321工作方式控制字的應(yīng)用舉例(2/4)例2.計數(shù)通道1工作于方式0,用二進制計數(shù),計數(shù)初值為128。工作方式控制字初始化程序段

MOVDX,307H MOVAL,50H

OUTDX,AL

MOVDX,305H

MOVAL,128

OUTDX,ALSC1SC0RL1RL0M2M1M0BCD0101000006二月202322工作方式控制字的應(yīng)用舉例(3/4)例3.計數(shù)通道0工作于方式1,按BCD碼計數(shù),計數(shù)值為3000。工作方式控制字初始化程序段 MOVDX,307H MOVAL,33H OUTDX,AL

MOVDX,304H

MOVAX,3000

SC1SC0RL1RL0M2M1M0BCD00110011OUTDX,ALMOVAL,AHOUTDX,ALH06二月202323工作方式控制字的應(yīng)用舉例(4/4)例4.讀取1號計數(shù)器的當(dāng)前計數(shù)值,并判斷是否為全1。讀當(dāng)前計數(shù)值的操作: 先發(fā)鎖存命令,鎖存當(dāng)前計數(shù)值; 再用輸入指令從計數(shù)器的當(dāng)前計數(shù)值鎖存器中讀取數(shù)據(jù)。命令字:程序段 發(fā)鎖存命令

MOVDX,307H MOVAL,40H OUTDX,ALSC1SC0RL1RL0M2M1M0BCD01000000讀計數(shù)值判斷處理MOVDX,305HINAL,DXCMPAX,0FFFFHJEYES…………INAL,DXMOVAH,ALXCHGAL,AH假定初始化的工作方式控制字的RL位為11。06二月2023248253A對計數(shù)通道的訪問類型寫計數(shù)通道寫計數(shù)通道的初值寄存器;讀計數(shù)通道讀計數(shù)通道的初值寄存器;直接讀取計數(shù)通道;讀計數(shù)通道的當(dāng)前計數(shù)值;先使用工作方式控制字發(fā)鎖存命令,再讀取計數(shù)通道;06二月2023258253A的工作方式8253A共有6種工作方式,三個計數(shù)通道都可以工作在這6種工作方式下。學(xué)習(xí)這6種工作方式的要點:輸出波形;計數(shù)的觸發(fā)方式;軟件觸發(fā)、硬件觸發(fā)、軟硬觸發(fā);計數(shù)過程中,門控信號GATE的變化對計數(shù)的影響;不影響、停止計數(shù)、暫停計數(shù)、重新計數(shù);重裝計數(shù)初值后,對計數(shù)過程的影響;不影響、立刻生效、下次計數(shù)生效;06二月2023261.方式0——計數(shù)結(jié)束產(chǎn)生正脈沖每次用命令字設(shè)置計數(shù)器為方式0或?qū)懭胗嫈?shù)初值后,輸出端OUT的起始電平為低電平;寫入計數(shù)初值后,經(jīng)過一個時鐘周期,將計數(shù)初值送入減1計數(shù)器開始計數(shù),OUT輸出維持低電平;直至計數(shù)值變?yōu)?,OUT輸出端變?yōu)楦唠娖?,并維持到下次使用計數(shù)器。CWn=33210CLKWR#OUT06二月202327門控信號GATE對計數(shù)起開關(guān)作用。即當(dāng)GATE=1時,允許計數(shù);當(dāng)GATE=0時,禁止計數(shù)。計數(shù)過程中,GATE變?yōu)榈碗娖?,暫停計?shù);當(dāng)GATE再次變?yōu)楦唠娖綍r,從中止計數(shù)處繼續(xù)開始計數(shù)。GATE的變化并不影響OUT端的輸出狀態(tài)。0門控信號的作用n=3322CLKWR#OUTGATE106二月202328計數(shù)過程中,若計數(shù)初值發(fā)生變化,則計數(shù)器會在下一時鐘周期將新的計數(shù)值寫入減1計數(shù)器,并重新開始計數(shù);方式0是軟件觸發(fā)(寫計數(shù)初值的OUT指令)的計數(shù)方式。方式0的計數(shù)初值只一次有效;若要再次計數(shù),即使計數(shù)值不變,也需重新寫入計數(shù)初值。n=4n=3324CLKWR#OUTGATE321改變計數(shù)初值的影響06二月2023293n=3WR#CW2.方式1——硬件可重復(fù)觸發(fā)的單脈沖發(fā)生器當(dāng)命令字設(shè)定方式1后,輸出端OUT以高電平為起始電平;寫入計數(shù)初值后,經(jīng)過一個時鐘周期,將計數(shù)初值送入減1計數(shù)器,但并不開始計數(shù);當(dāng)門控信號GATE出現(xiàn)上升沿,則開始計數(shù),計數(shù)開始的同時,OUT輸出端變?yōu)榈碗娖?,作為單脈沖的開始;直到計數(shù)值為0,OUT輸出變回高電平,計數(shù)結(jié)束,即單脈沖結(jié)束。20CLKOUTGATE106二月202330GATE信號對計數(shù)過程起觸發(fā)作用。GATE的上升沿會使計數(shù)過程重新開始;但其高、低電平及下降沿不影響計數(shù)。實質(zhì)上,GATE的上升沿使計數(shù)初值寄存器將當(dāng)前的計數(shù)初值再次裝入減1計數(shù)器中;GATE變化不影響OUT的輸出狀態(tài),但會影響輸出單脈沖的寬度。n=3320CLKWR#OUTGATE321門控信號的作用06二月202331n=4n=3計數(shù)初值多次有效,即該方式下計數(shù)過程可以重復(fù)被觸發(fā)。計數(shù)過程中,若計數(shù)初值發(fā)生變化,則當(dāng)GATE再次出現(xiàn)上升沿時,立即以新的計數(shù)初值開始計數(shù);否則,計數(shù)初值的改變不會影響當(dāng)前的計數(shù)過程。32CLKWR#OUTGATE14321改變計數(shù)初值的影響06二月202332方式0與方式1的比較輸出波形大致相同;在一次計數(shù)過程中輸出單次負脈沖;觸發(fā)方式不同;方式0——軟件觸發(fā);方式1——硬件觸發(fā);方式0主要使用計數(shù)結(jié)束的上升沿脈沖作為請求信號使用;方式1主要用作定時器使用。方式1是由硬件觸發(fā)計數(shù)的,因此方式1輸出的負脈沖寬度是可以由計數(shù)初值精確計算的,而方式0不可。06二月20233311n=3CWWR#3.方式2——分頻器當(dāng)命令字設(shè)置方式2后,OUT輸出端的初始狀態(tài)為高電平;裝入計數(shù)初值后,開始計數(shù),輸出端仍維持高電平;直到計數(shù)值為1時,OUT輸出一個時鐘周期的低電平,一次計數(shù)結(jié)束,輸出恢復(fù)高電平;然后自動重裝計數(shù)初值,再次進行同樣的計數(shù),從而產(chǎn)生連續(xù)的脈沖序列。320CLKOUT32006二月202334n=3門控信號GATE對計數(shù)過程有開關(guān)作用,也有觸發(fā)作用。當(dāng)GATE=1時,允許計數(shù);當(dāng)GATE=0時,禁止計數(shù);當(dāng)GATE出現(xiàn)上升沿時,可以觸發(fā)計數(shù)重新開始。0CLKWR#OUTGATE321322計數(shù)過程中,僅計數(shù)初值發(fā)生變化若沒有GATE上升沿,則不影響本次的計數(shù)過程;只是在當(dāng)前計數(shù)歸0,自動裝入新的計數(shù)初值開始新的計數(shù);若出現(xiàn)GATE上升沿,則在下個時鐘周期立刻裝入新的計數(shù)初值開始計數(shù);門控信號的作用06二月2023354n=4CW4.方式3——方波發(fā)生器當(dāng)命令字設(shè)置方式3后,OUT輸出端的初始狀態(tài)為高電平;裝入計數(shù)初值后,開始計數(shù),輸出端仍維持高電平;當(dāng)計數(shù)到一半時,OUT輸出變?yōu)榈碗娖?,直到計?shù)值為0,恢復(fù)高電平的輸出;然后自動重裝計數(shù)初值,再次進行同樣的計數(shù),從而產(chǎn)生連續(xù)的方波序列。輸出方波或基本對稱的矩形波,常作為某些慢速外設(shè)的時鐘輸入信號320CLKWR#OUT14306二月202336計數(shù)初值的一半:當(dāng)計數(shù)初值為偶數(shù)時,計數(shù)到n/2,輸出端OUT發(fā)生負跳變,得到占空比為1:1的方波;當(dāng)計數(shù)初值為奇數(shù)時,計數(shù)到(n+1)/2,輸出端OUT發(fā)生負跳變,得到占空比為(n+1)/2:(n-1)/2的矩形波。門控信號GATE對計數(shù)過程起開關(guān)作用和觸發(fā)作用,同方式2。計數(shù)過程中寫入新的計數(shù)初值,則會在半周期結(jié)束或門控脈沖觸發(fā)時,重新裝入新值,開始計數(shù)。關(guān)于門控信號和計數(shù)初值06二月202337方式2和方式3的比較方式2主要用于產(chǎn)生周期性負脈沖;

方式3主要用于產(chǎn)生方波或矩形波;方式2和方式3的計數(shù)觸發(fā)方式均為軟硬件觸發(fā)。軟件觸發(fā)方法——重新寫入計數(shù)初值;在一個完整的計數(shù)周期(方式2)或半周期(方式3)輸出完成后,按照新的計數(shù)初值開始計數(shù);硬件觸發(fā)方法——門控信號出現(xiàn)上升沿;立即(下個時鐘周期)觸發(fā)新的計數(shù)過程,即輸出脈沖序列的頻率隨GATE信號的變化而隨時發(fā)生改變。06二月202338n=35.方式4——軟件觸發(fā)選通的單脈沖發(fā)生器當(dāng)用命令字設(shè)置方式4后,OUT輸出端的初始狀態(tài)為高電平;裝入計數(shù)初值后,即開始計數(shù);在計數(shù)過程中,輸出端始終維持高電平;當(dāng)計數(shù)為0,OUT輸出一個時鐘周期的負脈沖,結(jié)束計數(shù)。CW3210CLKWR#OUT06二月202339n=3CW6.方式5——硬件觸發(fā)選通的單脈沖發(fā)生器當(dāng)命令字設(shè)置方式5后,OUT輸出端的初始狀態(tài)為高電平;裝入計數(shù)初值后,并不立即開始計數(shù);當(dāng)GATE出現(xiàn)上升沿時,開始減1計數(shù),OUT維持高電平;當(dāng)計數(shù)為0時,OUT輸出一個時鐘周期的負脈沖,結(jié)束計數(shù)。320CLKWR#OUTGATE106二月202340方式4和方式5的比較輸出波形完全相同;一次計數(shù)得到單次單拍負脈沖;計數(shù)的觸發(fā)方式不同;方式4——軟件觸發(fā);觸發(fā)方式、GATE和計數(shù)初值改變時,對計數(shù)的影響同方式0;方式5——硬件觸發(fā);觸發(fā)方式、GATE和計數(shù)初值改變時,對計數(shù)的影響同方式1;06二月202341各種工作方式的功能方式功能輸出波形描述輸出波形0計數(shù)結(jié)束產(chǎn)生正脈沖單次負脈沖1單脈沖發(fā)生器單次負脈沖2分頻器連續(xù)脈沖波3方波發(fā)生器連續(xù)方波4軟件觸發(fā)選通單次單拍負脈沖5硬件觸發(fā)選通單次單拍負脈沖n0n0n0n0n0n0n0n006二月202342計數(shù)器啟動和重復(fù)計數(shù)的條件方式功能啟動條件重復(fù)條件0計數(shù)結(jié)束產(chǎn)生正脈沖軟件觸發(fā)寫計數(shù)值1單脈沖發(fā)生器硬件觸發(fā)GATE信號觸發(fā)2分頻器軟硬件觸發(fā)3方波發(fā)生器軟硬件觸發(fā)4軟件觸發(fā)選通軟件觸發(fā)寫計數(shù)值5硬件觸發(fā)選通硬件觸發(fā)GATE信號觸發(fā)06二月202343門控信號GATE的作用方式GATE信號的狀態(tài)低電平或下降沿上升沿高電平0暫停計數(shù)不影響計數(shù)允許計數(shù)1不影響計數(shù)重新計數(shù)不影響計數(shù)2停止計數(shù)重新計數(shù)允許計數(shù)3停止計數(shù)重新計數(shù)允許計數(shù)4暫停計數(shù)不影響計數(shù)允許計數(shù)5不影響計數(shù)重新計數(shù)不影響計數(shù)06二月202344計數(shù)過程中改變計數(shù)初值的結(jié)果方式功能改變計數(shù)初值0計數(shù)結(jié)束產(chǎn)生中斷信號立即有效1單脈沖發(fā)生器門控信號觸發(fā)后有效2分頻器(速率發(fā)生器)當(dāng)前計數(shù)周期結(jié)束

(計數(shù)到1后)或門控信號觸發(fā)后有效3方波速率發(fā)生器當(dāng)前半個計數(shù)周期結(jié)束(計數(shù)到一半或計數(shù)到0后)或門控信號觸發(fā)后有效4軟件觸發(fā)選通立即有效5硬件觸發(fā)選通門控信號觸發(fā)后有效06二月20234510.48253A的編程應(yīng)用1、微機系統(tǒng)中的應(yīng)用2、兩級計數(shù)例子3、波特率時鐘發(fā)生器例子06二月2023461、微機系統(tǒng)中的應(yīng)用(1)通道0——系統(tǒng)時鐘更新中斷信號工作于方式3,計數(shù)初值為0;(2)通道1——動態(tài)存儲器的定時刷新信號工作于方式2,計數(shù)初值為18;(3)通道2——發(fā)聲系統(tǒng)音頻信號工作于方式3,計數(shù)初值為533H;06二月202347去8237PC系列機中定時系統(tǒng)結(jié)構(gòu)框圖端口地址為40H~43H作為系統(tǒng)時鐘更新中斷信號06二月202348(1)系統(tǒng)時鐘更新中斷信號(通道0)工作于方式3,計數(shù)初值為0;GATE0接+5Ⅴ,CLK0輸入時鐘頻率為1.1931816MHz;OUT0輸出頻率為18.2Hz的方波;輸出脈沖周期=1/18.2≈55ms;OUT0連接8259A的IRQ0上,約55ms產(chǎn)生1次中斷,用于更新系統(tǒng)的日時鐘計數(shù)。系統(tǒng)直接調(diào)用固化在BIOS中的中斷類型號為08H的中斷服務(wù)程序。初始化程序如下:MOVAL,00110110BOUT43H,ALMOVAL,0OUT40H,ALOUT40H,AL06二月202349(2)動態(tài)存儲器的定時刷新信號(通道1)工作于方式2,計數(shù)初值為18;GATE1接+5Ⅴ,CLK1輸入時鐘頻率為1.1931816MHz;OUT1每隔15.08μs輸出一個負脈沖;OUT1連接到8237的DREQ0上;8237通道0用于控制DRAM的刷新;8253A的通道1定時產(chǎn)生DRAM的刷新請求信號,每個周期刷新存儲器一行。初始化程序如下:MOVAL,01010100BOUT43H,ALMOVAL,18OUT41H,AL06二月202350(3)發(fā)聲系統(tǒng)音頻信號(通道2)工作于方式3,計數(shù)初值為533H;GATE2由8255A的PB0位控制,CLK2輸入時鐘頻率為1.1931816MHz;OUT2輸出頻率約為900Hz的方波;輸出信號與8255的PB1位(控制發(fā)聲)共同經(jīng)過濾波,作為系統(tǒng)揚聲器發(fā)聲的音頻信號,進行提示和故障報警。初始化程序如下:MOVAL,10110110BOUT43H,ALMOVAX,533HOUT42H,ALMOVAL,AHOUT42H,AL06二月202351BIOS中對計數(shù)通道2的初始化編程BEEPPROCFAR INAL,61H MOVAH,AL PUSHAX

MOVAL,10110110B OUT43H,AL

MOVAX,0533H OUT42H,AL MOVAL,AH OUT42H,AL POPAX

ORAL,03H OUT61H,AL

NOPL1:LOOPL1

ANDAL,0FDH OUT61H,AL

MOVAL,AH OUT61H,AL

RETBEEPENDP讀8255PB口保存方式3,寫16位計數(shù)初值OUT2輸出頻率為1.1931816M/1331=896Hz的方波置PB0、PB1為1,打開揚聲器由CX決定延時長短置PB0、PB1為0,封鎖OUT2輸出恢復(fù)原PB端口值發(fā)聲系統(tǒng)連接圖06二月202352發(fā)聲系統(tǒng)連接圖06二月202353使用入口參數(shù)

指定揚聲器的發(fā)聲頻率和發(fā)聲持續(xù)時間BIOS中對應(yīng)程序;功能:按照指定的時間間隔發(fā)指定頻率的聲音

;入口參數(shù):

CX=指定頻率,BX=指定時間;返回:無SOUNDPROCFAR

MOVAL,10110110B OUT43H,AL MOVAX,CX OUT42H,AL MOVAL,AH OUT42H,AL

INAL,61H MOVAH,AL ORAL,03H OUT61H,ALL1:MOVCX,5000HL2:LOOPL2 DECBX JNZL1 MOVAL,AH OUT61H,AL

RETSOUNDENDP06二月2023542、兩級計數(shù)例子

利用8253A設(shè)計一個定時器,每5秒鐘輸出一個負脈沖,設(shè)外部時鐘頻率為2.5MHz。計數(shù)初值為n=5/TCLK=5×fCLK=5×2.5×106=12.5×106

故采用兩級計數(shù)器;使用8253A的計數(shù)通道0和計數(shù)通道1計數(shù)通道0:方式3,產(chǎn)生頻率低于外部時鐘頻率的方波;計數(shù)通道1:方式2,產(chǎn)生最終的負脈沖序列;8253A的硬件連接通道0的OUT輸出端作為通道1的CLK時鐘輸入;兩個通道的GATE端均接高電平;>>6553606二月202355硬件連接圖輸入2.5MHz的時鐘工作于方式2和方式3下,使GATE始終為高電平11輸出40Hz的方波作為計數(shù)器1的輸入輸出每5秒一個負脈沖的脈沖序列計數(shù)器0輸出脈沖序列的頻率OUT0

=CLK0/n0=2.5MHz/62500=40Hz8253AOUT0GATE0CLK1GATE1CLK0OUT106二月202356兩個通道的計數(shù)初值和命令字總的計數(shù)初值n為12.5×106;采用兩級計數(shù)時,通道0、1的計數(shù)初值n0、n1n=n0×n1假定選擇計數(shù)值為n0:62500;n1:200設(shè)置命令字:計數(shù)通道0計數(shù)通道1SC1SC0RL1RL0M2M1M0BCD00110110SC1SC0RL1RL0M2M1M0BCD0101010006二月202357初始化程序段計數(shù)器0的初始化程序段:MOVDX,307HMOVAL,36HOUTDX,AL;設(shè)置命令字MOVDX,304HMOVAX,62500OUTDX,ALMOVAL,AHOUTDX,AL;設(shè)置計數(shù)初值計數(shù)器1的初始化程序段:MOVDX,307HMOVAL,54HOUTDX,AL;設(shè)置命令字MOVDX,305HMOVAL,200OUTDX,AL;8位計數(shù)初值06二月202358答: 其輸出波形的負脈沖寬度會有不同。 單通道計數(shù)——輸出負脈沖寬度為1個時鐘周期; 雙通道計數(shù)——輸出負脈沖寬度由第一級計數(shù)的輸出決定。思考:

本題中輸出波形是否會因為采用的是兩級計數(shù)或單通道計數(shù)而有所不同?有何不同?06二月2023593、波特率時鐘發(fā)生器的例子要求:設(shè)計一個波特率分為8檔的波特率發(fā)生器,

采用人機對話方式選擇波特率,按Esc鍵退出。已知:輸入時鐘為1.19318MHz,波特率因子為16,

所需的8檔輸出波特率分別為110b/s、150b/s、

300b/s、600b/s、1200b/s、2400b/s、

4800b/s、9600b/s。06二月202360定時常數(shù)的計算利用8253A方式3產(chǎn)生指定波特率的方波,用于串行數(shù)據(jù)傳送。定時常數(shù):Tc=CLK頻率/(Baud×Factor)波特率110b/s,Tc=1.19318×106/(110×16)=678波特率150b/s,Tc=1.19318×106/(150×16)=497波特率300b/s,Tc=1.19318×106/(300×16)=249波特率600b/s,Tc=1.19318×106/(600×16)=124

2A6H1F1H0F9H07CH06二月202361波特率時鐘發(fā)生器的設(shè)計硬件設(shè)計8253A的計數(shù)通道產(chǎn)生所需的時鐘;CLK接輸入時鐘,OUT得到輸出時鐘;GATE接8255A的PC6,控制8253A的工作;軟件設(shè)計定時常數(shù)事先設(shè)定,存于數(shù)據(jù)區(qū);根據(jù)指定的波特率,查表選擇定時常數(shù),送入計數(shù)通道;TC_TABLEA602F101F9007C003E001F0010000800110b/s150b/s300b/s9600b/s…………06二月

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論