可編程定時(shí)器計(jì)數(shù)器8254及其應(yīng)用課件_第1頁
可編程定時(shí)器計(jì)數(shù)器8254及其應(yīng)用課件_第2頁
可編程定時(shí)器計(jì)數(shù)器8254及其應(yīng)用課件_第3頁
可編程定時(shí)器計(jì)數(shù)器8254及其應(yīng)用課件_第4頁
可編程定時(shí)器計(jì)數(shù)器8254及其應(yīng)用課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

6.4可編程定時(shí)/計(jì)數(shù)器8254及其應(yīng)用

為什么需要定時(shí)/計(jì)數(shù)器在自動(dòng)化流水線中在測(cè)控系統(tǒng)中在智能化儀器儀表中兩項(xiàng)基本工作計(jì)數(shù)定時(shí)關(guān)于定時(shí)定時(shí)軟件定時(shí)硬件定時(shí)不可編程芯片定時(shí)(如555定時(shí)器)可編程芯片(如8254定時(shí)器)定時(shí)器工作原理漏水模型如8254裝水模型如80C516.4可編程定時(shí)/計(jì)數(shù)器8254及其應(yīng)用為什么需要定時(shí)/

6.4.18254定時(shí)器/計(jì)數(shù)器

(1)8254的外部引腳和內(nèi)部結(jié)構(gòu)

*A1A0選擇片內(nèi)各端口(3個(gè)通道和一個(gè)控制寄存器)

00011011通道0通道1通道2

控制寄存器6.4.18254定時(shí)器/計(jì)數(shù)器(1)8254的外部8254與CPU連接示例

RDWRCSA1A0D0:D7

CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2地址譯碼器A9:A2A1A0IORIOW控制寄存器8254

DB

片選片內(nèi)端口選擇A9A8A7A6A5A4A3A2A1A0

1000001100

1000001101

1000001110

1000001111

20CH選中通道0

20DH選中通道120EH選中通道2

20FH選中控制寄存器

設(shè)當(dāng)A9~A2的地址信息為:10000011譯碼器輸出有效信號(hào)8254與CPU連接示例CLK0CLK1基本計(jì)數(shù)工作原理:

減法計(jì)數(shù)器計(jì)數(shù)工作單元CE代表外部事件發(fā)生的計(jì)數(shù)脈沖減法計(jì)數(shù)器計(jì)數(shù)工作單元CE頻率精確的時(shí)鐘脈沖串根據(jù)不同的工作方式,OUT輸出不同的信號(hào)CLK

基本定時(shí)工作原理:

CLK

計(jì)數(shù)初值N(定時(shí)系數(shù))

OUTOUT定時(shí)系數(shù)=要求定時(shí)的時(shí)間/時(shí)鐘脈沖周期

定時(shí)的本質(zhì)還是計(jì)數(shù),計(jì)數(shù)的對(duì)象必須是頻率精確的脈沖串。如果時(shí)鐘脈沖的周期是1μs,要求定時(shí)1ms,則計(jì)數(shù)1000次即可,即:定時(shí)系數(shù)為1000;(對(duì)秒計(jì)數(shù)60次就是1分鐘)

計(jì)數(shù)初值N

注意!!工作原理

基本計(jì)數(shù)工作原理:減法計(jì)數(shù)器代表外部事件減法計(jì)數(shù)器頻率

在計(jì)數(shù)工作方式下:計(jì)數(shù)初值寫入CR;CE為0時(shí)表明計(jì)數(shù)達(dá)到規(guī)定值。

在定時(shí)工作方式下:定時(shí)系數(shù)寫入CR;CE為0時(shí)表明定時(shí)時(shí)間到。

16計(jì)數(shù)初值寄存器CR16位計(jì)數(shù)工作單元CEOUT16輸出鎖存器OL用戶編程寫入外部控制外部事件脈沖時(shí)鐘脈沖計(jì)數(shù)結(jié)束時(shí)OUT輸出信號(hào)開始計(jì)數(shù)時(shí)CR裝入CE隨CLK一次減1內(nèi)部總線

GATE

CLK

CLK:計(jì)數(shù)或定時(shí)脈沖輸入引腳GATE:門控引腳:允許/禁止計(jì)數(shù);啟動(dòng)/終止計(jì)數(shù)OUT:輸出引腳:

計(jì)數(shù)通道的內(nèi)部結(jié)構(gòu)CRHCRLOLHOLL不同的工作方式下有不同的輸出在計(jì)數(shù)工作方式下:計(jì)數(shù)初值寫入CR;CE為0(2)8254的工作方式8254的基本計(jì)數(shù)工作方式和基本定時(shí)工作方式是基礎(chǔ),在這兩種基本方式下,可以演繹出6種工作方式。

注意每一種方式下:*定時(shí)或計(jì)數(shù)的啟動(dòng)方式*GATE的控制作用*OUT引腳上的輸出波形每一種方式分為基本功能和工作特點(diǎn)兩部分,細(xì)節(jié)很多。我們通過波形圖,介紹概要。因?yàn)楦鞣N方式主要是通過OUT引腳表現(xiàn)出來,請(qǐng)關(guān)注OUT。

1)方式0計(jì)數(shù)結(jié)束中斷典型的事件計(jì)數(shù)(基本計(jì)數(shù)工作方式)基本功能:完成計(jì)數(shù),OUT輸出高電平工作特點(diǎn):

*寫入控制字后,OUT的初始電平為低*計(jì)數(shù)到0時(shí),OUT送出高電平直到寫入了新的計(jì)數(shù)初值。*通常用OUT的低—高變化來產(chǎn)生中斷請(qǐng)求或查詢信號(hào)。*軟件啟動(dòng),不具備重復(fù)性,再次寫入初值,開始新一輪計(jì)數(shù)

*寫入計(jì)數(shù)初值到CR后,第一個(gè)計(jì)數(shù)脈沖的作用是把計(jì)數(shù)初值裝入CE。所以當(dāng)計(jì)數(shù)初值=4時(shí),實(shí)際上當(dāng)CLK輸入5個(gè)計(jì)數(shù)脈沖后OUT才為1。

(2)8254的工作方式注意*定時(shí)或計(jì)數(shù)的啟動(dòng)方式每一種方式*GATE=0,暫停計(jì)數(shù);GATE=1,繼續(xù)計(jì)數(shù)*計(jì)數(shù)過程中可以寫入新的計(jì)數(shù)初值,從寫入后的下一個(gè)脈沖開始,以新

的初值進(jìn)行計(jì)數(shù)

下圖中用波形表達(dá)了3種情況:*1GATE=1,完整的一輪計(jì)數(shù)*2計(jì)數(shù)過程中,GATE=0,暫停計(jì)數(shù)*3計(jì)數(shù)過程中,重新寫入計(jì)數(shù)初值的計(jì)數(shù)情況

*GATE=0,暫停計(jì)數(shù);GATE=1,繼續(xù)計(jì)數(shù)下圖中用波形2)方式1硬件可觸發(fā)單穩(wěn)基本功能:計(jì)數(shù)器相當(dāng)于一個(gè)可編程的單穩(wěn)態(tài)觸發(fā)器??捎么朔绞絹懋a(chǎn)生由程序控制脈沖寬度的負(fù)單脈沖,該脈沖的寬度(低電平持續(xù)時(shí)間)由計(jì)數(shù)初值N確定。

工作特點(diǎn):*輸入控制字后,OUT以高電平為初始電平*以GATE的上升邊為起點(diǎn),一個(gè)CLK脈沖后,OUT為低,計(jì)數(shù)完成后OUT又回到高電平,產(chǎn)生一個(gè)負(fù)的單脈沖。

相當(dāng)于單穩(wěn)電路從穩(wěn)態(tài)(高)到暫穩(wěn)態(tài)(低)又回到穩(wěn)態(tài)*該單脈沖的寬度(低電平繼續(xù)時(shí)間)是CLK周期的N倍*可重復(fù)觸發(fā)。GATE的上升邊啟動(dòng)新一輪工作。

圖中用波形表達(dá)了3種情況:*1正常的一次單穩(wěn)動(dòng)作全過程。*2N=3,表明暫穩(wěn)態(tài)為3個(gè)CLK時(shí)間;在暫穩(wěn)態(tài)過程中,再次觸發(fā),再進(jìn)行一次3個(gè)CLK周期的暫穩(wěn)態(tài)。*3改變計(jì)數(shù)初值N=4,由于沒有GATE啟動(dòng)新一輪動(dòng)作,本次仍然完成3個(gè)

CLK暫穩(wěn)態(tài)過程。當(dāng)GATE上升邊到來后,N=4的單穩(wěn)操作才開始。

2)方式1硬件可觸發(fā)單穩(wěn)基本功能:計(jì)數(shù)器相當(dāng)于一個(gè)可編程3)方式2分頻器(N分頻方式,頻率發(fā)生器)基本功能:輸出頻率固定的脈沖(控制輸出信號(hào)的高/低電平的比例。)工作特點(diǎn):*控制字寫入后,OUT以高電平為初始電平。計(jì)數(shù)器減到1時(shí),OUT輸出一個(gè)寬度為一個(gè)CLK的負(fù)脈沖。*OUT輸出的脈沖串,以N—1個(gè)CLK脈沖為高電平,以一個(gè)CLK脈沖為低電平。實(shí)際上,OUT輸出的脈沖頻率為CLK脈沖的N分頻。*GATE門控:為高,計(jì)數(shù)器工作;為低,暫停工作。

3)方式2分頻器(N分頻方式,頻率發(fā)生器)該波形圖敘述了3種情況:*1GATE=1,OUT持續(xù)輸出分頻脈沖串(高電平為N-1,低電平為1)*2分頻過程中,GATE=0,暫停工作,OUT變?yōu)楦唠娖剑?1,繼續(xù)工作,重新計(jì)數(shù)*3GATE=1,工作過程中改寫N,CE要把本次的計(jì)數(shù)初值減到0,才開始新一輪分頻工作。

該波形圖敘述了3種情況:

4)方式3方波發(fā)生器基本功能:基本上與方式2相同,只是OUT輸出的是完全對(duì)稱方波或基本對(duì)稱的連續(xù)方波。工作特點(diǎn):若N為偶數(shù),則輸出脈沖的高、低電平持續(xù)時(shí)間相同;若為奇,則高電平持續(xù)時(shí)間為(N+1)/2,低電平持續(xù)時(shí)間為(N-1)/2。3種情況:*1GATE=1,偶數(shù),OUT輸出對(duì)稱方波*2GATE=1,奇數(shù),OUT輸出不對(duì)稱方波(高電平多一個(gè)CLK時(shí)間)*3GATE=0,暫停工作;GATE=1,從初值開始工作

4)方式3方波發(fā)生器3種情況:5)方式4軟件觸發(fā)選通基本功能:?jiǎn)蚊}沖發(fā)生器,以裝入計(jì)數(shù)初值來啟動(dòng)計(jì)數(shù)器開始工作。

工作特點(diǎn):*無重裝初值功能*裝入控制字后,OUT的初始電平仍為高。*裝入計(jì)數(shù)初值后,計(jì)數(shù)器開始倒數(shù)計(jì)數(shù),到0后OUT輸出一個(gè)負(fù)脈沖(寬度為一個(gè)CLK),然后又恢復(fù)為高電平,直到裝入下一個(gè)計(jì)數(shù)初值來啟動(dòng)新一輪計(jì)數(shù)。*通常用它來作為負(fù)選通信號(hào)

3種情況:*1GATE=1,正常軟件啟動(dòng)計(jì)數(shù)過程*2GATE在計(jì)數(shù)過程中的作用:=0,禁止計(jì)數(shù);恢復(fù)1,重新計(jì)數(shù)*3計(jì)數(shù)過程中,改寫初值對(duì)計(jì)數(shù)過程的影響5)方式4軟件觸發(fā)選通3種情況:6)方式5硬件觸發(fā)的選通信號(hào)發(fā)生器

基本功能:以外部GATE信號(hào)來啟動(dòng)計(jì)數(shù)器開始工作,OUT輸出寬度為一個(gè)CLK的負(fù)脈沖。

工作特點(diǎn):*裝入控制字后,OUT的初始電平為高。*裝入計(jì)數(shù)初值后,必須等GATE引腳輸入一個(gè)上升邊后,計(jì)數(shù)器才開始倒數(shù)計(jì)數(shù),到0后OUT輸出一個(gè)負(fù)脈沖,寬度為一個(gè)CLK脈沖——通常用它來作為負(fù)選通信號(hào),然后又恢復(fù)為高電平,直到裝入下一個(gè)計(jì)數(shù)初值來啟動(dòng)新一輪計(jì)數(shù)。6)方式5硬件觸發(fā)的選通信號(hào)發(fā)生器工作方式小結(jié)1)門控信號(hào)的影響高電平允許,當(dāng)GATE=0,即使出現(xiàn)CLK,也不計(jì)數(shù)-方式0,2,3,4上升沿允許(上升沿觸發(fā))-方式1,52)OUT信號(hào)的狀態(tài)寫入方式字后,OUT的狀態(tài)計(jì)數(shù)過程中,OUT的狀態(tài)計(jì)數(shù)終了,OUT的狀態(tài)3)計(jì)數(shù)操作可否重復(fù)不可重復(fù)——方式0,4自動(dòng)重復(fù)——方式2,3條件重復(fù)——方式1,5工作方式小結(jié)1)門控信號(hào)的影響(3)8254編程*8254有3個(gè)通道,即3個(gè)定時(shí)器/計(jì)數(shù)器單元,選擇哪個(gè)通道?*每一個(gè)定時(shí)器/計(jì)數(shù)器又有6種工作方式,如何確定工作方式?*每一種方式下又必須寫入計(jì)數(shù)初值,怎么送?*在某些情況下需要讀出計(jì)數(shù)器的余值或計(jì)數(shù)器的狀態(tài),怎么讀?

借助于用“0”“1”組成的“字”,把用戶的意圖告訴給8254這些字是我們使用8254的基礎(chǔ)*方式控制字——設(shè)置計(jì)數(shù)器工作方式

(3)8254編程借助于用“0”“1”組成的“字”,把用戶的*命令字和狀態(tài)字兩個(gè)命令字:計(jì)數(shù)器鎖存命令字和讀回命令字*1計(jì)數(shù)器鎖存命令字功能:把當(dāng)前計(jì)數(shù)工作單元CE的內(nèi)容鎖存到輸出鎖存器OL中,供CPU讀出CE的余值(如:預(yù)先設(shè)置計(jì)數(shù)初值=N,一段時(shí)間后,鎖存,讀剩余值n,在這段時(shí)間內(nèi)的計(jì)數(shù)值X=N-n)

SC1,SC0:選擇將要鎖存哪一個(gè)通道的CE(11無意義)D5、D4

:特征值(標(biāo)識(shí)),必須為00。

X

XXX00SC0SC1D7D6D5D4D3D2D1D0*2讀回命令字

功能:把指定通道的CE當(dāng)前值鎖存到OL,或把狀態(tài)寄存器內(nèi)容鎖存到狀態(tài)鎖存器SL,以供CPU讀出。鎖存命令字一次只能鎖存一個(gè)通道(計(jì)數(shù)器)讀回命令字能同時(shí)規(guī)定鎖存幾個(gè)通道。

0

CN0CN1CN2STATUSCOUNT11=1通道2=1通道1=1通道0*命令字和狀態(tài)字*1計(jì)數(shù)器鎖存命令字SC1,SC0:選擇將要

控制字鎖存命令字讀回命令字無標(biāo)識(shí)標(biāo)識(shí)00標(biāo)識(shí)110同一地址入口D7D6必須為11,D0必須為0這是特征值(標(biāo)識(shí))。D5:COUNT=0,鎖存選中的所有計(jì)數(shù)器D4:STATUS=0,鎖存選中的所有狀態(tài)寄存器

*狀態(tài)字功能:供用戶查看8254某一通道的狀態(tài):計(jì)數(shù)值、工作方式、OUT引腳的當(dāng)前狀態(tài)、BCD/二進(jìn)制計(jì)數(shù)方式、讀/寫操作

狀態(tài)字格式

BCD

M0M1M2RW0RW1NULLCOUNTOUTD7D6D5D4D3D2D1D0D7:OUT引腳狀態(tài)。=0,OUT=0;=1,OUT=1

D6:無效計(jì)數(shù)。=0,計(jì)數(shù)初值已裝入計(jì)數(shù)工作單元CE,計(jì)數(shù)值有效=1,計(jì)數(shù)初值未裝入計(jì)數(shù)工作單元CE,無效計(jì)數(shù)

D5…….D0與方式控制字的對(duì)應(yīng)位一致。

控制字鎖存命令字讀回命令字無標(biāo)識(shí)例:要讀通道0的狀態(tài)和余值,設(shè)8254的地址為20CH、20DH、20EH、20FH讀回命令的用法標(biāo)識(shí)位寫讀回命令字:11001000 C8H鎖存余值鎖存狀態(tài)鎖存通道0MOVDX,20FH

MOVAL,0C8H

OUTDX,AL

MOVDX,20CH

INAL,DX

MOVBL,AL

INAL,DX

MOVCL,AL

INAL,DX

MOVCH,AL先讀回狀態(tài)讀回余值低八位讀回余值高八位例:要讀通道0的狀態(tài)和余值,設(shè)8254的地址為20CH、20編程方法及示例1)初始化編程

可編程接口芯片,都有一個(gè)初始化編程問題*8254的初始化編程有兩個(gè)步驟

對(duì)控制寄存器寫入控制字,確定某個(gè)通道的工作方式對(duì)通道寫入計(jì)數(shù)初值

設(shè)8254各個(gè)端口的地址為:通道0:20CH通道1:20DH通道2:20EH控制寄存器:20FH

例1

設(shè)置通道0工作于方式0,計(jì)數(shù)100次

填寫方式字:00

01

0000

選中只讀寫

方式0二進(jìn)制

通道0低字節(jié)方式控制字為10H初始化編程

MOVDX,20FH;取控制寄存器地址MOVAL,10H;取通道0的方式控制字

OUTDX,AL

;方式控制字送入控制寄存器

編程方法及示例1)初始化編程可編程接口芯片,都有一個(gè)初始MOVDX,20CH;取通道0地址MOVAL,64H;取通道0計(jì)數(shù)初值OUTDX,AL;計(jì)數(shù)初值送入通道0;到此,隨著CLK0引腳上的脈沖輸入,初值進(jìn)入CE,開始計(jì)數(shù)。

例2設(shè)置通道1工作在方式3,輸出頻率為1KHz的方波填寫方式字:01

11

0110

選中先低

方式3二進(jìn)制

通道1后高方式控制字為76H計(jì)算計(jì)數(shù)初值:設(shè)從CLK1輸入的時(shí)鐘脈沖的頻率是2.5M,周期為0.4μs通道10.4μs

CLK1

OUT1

1ms

1×10-3/0.4×10-6=2500D=9C4H

每計(jì)滿2500(9C4H)個(gè)時(shí)鐘脈沖,OUT輸出一個(gè)間隔為1ms的脈沖

MOVDX,20CH;取通道0地址例2設(shè)置通道初始化編程MOVDX,20FH;取控制寄存器地址MOVAL,76H;取通道1的方式控制字OUTDX,AL;方式控制字送入控制寄存器MOVDX,20DH;取通道1地址MOVAX,09C4H;取通道1計(jì)數(shù)初值OUTDX,AL;先送計(jì)數(shù)初值的低字節(jié)(C4H)MOVAL,AH;OUTDX,AL;再送高字節(jié)(09H);到此,OUT1輸出頻率為1000Hz的方波

例3通道級(jí)聯(lián)要求通道2定時(shí)1秒如果仍采用2.5M的時(shí)鐘脈沖,按16位的最大計(jì)數(shù)值65536計(jì)算0.4×10-6×65536=26214.4μs≈26ms不能定時(shí)1000ms(1秒)

解決的辦法:采用級(jí)聯(lián)。

用通道1,通道2聯(lián)合完成1秒定時(shí)。

通道1

方式3通道2

方式02.5MHz

CLK1

OUT1

CLK2

1000Hz

OUT2

1秒到

初始化編程MOVDX,20FH;取控制寄通道安排:通道1:工作在方式3下,輸出頻率為1000Hz的方波(周期為1ms),作為通道2的時(shí)鐘脈沖。通道2:工作在方式0,對(duì)周期為1ms的脈沖計(jì)數(shù),計(jì)滿1000次,OUT2輸出高電平,表明1秒定時(shí)到。

填寫通道2方式字:10

11

0001

選中先低

方式0十進(jìn)制

通道2后高通道2方式控制字為:B1H初始化編程:通道1初始化……..(同例2)MOVDX,20FH;取控制寄存器地址MOVAL,0B1H;取通道2的方式控制字OUTDX,AL;方式控制字送控制寄存器MOVDX,20EH;取通道2的地址MOVAX,1000H;取通道2的計(jì)數(shù)初值OUTDX,AL;先送低字節(jié)(00)MOVAL,AHOUTDX,AL;再送高字節(jié)(10);以此為起點(diǎn),一秒到時(shí),OUT變?yōu)楦唠娖?/p>

通道安排:填寫通道2方式字:101

工作編程

a)工作過程中改變計(jì)數(shù)初值b)對(duì)控制寄存器寫入命令字(計(jì)數(shù)器鎖存命令字或讀回命令字)為讀某通道的當(dāng)前CE內(nèi)容和狀態(tài)寄存器內(nèi)容作準(zhǔn)備。c)從通道(0,1,2)讀回狀態(tài)字d)從通道(0,1,2)讀回CE當(dāng)前值(余值)

例4讀取通道2的當(dāng)前計(jì)數(shù)值(余值)

鎖存命令字

10

00

0000

選中通道2

特征值

無意義,可任選

計(jì)數(shù)器鎖存命令字

80H

MOVAL,80H;取通道2計(jì)數(shù)器鎖存命令字MOVDX,20FH;取控制寄存器地址OUTDX,AL;鎖存通道2的CE當(dāng)前值到鎖存器MOVDX,20EH;取通道2地址INAL,DX;從通道2鎖存器讀回余值低8位MOVCL,AL;轉(zhuǎn)存CLINAL,DX;讀回余值高8位MOVCH,AL;轉(zhuǎn)存CH工作編程例4讀取通道2的當(dāng)前計(jì)數(shù)值(余值)鎖存命令實(shí)驗(yàn)裝置8254接線圖I/O譯碼CS1CS2CS3CS4CS5CS6CS7CS8I/O地址300H320H340H360H380H3A0H3C0H3E0H實(shí)驗(yàn)裝置8254接線圖I/O譯碼CS1CS2CS3CS4CSIN指令產(chǎn)生IOR;OUT產(chǎn)生IOW

D0~D7:傳送控制字,命令字,余值,狀態(tài)

6.4.28254在PC中的應(yīng)用(課外閱讀)PC使用一片8254,其3個(gè)計(jì)數(shù)通道分別用于日時(shí)鐘計(jì)時(shí)、DRAM刷新定時(shí)和控制揚(yáng)聲器發(fā)聲聲調(diào)。揚(yáng)聲器發(fā)聲的前提:GATE2=1,即PB0=1與門控制端=1,即PB1=1OUT2輸出一定頻率的脈沖串8255B口地址:61H周期:0.838μs每55ms申請(qǐng)一次中斷IN指令產(chǎn)生IOR;OUT產(chǎn)生IOWD0~D78254的4個(gè)端口地址:T0:40HT1:41HT2:42H控制寄存器:43H定時(shí)中斷和定時(shí)刷新產(chǎn)生55ms方波對(duì)應(yīng)的計(jì)數(shù)值。計(jì)算P2031)MOVAL,36H;計(jì)數(shù)器0為方式3(方波發(fā)生器);;采用二進(jìn)制計(jì)數(shù),先低后高寫入計(jì)數(shù)值OUT43H,AL;寫入方式控制字MOVAL,0;計(jì)數(shù)值為0OUT40H,AL;寫入低字節(jié)計(jì)數(shù)值OUT40H,AL;寫入高字節(jié)計(jì)數(shù)值;到此,OUT0連續(xù)輸出周期為55ms的方波MOVAL,54H;計(jì)數(shù)器工作為方式2(分頻器(頻率發(fā)生器);采用二進(jìn)制計(jì)數(shù),只寫低8位計(jì)數(shù)值OUT43H,AL;寫入方式控制字MOVAL,18;計(jì)數(shù)初值為18(15μs。計(jì)算P204)OUT41H,AL;寫入計(jì)數(shù)值;到此,OUT1連續(xù)輸出周期為15μs的脈沖串

8254的4個(gè)端口地址:定時(shí)中斷和定時(shí)刷新產(chǎn)生55ms方如要求揚(yáng)聲器發(fā)出頻率為600Hz的聲音,則:AX=1.19318×106÷600=1988.6D=7C5HAH=07HAL=C5H;發(fā)音頻率設(shè)置子程序,入口參數(shù):AX=1.19318×106÷發(fā)音頻率SPEAKERPROC PUSHAX MOVAL,0B6H;定時(shí)器2為方式3,;先低后高寫16位計(jì)數(shù)值 OUT43H,AL POPAX OUT42H,AL;寫入低8位計(jì)數(shù)值 MOVAL,AH OUT42H,AL;寫入高8位汁數(shù)值 RETSPEAKERENDPSPEAKON PROC;揚(yáng)聲器開子程序 PUSHAX INAL,61H;讀取61H端口的原控制信息 ORAL,03H;D1D0=PB1PB0=11B,其他位不變 OUT61H,AL;直接控制發(fā)聲 POPAXRETSPEAKONENDP如要求揚(yáng)聲器發(fā)出頻率為600Hz的聲音,則:;發(fā)音頻率設(shè)置子SPEAKOFFPROC;揚(yáng)聲器關(guān)子程序PUSHAX INAL,61H ANDAL,0FCH;D1D0=PB1PB0=00B,其他位不變OUT61H,AL;直接控制閉音POPAXRETSPEAKOFFENDP

3)可編程硬件延時(shí)中斷向量號(hào)1AH的日時(shí)鐘調(diào)用程序,用以在應(yīng)用程序中讀取或設(shè)置時(shí)間格式:MOV AH,0 INT 1AH功能:讀時(shí)鐘返回參數(shù):CH:CL=h:minDH:DL=s:10-2s時(shí)鐘的計(jì)時(shí)單位54.925493ms1s:18個(gè)計(jì)時(shí)單位54.925493msx18=0.98865887s1min:1092個(gè)計(jì)時(shí)單位54.925493msx1092=59.978683s1h:65543個(gè)計(jì)時(shí)單位54.925493msx65543=3599.9815s

SPEAKOFFPROC;揚(yáng)以計(jì)時(shí)單位表達(dá)的時(shí)間例如:DL=1,實(shí)際上是1x55ms=55msDL=90,即為90x55=4950ms=5s可編程硬件延時(shí);5秒延時(shí) MOVAH,0;讀取日時(shí)鐘功能調(diào)用(P314)INT1AH;CH:CL=h:minDH:DL=s:10-2sADDDX,90;加5秒(5×18=90)MOVBX,DX;期望值送BXL1:INT1AH;再讀日時(shí)鐘CMPBX,DX;與期望值比較INEL1;不等,則循環(huán)

……;相等,則延時(shí)結(jié)束

BIOS15H號(hào)中斷調(diào)用格式:MOV AH,86H INT 15H入口參數(shù):CX:DX=延時(shí)時(shí)間(以μs為單位)CX高字節(jié),DX低字節(jié)出口參數(shù):CF=0,表示調(diào)用正確,執(zhí)行了延時(shí);=1調(diào)用不正確,未執(zhí)行延時(shí)。2ms延時(shí)程序段:MOVCX,O;2ms延時(shí)MOVDX,1952;延時(shí)1.952MS=2×976μsMOVAH,86HINT15H;功能調(diào)用返回時(shí),定時(shí)時(shí)間到雖然以微秒為單位,但是實(shí)時(shí)時(shí)鐘的最小單位是976.56微秒,所以該功能的實(shí)際延時(shí)是976.56微秒的整倍數(shù).2ms延時(shí),只能取2X976=1952以計(jì)時(shí)單位表達(dá)的時(shí)間例如:DL=1,實(shí)際上是1x55ms=56.4可編程定時(shí)/計(jì)數(shù)器8254及其應(yīng)用

為什么需要定時(shí)/計(jì)數(shù)器在自動(dòng)化流水線中在測(cè)控系統(tǒng)中在智能化儀器儀表中兩項(xiàng)基本工作計(jì)數(shù)定時(shí)關(guān)于定時(shí)定時(shí)軟件定時(shí)硬件定時(shí)不可編程芯片定時(shí)(如555定時(shí)器)可編程芯片(如8254定時(shí)器)定時(shí)器工作原理漏水模型如8254裝水模型如80C516.4可編程定時(shí)/計(jì)數(shù)器8254及其應(yīng)用為什么需要定時(shí)/

6.4.18254定時(shí)器/計(jì)數(shù)器

(1)8254的外部引腳和內(nèi)部結(jié)構(gòu)

*A1A0選擇片內(nèi)各端口(3個(gè)通道和一個(gè)控制寄存器)

00011011通道0通道1通道2

控制寄存器6.4.18254定時(shí)器/計(jì)數(shù)器(1)8254的外部8254與CPU連接示例

RDWRCSA1A0D0:D7

CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2地址譯碼器A9:A2A1A0IORIOW控制寄存器8254

DB

片選片內(nèi)端口選擇A9A8A7A6A5A4A3A2A1A0

1000001100

1000001101

1000001110

1000001111

20CH選中通道0

20DH選中通道120EH選中通道2

20FH選中控制寄存器

設(shè)當(dāng)A9~A2的地址信息為:10000011譯碼器輸出有效信號(hào)8254與CPU連接示例CLK0CLK1基本計(jì)數(shù)工作原理:

減法計(jì)數(shù)器計(jì)數(shù)工作單元CE代表外部事件發(fā)生的計(jì)數(shù)脈沖減法計(jì)數(shù)器計(jì)數(shù)工作單元CE頻率精確的時(shí)鐘脈沖串根據(jù)不同的工作方式,OUT輸出不同的信號(hào)CLK

基本定時(shí)工作原理:

CLK

計(jì)數(shù)初值N(定時(shí)系數(shù))

OUTOUT定時(shí)系數(shù)=要求定時(shí)的時(shí)間/時(shí)鐘脈沖周期

定時(shí)的本質(zhì)還是計(jì)數(shù),計(jì)數(shù)的對(duì)象必須是頻率精確的脈沖串。如果時(shí)鐘脈沖的周期是1μs,要求定時(shí)1ms,則計(jì)數(shù)1000次即可,即:定時(shí)系數(shù)為1000;(對(duì)秒計(jì)數(shù)60次就是1分鐘)

計(jì)數(shù)初值N

注意?。」ぷ髟?/p>

基本計(jì)數(shù)工作原理:減法計(jì)數(shù)器代表外部事件減法計(jì)數(shù)器頻率

在計(jì)數(shù)工作方式下:計(jì)數(shù)初值寫入CR;CE為0時(shí)表明計(jì)數(shù)達(dá)到規(guī)定值。

在定時(shí)工作方式下:定時(shí)系數(shù)寫入CR;CE為0時(shí)表明定時(shí)時(shí)間到。

16計(jì)數(shù)初值寄存器CR16位計(jì)數(shù)工作單元CEOUT16輸出鎖存器OL用戶編程寫入外部控制外部事件脈沖時(shí)鐘脈沖計(jì)數(shù)結(jié)束時(shí)OUT輸出信號(hào)開始計(jì)數(shù)時(shí)CR裝入CE隨CLK一次減1內(nèi)部總線

GATE

CLK

CLK:計(jì)數(shù)或定時(shí)脈沖輸入引腳GATE:門控引腳:允許/禁止計(jì)數(shù);啟動(dòng)/終止計(jì)數(shù)OUT:輸出引腳:

計(jì)數(shù)通道的內(nèi)部結(jié)構(gòu)CRHCRLOLHOLL不同的工作方式下有不同的輸出在計(jì)數(shù)工作方式下:計(jì)數(shù)初值寫入CR;CE為0(2)8254的工作方式8254的基本計(jì)數(shù)工作方式和基本定時(shí)工作方式是基礎(chǔ),在這兩種基本方式下,可以演繹出6種工作方式。

注意每一種方式下:*定時(shí)或計(jì)數(shù)的啟動(dòng)方式*GATE的控制作用*OUT引腳上的輸出波形每一種方式分為基本功能和工作特點(diǎn)兩部分,細(xì)節(jié)很多。我們通過波形圖,介紹概要。因?yàn)楦鞣N方式主要是通過OUT引腳表現(xiàn)出來,請(qǐng)關(guān)注OUT。

1)方式0計(jì)數(shù)結(jié)束中斷典型的事件計(jì)數(shù)(基本計(jì)數(shù)工作方式)基本功能:完成計(jì)數(shù),OUT輸出高電平工作特點(diǎn):

*寫入控制字后,OUT的初始電平為低*計(jì)數(shù)到0時(shí),OUT送出高電平直到寫入了新的計(jì)數(shù)初值。*通常用OUT的低—高變化來產(chǎn)生中斷請(qǐng)求或查詢信號(hào)。*軟件啟動(dòng),不具備重復(fù)性,再次寫入初值,開始新一輪計(jì)數(shù)

*寫入計(jì)數(shù)初值到CR后,第一個(gè)計(jì)數(shù)脈沖的作用是把計(jì)數(shù)初值裝入CE。所以當(dāng)計(jì)數(shù)初值=4時(shí),實(shí)際上當(dāng)CLK輸入5個(gè)計(jì)數(shù)脈沖后OUT才為1。

(2)8254的工作方式注意*定時(shí)或計(jì)數(shù)的啟動(dòng)方式每一種方式*GATE=0,暫停計(jì)數(shù);GATE=1,繼續(xù)計(jì)數(shù)*計(jì)數(shù)過程中可以寫入新的計(jì)數(shù)初值,從寫入后的下一個(gè)脈沖開始,以新

的初值進(jìn)行計(jì)數(shù)

下圖中用波形表達(dá)了3種情況:*1GATE=1,完整的一輪計(jì)數(shù)*2計(jì)數(shù)過程中,GATE=0,暫停計(jì)數(shù)*3計(jì)數(shù)過程中,重新寫入計(jì)數(shù)初值的計(jì)數(shù)情況

*GATE=0,暫停計(jì)數(shù);GATE=1,繼續(xù)計(jì)數(shù)下圖中用波形2)方式1硬件可觸發(fā)單穩(wěn)基本功能:計(jì)數(shù)器相當(dāng)于一個(gè)可編程的單穩(wěn)態(tài)觸發(fā)器。可用此方式來產(chǎn)生由程序控制脈沖寬度的負(fù)單脈沖,該脈沖的寬度(低電平持續(xù)時(shí)間)由計(jì)數(shù)初值N確定。

工作特點(diǎn):*輸入控制字后,OUT以高電平為初始電平*以GATE的上升邊為起點(diǎn),一個(gè)CLK脈沖后,OUT為低,計(jì)數(shù)完成后OUT又回到高電平,產(chǎn)生一個(gè)負(fù)的單脈沖。

相當(dāng)于單穩(wěn)電路從穩(wěn)態(tài)(高)到暫穩(wěn)態(tài)(低)又回到穩(wěn)態(tài)*該單脈沖的寬度(低電平繼續(xù)時(shí)間)是CLK周期的N倍*可重復(fù)觸發(fā)。GATE的上升邊啟動(dòng)新一輪工作。

圖中用波形表達(dá)了3種情況:*1正常的一次單穩(wěn)動(dòng)作全過程。*2N=3,表明暫穩(wěn)態(tài)為3個(gè)CLK時(shí)間;在暫穩(wěn)態(tài)過程中,再次觸發(fā),再進(jìn)行一次3個(gè)CLK周期的暫穩(wěn)態(tài)。*3改變計(jì)數(shù)初值N=4,由于沒有GATE啟動(dòng)新一輪動(dòng)作,本次仍然完成3個(gè)

CLK暫穩(wěn)態(tài)過程。當(dāng)GATE上升邊到來后,N=4的單穩(wěn)操作才開始。

2)方式1硬件可觸發(fā)單穩(wěn)基本功能:計(jì)數(shù)器相當(dāng)于一個(gè)可編程3)方式2分頻器(N分頻方式,頻率發(fā)生器)基本功能:輸出頻率固定的脈沖(控制輸出信號(hào)的高/低電平的比例。)工作特點(diǎn):*控制字寫入后,OUT以高電平為初始電平。計(jì)數(shù)器減到1時(shí),OUT輸出一個(gè)寬度為一個(gè)CLK的負(fù)脈沖。*OUT輸出的脈沖串,以N—1個(gè)CLK脈沖為高電平,以一個(gè)CLK脈沖為低電平。實(shí)際上,OUT輸出的脈沖頻率為CLK脈沖的N分頻。*GATE門控:為高,計(jì)數(shù)器工作;為低,暫停工作。

3)方式2分頻器(N分頻方式,頻率發(fā)生器)該波形圖敘述了3種情況:*1GATE=1,OUT持續(xù)輸出分頻脈沖串(高電平為N-1,低電平為1)*2分頻過程中,GATE=0,暫停工作,OUT變?yōu)楦唠娖剑?1,繼續(xù)工作,重新計(jì)數(shù)*3GATE=1,工作過程中改寫N,CE要把本次的計(jì)數(shù)初值減到0,才開始新一輪分頻工作。

該波形圖敘述了3種情況:

4)方式3方波發(fā)生器基本功能:基本上與方式2相同,只是OUT輸出的是完全對(duì)稱方波或基本對(duì)稱的連續(xù)方波。工作特點(diǎn):若N為偶數(shù),則輸出脈沖的高、低電平持續(xù)時(shí)間相同;若為奇,則高電平持續(xù)時(shí)間為(N+1)/2,低電平持續(xù)時(shí)間為(N-1)/2。3種情況:*1GATE=1,偶數(shù),OUT輸出對(duì)稱方波*2GATE=1,奇數(shù),OUT輸出不對(duì)稱方波(高電平多一個(gè)CLK時(shí)間)*3GATE=0,暫停工作;GATE=1,從初值開始工作

4)方式3方波發(fā)生器3種情況:5)方式4軟件觸發(fā)選通基本功能:?jiǎn)蚊}沖發(fā)生器,以裝入計(jì)數(shù)初值來啟動(dòng)計(jì)數(shù)器開始工作。

工作特點(diǎn):*無重裝初值功能*裝入控制字后,OUT的初始電平仍為高。*裝入計(jì)數(shù)初值后,計(jì)數(shù)器開始倒數(shù)計(jì)數(shù),到0后OUT輸出一個(gè)負(fù)脈沖(寬度為一個(gè)CLK),然后又恢復(fù)為高電平,直到裝入下一個(gè)計(jì)數(shù)初值來啟動(dòng)新一輪計(jì)數(shù)。*通常用它來作為負(fù)選通信號(hào)

3種情況:*1GATE=1,正常軟件啟動(dòng)計(jì)數(shù)過程*2GATE在計(jì)數(shù)過程中的作用:=0,禁止計(jì)數(shù);恢復(fù)1,重新計(jì)數(shù)*3計(jì)數(shù)過程中,改寫初值對(duì)計(jì)數(shù)過程的影響5)方式4軟件觸發(fā)選通3種情況:6)方式5硬件觸發(fā)的選通信號(hào)發(fā)生器

基本功能:以外部GATE信號(hào)來啟動(dòng)計(jì)數(shù)器開始工作,OUT輸出寬度為一個(gè)CLK的負(fù)脈沖。

工作特點(diǎn):*裝入控制字后,OUT的初始電平為高。*裝入計(jì)數(shù)初值后,必須等GATE引腳輸入一個(gè)上升邊后,計(jì)數(shù)器才開始倒數(shù)計(jì)數(shù),到0后OUT輸出一個(gè)負(fù)脈沖,寬度為一個(gè)CLK脈沖——通常用它來作為負(fù)選通信號(hào),然后又恢復(fù)為高電平,直到裝入下一個(gè)計(jì)數(shù)初值來啟動(dòng)新一輪計(jì)數(shù)。6)方式5硬件觸發(fā)的選通信號(hào)發(fā)生器工作方式小結(jié)1)門控信號(hào)的影響高電平允許,當(dāng)GATE=0,即使出現(xiàn)CLK,也不計(jì)數(shù)-方式0,2,3,4上升沿允許(上升沿觸發(fā))-方式1,52)OUT信號(hào)的狀態(tài)寫入方式字后,OUT的狀態(tài)計(jì)數(shù)過程中,OUT的狀態(tài)計(jì)數(shù)終了,OUT的狀態(tài)3)計(jì)數(shù)操作可否重復(fù)不可重復(fù)——方式0,4自動(dòng)重復(fù)——方式2,3條件重復(fù)——方式1,5工作方式小結(jié)1)門控信號(hào)的影響(3)8254編程*8254有3個(gè)通道,即3個(gè)定時(shí)器/計(jì)數(shù)器單元,選擇哪個(gè)通道?*每一個(gè)定時(shí)器/計(jì)數(shù)器又有6種工作方式,如何確定工作方式?*每一種方式下又必須寫入計(jì)數(shù)初值,怎么送?*在某些情況下需要讀出計(jì)數(shù)器的余值或計(jì)數(shù)器的狀態(tài),怎么讀?

借助于用“0”“1”組成的“字”,把用戶的意圖告訴給8254這些字是我們使用8254的基礎(chǔ)*方式控制字——設(shè)置計(jì)數(shù)器工作方式

(3)8254編程借助于用“0”“1”組成的“字”,把用戶的*命令字和狀態(tài)字兩個(gè)命令字:計(jì)數(shù)器鎖存命令字和讀回命令字*1計(jì)數(shù)器鎖存命令字功能:把當(dāng)前計(jì)數(shù)工作單元CE的內(nèi)容鎖存到輸出鎖存器OL中,供CPU讀出CE的余值(如:預(yù)先設(shè)置計(jì)數(shù)初值=N,一段時(shí)間后,鎖存,讀剩余值n,在這段時(shí)間內(nèi)的計(jì)數(shù)值X=N-n)

SC1,SC0:選擇將要鎖存哪一個(gè)通道的CE(11無意義)D5、D4

:特征值(標(biāo)識(shí)),必須為00。

X

XXX00SC0SC1D7D6D5D4D3D2D1D0*2讀回命令字

功能:把指定通道的CE當(dāng)前值鎖存到OL,或把狀態(tài)寄存器內(nèi)容鎖存到狀態(tài)鎖存器SL,以供CPU讀出。鎖存命令字一次只能鎖存一個(gè)通道(計(jì)數(shù)器)讀回命令字能同時(shí)規(guī)定鎖存幾個(gè)通道。

0

CN0CN1CN2STATUSCOUNT11=1通道2=1通道1=1通道0*命令字和狀態(tài)字*1計(jì)數(shù)器鎖存命令字SC1,SC0:選擇將要

控制字鎖存命令字讀回命令字無標(biāo)識(shí)標(biāo)識(shí)00標(biāo)識(shí)110同一地址入口D7D6必須為11,D0必須為0這是特征值(標(biāo)識(shí))。D5:COUNT=0,鎖存選中的所有計(jì)數(shù)器D4:STATUS=0,鎖存選中的所有狀態(tài)寄存器

*狀態(tài)字功能:供用戶查看8254某一通道的狀態(tài):計(jì)數(shù)值、工作方式、OUT引腳的當(dāng)前狀態(tài)、BCD/二進(jìn)制計(jì)數(shù)方式、讀/寫操作

狀態(tài)字格式

BCD

M0M1M2RW0RW1NULLCOUNTOUTD7D6D5D4D3D2D1D0D7:OUT引腳狀態(tài)。=0,OUT=0;=1,OUT=1

D6:無效計(jì)數(shù)。=0,計(jì)數(shù)初值已裝入計(jì)數(shù)工作單元CE,計(jì)數(shù)值有效=1,計(jì)數(shù)初值未裝入計(jì)數(shù)工作單元CE,無效計(jì)數(shù)

D5…….D0與方式控制字的對(duì)應(yīng)位一致。

控制字鎖存命令字讀回命令字無標(biāo)識(shí)例:要讀通道0的狀態(tài)和余值,設(shè)8254的地址為20CH、20DH、20EH、20FH讀回命令的用法標(biāo)識(shí)位寫讀回命令字:11001000 C8H鎖存余值鎖存狀態(tài)鎖存通道0MOVDX,20FH

MOVAL,0C8H

OUTDX,AL

MOVDX,20CH

INAL,DX

MOVBL,AL

INAL,DX

MOVCL,AL

INAL,DX

MOVCH,AL先讀回狀態(tài)讀回余值低八位讀回余值高八位例:要讀通道0的狀態(tài)和余值,設(shè)8254的地址為20CH、20編程方法及示例1)初始化編程

可編程接口芯片,都有一個(gè)初始化編程問題*8254的初始化編程有兩個(gè)步驟

對(duì)控制寄存器寫入控制字,確定某個(gè)通道的工作方式對(duì)通道寫入計(jì)數(shù)初值

設(shè)8254各個(gè)端口的地址為:通道0:20CH通道1:20DH通道2:20EH控制寄存器:20FH

例1

設(shè)置通道0工作于方式0,計(jì)數(shù)100次

填寫方式字:00

01

0000

選中只讀寫

方式0二進(jìn)制

通道0低字節(jié)方式控制字為10H初始化編程

MOVDX,20FH;取控制寄存器地址MOVAL,10H;取通道0的方式控制字

OUTDX,AL

;方式控制字送入控制寄存器

編程方法及示例1)初始化編程可編程接口芯片,都有一個(gè)初始MOVDX,20CH;取通道0地址MOVAL,64H;取通道0計(jì)數(shù)初值OUTDX,AL;計(jì)數(shù)初值送入通道0;到此,隨著CLK0引腳上的脈沖輸入,初值進(jìn)入CE,開始計(jì)數(shù)。

例2設(shè)置通道1工作在方式3,輸出頻率為1KHz的方波填寫方式字:01

11

0110

選中先低

方式3二進(jìn)制

通道1后高方式控制字為76H計(jì)算計(jì)數(shù)初值:設(shè)從CLK1輸入的時(shí)鐘脈沖的頻率是2.5M,周期為0.4μs通道10.4μs

CLK1

OUT1

1ms

1×10-3/0.4×10-6=2500D=9C4H

每計(jì)滿2500(9C4H)個(gè)時(shí)鐘脈沖,OUT輸出一個(gè)間隔為1ms的脈沖

MOVDX,20CH;取通道0地址例2設(shè)置通道初始化編程MOVDX,20FH;取控制寄存器地址MOVAL,76H;取通道1的方式控制字OUTDX,AL;方式控制字送入控制寄存器MOVDX,20DH;取通道1地址MOVAX,09C4H;取通道1計(jì)數(shù)初值OUTDX,AL;先送計(jì)數(shù)初值的低字節(jié)(C4H)MOVAL,AH;OUTDX,AL;再送高字節(jié)(09H);到此,OUT1輸出頻率為1000Hz的方波

例3通道級(jí)聯(lián)要求通道2定時(shí)1秒如果仍采用2.5M的時(shí)鐘脈沖,按16位的最大計(jì)數(shù)值65536計(jì)算0.4×10-6×65536=26214.4μs≈26ms不能定時(shí)1000ms(1秒)

解決的辦法:采用級(jí)聯(lián)。

用通道1,通道2聯(lián)合完成1秒定時(shí)。

通道1

方式3通道2

方式02.5MHz

CLK1

OUT1

CLK2

1000Hz

OUT2

1秒到

初始化編程MOVDX,20FH;取控制寄通道安排:通道1:工作在方式3下,輸出頻率為1000Hz的方波(周期為1ms),作為通道2的時(shí)鐘脈沖。通道2:工作在方式0,對(duì)周期為1ms的脈沖計(jì)數(shù),計(jì)滿1000次,OUT2輸出高電平,表明1秒定時(shí)到。

填寫通道2方式字:10

11

0001

選中先低

方式0十進(jìn)制

通道2后高通道2方式控制字為:B1H初始化編程:通道1初始化……..(同例2)MOVDX,20FH;取控制寄存器地址MOVAL,0B1H;取通道2的方式控制字OUTDX,AL;方式控制字送控制寄存器MOVDX,20EH;取通道2的地址MOVAX,1000H;取通道2的計(jì)數(shù)初值OUTDX,AL;先送低字節(jié)(00)MOVAL,AHOUTDX,AL;再送高字節(jié)(10);以此為起點(diǎn),一秒到時(shí),OUT變?yōu)楦唠娖?/p>

通道安排:填寫通道2方式字:101

工作編程

a)工作過程中改變計(jì)數(shù)初值b)對(duì)控制寄存器寫入命令字(計(jì)數(shù)器鎖存命令字或讀回命令字)為讀某通道的當(dāng)前CE內(nèi)容和狀態(tài)寄存器內(nèi)容作準(zhǔn)備。c)從通道(0,1,2)讀回狀態(tài)字d)從通道(0,1,2)讀回CE當(dāng)前值(余值)

例4讀取通道2的當(dāng)前計(jì)數(shù)值(余值)

鎖存命令字

10

00

0000

選中通道2

特征值

無意義,可任選

計(jì)數(shù)器鎖存命令字

80H

MOVAL,80H;取通道2計(jì)數(shù)器鎖存命令字MOVDX,20FH;取控制寄存器地址OUTDX,AL;鎖存通道2的CE當(dāng)前值到鎖存器MOVDX,20EH;取通道2地址INAL,DX;從通道2鎖存器讀回余值低8位MOVCL,AL;轉(zhuǎn)存CLINAL,DX;讀回余值高8位MOVCH,AL;轉(zhuǎn)存CH工作編程例4讀取通道2的當(dāng)前計(jì)數(shù)值(余值)鎖存命令實(shí)驗(yàn)裝置8254接線圖I/O譯碼CS1CS2CS3CS4CS5CS6CS7CS8I/O地址300H320H340H360H380H3A0H3C0H3E0H實(shí)驗(yàn)裝置8254接線圖I/O譯碼CS1CS2CS3CS4CSIN指令產(chǎn)生IOR;OUT產(chǎn)生IOW

D0~D7:傳送控制字,命令字,余值,狀態(tài)

6.4.28254在PC中的應(yīng)用(課外閱讀)PC使用一片8254,其3個(gè)計(jì)數(shù)通道分別用于日時(shí)鐘計(jì)時(shí)、DRAM刷新定時(shí)和控制揚(yáng)聲器發(fā)聲聲調(diào)。揚(yáng)聲器發(fā)聲的前提:GATE2=1,即PB0=1與門控制端=1,即PB1=1OUT2輸出一定頻率的脈沖串8255B口地址:61H周期:0.838μs每55ms申請(qǐng)一次中斷IN指令產(chǎn)生IOR;OUT產(chǎn)生IOWD0~D78254的4個(gè)端口地址:T0:40HT1:41HT2:42H控制寄存器:43H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論