最新可編程接口芯片8254及應(yīng)用課件_第1頁(yè)
最新可編程接口芯片8254及應(yīng)用課件_第2頁(yè)
最新可編程接口芯片8254及應(yīng)用課件_第3頁(yè)
最新可編程接口芯片8254及應(yīng)用課件_第4頁(yè)
最新可編程接口芯片8254及應(yīng)用課件_第5頁(yè)
已閱讀5頁(yè),還剩127頁(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)介

可編程接口芯片8254及應(yīng)用可編程接口芯片8254及應(yīng)用17.1定時(shí)器和計(jì)數(shù)器概述定時(shí)控制在微機(jī)系統(tǒng)中極為重要[定時(shí)器]由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成,通過(guò)記錄高精度晶振脈沖信號(hào)的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間隔。定時(shí)器強(qiáng)調(diào)的是精確的時(shí)間。7.1定時(shí)器和計(jì)數(shù)器概述定時(shí)控制在微機(jī)系統(tǒng)中極為重要2最新可編程接口芯片8254及應(yīng)用課件3最新可編程接口芯片8254及應(yīng)用課件4最新可編程接口芯片8254及應(yīng)用課件5最新可編程接口芯片8254及應(yīng)用課件6最新可編程接口芯片8254及應(yīng)用課件7最新可編程接口芯片8254及應(yīng)用課件81計(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)1計(jì)數(shù)器的3個(gè)引腳CLK時(shí)鐘輸入信號(hào)——在計(jì)數(shù)過(guò)程中,此引92與處理器接口D0~D7數(shù)據(jù)線 A0~A1地址線RD讀信號(hào) WR寫信號(hào)CS片選信號(hào)2與處理器接口D0~D7數(shù)據(jù)線 A0~A110由控制字格式中SC1,SC0位決定屬于哪個(gè)計(jì)數(shù)器選中控制寄存器10110讀輸出鎖存器OL當(dāng)前值01對(duì)計(jì)數(shù)器寄存器CR送初值選中計(jì)數(shù)器2#10010讀輸出鎖存器OL當(dāng)前值01對(duì)計(jì)數(shù)器寄存器CR送初值選中計(jì)數(shù)器1#10100讀輸出鎖存器OL當(dāng)前值01對(duì)計(jì)數(shù)器寄存器CR送初值選中計(jì)數(shù)器0#10000功能A0A1CSWRRD由控制字格式中SC1,SC0位決定屬于哪個(gè)計(jì)數(shù)器選中控制寄存118254的工作方式8254有6種工作方式,由方式控制字確定熟悉每種工作方式的特點(diǎn)才能根據(jù)實(shí)際應(yīng)用問(wèn)題,選擇正確的工作方式不同工作方式的區(qū)分點(diǎn):輸出波形計(jì)數(shù)過(guò)程中門控信號(hào)的影響啟動(dòng)觸發(fā)方式8254的工作方式8254有6種工作方式,由方式控制字確定12每種工作方式的過(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é)束每種工作方式的過(guò)程類似:13方式0計(jì)數(shù)結(jié)束中斷(一次有效)寫入控制字之后,相應(yīng)的輸出信號(hào)OUT就開(kāi)始變成低電平。計(jì)數(shù)器寫完計(jì)數(shù)值時(shí),開(kāi)始計(jì)數(shù)。當(dāng)計(jì)數(shù)器減到零時(shí),OUT立即輸出高電平。方式0計(jì)數(shù)結(jié)束中斷(一次有效)寫入控制字之后,相應(yīng)的輸出14①②⑤④⑥GATEOUTCLK

031244方式0WR①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過(guò)程⑥計(jì)數(shù)結(jié)束①②⑤④⑥GATEOUTCLK031244方式0WR①②④15方式0門控信號(hào)GATE位高電平時(shí),計(jì)數(shù)器工作;為低電平時(shí),計(jì)數(shù)器停止工作,計(jì)數(shù)值保持不變。在計(jì)數(shù)器工作期間,如果重新寫入新的計(jì)數(shù)值,計(jì)數(shù)器將按新寫入的計(jì)數(shù)值重新工作。方式0門控信號(hào)GATE位高電平時(shí),計(jì)數(shù)器工作;為低電平時(shí),計(jì)168254的方式0時(shí)序波形n=5CLKOUTWR①543210n=5WRGATEOUT②54321044WROUT③n=998n=4432108254的方式0時(shí)序波形n=5CLKOUTWR①54321017方式1可編程單穩(wěn)脈沖寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開(kāi)始工作;等待到GATE上升沿,才開(kāi)始工作,使輸出OUT變成低電平;直到計(jì)數(shù)器值減到零后,輸出才變高電平。計(jì)數(shù)到0,初值自動(dòng)重置,但要等到下一個(gè)GATE上升沿觸發(fā)才重新計(jì)數(shù)。[單穩(wěn)態(tài)觸發(fā)器]只有一個(gè)穩(wěn)態(tài)(高電平),一個(gè)觸發(fā)脈沖使觸發(fā)器進(jìn)入暫穩(wěn)態(tài)(低電平),經(jīng)過(guò)一段可調(diào)的時(shí)間間隔后,又回到穩(wěn)態(tài)。所以工作于方式1時(shí)相當(dāng)于一個(gè)可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器。方式1可編程單穩(wěn)脈沖寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開(kāi)始工18①②⑤④⑥①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值③③硬件啟動(dòng)④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過(guò)程⑥計(jì)數(shù)結(jié)束GATEOUTCLK

031244方式1WR①②⑤④⑥①②③③④⑤⑥GATEOUTCLK031244方19方式1在計(jì)數(shù)器工作期間,當(dāng)GATE又出現(xiàn)一個(gè)上升沿時(shí),計(jì)數(shù)器重新裝入原計(jì)數(shù)初值并重新開(kāi)始計(jì)數(shù)。如果工作期間對(duì)計(jì)數(shù)器寫入新的計(jì)數(shù)初值,則要等到當(dāng)前的計(jì)數(shù)值計(jì)滿回零且門控信號(hào)再次出現(xiàn)上升沿后,才按新寫入的計(jì)數(shù)初值開(kāi)始工作。方式1在計(jì)數(shù)器工作期間,當(dāng)GATE又出現(xiàn)一個(gè)上升沿時(shí),計(jì)數(shù)器208254的1方式時(shí)序波形OUT②

4321GATE40n=4CLKGATEWROUT①

43210n=3WR③n=2OUT

3210210GATE8254的1方式時(shí)序波形OUT②4321GATE40n=421方式2頻率發(fā)生器(分頻器)寫入控制字之后,輸出端OUT變?yōu)楦唠娖健S?jì)數(shù)器寫完計(jì)數(shù)值時(shí),開(kāi)始計(jì)數(shù)。當(dāng)計(jì)數(shù)器減到1時(shí),OUT變?yōu)榈碗娖?。完成一次?jì)數(shù)過(guò)程,輸出端OUT又變?yōu)楦唠娖?,開(kāi)始一個(gè)新的計(jì)數(shù)過(guò)程,周而復(fù)始。對(duì)于計(jì)數(shù)初值N,輸出端OUT輸出的信號(hào)的周期是計(jì)數(shù)值N×?xí)r鐘CLK的周期T,N-1個(gè)時(shí)鐘周期為高,1個(gè)時(shí)鐘周期為低,為負(fù)脈沖。輸出負(fù)脈沖的周期為時(shí)鐘周期的N倍,頻率是1/N,稱為分頻器,可以用來(lái)給自動(dòng)控制中的實(shí)時(shí)檢測(cè),實(shí)時(shí)控制提供時(shí)鐘信號(hào)。方式2頻率發(fā)生器(分頻器)寫入控制字之后,輸出端OUT變22WRCLKGATEOUTCWn=3重新記數(shù)321321重新記數(shù)WRCLKGATEOUTCWn=3重新記數(shù)321321重新記23方式3方波發(fā)生器與2方式基本相同,也具有自動(dòng)裝入時(shí)間常數(shù)(計(jì)數(shù)初值)的功能,不同之處在于:工作在3方式,引腳OUT輸出的不是一個(gè)時(shí)鐘周期的負(fù)脈沖,而是占空比為1:1或近似1:1的方波;當(dāng)計(jì)數(shù)初值為偶數(shù)時(shí),輸出在前一半的計(jì)數(shù)過(guò)程中為高電平,在后一半的計(jì)數(shù)過(guò)程中為低電平。由于3方式輸出的波形是方波,并且具有自動(dòng)重裝計(jì)數(shù)初值的功能,因此,8254一旦計(jì)數(shù)開(kāi)始,就會(huì)在輸出端OUT輸出連續(xù)不斷的方波。方式3方波發(fā)生器與2方式基本相同,也具有自動(dòng)裝入時(shí)間常數(shù)243124GATEOUTCLK

4方式3312431243124WR3124GATEOUTCLK4方式33124312431225方式3當(dāng)計(jì)數(shù)值為奇數(shù)時(shí),在前(N+1)/2計(jì)數(shù)期間,OUT輸出高電平,而后(N-1)/2個(gè)計(jì)數(shù)期間,OUT輸出為低電平。54321543CWn=5WRCLKGATEOUT方式3當(dāng)計(jì)數(shù)值為奇數(shù)時(shí),在前(N+1)/2計(jì)數(shù)期間,OUT輸26方式4軟件觸發(fā)選通信號(hào)控制字寫入8254后,計(jì)數(shù)器輸出OUT為高電平在寫入計(jì)數(shù)初值后,而且GATE為高電平時(shí),開(kāi)始計(jì)數(shù),計(jì)數(shù)到0后輸出一個(gè)時(shí)鐘周期的低電平脈沖。門控信號(hào)GATE=1時(shí)允許計(jì)數(shù),GATE=0禁止計(jì)數(shù)。軟件觸發(fā)選通體現(xiàn)在當(dāng)GATE為高電平時(shí),寫入計(jì)數(shù)初值后開(kāi)始計(jì)數(shù)。D0--D7STB鎖存器8254OUTCPU送數(shù)據(jù)同時(shí)輸出一數(shù)據(jù)選通信號(hào),鎖存數(shù)據(jù)。方式4可編程控制選通信號(hào)發(fā)出時(shí)間。方式4軟件觸發(fā)選通信號(hào)控制字寫入8254后,計(jì)數(shù)器輸出O27GATEOUTCLK31244方式4223331WRGATEOUTCLK31244方式4223331WR28方式4和方式2的區(qū)別:(1)方式2的負(fù)脈沖是在計(jì)數(shù)到1時(shí)產(chǎn)生一個(gè)T的負(fù)脈沖,而方式4是在計(jì)數(shù)到0時(shí)產(chǎn)生一個(gè)T的負(fù)脈沖。

(2)在計(jì)數(shù)過(guò)程中,寫入新的初值時(shí),方式2是從下一次開(kāi)始從新的初值計(jì)數(shù),而方式4是從下一個(gè)脈沖就開(kāi)始以新的值計(jì)數(shù),因?yàn)榉绞?不能重復(fù)計(jì)數(shù)。方式4和方式2的區(qū)別:29方式5硬件觸發(fā)選通信號(hào)工作特點(diǎn)是由GATE上升沿觸發(fā)計(jì)數(shù)器開(kāi)始工作。當(dāng)寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開(kāi)始計(jì)數(shù),而要由門控信號(hào)的上升沿啟動(dòng)計(jì)數(shù)。在計(jì)數(shù)過(guò)程中(或者計(jì)數(shù)結(jié)束后),如果門控再次出現(xiàn)上升沿,計(jì)數(shù)器將從原裝入的計(jì)數(shù)初值重新計(jì)數(shù)。硬件觸發(fā)選通:GATE信號(hào)一般由硬件產(chǎn)生。方式5硬件觸發(fā)選通信號(hào)工作特點(diǎn)是由GATE上升沿觸發(fā)計(jì)數(shù)30GATEOUTCLK31244方式52233311WRGATEOUTCLK31244方式52233311WR31計(jì)數(shù)開(kāi)始的時(shí)刻需要注意當(dāng)控制字寫入8254時(shí),所有的控制邏輯電路自動(dòng)復(fù)位,這時(shí)輸出端OUT進(jìn)入初始狀態(tài)。處理器寫入8254的計(jì)數(shù)初值只是寫入了預(yù)置寄存器,要到時(shí)鐘下降沿,減法計(jì)數(shù)器才開(kāi)始工作。方式0、方式4——GATE信號(hào)為電平觸發(fā)

方式1、方式5——GATE信號(hào)為上升沿觸發(fā)方式2、方式3——兩種皆可計(jì)數(shù)開(kāi)始的時(shí)刻需要注意327.38254的編程8254加電后的工作方式不確定8254必須初始化編程,才能正常工作寫入方式控制字寫入計(jì)數(shù)初值讀取計(jì)數(shù)值8254新增讀回命令7.38254的編程8254加電后的工作方式不確定331方式控制字(A1A0=11)計(jì)數(shù)器讀寫格式工作方式BCDD7D6D5D4D3D2D1D000計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211非法00計(jì)數(shù)器鎖存命令01只讀寫低字節(jié)10只讀寫高字節(jié)11先讀寫低字節(jié)后讀寫高字節(jié)000方式0001方式1X10方式2X11方式3100方式4101方式50二進(jìn)制1BCD碼示例1方式控制字(A1A0=11)計(jì)數(shù)器讀寫格式工作方式BC348254的控制字編程;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控制端口地址依次是40H~43H;設(shè)置其中計(jì)數(shù)器0為方式0,采用二進(jìn)制計(jì)數(shù),先低后高寫入計(jì)數(shù)值moval,30h;方式控制字:30H=00110000Bout43h,al;寫入控制端口:43H8254的控制字編程;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控352寫入計(jì)數(shù)值計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址示例選擇二進(jìn)制時(shí)計(jì)數(shù)值范圍:0000H~FFFFH0000H是最大值,代表65536選擇十進(jìn)制(BCD碼)計(jì)數(shù)值范圍:0000~99990000代表最大值100002寫入計(jì)數(shù)值計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址示例選擇二進(jìn)368254的計(jì)數(shù)初值編程;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控制端口地址依次是40H~43H;設(shè)置計(jì)數(shù)器0采用二進(jìn)制計(jì)數(shù),寫入計(jì)數(shù)初值:1024(400H)movax,1024 ;計(jì)數(shù)初值:1024(=400H) ;寫入計(jì)數(shù)器0地址:40Hout40h,al ;寫入低字節(jié)計(jì)數(shù)初值moval,ahout40h,al ;寫入高字節(jié)計(jì)數(shù)初值8254的計(jì)數(shù)初值編程;某個(gè)8254的計(jì)數(shù)器0、1、2端口和373讀取計(jì)數(shù)值8位數(shù)據(jù)線,讀取16位計(jì)數(shù)值需分兩次計(jì)數(shù)在不斷進(jìn)行,應(yīng)該將當(dāng)前計(jì)數(shù)值先行鎖存,然后讀?。合蚩刂谱諭/O地址:給8254寫入鎖存命令從計(jì)數(shù)器I/O地址:讀取鎖存的計(jì)數(shù)值讀取計(jì)數(shù)值,要注意讀寫格式和計(jì)數(shù)數(shù)制3讀取計(jì)數(shù)值8位數(shù)據(jù)線,讀取16位計(jì)數(shù)值需分兩次讀取計(jì)數(shù)38;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控制端口地址依次是40H~43H,要讀取通道1的計(jì)數(shù)值。;則先對(duì)通道1發(fā)出鎖存命令,然后讀取數(shù)據(jù)。MOVAL,40H;方式控制字:30H=01000000BOUT43H,AL;寫入控制端口:43HINAL,41H;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控制端口地址依次是40397.48254在PC機(jī)上的應(yīng)用A0A1———A0—A1—D0~D7D0~D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2DQCLK+5V接至DMA控制器接至揚(yáng)聲器驅(qū)動(dòng)器PB0PB1IRQ0DRQ0

8254+5V1.19318MHzDACK0BRDIORIOWRDWRCST/CCS7.48254在PC機(jī)上的應(yīng)用A0—D0~D7D0~D740定時(shí)中斷和定時(shí)刷新將計(jì)數(shù)器1作為定時(shí)刷新看如何編寫初始化程序段從閱讀初始化程序段看計(jì)數(shù)器0作為定時(shí)中斷的作用定時(shí)中斷和定時(shí)刷新將計(jì)數(shù)器1作為定時(shí)刷新從閱讀初始化程序段418254初始化(定時(shí)中斷) moval,0011

0110B ;計(jì)數(shù)器0為方式3,采用二進(jìn)制計(jì)數(shù), ;先低后高寫入計(jì)數(shù)值 out43h,al ;寫入方式控制字 moval,0 ;計(jì)數(shù)值為0 out40h,al ;寫入低字節(jié)計(jì)數(shù)值 out40h,al ;寫入高字節(jié)計(jì)數(shù)值8254初始化(定時(shí)中斷) moval,0011011042計(jì)數(shù)器0:定時(shí)中斷計(jì)數(shù)器0:方式3,計(jì)數(shù)值:65536,輸出頻率為1.19318MHz÷65536=18.206Hz的方波門控為常啟狀態(tài),這個(gè)方波信號(hào)不斷產(chǎn)生OUT0端接8259的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í)中斷計(jì)數(shù)器0:方式3,計(jì)數(shù)值:65536,輸出43計(jì)數(shù)器1:定時(shí)刷新門控總為高,選擇方式2或32ms內(nèi)刷新128次,即15.6s刷新一次計(jì)數(shù)初值為18需要重復(fù)不斷提出刷新請(qǐng)求計(jì)數(shù)器1:定時(shí)刷新門控總為高,選擇方式2或32ms內(nèi)刷新12448254初始化(定時(shí)刷新)moval,0101

0100B;計(jì)數(shù)器1為方式2,;采用二進(jìn)制計(jì)數(shù),只寫低8位計(jì)數(shù)值out43h,al ;寫入方式控制字moval,18 ;計(jì)數(shù)初值為18out41h,al ;寫入計(jì)數(shù)值8254初始化(定時(shí)刷新)moval,01010100B45揚(yáng)聲器控制計(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è)定頻率的聲音揚(yáng)聲器控制計(jì)數(shù)器2的輸出控制揚(yáng)聲器的發(fā)聲音調(diào)46揚(yáng)聲器控制(頻率設(shè)置)speaker proc pushax moval,1011

0110B;0b6h out43h,al ;寫入控制字 popax out42h,al ;寫入低8位計(jì)數(shù)值 moval,ah out42h,al ;寫入高8位計(jì)數(shù)值 retspeaker endp揚(yáng)聲器控制(頻率設(shè)置)speaker proc47揚(yáng)聲器控制(揚(yáng)聲器開(kāi))speakon proc pushax inal,61h oral,03h ;D1D0=PB1PB0=11B,其他位不變 out61h,al popax retspeakon endp揚(yáng)聲器控制(揚(yáng)聲器開(kāi))speakon proc48揚(yáng)聲器控制(揚(yáng)聲器關(guān))speakoff proc pushax inal,61h andal,0fch ;D1D0=PB1PB0=00B,其他位不變 out61h,al popax retspeakoff endp揚(yáng)聲器控制(揚(yáng)聲器關(guān))speakoff proc49揚(yáng)聲器控制(主程序) ;數(shù)據(jù)段freq dw1193180/600 ;代碼段 movax,freq callspeaker ;設(shè)置揚(yáng)聲器音調(diào) callspeakon ;打開(kāi)揚(yáng)聲器聲音 movah,1 ;等待按鍵 int21h callspeakoff ;關(guān)閉揚(yáng)聲器聲音揚(yáng)聲器控制(主程序) ;數(shù)據(jù)段50在一個(gè)實(shí)際的數(shù)據(jù)采集系統(tǒng)中,要求5s采一個(gè)數(shù),現(xiàn)場(chǎng)的主時(shí)鐘的振蕩頻率為2.5MHz。分析:選擇工作方式3(方波發(fā)生器),連續(xù)工作對(duì)2.5M的脈沖分頻。時(shí)鐘周期Tck=l/2.5×106

計(jì)數(shù)初值n=T/Tck=5÷(l/2.5×106)=1.25×107一個(gè)計(jì)數(shù)器最多的分頻次數(shù)是65536,是不夠用的。例在一個(gè)實(shí)際的數(shù)據(jù)采集系統(tǒng)中,要求5s采一個(gè)數(shù),現(xiàn)場(chǎng)的主時(shí)鐘的51采用兩級(jí)計(jì)數(shù)器,用計(jì)數(shù)器0的輸出OUT0作為計(jì)數(shù)器1的輸入CLK1。計(jì)數(shù)器0的計(jì)數(shù)值為50000(C350H);計(jì)數(shù)器1的250(FAH)。則有:總的計(jì)數(shù)值=50000×250=1.25×107計(jì)數(shù)器0:方式3(方波發(fā)生器)控制宇36H(0011

0110B

)計(jì)數(shù)器1:方式2(分頻器)控制字54H)(0101

0100B

)設(shè):控制口地址:CRPT;0號(hào)計(jì)數(shù)器:PRT0;1號(hào)計(jì)數(shù)器:PRT1采用兩級(jí)計(jì)數(shù)器,用計(jì)數(shù)器0的輸出OUT0作為計(jì)數(shù)器1的輸入C52實(shí)現(xiàn)上述過(guò)程的程序如下:MOVAL,36HMOVDX,CRPTOUTDX,AL;0號(hào)計(jì)數(shù)器方式3MOVAL,50HMOVDX,PRT0OUTDX,AL;計(jì)數(shù)值低8位MOVAL,C3HOUTDX,AL;計(jì)數(shù)值高8位MOVAL,54HMOVDX,CRPTOUTDX,AL;1號(hào)計(jì)數(shù)器方式2MOVAL,F(xiàn)AHMOVDX,PRT1OUTDX,AL;計(jì)數(shù)值低8位8253CLK0GATE0OUT0CLK1GATE1OUT12.5MHZ+5V+5V5S脈沖實(shí)現(xiàn)上述過(guò)程的程序如下:CLK0GATE0OUT0CLK1G53例:某火災(zāi)報(bào)警系統(tǒng)的部分接口電路如圖所示。該系統(tǒng)具有溫度和煙霧濃度超限報(bào)警和自動(dòng)滅火功能。當(dāng)溫度或煙霧濃度超限時(shí),進(jìn)行光報(bào)警;兩者同時(shí)超限時(shí),進(jìn)行光、聲報(bào)警,并開(kāi)啟電磁閥,進(jìn)行噴淋滅火。按鍵A為手動(dòng)報(bào)警按鈕,按鍵B為解除報(bào)警按鈕。半導(dǎo)體溫度傳感器的溫度測(cè)量范圍為0℃~127℃,對(duì)應(yīng)輸出電壓為0V~5V。ADC0809輸入電壓范圍為0V~5V。開(kāi)關(guān)式集成煙霧傳感器報(bào)警時(shí)輸出高電平,正常工作時(shí)輸出低電平。8253的通道0、通道1、通道2均工作于方式3(方波發(fā)生器),按BCD碼計(jì)數(shù)。揚(yáng)聲器的報(bào)警聲音頻率為2kHz。8253、8255的方式控制字及8255的置位/復(fù)位控制字格式如圖所示。例:某火災(zāi)報(bào)警系統(tǒng)的部分接口電路如圖所示。該系統(tǒng)具有溫度和54GATE0A0CLK0A1OUT0RDCLK1WR8253

GATE1CSGATE2OUT1D7~D0CLK2OUT2IOWIORA1A0PA7~PA0D7~D0PB0

PB1CSPB2WRPC0RDA1PC4A0

8255PC1PC5PC6PC7D7~D0

IN0ADDAADDBADDCEOC

IN7OESTARTALE

ADC0809+5V煙霧傳感器驅(qū)動(dòng)電磁閥噴淋頭溫度傳感器D7~D08259CSA0驅(qū)動(dòng)揚(yáng)聲器驅(qū)動(dòng)1MHzD7~D0D7~D0發(fā)光二極管40H~43H80H~83HD7~D020H~21HA0+5V+5V按鍵B解除警報(bào)按鍵A手動(dòng)報(bào)警IR7IR1IR0GATE0IOWPA558255的方式控制字格式如下:8255的方式控制字格式如下:568255端口C按位置0/置1控制字作用:指定PC口的某一位(某一個(gè)引腳)輸出高平或低電平。注意:C口控制字雖然是對(duì)端口C操作,但應(yīng)寫入到控制口地址,而不是寫入到C數(shù)據(jù)口0D6D5D4D3D2D1D0特征位

不用(寫0)位選擇000=C口0位001=C口1位…111=C口7位1=置位(高電平)0=復(fù)位(低電平)8255端口C按位置0/置1控制字作用:指定PC口的某一位578253的方式控制字(A1A0=11)計(jì)數(shù)器讀寫格式工作方式BCDD7D6D5D4D3D2D1D000計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211非法00計(jì)數(shù)器鎖存命令01只讀寫低字節(jié)10只讀寫高字節(jié)11先讀寫低字節(jié)后讀寫高字節(jié)000方式0001方式1X10方式2X11方式3100方式4101方式50二進(jìn)制1BCD碼示例8253的方式控制字(A1A0=11)計(jì)數(shù)器讀寫格式工作方式58部分初始化、主程序及中斷服務(wù)子程序如下: CODE SEGMENT ASSUMEDS:DATA,CS:CODE START:┊ ;8259初始化 MOVAL,13H;初始化8259ICW1 OUT20H,AL MOVAL,

;送中斷類型碼基值 OUT21H,AL MOVAL,0DH OUT21H,AL ;8255初始化 MOVAL,

;置8255工作方式 OUT83H,AL MOVAL,00H;C口初始化 OUT82H,AL91H

08H部分初始化、主程序及中斷服務(wù)子程序如下:91H08H59 ;8253初始化 MOVAL,37H;置8253通道0方式控制字 OUT43H,AL MOVAL,00H;置8253通道0計(jì)數(shù)初值 OUT40H,AL MOVAL,10H OUT40H,AL MOVAL,

;置8253通道1方式控制字 OUT43H,AL MOVAL,00H;置8253通道1計(jì)數(shù)初值 OUT41H,AL MOVAL,10H OUT41H,AL MOVAL,0B7H;置8253通道2方式控制字 OUT43H,AL

77H或7FH

;8253初始化77H或7FH60 MOVAL,

;置8253通道2計(jì)數(shù)初值 OUT42H,AL MOVAL,

; OUT42H,AL ;中斷設(shè)置 MOVAH,25H ;設(shè)置中斷向量 MOVAL,08H;中斷類型號(hào)為入口參數(shù) MOVBX,

;DS:DX指向4字節(jié)地址 MOVDS,BX MOVDX,

; INT21H MOVAH,25H MOVAL,

; MOVBX,SEGKEYAINT MOVDS,BX

00H

05H

SEGKEYBINT

OFFSETKEYBINT

09H

MOVAL,;置82561 MOVDX,OFFSETKEYAINT INT21H STI ;數(shù)據(jù)采集 MOVAL,00H;選ADC0809模擬量輸入通道號(hào) OUT81H,ALLOP: MOVAL,

;置PC4=1,鎖存模擬量通道選擇號(hào) OUT83H,AL NOP MOVAL,08H;置PC4=0,啟動(dòng)A/D轉(zhuǎn)換 OUT83H,ALLOP1:INAL,82H;讀8255C口,查詢EOC TESTAL,01H JZLOP1 INAL,80H;讀A/D轉(zhuǎn)換結(jié)果 CMPAL,0A0H;判斷是否高于上限

09H MOVDX,OFFSETKEYAINT09H62 JAABOVE INAL,82H;判斷煙霧傳感器是否報(bào)警 TESTAL,02H JNZBJ MOVAL,0EH OUT83H,AL JMPLOPABOVE:INAL,82H TESTAL,02H JZBJ MOVAL,0F0H;啟動(dòng)報(bào)警及滅火功能 OUT82H,AL JMPLOPBJ: MOVAL,0FH;光報(bào)警 OUT83H,AL JMPLOP JAABOVE63 ;中斷服務(wù)KEYAINTPROCFAR;按鍵A中斷服務(wù)子程序 PUSHAX MOVAL,0F0H OUT82H,AL MOVAL,20H;給8259發(fā)中斷結(jié)束命令 OUT20H,AL POPAX IRETKEYAINTENDP ;中斷服務(wù)64 ;中斷服務(wù)KEYBINTPROCFAR;按鍵B中斷服務(wù)子程序 PUSHAX MOVAL,

; OUT82H,AL MOVAL,20H OUT20H,AL POPAX IRETKEYBINTENDPCODE ENDS ENDSTART

0XH或1XH ;中斷服務(wù)0XH或1XH65請(qǐng)回答下列問(wèn)題:1、程序空白處填空。2、超限報(bào)警溫度是

℃。3、報(bào)警時(shí),發(fā)光二極管顯示器的閃爍頻率是

Hz4、僅溫度超限時(shí),報(bào)警燈閃爍報(bào)警,若此時(shí)報(bào)警條件解除,報(bào)警燈將(繼續(xù)、停止)

報(bào)警。5、火災(zāi)發(fā)生后,光、聲報(bào)警,滅火系統(tǒng)啟動(dòng),若此時(shí)報(bào)警條件解除,揚(yáng)聲器將(繼續(xù)、停止)

報(bào)警。6、火災(zāi)發(fā)生后,光、聲報(bào)警,滅火系統(tǒng)啟動(dòng),若報(bào)警條件未解除,按解除報(bào)警鍵B,滅火系統(tǒng)將(繼續(xù)、停止)

工作。7、報(bào)警條件不成立,此時(shí)按手動(dòng)報(bào)警鍵A,滅火系統(tǒng)將(一直、工作一下馬上停止)

工作。 801停止繼續(xù)繼續(xù)一直請(qǐng)回答下列問(wèn)題:801停止繼續(xù)繼續(xù)一直668254有3個(gè)獨(dú)立的16位計(jì)數(shù)器通道,每個(gè)計(jì)數(shù)器有6種工作方式,按二進(jìn)制或十進(jìn)制(BCD碼)計(jì)數(shù)。每個(gè)計(jì)數(shù)器在開(kāi)始工作前必須預(yù)制時(shí)間常數(shù)每個(gè)計(jì)數(shù)器在工作過(guò)程中的當(dāng)前計(jì)數(shù)值可被CPU讀出。(注:時(shí)間常數(shù)也可在計(jì)數(shù)過(guò)程中更改)

8254是一種可編程的芯片,可通過(guò)軟件來(lái)設(shè)置芯片的工作方式。小結(jié)8254的初始化編程注意的是先寫控制字(控制字寫到方式控制字中),后寫時(shí)間常數(shù)(時(shí)間常數(shù)寫到相應(yīng)的通道地址中),通道的順序無(wú)所謂的。反正當(dāng)三個(gè)獨(dú)立的器件使用。8254有3個(gè)獨(dú)立的16位計(jì)數(shù)器通道,每個(gè)計(jì)數(shù)器671、8254有幾個(gè)通道?各通道有幾個(gè)工作方式?各種工作方式的主要特點(diǎn)是什么?2、8254的初始化編程包括哪幾項(xiàng)內(nèi)容?他們?cè)陧樞蛏嫌袩o(wú)要求?3、若8254的4個(gè)通道地址分別為90H、92H、94H、96H,且已知通道0的時(shí)鐘頻率為2.5MHz。(1)請(qǐng)問(wèn)通道0的最大定時(shí)時(shí)間是多長(zhǎng)?(2)請(qǐng)使用74LS138譯碼器完成8254端口地址的譯碼(可附加與或非門)(3)若要使用通道0周期性地產(chǎn)生5ms的定時(shí)中斷(方式2),試編寫初始化程序段。(4)若要產(chǎn)生1s的定時(shí)中斷,說(shuō)明實(shí)現(xiàn)方法。作業(yè)1、8254有幾個(gè)通道?各通道有幾個(gè)工作方式68最新可編程接口芯片8254及應(yīng)用課件69可編程接口芯片8254及應(yīng)用可編程接口芯片8254及應(yīng)用707.1定時(shí)器和計(jì)數(shù)器概述定時(shí)控制在微機(jī)系統(tǒng)中極為重要[定時(shí)器]由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成,通過(guò)記錄高精度晶振脈沖信號(hào)的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間隔。定時(shí)器強(qiáng)調(diào)的是精確的時(shí)間。7.1定時(shí)器和計(jì)數(shù)器概述定時(shí)控制在微機(jī)系統(tǒng)中極為重要71最新可編程接口芯片8254及應(yīng)用課件72最新可編程接口芯片8254及應(yīng)用課件73最新可編程接口芯片8254及應(yīng)用課件74最新可編程接口芯片8254及應(yīng)用課件75最新可編程接口芯片8254及應(yīng)用課件76最新可編程接口芯片8254及應(yīng)用課件771計(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)1計(jì)數(shù)器的3個(gè)引腳CLK時(shí)鐘輸入信號(hào)——在計(jì)數(shù)過(guò)程中,此引782與處理器接口D0~D7數(shù)據(jù)線 A0~A1地址線RD讀信號(hào) WR寫信號(hào)CS片選信號(hào)2與處理器接口D0~D7數(shù)據(jù)線 A0~A179由控制字格式中SC1,SC0位決定屬于哪個(gè)計(jì)數(shù)器選中控制寄存器10110讀輸出鎖存器OL當(dāng)前值01對(duì)計(jì)數(shù)器寄存器CR送初值選中計(jì)數(shù)器2#10010讀輸出鎖存器OL當(dāng)前值01對(duì)計(jì)數(shù)器寄存器CR送初值選中計(jì)數(shù)器1#10100讀輸出鎖存器OL當(dāng)前值01對(duì)計(jì)數(shù)器寄存器CR送初值選中計(jì)數(shù)器0#10000功能A0A1CSWRRD由控制字格式中SC1,SC0位決定屬于哪個(gè)計(jì)數(shù)器選中控制寄存808254的工作方式8254有6種工作方式,由方式控制字確定熟悉每種工作方式的特點(diǎn)才能根據(jù)實(shí)際應(yīng)用問(wèn)題,選擇正確的工作方式不同工作方式的區(qū)分點(diǎn):輸出波形計(jì)數(shù)過(guò)程中門控信號(hào)的影響啟動(dòng)觸發(fā)方式8254的工作方式8254有6種工作方式,由方式控制字確定81每種工作方式的過(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é)束每種工作方式的過(guò)程類似:82方式0計(jì)數(shù)結(jié)束中斷(一次有效)寫入控制字之后,相應(yīng)的輸出信號(hào)OUT就開(kāi)始變成低電平。計(jì)數(shù)器寫完計(jì)數(shù)值時(shí),開(kāi)始計(jì)數(shù)。當(dāng)計(jì)數(shù)器減到零時(shí),OUT立即輸出高電平。方式0計(jì)數(shù)結(jié)束中斷(一次有效)寫入控制字之后,相應(yīng)的輸出83①②⑤④⑥GATEOUTCLK

031244方式0WR①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過(guò)程⑥計(jì)數(shù)結(jié)束①②⑤④⑥GATEOUTCLK031244方式0WR①②④84方式0門控信號(hào)GATE位高電平時(shí),計(jì)數(shù)器工作;為低電平時(shí),計(jì)數(shù)器停止工作,計(jì)數(shù)值保持不變。在計(jì)數(shù)器工作期間,如果重新寫入新的計(jì)數(shù)值,計(jì)數(shù)器將按新寫入的計(jì)數(shù)值重新工作。方式0門控信號(hào)GATE位高電平時(shí),計(jì)數(shù)器工作;為低電平時(shí),計(jì)858254的方式0時(shí)序波形n=5CLKOUTWR①543210n=5WRGATEOUT②54321044WROUT③n=998n=4432108254的方式0時(shí)序波形n=5CLKOUTWR①54321086方式1可編程單穩(wěn)脈沖寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開(kāi)始工作;等待到GATE上升沿,才開(kāi)始工作,使輸出OUT變成低電平;直到計(jì)數(shù)器值減到零后,輸出才變高電平。計(jì)數(shù)到0,初值自動(dòng)重置,但要等到下一個(gè)GATE上升沿觸發(fā)才重新計(jì)數(shù)。[單穩(wěn)態(tài)觸發(fā)器]只有一個(gè)穩(wěn)態(tài)(高電平),一個(gè)觸發(fā)脈沖使觸發(fā)器進(jìn)入暫穩(wěn)態(tài)(低電平),經(jīng)過(guò)一段可調(diào)的時(shí)間間隔后,又回到穩(wěn)態(tài)。所以工作于方式1時(shí)相當(dāng)于一個(gè)可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器。方式1可編程單穩(wěn)脈沖寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開(kāi)始工87①②⑤④⑥①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值③③硬件啟動(dòng)④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過(guò)程⑥計(jì)數(shù)結(jié)束GATEOUTCLK

031244方式1WR①②⑤④⑥①②③③④⑤⑥GATEOUTCLK031244方88方式1在計(jì)數(shù)器工作期間,當(dāng)GATE又出現(xiàn)一個(gè)上升沿時(shí),計(jì)數(shù)器重新裝入原計(jì)數(shù)初值并重新開(kāi)始計(jì)數(shù)。如果工作期間對(duì)計(jì)數(shù)器寫入新的計(jì)數(shù)初值,則要等到當(dāng)前的計(jì)數(shù)值計(jì)滿回零且門控信號(hào)再次出現(xiàn)上升沿后,才按新寫入的計(jì)數(shù)初值開(kāi)始工作。方式1在計(jì)數(shù)器工作期間,當(dāng)GATE又出現(xiàn)一個(gè)上升沿時(shí),計(jì)數(shù)器898254的1方式時(shí)序波形OUT②

4321GATE40n=4CLKGATEWROUT①

43210n=3WR③n=2OUT

3210210GATE8254的1方式時(shí)序波形OUT②4321GATE40n=490方式2頻率發(fā)生器(分頻器)寫入控制字之后,輸出端OUT變?yōu)楦唠娖?。?jì)數(shù)器寫完計(jì)數(shù)值時(shí),開(kāi)始計(jì)數(shù)。當(dāng)計(jì)數(shù)器減到1時(shí),OUT變?yōu)榈碗娖?。完成一次?jì)數(shù)過(guò)程,輸出端OUT又變?yōu)楦唠娖?,開(kāi)始一個(gè)新的計(jì)數(shù)過(guò)程,周而復(fù)始。對(duì)于計(jì)數(shù)初值N,輸出端OUT輸出的信號(hào)的周期是計(jì)數(shù)值N×?xí)r鐘CLK的周期T,N-1個(gè)時(shí)鐘周期為高,1個(gè)時(shí)鐘周期為低,為負(fù)脈沖。輸出負(fù)脈沖的周期為時(shí)鐘周期的N倍,頻率是1/N,稱為分頻器,可以用來(lái)給自動(dòng)控制中的實(shí)時(shí)檢測(cè),實(shí)時(shí)控制提供時(shí)鐘信號(hào)。方式2頻率發(fā)生器(分頻器)寫入控制字之后,輸出端OUT變91WRCLKGATEOUTCWn=3重新記數(shù)321321重新記數(shù)WRCLKGATEOUTCWn=3重新記數(shù)321321重新記92方式3方波發(fā)生器與2方式基本相同,也具有自動(dòng)裝入時(shí)間常數(shù)(計(jì)數(shù)初值)的功能,不同之處在于:工作在3方式,引腳OUT輸出的不是一個(gè)時(shí)鐘周期的負(fù)脈沖,而是占空比為1:1或近似1:1的方波;當(dāng)計(jì)數(shù)初值為偶數(shù)時(shí),輸出在前一半的計(jì)數(shù)過(guò)程中為高電平,在后一半的計(jì)數(shù)過(guò)程中為低電平。由于3方式輸出的波形是方波,并且具有自動(dòng)重裝計(jì)數(shù)初值的功能,因此,8254一旦計(jì)數(shù)開(kāi)始,就會(huì)在輸出端OUT輸出連續(xù)不斷的方波。方式3方波發(fā)生器與2方式基本相同,也具有自動(dòng)裝入時(shí)間常數(shù)933124GATEOUTCLK

4方式3312431243124WR3124GATEOUTCLK4方式33124312431294方式3當(dāng)計(jì)數(shù)值為奇數(shù)時(shí),在前(N+1)/2計(jì)數(shù)期間,OUT輸出高電平,而后(N-1)/2個(gè)計(jì)數(shù)期間,OUT輸出為低電平。54321543CWn=5WRCLKGATEOUT方式3當(dāng)計(jì)數(shù)值為奇數(shù)時(shí),在前(N+1)/2計(jì)數(shù)期間,OUT輸95方式4軟件觸發(fā)選通信號(hào)控制字寫入8254后,計(jì)數(shù)器輸出OUT為高電平在寫入計(jì)數(shù)初值后,而且GATE為高電平時(shí),開(kāi)始計(jì)數(shù),計(jì)數(shù)到0后輸出一個(gè)時(shí)鐘周期的低電平脈沖。門控信號(hào)GATE=1時(shí)允許計(jì)數(shù),GATE=0禁止計(jì)數(shù)。軟件觸發(fā)選通體現(xiàn)在當(dāng)GATE為高電平時(shí),寫入計(jì)數(shù)初值后開(kāi)始計(jì)數(shù)。D0--D7STB鎖存器8254OUTCPU送數(shù)據(jù)同時(shí)輸出一數(shù)據(jù)選通信號(hào),鎖存數(shù)據(jù)。方式4可編程控制選通信號(hào)發(fā)出時(shí)間。方式4軟件觸發(fā)選通信號(hào)控制字寫入8254后,計(jì)數(shù)器輸出O96GATEOUTCLK31244方式4223331WRGATEOUTCLK31244方式4223331WR97方式4和方式2的區(qū)別:(1)方式2的負(fù)脈沖是在計(jì)數(shù)到1時(shí)產(chǎn)生一個(gè)T的負(fù)脈沖,而方式4是在計(jì)數(shù)到0時(shí)產(chǎn)生一個(gè)T的負(fù)脈沖。

(2)在計(jì)數(shù)過(guò)程中,寫入新的初值時(shí),方式2是從下一次開(kāi)始從新的初值計(jì)數(shù),而方式4是從下一個(gè)脈沖就開(kāi)始以新的值計(jì)數(shù),因?yàn)榉绞?不能重復(fù)計(jì)數(shù)。方式4和方式2的區(qū)別:98方式5硬件觸發(fā)選通信號(hào)工作特點(diǎn)是由GATE上升沿觸發(fā)計(jì)數(shù)器開(kāi)始工作。當(dāng)寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開(kāi)始計(jì)數(shù),而要由門控信號(hào)的上升沿啟動(dòng)計(jì)數(shù)。在計(jì)數(shù)過(guò)程中(或者計(jì)數(shù)結(jié)束后),如果門控再次出現(xiàn)上升沿,計(jì)數(shù)器將從原裝入的計(jì)數(shù)初值重新計(jì)數(shù)。硬件觸發(fā)選通:GATE信號(hào)一般由硬件產(chǎn)生。方式5硬件觸發(fā)選通信號(hào)工作特點(diǎn)是由GATE上升沿觸發(fā)計(jì)數(shù)99GATEOUTCLK31244方式52233311WRGATEOUTCLK31244方式52233311WR100計(jì)數(shù)開(kāi)始的時(shí)刻需要注意當(dāng)控制字寫入8254時(shí),所有的控制邏輯電路自動(dòng)復(fù)位,這時(shí)輸出端OUT進(jìn)入初始狀態(tài)。處理器寫入8254的計(jì)數(shù)初值只是寫入了預(yù)置寄存器,要到時(shí)鐘下降沿,減法計(jì)數(shù)器才開(kāi)始工作。方式0、方式4——GATE信號(hào)為電平觸發(fā)

方式1、方式5——GATE信號(hào)為上升沿觸發(fā)方式2、方式3——兩種皆可計(jì)數(shù)開(kāi)始的時(shí)刻需要注意1017.38254的編程8254加電后的工作方式不確定8254必須初始化編程,才能正常工作寫入方式控制字寫入計(jì)數(shù)初值讀取計(jì)數(shù)值8254新增讀回命令7.38254的編程8254加電后的工作方式不確定1021方式控制字(A1A0=11)計(jì)數(shù)器讀寫格式工作方式BCDD7D6D5D4D3D2D1D000計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211非法00計(jì)數(shù)器鎖存命令01只讀寫低字節(jié)10只讀寫高字節(jié)11先讀寫低字節(jié)后讀寫高字節(jié)000方式0001方式1X10方式2X11方式3100方式4101方式50二進(jìn)制1BCD碼示例1方式控制字(A1A0=11)計(jì)數(shù)器讀寫格式工作方式BC1038254的控制字編程;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控制端口地址依次是40H~43H;設(shè)置其中計(jì)數(shù)器0為方式0,采用二進(jìn)制計(jì)數(shù),先低后高寫入計(jì)數(shù)值moval,30h;方式控制字:30H=00110000Bout43h,al;寫入控制端口:43H8254的控制字編程;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控1042寫入計(jì)數(shù)值計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址示例選擇二進(jìn)制時(shí)計(jì)數(shù)值范圍:0000H~FFFFH0000H是最大值,代表65536選擇十進(jìn)制(BCD碼)計(jì)數(shù)值范圍:0000~99990000代表最大值100002寫入計(jì)數(shù)值計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址示例選擇二進(jìn)1058254的計(jì)數(shù)初值編程;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控制端口地址依次是40H~43H;設(shè)置計(jì)數(shù)器0采用二進(jìn)制計(jì)數(shù),寫入計(jì)數(shù)初值:1024(400H)movax,1024 ;計(jì)數(shù)初值:1024(=400H) ;寫入計(jì)數(shù)器0地址:40Hout40h,al ;寫入低字節(jié)計(jì)數(shù)初值moval,ahout40h,al ;寫入高字節(jié)計(jì)數(shù)初值8254的計(jì)數(shù)初值編程;某個(gè)8254的計(jì)數(shù)器0、1、2端口和1063讀取計(jì)數(shù)值8位數(shù)據(jù)線,讀取16位計(jì)數(shù)值需分兩次計(jì)數(shù)在不斷進(jìn)行,應(yīng)該將當(dāng)前計(jì)數(shù)值先行鎖存,然后讀取:向控制字I/O地址:給8254寫入鎖存命令從計(jì)數(shù)器I/O地址:讀取鎖存的計(jì)數(shù)值讀取計(jì)數(shù)值,要注意讀寫格式和計(jì)數(shù)數(shù)制3讀取計(jì)數(shù)值8位數(shù)據(jù)線,讀取16位計(jì)數(shù)值需分兩次讀取計(jì)數(shù)107;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控制端口地址依次是40H~43H,要讀取通道1的計(jì)數(shù)值。;則先對(duì)通道1發(fā)出鎖存命令,然后讀取數(shù)據(jù)。MOVAL,40H;方式控制字:30H=01000000BOUT43H,AL;寫入控制端口:43HINAL,41H;某個(gè)8254的計(jì)數(shù)器0、1、2端口和控制端口地址依次是401087.48254在PC機(jī)上的應(yīng)用A0A1———A0—A1—D0~D7D0~D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2DQCLK+5V接至DMA控制器接至揚(yáng)聲器驅(qū)動(dòng)器PB0PB1IRQ0DRQ0

8254+5V1.19318MHzDACK0BRDIORIOWRDWRCST/CCS7.48254在PC機(jī)上的應(yīng)用A0—D0~D7D0~D7109定時(shí)中斷和定時(shí)刷新將計(jì)數(shù)器1作為定時(shí)刷新看如何編寫初始化程序段從閱讀初始化程序段看計(jì)數(shù)器0作為定時(shí)中斷的作用定時(shí)中斷和定時(shí)刷新將計(jì)數(shù)器1作為定時(shí)刷新從閱讀初始化程序段1108254初始化(定時(shí)中斷) moval,0011

0110B ;計(jì)數(shù)器0為方式3,采用二進(jìn)制計(jì)數(shù), ;先低后高寫入計(jì)數(shù)值 out43h,al ;寫入方式控制字 moval,0 ;計(jì)數(shù)值為0 out40h,al ;寫入低字節(jié)計(jì)數(shù)值 out40h,al ;寫入高字節(jié)計(jì)數(shù)值8254初始化(定時(shí)中斷) moval,00110110111計(jì)數(shù)器0:定時(shí)中斷計(jì)數(shù)器0:方式3,計(jì)數(shù)值:65536,輸出頻率為1.19318MHz÷65536=18.206Hz的方波門控為常啟狀態(tài),這個(gè)方波信號(hào)不斷產(chǎn)生OUT0端接8259的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í)中斷計(jì)數(shù)器0:方式3,計(jì)數(shù)值:65536,輸出112計(jì)數(shù)器1:定時(shí)刷新門控總為高,選擇方式2或32ms內(nèi)刷新128次,即15.6s刷新一次計(jì)數(shù)初值為18需要重復(fù)不斷提出刷新請(qǐng)求計(jì)數(shù)器1:定時(shí)刷新門控總為高,選擇方式2或32ms內(nèi)刷新121138254初始化(定時(shí)刷新)moval,0101

0100B;計(jì)數(shù)器1為方式2,;采用二進(jìn)制計(jì)數(shù),只寫低8位計(jì)數(shù)值out43h,al ;寫入方式控制字moval,18 ;計(jì)數(shù)初值為18out41h,al ;寫入計(jì)數(shù)值8254初始化(定時(shí)刷新)moval,01010100B114揚(yáng)聲器控制計(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è)定頻率的聲音揚(yáng)聲器控制計(jì)數(shù)器2的輸出控制揚(yáng)聲器的發(fā)聲音調(diào)115揚(yáng)聲器控制(頻率設(shè)置)speaker proc pushax moval,1011

0110B;0b6h out43h,al ;寫入控制字 popax out42h,al ;寫入低8位計(jì)數(shù)值 moval,ah out42h,al ;寫入高8位計(jì)數(shù)值 retspeaker endp揚(yáng)聲器控制(頻率設(shè)置)speaker proc116揚(yáng)聲器控制(揚(yáng)聲器開(kāi))speakon proc pushax inal,61h oral,03h ;D1D0=PB1PB0=11B,其他位不變 out61h,al popax retspeakon endp揚(yáng)聲器控制(揚(yáng)聲器開(kāi))speakon proc117揚(yáng)聲器控制(揚(yáng)聲器關(guān))speakoff proc pushax inal,61h andal,0fch ;D1D0=PB1PB0=00B,其他位不變 out61h,al popax retspeakoff endp揚(yáng)聲器控制(揚(yáng)聲器關(guān))speakoff proc118揚(yáng)聲器控制(主程序) ;數(shù)據(jù)段freq dw1193180/600 ;代碼段 movax,freq callspeaker ;設(shè)置揚(yáng)聲器音調(diào) callspeakon ;打開(kāi)揚(yáng)聲器聲音 movah,1 ;等待按鍵 int21h callspeakoff ;關(guān)閉揚(yáng)聲器聲音揚(yáng)聲器控制(主程序) ;數(shù)據(jù)段119在一個(gè)實(shí)際的數(shù)據(jù)采集系統(tǒng)中,要求5s采一個(gè)數(shù),現(xiàn)場(chǎng)的主時(shí)鐘的振蕩頻率為2.5MHz。分析:選擇工作方式3(方波發(fā)生器),連續(xù)工作對(duì)2.5M的脈沖分頻。時(shí)鐘周期Tck=l/2.5×106

計(jì)數(shù)初值n=T/Tck=5÷(l/2.5×106)=1.25×107一個(gè)計(jì)數(shù)器最多的分頻次數(shù)是65536,是不夠用的。例在一個(gè)實(shí)際的數(shù)據(jù)采集系統(tǒng)中,要求5s采一個(gè)數(shù),現(xiàn)場(chǎng)的主時(shí)鐘的120采用兩級(jí)計(jì)數(shù)器,用計(jì)數(shù)器0的輸出OUT0作為計(jì)數(shù)器1的輸入CLK1。計(jì)數(shù)器0的計(jì)數(shù)值為50000(C350H);計(jì)數(shù)器1的250(FAH)。則有:總的計(jì)數(shù)值=50000×250=1.25×107計(jì)數(shù)器0:方式3(方波發(fā)生器)控制宇36H(0011

0110B

)計(jì)數(shù)器1:方式2(分頻器)控制字54H)(0101

0100B

)設(shè):控制口地址:CRPT;0號(hào)計(jì)數(shù)器:PRT0;1號(hào)計(jì)數(shù)器:PRT1采用兩級(jí)計(jì)數(shù)器,用計(jì)數(shù)器0的輸出OUT0作為計(jì)數(shù)器1的輸入C121實(shí)現(xiàn)上述過(guò)程的程序如下:MOVAL,36HMOVDX,CRPTOUTDX,AL;0號(hào)計(jì)數(shù)器方式3MOVAL,50HMOVDX,PRT0OUTDX,AL;計(jì)數(shù)值低8位MOVAL,C3HOUTDX,AL;計(jì)數(shù)值高8位MOVAL,54HMOVDX,CRPTOUTDX,AL;1號(hào)計(jì)數(shù)器方式2MOVAL,F(xiàn)AHMOVDX,PRT1OUTDX,AL;計(jì)數(shù)值低8位8253CLK0GATE0OUT0CLK1GATE1OUT12.5MHZ+5V+5V5S脈沖實(shí)現(xiàn)上述過(guò)程的程序如下:CLK0GATE0OUT0CLK1G122例:某火災(zāi)報(bào)警系統(tǒng)的部分接口電路如圖所示。該系統(tǒng)具有溫度和煙霧濃度超限報(bào)警和自動(dòng)滅火功能。當(dāng)溫度或煙霧濃度超限時(shí),進(jìn)行光報(bào)警;兩者同時(shí)超限時(shí),進(jìn)行光、聲報(bào)警,并開(kāi)啟電磁閥,進(jìn)行噴淋滅火。按鍵A為手動(dòng)報(bào)警按鈕,按鍵B為解除報(bào)警按鈕。半導(dǎo)體溫度傳感器的溫度測(cè)量范圍為0℃~127℃,對(duì)應(yīng)輸出電壓為0V~5V。ADC0809輸入電壓范圍為0V~5V。開(kāi)關(guān)式集成煙霧傳感器報(bào)警時(shí)輸出高電平,正常工作時(shí)輸出低電平。8253的通道0、通道1、通道2均工作于方式3(方波發(fā)生器),按BCD碼計(jì)數(shù)。揚(yáng)聲器的報(bào)警聲音頻率為2kHz。8253、8255的方式控制字及8255的置位/復(fù)位控制字格式如圖所示。例:某火災(zāi)報(bào)警系統(tǒng)的部分接口電路如圖所示。該系統(tǒng)具有溫度和123GATE0A0CLK0A1OUT0RDCLK1WR8253

GATE1CSGATE2OUT1D7~D0CLK2OUT2IOWIORA1A0PA7~PA0D7~D0PB0

PB1CSPB2WRPC0RDA1PC4A0

8255PC1PC5PC6PC7D7~D0

IN0ADDAADDBADDCEOC

IN7OESTARTALE

ADC0809+5V煙霧傳感器驅(qū)動(dòng)電磁閥噴淋頭溫度傳感器D7~D08259CSA0驅(qū)動(dòng)揚(yáng)聲器驅(qū)動(dòng)1MHzD7~D0D7~D0發(fā)光二極管40H~43H80H~83HD7~D020H~21HA0+5V+5V按鍵B解除警報(bào)按鍵A手動(dòng)報(bào)警IR7IR1IR0GATE0IOWPA1248255的方式控制字格式如下:8255的方式控制字格式如下:1258255端口C按位置0/置1控制字作用:指定PC口的某一位(某一個(gè)引腳)輸出高平或低電平。注意:C口控制字雖然是對(duì)端口C操作,但應(yīng)寫入到控制口地址,而不是寫入到C數(shù)據(jù)口0D6D5D4D3D2D1D0特征位

不用(寫0)位選擇000=C口0位001=C口1位…111=C口7位1=置位(高電平)0=復(fù)位(低電平)8255端口C按位置0/置1控制字作用:指定PC口的某一位1268253的方式控制字(A1A0=11)計(jì)數(shù)器讀寫格式工作方式BCDD7D6D5D4D3D2D1D000計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211非法00計(jì)數(shù)器鎖存命令01只讀寫低字節(jié)10只讀寫高字節(jié)11先讀寫低字節(jié)后讀寫高字節(jié)000方式0001方式1X10方式2X11方式3100方式4101方式50二進(jìn)制1BCD碼示例8253的方式控制字(A1A0=11)計(jì)數(shù)器讀寫格式工作方式127部分初始化、主程序及中斷服務(wù)子程序如下: CODE SEGMENT ASSUMEDS:DATA,CS:CODE START:┊ ;8259初始化 MOVAL,13H;初始化8259ICW1 OUT20H,AL MOVAL,

;送中斷類型碼基值 OUT21H,AL MOVAL,0DH OUT21H,AL ;8255初始化 MOVAL,

;置8255工作方式 OUT83H,AL MOVAL,00H;C口初始化 OUT82H,AL91H

08H部分初始化、主程序及中斷服務(wù)子程序如下:91H08H128 ;8253初始化 MOVAL,37H;置8253通道0方式控制字 OUT43H,AL MOVAL,00H;置8253通道0計(jì)數(shù)初值 OUT40H,AL MOVAL,10H OUT40H,AL MOVAL,

;置8253通道1方式控制字 OUT43H,AL MOVAL,00H;置8253通道1計(jì)數(shù)初值 OUT41H,AL MOVAL,10H OUT41H,AL MOVAL,0B7H;置8253通道2方式控制字 OUT43H,AL

77H或7FH

;

溫馨提示

  • 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)論