第12章定時(shí)計(jì)數(shù)控制接口_第1頁(yè)
第12章定時(shí)計(jì)數(shù)控制接口_第2頁(yè)
第12章定時(shí)計(jì)數(shù)控制接口_第3頁(yè)
第12章定時(shí)計(jì)數(shù)控制接口_第4頁(yè)
第12章定時(shí)計(jì)數(shù)控制接口_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第12章定時(shí)計(jì)數(shù)控制接口12.1定時(shí)/計(jì)數(shù)概述12.2定時(shí)/計(jì)數(shù)器82538253的外部特性8253的內(nèi)部結(jié)構(gòu)8253的編程命令8253的工作方式8253的應(yīng)用舉例12.1定時(shí)/計(jì)數(shù)概述計(jì)算機(jī)的許多應(yīng)用都與時(shí)間有關(guān),例如實(shí)時(shí)時(shí)鐘、定時(shí)中斷、定時(shí)檢測(cè)、定時(shí)掃描等。外部事件發(fā)生次數(shù)達(dá)到規(guī)定值后產(chǎn)生中斷,以及統(tǒng)計(jì)外部事件發(fā)生的次數(shù)等定時(shí)器和計(jì)數(shù)器定時(shí)控制在微機(jī)系統(tǒng)中極為重要定時(shí)器由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成,通過(guò)記錄高精度晶振脈沖信號(hào)的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間隔計(jì)數(shù)電路如果記錄外設(shè)提供的具有一定隨機(jī)性的脈沖信號(hào)時(shí),它主要反映脈沖的個(gè)數(shù)(進(jìn)而獲知外設(shè)的某種狀態(tài)),常又稱為計(jì)數(shù)器定時(shí)功能的實(shí)現(xiàn)方法軟件延時(shí)——利用微處理器執(zhí)行一個(gè)延時(shí)程序段實(shí)現(xiàn)不可編程的硬件定時(shí)——采用分頻器、單穩(wěn)電路或簡(jiǎn)易定時(shí)電路控制定時(shí)時(shí)間可編程的硬件定時(shí)——軟件硬件相結(jié)合、用可編程定時(shí)器芯片構(gòu)成一個(gè)方便靈活的定時(shí)電路8253定時(shí)/計(jì)數(shù)器的應(yīng)用對(duì)8253定時(shí)/計(jì)數(shù)器進(jìn)行使其完成我們需要的計(jì)數(shù)功能定時(shí)功能軟件設(shè)計(jì)硬件設(shè)計(jì)12.28253定時(shí)/計(jì)數(shù)器3個(gè)獨(dú)立的16位計(jì)數(shù)器通道每個(gè)計(jì)數(shù)器有6種工作方式按二進(jìn)制或十進(jìn)制(BCD碼)計(jì)數(shù)減法計(jì)數(shù)12.2.1定時(shí)/計(jì)數(shù)器8253的外部特性12.2.28253的內(nèi)部結(jié)構(gòu)D7~D0計(jì)數(shù)器0控制字寄存器計(jì)數(shù)器1計(jì)數(shù)器2內(nèi)部數(shù)據(jù)總線數(shù)據(jù)總線緩沖器讀寫控制邏輯RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2計(jì)數(shù)器結(jié)構(gòu)示意圖計(jì)數(shù)初值寄存器GATECLKOUT減1計(jì)數(shù)器當(dāng)前計(jì)數(shù)值鎖存器1、計(jì)數(shù)器的3個(gè)引腳CLK時(shí)鐘輸入信號(hào)——在計(jì)數(shù)過(guò)程中,此引腳上每輸入一個(gè)時(shí)鐘信號(hào)(下降沿),計(jì)數(shù)器的計(jì)數(shù)值減1GATE門控輸入信號(hào)——控制計(jì)數(shù)器工作,可分成電平控制和上升沿控制兩種類型OUT計(jì)數(shù)器輸出信號(hào)——當(dāng)一次計(jì)數(shù)過(guò)程結(jié)束(計(jì)數(shù)值減為0),OUT引腳上將產(chǎn)生一個(gè)輸出信號(hào)12.2.38253的編程8253加電后的工作方式不確定8253必須初始化編程,才能正常工作寫入控制字寫入計(jì)數(shù)初值讀取當(dāng)前計(jì)數(shù)值1方式控制字的數(shù)據(jù)格式D7D6D5D4D3D2D1D0SC1SC0RW1RW0M2M1M0BCD00:計(jì)數(shù)器001:計(jì)數(shù)器110:計(jì)數(shù)器211:不用00:表示計(jì)數(shù)器鎖存命令01:僅讀/寫一個(gè)低8位字節(jié)10:僅讀/寫一個(gè)高8位字節(jié)。11:讀/寫兩個(gè)字節(jié),先讀/寫低8位字節(jié),后讀/寫高8位字節(jié)。000:方式0;

×11:

方式3001:方式1;100:

方式4×10:方式2;101:

方式50:二進(jìn)制計(jì)數(shù);1:BCD碼計(jì)數(shù)2寫入計(jì)數(shù)值選擇二進(jìn)制時(shí)計(jì)數(shù)值范圍:0000H~FFFFH0000H是最大值,代表65536選擇十進(jìn)制(BCD碼)計(jì)數(shù)值范圍:0000~99990000代表最大值100003.8253的讀寫操作(1)寫操作——計(jì)數(shù)通道的初始化【例12.1】選擇2號(hào)計(jì)數(shù)器,工作在方式3,計(jì)數(shù)初值為566H(2個(gè)字節(jié)),采用二進(jìn)制計(jì)數(shù)。因此,方式控制字為10110110B=0B6H,其初始化程序段為:MOVDX,307H ;8253控制口MOVAL,0B6H ;2號(hào)計(jì)數(shù)器的初始化命令字OUTDX,AL ;寫入控制字寄存器MOVDX,306H ;2號(hào)計(jì)數(shù)器數(shù)據(jù)端口MOVAX,566H ;計(jì)數(shù)初值OUTDX,AL ;先送低字節(jié)MOVAL,AH ;取高字節(jié)到ALOUTDX,AL ;后送高字節(jié)(2)讀操作——讀當(dāng)前計(jì)數(shù)值用IN指令可讀出所選通道計(jì)數(shù)器的計(jì)數(shù)值。16位的計(jì)數(shù)值在讀出時(shí),可先讀出低字節(jié),再讀出高字節(jié),但必須將高、低字節(jié)全部讀出后,才能對(duì)計(jì)數(shù)器進(jìn)行其它操作。12.2.48253/8254的工作方式8253有6種工作方式,由方式控制字確定熟悉每種工作方式的特點(diǎn)才能根據(jù)實(shí)際應(yīng)用問(wèn)題,選擇正確的工作方式每種工作方式的過(guò)程類似:⑴設(shè)定工作方式⑵設(shè)定計(jì)數(shù)初值〔⑶硬件啟動(dòng)〕⑷計(jì)數(shù)初值進(jìn)入減1計(jì)數(shù)器⑸每輸入一個(gè)時(shí)鐘計(jì)數(shù)器減1的計(jì)數(shù)過(guò)程⑹計(jì)數(shù)過(guò)程結(jié)束方式0:計(jì)數(shù)結(jié)束中斷①②⑤④⑥GATEOUTCLK

031244方式0WR①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過(guò)程⑥計(jì)數(shù)結(jié)束方式1:可編程單穩(wěn)脈沖方式2:頻率發(fā)生器(分頻器)方式3:方波發(fā)生器方式4:軟件觸發(fā)選通信號(hào)方式5:硬件觸發(fā)選通信號(hào)各種工作方式的輸出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2N/20/N0N01N01N01討論:計(jì)數(shù)開(kāi)始的時(shí)刻12.2.58253應(yīng)用舉例1.8253定時(shí)功能的應(yīng)用例子用8253定時(shí)功能可產(chǎn)生各種定時(shí)波形?!纠?2.1】如果8253芯片可利用8088的外設(shè)接口地址310H~313H,如果已知加到8253上的時(shí)鐘信號(hào)為2MHz,若利用計(jì)數(shù)器0、1、2分別產(chǎn)生周期為100μs的對(duì)稱方波以及每1s和10s產(chǎn)生一個(gè)負(fù)脈沖,試說(shuō)明8253如何連接并編寫包括初始化在內(nèi)的程序。例12.1題圖一、硬件設(shè)計(jì)8253A8088310H~313H譯碼器CSD7~D0D7~D0D7~D0A9~A0A1A1A0A0

GATE2OUT2+5V

+5V2MHzGATE1+5V

100μs

OUT11s10s

GATE0OUT0CLK1CLK0CLK2RDRDWRWRM/IO10000Hz1Hz二、軟件設(shè)計(jì)1、確定工作方式2、計(jì)算計(jì)數(shù)初值:計(jì)數(shù)初值N=分頻系數(shù)=fclk/fout3、確定工作方式控制字4、寫出初始化程序1)、寫入計(jì)數(shù)器的控制字2)、寫入計(jì)數(shù)初值。8253初始化編程的注意事項(xiàng)控制字寫入控制字I/O地址(A1A0=11)計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址:計(jì)數(shù)器0:A1A0=00計(jì)數(shù)器1:A1A0=01計(jì)數(shù)器2:A1A0=10;初始化計(jì)數(shù)器0MOVDX,313H ;控制端口地址MOVAL,00010110B;通道0控制字,只寫低字節(jié),方式3,二進(jìn)制計(jì)數(shù)OUTDX,AL ;寫入方式字MOVAL,200MOVDX,310HOUTDX,AL;寫入計(jì)數(shù)初值;初始化計(jì)數(shù)器1MOVDX,313HMOVAL,01110100BOUTDX,AL ;通道1控制字,先寫低字節(jié),后寫高字節(jié),方式2,二進(jìn)制計(jì)數(shù)MOVDX,311HMOVAX,10000 ;通道1賦計(jì)數(shù)初值10000OUTDX,AL ;先寫低字節(jié)MOVAL,AHOUTDX,AL ;寫高字節(jié);初始化計(jì)數(shù)器3MOVDX,313HMOVAL,10010100BOUTDX,AL;通道1控制字,只寫低字節(jié),方式2,二進(jìn)制計(jì)數(shù)MOVDX,312HMOVAL,10OUTDX,AL;通道2賦計(jì)數(shù)初值102.8253計(jì)數(shù)功能的應(yīng)用例子8253可以用于各種需要進(jìn)行計(jì)數(shù)的場(chǎng)合。【例12.2】某產(chǎn)品的包裝流水線中,一個(gè)包裝箱能裝24罐飲料。試?yán)靡黄?253來(lái)完成流水線控制中的計(jì)數(shù)功能,假設(shè)8253的端口地址為8CH~8FH。8253A80888CH~8FH譯碼器CSD7~D0D7~D0D7~D0A9~A0A1A1A0A0

+5V

GATE1

OUT1CLK1RDRDWRWRM/IO飲料罐信號(hào)作為中斷請(qǐng)求信號(hào)去8259A或者用于控制其它設(shè)備例12.2題圖一、硬件設(shè)計(jì)二、軟件設(shè)計(jì)假設(shè)選擇計(jì)數(shù)通道1工作在方式2,計(jì)數(shù)初值23選二進(jìn)制計(jì)數(shù);計(jì)數(shù)通道1初始化程序MOV AL, 01010100BOUT 8FH,ALMOV AL, 23OUT 8DH,AL為什么是23而不是24?方式2頻率發(fā)生器(分頻器)03124GATEOUTCLK

4方式2031240312403124WR注意計(jì)數(shù)開(kāi)始的時(shí)刻在此計(jì)數(shù)初值由初值寄存器進(jìn)入減1計(jì)數(shù)器3.8253計(jì)數(shù)、定時(shí)功能綜合應(yīng)用的例子【例12.3】包裝流水線控制某產(chǎn)品的包裝流水線中,一個(gè)包裝箱能裝24罐飲料。裝箱時(shí)希望流水線上每通過(guò)24罐飲料,流水線要停4秒以等待包裝箱封口,然后繼續(xù)通過(guò)下一箱的24罐。流水線就是這樣周而復(fù)始的運(yùn)作。試?yán)靡黄?253來(lái)完成流水線控制中的定時(shí)和計(jì)數(shù)功能。假設(shè)8253的端口地址為8CH~8FH,采用的時(shí)鐘頻率是2KHz。思路:用8253的計(jì)數(shù)通道1作為計(jì)數(shù)器,用于24個(gè)罐的計(jì)數(shù);計(jì)數(shù)通道2作為定時(shí)器,定時(shí)為4S。當(dāng)計(jì)數(shù)通道1的OUT腳出現(xiàn)0到1的跳變的時(shí)候,將啟動(dòng)計(jì)數(shù)通道2開(kāi)始定時(shí),而計(jì)數(shù)通道2定時(shí)階段將控制計(jì)數(shù)通道1停止計(jì)數(shù),只有其定時(shí)結(jié)束并停止定時(shí)階段才可再次啟動(dòng)計(jì)數(shù)通道1開(kāi)始計(jì)數(shù)。分析:計(jì)數(shù)通道:需要軟件觸發(fā),重復(fù)計(jì)數(shù),因此選擇方式2、3皆可。定時(shí)通道:需要上升沿觸發(fā)(可重觸發(fā)),并且定時(shí)未到時(shí)需要輸出信號(hào)OUT的值不變(用此信號(hào)控制流水線停止、計(jì)數(shù)器停止),因此選擇方式1計(jì)數(shù)通道1工作在方式2,計(jì)數(shù)初值23計(jì)數(shù)通道2工作在方式1,計(jì)數(shù)初值8000CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D0~D7A1A0RDWRCS飲料罐信號(hào)fCLK控制流水線停止和運(yùn)行的信號(hào)例12.3題簡(jiǎn)圖;初始化程序;計(jì)數(shù)通道1初始化MOV AL, 01010100BOUT 8FH, ALMOV AL, 23OUT 8DH, AL;初始化計(jì)數(shù)通道2MOV AL, 10110010BOUT 8FH, ALMOV AX, 8000OUT 8EH, ALMOV AL, AHOUT 8EH, AL4、8253在IBMPC系列機(jī)上的應(yīng)用A0A1———A0—A1—D0~D7D0~D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2DQCLK+5V接至DMA控制器接至揚(yáng)聲器驅(qū)動(dòng)器PB0PB1IRQ0DRQ0

8253+5V1.19318MHzDACK0BRDIORIOWRDWRCST/CCS計(jì)數(shù)器0:定時(shí)中斷計(jì)數(shù)器0:方式3,計(jì)數(shù)值:65536,輸出頻率為1.19318MHz÷65536=18.206Hz的方波門控為常啟狀態(tài),這個(gè)方波信號(hào)不斷產(chǎn)生OUT0端接8259A的IRQ0,用作中斷請(qǐng)求信號(hào)每秒產(chǎn)生18.206次中斷請(qǐng)求,或說(shuō)每隔55ms(54.925493ms)申請(qǐng)一次中斷DOS系統(tǒng)利用計(jì)數(shù)器0的這個(gè)特點(diǎn),通過(guò)08號(hào)中斷服務(wù)程序?qū)崿F(xiàn)了日時(shí)鐘計(jì)時(shí)功能計(jì)數(shù)器0:定時(shí)中斷對(duì)8253的計(jì)數(shù)器0進(jìn)行初始化的程序?yàn)椋篗OVAL,36HOUT43H,AL;寫控制字MOVAL,0;計(jì)數(shù)初值為65536OUT40H,AL;寫入初值低位OUT40H,AL;寫入初值高位計(jì)數(shù)器1:動(dòng)態(tài)RAM刷新定時(shí)器需要重復(fù)不斷提出刷新請(qǐng)求門控總為高,選擇方式2或32ms內(nèi)刷新128次,即15.6s刷新一次計(jì)數(shù)初值為18計(jì)數(shù)器1:動(dòng)態(tài)RAM刷新定時(shí)器初始化程序:MOVAL,54HOUT43H,AL;寫控制字MOVAL,18;計(jì)數(shù)初值為18OUT41H,AL;對(duì)應(yīng)15.09μs計(jì)數(shù)器2:揚(yáng)聲器音調(diào)控制計(jì)數(shù)器2的輸出控制揚(yáng)聲器的發(fā)聲音調(diào)計(jì)數(shù)器2只能工作在方式3,才能輸出一定頻率的方波,經(jīng)濾波后得到近似的正弦波,進(jìn)而推動(dòng)揚(yáng)聲器發(fā)聲揚(yáng)聲器還受控于并行接口(8255芯片)必須使PB0和PB1同時(shí)為高電平,揚(yáng)聲器才能發(fā)出預(yù)先設(shè)定頻率的聲音例12.4【例12.4】如圖12-2-11所示利用定時(shí)/計(jì)數(shù)器8253發(fā)600Hz的聲音。按任意鍵,開(kāi)始發(fā)聲,按【ESC】鍵,停止發(fā)聲。分析:計(jì)數(shù)初值的確定。N=1.19318MHz/600HZ=1989例12.4CODESEGMENTASSUMECS:CODESTART:;關(guān)閉揚(yáng)聲器

INAL,61H;取8255PB端口原輸出值

ANDAL,0FCH;置PB0和PB1為零,關(guān)閉GATE2和與門

OUT61H,AL;初始化計(jì)數(shù)器2MOVAL,0B6H;10110110B,計(jì)數(shù)器2,先寫低后寫高字節(jié),方式3,二進(jìn)制

OUT43H,AL;控制字寫入控制口

MOVAX,1989;計(jì)數(shù)初值

OUT42H,AL;對(duì)應(yīng)600HZ,送低字節(jié)

MOVAL,AHOUT42H,AL;送高字節(jié)例12.4;按任意鍵,啟動(dòng)發(fā)聲器

MOVAH,01H;單字符輸入DOS功能調(diào)用

INT21H;有鍵按下,程序往下執(zhí)行,啟動(dòng)揚(yáng)聲器發(fā)聲

INAL,61H;取8255PB端口原輸出值

ORAL,03;設(shè)PB1=PB0=1OUT61H,AL;使揚(yáng)聲器發(fā)聲;判斷是否是ESC鍵按下WAIT1:MOVAH,01H;單字符輸入DOS功能調(diào)用

INT21HCMPAL,1BH;ESC鍵的ASCII碼=1BHJNEWAIT1;不是ESC鍵按下,循環(huán)判斷例12.4;ESC鍵按下,關(guān)閉揚(yáng)聲器,停止發(fā)聲QUIT:INAL,61H;是ESC鍵按下,停止發(fā)聲

ANDAL,0FCH;置PB0和PB1為零,關(guān)閉GATE2和與門OUT61H,ALMOVAH,4CHINT 21HCODEENDSENDSTART例12.5【例12.5】如圖12-2-11所示利用定時(shí)/計(jì)數(shù)器8253發(fā)聲。編寫程序,在程序運(yùn)行時(shí)使PC機(jī)成為一架可彈奏的“鋼琴”。即當(dāng)按下數(shù)字鍵1~7時(shí),依次發(fā)出1,2,3,4,5,6,7七個(gè)音調(diào)。按q鍵則退出“鋼琴”狀態(tài)。分析:通過(guò)給8253定時(shí)器裝入不同的計(jì)數(shù)初值,可以使其輸出不同頻率的波形。按下1~7中的某個(gè)鍵,則把相應(yīng)的計(jì)數(shù)初值送入8253發(fā)出相應(yīng)頻率的聲音,鍵抬起聲音停止,按其它的鍵不發(fā)聲。例12.5DATASEGMENT;定義各音符對(duì)應(yīng)的計(jì)數(shù)初值TABLEDW4571,4058,3616,3419,3044,2712,2415DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;初始化DSBEGIN:MOVAH,07;接收鍵盤輸入的單字符,不回顯。INT21HCMPAL,71H ;是字符q?JEEXIT ;是則退出程序例12.5CMPAL,31HJBBEGIN;小于1,重新接收鍵盤輸入CMPAL,37HJABEGIN;大于7,重新接收鍵盤輸入SUBAL,30H;由ASCII碼得到對(duì)應(yīng)的數(shù)值SUBAL,1;數(shù)值減1;乘以2得到存放對(duì)應(yīng)計(jì)數(shù)初值的存儲(chǔ)單元的地址偏移量。SHLAL,1MOVAH,0LEABX,TABLEADDBX,AX;得到存放對(duì)應(yīng)計(jì)數(shù)初值的存儲(chǔ)單元的地址MOVAX,[BX];取得需要發(fā)的音對(duì)應(yīng)的計(jì)數(shù)初值CALLSOUND;調(diào)用發(fā)音子程序例12.5DELAY:INAL,60HTESTAL,80HJZDELAY;按鍵未抬起,繼續(xù)發(fā)聲INAL,61HANDAL,0FCHOUT61H,AL;按鍵抬起,發(fā)聲結(jié)束,關(guān)閉揚(yáng)聲器JMPBEGIN;重新接收鍵盤輸入EXIT:MOVAH,4CH;結(jié)束返回INT21H例12.5SOUNDPROCNEAR;發(fā)音子程序PUSHAX;保存計(jì)數(shù)初值INAL,61H;發(fā)音設(shè)置,打開(kāi)揚(yáng)聲器ORAL,03HOUT61H,ALMOVAL,10110110B;初始化8253OUT43H,ALPOPAX;恢復(fù)計(jì)數(shù)初值OUT42H,AL;送計(jì)數(shù)值低字節(jié)MOVAL

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論