第8章可編程接口1_第1頁
第8章可編程接口1_第2頁
第8章可編程接口1_第3頁
第8章可編程接口1_第4頁
第8章可編程接口1_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第8 8章章 可編程接口芯片及應(yīng)用可編程接口芯片及應(yīng)用第第8章章 可編程接口芯片及其應(yīng)用可編程接口芯片及其應(yīng)用教學(xué)重點(diǎn) 可編程定時(shí)可編程定時(shí)/計(jì)數(shù)器計(jì)數(shù)器8253 可編程并行接口可編程并行接口8255 串行通訊概念串行通訊概念 模擬通道接口模擬通道接口A/D、D/A8.1概述概述外設(shè)與外設(shè)與CPUCPU交換信息,需通過交換信息,需通過I/OI/O接口接口電路中轉(zhuǎn)。隨著大規(guī)模電路中轉(zhuǎn)。隨著大規(guī)模( (超大規(guī)模超大規(guī)模) )集成集成電路工藝技術(shù)的發(fā)展,各種電路工藝技術(shù)的發(fā)展,各種專用或通用專用或通用接口芯片接口芯片應(yīng)運(yùn)而生。應(yīng)運(yùn)而生。一、接口芯片的作用一、接口芯片的作用在在CPU與外設(shè)之間,二者

2、交換信息的中介與外設(shè)之間,二者交換信息的中介二、與系統(tǒng)相連時(shí)考慮的問題:二、與系統(tǒng)相連時(shí)考慮的問題:(1) 采用何種采用何種I/O編址方式編址方式獨(dú)立編址方式獨(dú)立編址方式 (2) 接口電路端口地址的確定接口電路端口地址的確定 設(shè)計(jì)地址譯碼電路設(shè)計(jì)地址譯碼電路 (3) 數(shù)據(jù)總線是否需要驅(qū)動數(shù)據(jù)總線是否需要驅(qū)動總線驅(qū)動器和總線緩沖器總線驅(qū)動器和總線緩沖器 (4) 與與CPU控制信號如何連接控制信號如何連接 可編程接口芯片面向可編程接口芯片面向CPU一面的結(jié)構(gòu):一面的結(jié)構(gòu): 內(nèi)內(nèi): 狀態(tài)狀態(tài)REG/控制控制REG、I/O數(shù)據(jù)數(shù)據(jù)REG等等 外外: AB、DB、CB (CS、IO/M、RD/WR、IN

3、TR等)等)8.1概述概述三、常用的接口芯片三、常用的接口芯片并行、串行、并行、串行、A/D和和D/A、定時(shí)、定時(shí)/計(jì)數(shù)器、計(jì)數(shù)器、 鎖存鎖存/緩沖器等緩沖器等8.1概述概述8.2 定時(shí)計(jì)數(shù)控制接口定時(shí)計(jì)數(shù)控制接口概述概述實(shí)現(xiàn)定時(shí)或延時(shí)的方法實(shí)現(xiàn)定時(shí)或延時(shí)的方法: 軟件定時(shí)軟件定時(shí)設(shè)計(jì)一段延時(shí)程序,因一條設(shè)計(jì)一段延時(shí)程序,因一條指令時(shí)間確定。指令時(shí)間確定。 缺點(diǎn)缺點(diǎn):占用占用CPU,降低,降低CPU的利用率的利用率 定時(shí)精度不高定時(shí)精度不高 適用于:適用于:延時(shí)時(shí)間短,個(gè)人計(jì)算機(jī)上。延時(shí)時(shí)間短,個(gè)人計(jì)算機(jī)上。 不適于:不適于:多作業(yè)環(huán)境、時(shí)間緊缺的實(shí)時(shí)系統(tǒng)多作業(yè)環(huán)境、時(shí)間緊缺的實(shí)時(shí)系統(tǒng)中。中。

4、概述概述 不可編程的硬件定時(shí)不可編程的硬件定時(shí)采用中小規(guī)模電采用中小規(guī)模電路器件(分頻器、簡易定時(shí)電路)。路器件(分頻器、簡易定時(shí)電路)。 缺點(diǎn):缺點(diǎn):定時(shí)時(shí)間不能靈活改變。定時(shí)時(shí)間不能靈活改變。 可編程定時(shí)器電路可編程定時(shí)器電路軟件硬件相結(jié)合、軟件硬件相結(jié)合、用可編程定時(shí)器芯片構(gòu)成一個(gè)方便靈活用可編程定時(shí)器芯片構(gòu)成一個(gè)方便靈活的定時(shí)電路,定時(shí)值和定時(shí)范圍可由軟的定時(shí)電路,定時(shí)值和定時(shí)范圍可由軟件改變。件改變。主要作用:主要作用: 脈沖計(jì)數(shù)、定時(shí),脈沖輸出脈沖計(jì)數(shù)、定時(shí),脈沖輸出 多種工作方式,編程可選多種工作方式,編程可選 定時(shí)器定時(shí)器由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成,通過記錄由數(shù)字電路中的計(jì)數(shù)電

5、路構(gòu)成,通過記錄高精度晶振脈沖信號的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間高精度晶振脈沖信號的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間隔隔 計(jì)數(shù)計(jì)數(shù)電路如果記錄外設(shè)提供的具有一定隨機(jī)性的電路如果記錄外設(shè)提供的具有一定隨機(jī)性的脈沖信號時(shí),它主要反映脈沖信號時(shí),它主要反映脈沖的個(gè)數(shù)脈沖的個(gè)數(shù)(進(jìn)而獲知(進(jìn)而獲知外設(shè)的某種狀態(tài)),常又稱為外設(shè)的某種狀態(tài)),常又稱為計(jì)數(shù)器計(jì)數(shù)器概述概述8.2.1 8253定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器 8253是是Intel系列,系列, 計(jì)數(shù)脈沖頻率計(jì)數(shù)脈沖頻率02.6MHz, 具有具有24個(gè)引腳,雙列直插式封裝,個(gè)引腳,雙列直插式封裝, 單電源單電源+5v, 輸入輸出均為輸入輸出均為TTL電平兼容電平兼容

6、3個(gè)獨(dú)立的個(gè)獨(dú)立的16位計(jì)數(shù)器位計(jì)數(shù)器通道通道 每個(gè)計(jì)數(shù)器有每個(gè)計(jì)數(shù)器有6種工作方式種工作方式 按按二進(jìn)制二進(jìn)制或或十進(jìn)制十進(jìn)制(BCD碼)計(jì)數(shù)碼)計(jì)數(shù) 工作方式可編程控制工作方式可編程控制1、8253的內(nèi)部結(jié)構(gòu)及引腳的內(nèi)部結(jié)構(gòu)及引腳D7D0計(jì)數(shù)器0控制字寄存器計(jì)數(shù)器1計(jì)數(shù)器2內(nèi)部數(shù)據(jù)總線數(shù)據(jù)總線緩沖器讀寫控制邏輯RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2計(jì)數(shù)器結(jié)構(gòu)示意圖計(jì)數(shù)器結(jié)構(gòu)示意圖預(yù)置寄存器預(yù)置寄存器GATECLKOUT減減1計(jì)數(shù)器計(jì)數(shù)器輸出鎖存器輸出鎖存器計(jì)數(shù)初值存于計(jì)數(shù)初值存于預(yù)置寄存器預(yù)置寄存器;在計(jì)數(shù)過程中,在計(jì)數(shù)過程中,減

7、法計(jì)數(shù)器減法計(jì)數(shù)器的值不斷遞減,的值不斷遞減,而預(yù)置寄存器中的預(yù)置不變。而預(yù)置寄存器中的預(yù)置不變。輸出鎖存器輸出鎖存器用于寫入鎖存命令時(shí),用于寫入鎖存命令時(shí),鎖定當(dāng)前計(jì)數(shù)值鎖定當(dāng)前計(jì)數(shù)值返回返回1) 三個(gè)獨(dú)立的計(jì)數(shù)器三個(gè)獨(dú)立的計(jì)數(shù)器02 每個(gè):每個(gè):16位,減法,預(yù)置位,減法,預(yù)置計(jì)數(shù):二進(jìn)制、計(jì)數(shù):二進(jìn)制、BCD碼(十進(jìn)制)碼(十進(jìn)制) CLK時(shí)鐘時(shí)鐘(計(jì)數(shù)計(jì)數(shù))輸入輸入在計(jì)數(shù)過程中,此引腳上在計(jì)數(shù)過程中,此引腳上每輸入一個(gè)時(shí)鐘信號(下降沿),計(jì)數(shù)器的計(jì)數(shù)每輸入一個(gè)時(shí)鐘信號(下降沿),計(jì)數(shù)器的計(jì)數(shù)值減值減1。 GATE門控輸入門控輸入控制計(jì)數(shù)器工作,可分成電平控制計(jì)數(shù)器工作,可分成電平控制和

8、上升沿控制兩種類型,控制和上升沿控制兩種類型, “1”-開門,允許計(jì)數(shù)。開門,允許計(jì)數(shù)。 “0”-關(guān)門,禁止計(jì)數(shù)。關(guān)門,禁止計(jì)數(shù)。 OUT計(jì)數(shù)器輸出計(jì)數(shù)器輸出當(dāng)一次計(jì)數(shù)過程結(jié)束(計(jì)數(shù)當(dāng)一次計(jì)數(shù)過程結(jié)束(計(jì)數(shù)值減為值減為0),),OUT引腳上將產(chǎn)生一個(gè)輸出信號,輸引腳上將產(chǎn)生一個(gè)輸出信號,輸出波形取決于工作方式。出波形取決于工作方式。2) 讀讀/寫控制邏輯寫控制邏輯接收系統(tǒng)總線信息,接收系統(tǒng)總線信息,產(chǎn)生產(chǎn)生對各部分的對各部分的控制信號控制信號 A1、A0地址線,區(qū)分地址線,區(qū)分3個(gè)計(jì)數(shù)器個(gè)計(jì)數(shù)器及控制及控制REG。(。(尋址尋址)(三個(gè)計(jì)數(shù)器的控制寄存器共用一個(gè)(三個(gè)計(jì)數(shù)器的控制寄存器共用一個(gè)

9、端口地址)端口地址) RD讀計(jì)數(shù)器讀計(jì)數(shù)器(當(dāng)前計(jì)數(shù)值當(dāng)前計(jì)數(shù)值),低電,低電平有效。平有效。 WR寫寫 鎖存器(計(jì)數(shù)初值)鎖存器(計(jì)數(shù)初值) 控制控制REG(控制字,(控制字, 工作方式)工作方式) CS片選信號,低電平有效。只有片選信號,低電平有效。只有CS有效時(shí)才能對有效時(shí)才能對8253進(jìn)行操作。進(jìn)行操作。 組合組合 P315 表表8.18253的的I/O地址地址0 1 0 0 1 0 0 00 00 1 0 0 1 0 0 10 10 1 0 0 1 0 1 01 00 1 0 0 1 0 1 11 10 0 1 0 0 1 0 00 00 0 1 0 0 1 0 10 10 0 1

10、0 0 1 1 01 0功功 能能對計(jì)數(shù)器對計(jì)數(shù)器0 0設(shè)置計(jì)數(shù)初值設(shè)置計(jì)數(shù)初值CSCSRDRDA A1 1A A0 0WRWR對計(jì)數(shù)器對計(jì)數(shù)器1 1設(shè)置計(jì)數(shù)初值設(shè)置計(jì)數(shù)初值對計(jì)數(shù)器對計(jì)數(shù)器2 2設(shè)置計(jì)數(shù)初值設(shè)置計(jì)數(shù)初值設(shè)置控制字設(shè)置控制字從計(jì)數(shù)器從計(jì)數(shù)器0 0讀出計(jì)數(shù)值讀出計(jì)數(shù)值從計(jì)數(shù)器從計(jì)數(shù)器1 1讀出計(jì)數(shù)值讀出計(jì)數(shù)值從計(jì)數(shù)器從計(jì)數(shù)器2 2讀出計(jì)數(shù)值讀出計(jì)數(shù)值3) 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是是8253與與CPU DB之間連接的接口,之間連接的接口,8位,雙向,位,雙向,對對8253讀寫各種信息,包括:讀寫各種信息,包括: a. 初始化編程時(shí),寫入初始化編程時(shí),寫入8253的控制字;的控

11、制字; b. 給計(jì)數(shù)器設(shè)置計(jì)數(shù)初值;給計(jì)數(shù)器設(shè)置計(jì)數(shù)初值; c. 從計(jì)數(shù)器讀取當(dāng)前計(jì)數(shù)值。從計(jì)數(shù)器讀取當(dāng)前計(jì)數(shù)值。 D7D0-三態(tài)數(shù)據(jù)線,雙向,連到三態(tài)數(shù)據(jù)線,雙向,連到CPU的的DB上。上。 4) 控制字控制字REG (A1A0=11)存放控制字存放控制字 寫入計(jì)數(shù)初值寫入計(jì)數(shù)初值只能寫不能讀只能寫不能讀2、8253主要功能主要功能1.計(jì)數(shù)計(jì)數(shù)GATE=1時(shí),對時(shí),對CLK端的脈沖計(jì)數(shù)端的脈沖計(jì)數(shù)(減減1),每,每來一個(gè)脈沖減來一個(gè)脈沖減1,減至,減至0時(shí),時(shí),OUT輸出脈沖。輸出脈沖。 2. 定時(shí)定時(shí)GATE=1時(shí),由時(shí),由CLK( )脈沖觸發(fā)開始啟)脈沖觸發(fā)開始啟動計(jì)數(shù)動計(jì)數(shù)(減減1),

12、計(jì)到,計(jì)到0時(shí),發(fā)出計(jì)數(shù)結(jié)束信號。時(shí),發(fā)出計(jì)數(shù)結(jié)束信號。CLK接已知的,固定周期的頻率信號。接已知的,固定周期的頻率信號。三、三、8253的工作方式的工作方式8253有有6種工作方式種工作方式,由方式控制字確定,由方式控制字確定 熟悉每種工作方式的特點(diǎn)才能根據(jù)實(shí)際應(yīng)用問題,熟悉每種工作方式的特點(diǎn)才能根據(jù)實(shí)際應(yīng)用問題,選擇正確的工作方式選擇正確的工作方式 每種工作方式的過程類似:每種工作方式的過程類似: 設(shè)定工作方式設(shè)定工作方式 設(shè)定計(jì)數(shù)初值設(shè)定計(jì)數(shù)初值 硬件啟動硬件啟動 計(jì)數(shù)初值進(jìn)入減計(jì)數(shù)初值進(jìn)入減1計(jì)數(shù)器計(jì)數(shù)器 每輸入一個(gè)時(shí)鐘計(jì)數(shù)器減每輸入一個(gè)時(shí)鐘計(jì)數(shù)器減1的計(jì)數(shù)過程的計(jì)數(shù)過程 計(jì)數(shù)過程結(jié)束

13、計(jì)數(shù)過程結(jié)束只有進(jìn)行過初始化的可編程接口芯片,才能自只有進(jìn)行過初始化的可編程接口芯片,才能自動地和動地和CPU并行工作。并行工作。1) 方式控制字方式控制字計(jì)數(shù)器計(jì)數(shù)器SC1 SC0讀寫格式讀寫格式RL1 RL0工作方式工作方式M2 M1 M0數(shù)制數(shù)制BCDD7D6D5D4D3D2D1D000 計(jì)數(shù)器計(jì)數(shù)器001 計(jì)數(shù)器計(jì)數(shù)器110 計(jì)數(shù)器計(jì)數(shù)器211 非法非法00 計(jì)數(shù)器鎖存命計(jì)數(shù)器鎖存命令令 01 只讀寫低字節(jié)只讀寫低字節(jié)10 只讀寫高字節(jié)只讀寫高字節(jié)11 先讀寫低字節(jié)先讀寫低字節(jié) 后讀寫高字節(jié)后讀寫高字節(jié)000 方式方式0001 方式方式1010 方式方式2011 方式方式3100 方式

14、方式4101 方式方式50 二進(jìn)制二進(jìn)制1 十進(jìn)制十進(jìn)制控制字寫入控制字控制字寫入控制字I/O地址(地址(A1A011) D7D6:SC1、SC0用于用于選擇計(jì)數(shù)器選擇計(jì)數(shù)器 D5D4:RL1,RL0讀讀/寫格式寫格式 當(dāng)當(dāng)RL1,RL0=00時(shí),時(shí),鎖存計(jì)數(shù)器鎖存計(jì)數(shù)器的數(shù)據(jù)的數(shù)據(jù)不影響計(jì)數(shù)器正常工作。不影響計(jì)數(shù)器正常工作。CPU讀取某通道當(dāng)前計(jì)數(shù)器前,讀取某通道當(dāng)前計(jì)數(shù)器前,先向控制寄存器發(fā)出鎖存該通道命令,計(jì)數(shù)值即被送入相先向控制寄存器發(fā)出鎖存該通道命令,計(jì)數(shù)值即被送入相應(yīng)鎖存器鎖存,而計(jì)數(shù)器繼續(xù)工作。應(yīng)鎖存器鎖存,而計(jì)數(shù)器繼續(xù)工作。 D3D1:M2,M1,M0工作方式選擇,用來工作方式

15、選擇,用來 指定所選擇指定所選擇計(jì)數(shù)器的工作方式。計(jì)數(shù)器的工作方式。 D0:BCD數(shù)制格式,用來確定計(jì)數(shù)是采用二進(jìn)制還是數(shù)制格式,用來確定計(jì)數(shù)是采用二進(jìn)制還是二二十進(jìn)制十進(jìn)制 二進(jìn)制二進(jìn)制初值范圍:初值范圍:0000HFFFFH 最大:最大:0000H,216,65536 十進(jìn)制十進(jìn)制初值范圍:初值范圍:0000H9999H 最大:最大:0000H,104,10000 最小:最?。?001H1) 方式控制字方式控制字圖示圖示2)2)工作方式工作方式 方式方式0 0 計(jì)數(shù)結(jié)束中斷計(jì)數(shù)結(jié)束中斷 寫入寫入CW OUT CW OUT ; 寫入計(jì)數(shù)值后的第一個(gè)寫入計(jì)數(shù)值后的第一個(gè)CLK CLK 開始計(jì)數(shù)

16、;開始計(jì)數(shù);OUTOUT0 0 計(jì)數(shù)到計(jì)數(shù)到0 OUT 0 OUT 寫入新的控制字或初值,計(jì)數(shù)器在到零后仍繼寫入新的控制字或初值,計(jì)數(shù)器在到零后仍繼續(xù)計(jì)數(shù)續(xù)計(jì)數(shù) 計(jì)數(shù)條件:計(jì)數(shù)條件:GATE=1GATE=1(1)方式)方式0 計(jì)數(shù)結(jié)束中斷計(jì)數(shù)結(jié)束中斷GATEOUTCLK 031244方式方式0WR設(shè)設(shè)定定工工作作方方式式設(shè)設(shè)定定計(jì)計(jì)數(shù)數(shù)初初值值計(jì)計(jì)數(shù)數(shù)值值送送入入計(jì)計(jì)數(shù)數(shù)器器計(jì)計(jì)數(shù)數(shù)過過程程計(jì)計(jì)數(shù)數(shù)結(jié)結(jié)束束特點(diǎn):特點(diǎn): 寫入一次計(jì)數(shù)值,只計(jì)數(shù)一次。寫入一次計(jì)數(shù)值,只計(jì)數(shù)一次。不能自動重復(fù)不能自動重復(fù)。 計(jì)數(shù):計(jì)數(shù):“CLKCLKGATE”GATE”的脈沖數(shù),的脈沖數(shù),GATE=0GATE=0時(shí)

17、暫時(shí)暫停計(jì)數(shù)停計(jì)數(shù)。 計(jì)數(shù)過程中計(jì)數(shù)過程中改變數(shù)值:立即有效改變數(shù)值:立即有效 8 8位按新值計(jì)數(shù)位按新值計(jì)數(shù)1616位寫入低位寫入低8 8位,暫停計(jì)數(shù),寫入高位,暫停計(jì)數(shù),寫入高8 8位后,按新值位后,按新值計(jì)數(shù)計(jì)數(shù) 計(jì)數(shù)過程由計(jì)數(shù)過程由軟件啟動軟件啟動 實(shí)際應(yīng)用中,實(shí)際應(yīng)用中,OUTINTROUTINTR 方式方式1可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器可以可以輸出一個(gè)寬度可程控的負(fù)脈沖輸出一個(gè)寬度可程控的負(fù)脈沖。 寫入寫入CW OUT=“1”( );); 寫入計(jì)數(shù)值后,待寫入計(jì)數(shù)值后,待GATE( )來后,下一個(gè))來后,下一個(gè)CLK 開始計(jì)數(shù)開始計(jì)數(shù) OUT=“0”( ););

18、 計(jì)數(shù)到計(jì)數(shù)到0 OUT=“1”; 之后,每一個(gè)之后,每一個(gè)GATE ,使計(jì)數(shù)過程重復(fù)一遍。,使計(jì)數(shù)過程重復(fù)一遍。 輸出輸出OUT為一定寬度的負(fù)脈沖,為一定寬度的負(fù)脈沖, 寬度寬度=n * CLK時(shí)鐘周期時(shí)鐘周期(2)方式)方式1 可編程單穩(wěn)脈沖可編程單穩(wěn)脈沖設(shè)設(shè)定定工工作作方方式式設(shè)設(shè)定定計(jì)計(jì)數(shù)數(shù)初初值值硬硬件件啟啟動動計(jì)計(jì)數(shù)數(shù)值值送送入入計(jì)計(jì)數(shù)數(shù)器器計(jì)計(jì)數(shù)數(shù)過過程程計(jì)計(jì)數(shù)數(shù)結(jié)結(jié)束束GATEOUTCLK 031244方式方式1WR特點(diǎn):特點(diǎn): 可由可由GATE重觸發(fā)計(jì)數(shù)過程,計(jì)數(shù)到重觸發(fā)計(jì)數(shù)過程,計(jì)數(shù)到0后不用再送后不用再送初值。初值。 計(jì)數(shù)過程中計(jì)數(shù)過程中改變計(jì)數(shù)值,下次有效改變計(jì)數(shù)值,下

19、次有效。對當(dāng)前計(jì)數(shù)。對當(dāng)前計(jì)數(shù)無影響。無影響。 計(jì)數(shù)過程中,計(jì)數(shù)過程中,GATE ;立即有效,重新計(jì)數(shù);立即有效,重新計(jì)數(shù)。使使OUT輸出的負(fù)脈沖加寬。輸出的負(fù)脈沖加寬。 計(jì)數(shù)器的啟動只能由門控脈沖的上升沿產(chǎn)生,即計(jì)數(shù)器的啟動只能由門控脈沖的上升沿產(chǎn)生,即只能用只能用硬件啟動硬件啟動計(jì)數(shù)器,不能用軟件來啟動計(jì)數(shù)計(jì)數(shù)器,不能用軟件來啟動計(jì)數(shù)器。器。 應(yīng)用:實(shí)現(xiàn)定時(shí)功能,應(yīng)用:實(shí)現(xiàn)定時(shí)功能,CLK已知,定時(shí)時(shí)間已知,已知,定時(shí)時(shí)間已知,n可算出??伤愠觥?方式方式2 頻率發(fā)生器頻率發(fā)生器(n分頻器分頻器)能產(chǎn)生周期性(固定頻率)的脈沖信號。能產(chǎn)生周期性(固定頻率)的脈沖信號。 寫入寫入CW OUT

20、=“1” 寫入計(jì)數(shù)值后,下一個(gè)寫入計(jì)數(shù)值后,下一個(gè)CLK的的 開始計(jì)數(shù)開始計(jì)數(shù) 計(jì)數(shù)到計(jì)數(shù)到1 OUT=“0” 經(jīng)過一個(gè)經(jīng)過一個(gè)CLK周期周期 OUT=“1” ,且開始重,且開始重新計(jì)數(shù)。新計(jì)數(shù)。(3)方式)方式2 頻率發(fā)生器(分頻器)頻率發(fā)生器(分頻器)03124GATEOUTCLK 4方式方式2031240312403124WR特點(diǎn):特點(diǎn): 重復(fù)計(jì)數(shù):重復(fù)計(jì)數(shù):周期性脈沖輸出周期性脈沖輸出。 計(jì)數(shù)值計(jì)數(shù)值n,產(chǎn)生負(fù)脈沖的周期:,產(chǎn)生負(fù)脈沖的周期:n 個(gè)個(gè)CLK周期周期 其中:其中: n-1個(gè)周期內(nèi),個(gè)周期內(nèi),OUT=“1” 1個(gè)個(gè)CLK周期內(nèi),周期內(nèi),OUT=“0” OUT輸出信號的頻率輸

21、出信號的頻率=1/n*CLK信號頻率信號頻率(n分頻分頻) GATE=0,暫停計(jì)數(shù);,暫停計(jì)數(shù);GATE=1,重新從初值計(jì)數(shù),重新從初值計(jì)數(shù)。(硬件同步硬件同步) 在寫入在寫入CW和計(jì)數(shù)初值后,如和計(jì)數(shù)初值后,如GATE=“1”(一直),(一直),開始計(jì)數(shù)。開始計(jì)數(shù)。(軟件同步軟件同步) 方式方式2既可用既可用軟件啟動又可硬件啟動軟件啟動又可硬件啟動 改變計(jì)數(shù)值,改變計(jì)數(shù)值,當(dāng)前不影響當(dāng)前不影響,在,在OUT 后有效。后有效。 應(yīng)用:分頻器,時(shí)基信號應(yīng)用:分頻器,時(shí)基信號各種工作方式的輸出波形各種工作方式的輸出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N

22、0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 1討論:討論:計(jì)數(shù)開始的時(shí)刻計(jì)數(shù)開始的時(shí)刻3) 計(jì)數(shù)開始的時(shí)刻計(jì)數(shù)開始的時(shí)刻需要注意需要注意: 處理器寫入處理器寫入8253的計(jì)數(shù)初值只是寫入了預(yù)置的計(jì)數(shù)初值只是寫入了預(yù)置寄存器,之后到來的第一個(gè)寄存器,之后到來的第一個(gè)CLK輸入脈沖輸入脈沖(需(需先由低電平變高,再由高變低先由低電平變高,再由高變低)才將預(yù))才將預(yù)置寄存器的初值送到減置寄存器的初值送到減1計(jì)數(shù)器。計(jì)數(shù)器。 從第二個(gè)從第二個(gè)CLK信號的下降沿,計(jì)數(shù)器才真正信號的下降沿,計(jì)數(shù)器才真正開始減開始減1計(jì)數(shù)。計(jì)數(shù)。4) 8253工作方式小結(jié)工作方式小結(jié)8253有有6種不同

23、的工作方式。其中:種不同的工作方式。其中:方式方式2,4,5的輸出波形相同,都是寬度為一個(gè)的輸出波形相同,都是寬度為一個(gè)CLK周期的負(fù)脈沖。周期的負(fù)脈沖。 方式方式2連續(xù)連續(xù)方式方式4由軟件(設(shè)置初值)觸發(fā)啟動由軟件(設(shè)置初值)觸發(fā)啟動方式方式5由硬件(門控脈沖)觸發(fā)啟動由硬件(門控脈沖)觸發(fā)啟動 方式方式5(硬件觸發(fā)選通)與方式(硬件觸發(fā)選通)與方式1(硬件重復(fù)觸發(fā)單穩(wěn)脈沖)工作方式基(硬件重復(fù)觸發(fā)單穩(wěn)脈沖)工作方式基本相同,但輸出波形不同。本相同,但輸出波形不同。方式方式1輸出輸出n個(gè)個(gè)CLK脈沖周期的低有效脈沖脈沖周期的低有效脈沖(計(jì)數(shù)過程中輸出為(計(jì)數(shù)過程中輸出為 低)低) 方式方式5

24、輸出寬度為輸出寬度為1個(gè)個(gè)CLK脈沖周期的負(fù)脈沖脈沖周期的負(fù)脈沖(計(jì)數(shù)過程輸出為(計(jì)數(shù)過程輸出為 高)高) 輸出端輸出端OUT的初始狀態(tài):的初始狀態(tài):方式方式0在寫入控制字后輸出為低電平在寫入控制字后輸出為低電平其余方式寫入控制字后,輸出均變?yōu)楦唠娖狡溆喾绞綄懭肟刂谱趾螅敵鼍優(yōu)楦唠娖椒绞椒绞?和方式和方式3連續(xù)計(jì)數(shù)連續(xù)計(jì)數(shù)其它方式其它方式一次計(jì)數(shù)一次計(jì)數(shù),要繼續(xù)工作需要重新啟動,要繼續(xù)工作需要重新啟動方式方式0、4由軟件啟動由軟件啟動方式方式1、5由硬件啟動由硬件啟動實(shí)驗(yàn)實(shí)驗(yàn)1計(jì)數(shù)開始計(jì)數(shù)開始實(shí)驗(yàn)實(shí)驗(yàn)1計(jì)數(shù)開始計(jì)數(shù)開始計(jì)數(shù)開始計(jì)數(shù)開始5) 8253與與CPU的連接的連接一個(gè)一個(gè)8253占用

25、占用4個(gè)地址,由個(gè)地址,由A1A0的取值區(qū)分:的取值區(qū)分: 00、01、10 分別尋址計(jì)數(shù)器分別尋址計(jì)數(shù)器0、1、2 11 尋址控制寄存器尋址控制寄存器 4個(gè)端口的具體地址由個(gè)端口的具體地址由CS和和A1A0共同決定。共同決定。 A1A0接總線的接總線的A1A0 CS接端口地址譯碼器接端口地址譯碼器 8253的的RD、WR分別接總線的分別接總線的RD,WR D0D7分別接分別接DB的的D0D7 特別:地址譯碼特別:地址譯碼4、8253編程及應(yīng)用編程及應(yīng)用 8253加電后的工作方式不確定加電后的工作方式不確定 8253必須初始化編程,才能正常工作必須初始化編程,才能正常工作 寫入控制字寫入控制字

26、 寫入計(jì)數(shù)初值寫入計(jì)數(shù)初值 讀取計(jì)數(shù)值讀取計(jì)數(shù)值1) 初始化編程初始化編程 8253在工作之前,通過軟件首先寫入各在工作之前,通過軟件首先寫入各個(gè)計(jì)數(shù)器的個(gè)計(jì)數(shù)器的方式控制字方式控制字,然后按控制字中,然后按控制字中RL1、RL0的規(guī)定寫入的規(guī)定寫入計(jì)數(shù)初值計(jì)數(shù)初值。 即:寫入控制字即:寫入控制字寫入計(jì)數(shù)值寫入計(jì)數(shù)值 8位位 16位位-先低先低8位位 后高后高8位位 例例1: 設(shè)設(shè)8253的端口地址為:的端口地址為:04H07H,要使,要使計(jì)數(shù)器計(jì)數(shù)器1工工作在作在方式方式0,僅用,僅用8位位二進(jìn)制計(jì)數(shù)二進(jìn)制計(jì)數(shù),計(jì)數(shù)值為計(jì)數(shù)值為128,進(jìn)行初,進(jìn)行初始化編程。始化編程??刂谱譃椋嚎刂谱譃椋?

27、1 01 000 0B=50H, n=128=80H初始化程序:初始化程序:MOV AL,50HOUT 07H,ALMOV AL,80HOUT 05H,AL 例例2: 設(shè)設(shè)8253的端口地址為:的端口地址為:F8HFBH,若用,若用通通道道0工作在工作在方式方式1,按,按二二十進(jìn)制十進(jìn)制計(jì)數(shù),計(jì)數(shù)值為計(jì)數(shù),計(jì)數(shù)值為5080H,進(jìn)行初始化編程。,進(jìn)行初始化編程??刂谱譃椋嚎刂谱譃椋?0 11 001 1B=33H ,n=5080H初始化程序:初始化程序:MOV AL,33HOUT 0FBH,ALMOV AL,80HOUT 0F8H,ALMOV AL,50HOUT 0F8H,AL 畫連線圖畫連線圖

28、例例3:設(shè)設(shè)8253的端口地址為:的端口地址為: 2A0H2A3H,若用,若用通道通道0工作在工作在方式方式1,按,按十進(jìn)制十進(jìn)制計(jì)數(shù),計(jì)數(shù)值為計(jì)數(shù),計(jì)數(shù)值為5080H,進(jìn),進(jìn)行初始化編程。行初始化編程。初始化程序?yàn)槌跏蓟绦驗(yàn)?MOV DX, 2A3H;控制端口地址為控制端口地址為2A3HMOV AL, 33H ;控制字為控制字為32HOUT DX, AL ;送方式控制字到控制送方式控制字到控制regMOV DX, 2A0H;計(jì)數(shù)器計(jì)數(shù)器0端口地址為端口地址為2A0HMOV AL, 80HOUT DX, AL ;先寫低先寫低8位計(jì)數(shù)值到計(jì)數(shù)器位計(jì)數(shù)值到計(jì)數(shù)器MOV AL, 50HOUT DX

29、, AL ;再寫高再寫高8位計(jì)數(shù)值到計(jì)數(shù)器位計(jì)數(shù)值到計(jì)數(shù)器0例例4: 計(jì)數(shù)器計(jì)數(shù)器1,定時(shí),定時(shí) 5ms停,外時(shí)鐘停,外時(shí)鐘1MHz頻率頻率f=1MHz=106Hz 取方式取方式0n10-6=510-3n=5000=1388H 注意:計(jì)數(shù)初值的最大、最小值注意:計(jì)數(shù)初值的最大、最小值寫入計(jì)數(shù)值 選擇二進(jìn)制時(shí)選擇二進(jìn)制時(shí) 計(jì)數(shù)值范圍:計(jì)數(shù)值范圍:0000HFFFFH 0000H是最大值,代表是最大值,代表65536 選擇十進(jìn)制(選擇十進(jìn)制(BCD碼)碼) 計(jì)數(shù)值范圍:計(jì)數(shù)值范圍:00009999 0000代表最大值代表最大值10000計(jì)數(shù)值寫入計(jì)數(shù)器各自的計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址地址2)

30、 讀計(jì)數(shù)值讀計(jì)數(shù)值8位位直接讀(讀一次)直接讀(讀一次)16位位 鎖存鎖存,讀低,讀低8位,讀高位,讀高8位位 (讀二次)(讀二次)讀取計(jì)數(shù)值讀取計(jì)數(shù)值 對對8位數(shù)據(jù)線,讀取位數(shù)據(jù)線,讀取16位計(jì)數(shù)值需分兩次位計(jì)數(shù)值需分兩次 計(jì)數(shù)在不斷進(jìn)行,應(yīng)該將當(dāng)前計(jì)數(shù)值先行計(jì)數(shù)在不斷進(jìn)行,應(yīng)該將當(dāng)前計(jì)數(shù)值先行鎖存,然后讀?。烘i存,然后讀?。?向向控制字控制字I/O地址地址:給:給8253寫入鎖存命令寫入鎖存命令(D5D4=00) 從從計(jì)數(shù)器計(jì)數(shù)器I/O地址地址:讀取鎖存的計(jì)數(shù)值:讀取鎖存的計(jì)數(shù)值讀取計(jì)數(shù)值,要注意讀寫格式和計(jì)數(shù)數(shù)制讀取計(jì)數(shù)值,要注意讀寫格式和計(jì)數(shù)數(shù)制圖示圖示讀取計(jì)數(shù)器讀取計(jì)數(shù)器1的的16位

31、計(jì)數(shù)值,采用鎖存方式位計(jì)數(shù)值,采用鎖存方式,設(shè)設(shè)8253的端口地址為:的端口地址為: 2A0H2A3H 。MOV AL, 40HMOV DX, 2A3H命令控制字送控制端口命令控制字送控制端口 OUT DX, ALMOV DX, 2A1H讀取計(jì)數(shù)器讀取計(jì)數(shù)器1低低8位數(shù)據(jù)位數(shù)據(jù)IN AL, DXXCHG AL, AH;暫存暫存AHIN AL, DX;讀取計(jì)數(shù)器讀取計(jì)數(shù)器1高高8位數(shù)據(jù)位數(shù)據(jù)XCHG AL, AH;AX中為計(jì)數(shù)器中為計(jì)數(shù)器1的的16位計(jì)數(shù)值位計(jì)數(shù)值3) 8253在在IBM PC系列機(jī)上的應(yīng)用系列機(jī)上的應(yīng)用A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GAT

32、E1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至揚(yáng)聲器驅(qū)動器接至揚(yáng)聲器驅(qū)動器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS(1) 定時(shí)中斷和定時(shí)刷新 從閱讀初始化程序段 看計(jì)數(shù)器0作為定時(shí)中斷的作用n將將計(jì)數(shù)器計(jì)數(shù)器1作為定時(shí)刷新作為定時(shí)刷新n看如何編寫初始化程序段看如何編寫初始化程序段定時(shí)中斷mov al,36h;計(jì)數(shù)器計(jì)數(shù)器0為方式為方式3,采用二進(jìn)制計(jì)數(shù),采用二進(jìn)制計(jì)數(shù),;先低后高寫入計(jì)數(shù)值先低后高寫入計(jì)數(shù)值out 43h,al;寫入方式控制字寫入方式控制字mov al,0;計(jì)數(shù)值

33、為計(jì)數(shù)值為0out 40h,al;寫入低字節(jié)計(jì)數(shù)值寫入低字節(jié)計(jì)數(shù)值out 40h,al;寫入高字節(jié)計(jì)數(shù)值寫入高字節(jié)計(jì)數(shù)值8253初始化計(jì)數(shù)器0:定時(shí)中斷 計(jì)數(shù)器0:方式3,計(jì)數(shù)值:65536,輸出頻率為1.19318MHz6553618.206Hz的方波 門控為常啟狀態(tài),這個(gè)方波信號不斷產(chǎn)生 OUT0端接8259A的IRQ0,用作中斷請求信號 每秒產(chǎn)生18.206次中斷請求,或說每隔55ms(54.925493ms)申請一次中斷 DOS系統(tǒng)利用計(jì)數(shù)器0的這個(gè)特點(diǎn),通過08號中斷服務(wù)程序?qū)崿F(xiàn)了日時(shí)鐘計(jì)時(shí)功能計(jì)數(shù)器1:定時(shí)刷新 需要重復(fù)不斷提出刷新請求門控總為高,選擇方式門控總為高,選擇方式2或或

34、3n2ms內(nèi)刷新內(nèi)刷新128次,即次,即15.6 s刷新一次刷新一次計(jì)數(shù)初值為計(jì)數(shù)初值為18定時(shí)刷新mov al,54h;計(jì)數(shù)器計(jì)數(shù)器1為方式為方式2,采用二進(jìn)制計(jì)數(shù),只寫,采用二進(jìn)制計(jì)數(shù),只寫低低8位計(jì)數(shù)值位計(jì)數(shù)值out 43h,al;寫入方式控制字寫入方式控制字mov al,18;計(jì)數(shù)初值為計(jì)數(shù)初值為18out 41h,al;寫入計(jì)數(shù)值寫入計(jì)數(shù)值8253初始化(2) 揚(yáng)聲器控制 計(jì)數(shù)器2的輸出控制揚(yáng)聲器的發(fā)聲音調(diào) 計(jì)數(shù)器2只能工作在方式3,才能輸出一定頻率的方波,經(jīng)濾波后得到近似的正弦波,進(jìn)而推動揚(yáng)聲器發(fā)聲 揚(yáng)聲器還受控于并行接口(8255芯片) 必須使PB0和PB1同時(shí)為高電平,揚(yáng)聲器才

35、能發(fā)出預(yù)先設(shè)定頻率的聲音頻率設(shè)置speakerprocpush axmov al,0b6hout 43h,al;寫入控制字寫入控制字pop axout 42h,al;寫入低寫入低8位計(jì)數(shù)值位計(jì)數(shù)值mov al,ahout 42h,al;寫入高寫入高8位計(jì)數(shù)值位計(jì)數(shù)值retspeakerendp揚(yáng)聲器控制揚(yáng)聲器開speakonprocpush axin al,61hor al,03h;D1D0PB1PB011B,其他位不變,其他位不變out 61h,alpop axretspeakonendp揚(yáng)聲器控制揚(yáng)聲器關(guān)speakonprocpush axin al,61hand al,0fch;D1D0

36、PB1PB000B,其他位不變,其他位不變out 61h,alpop axretspeakonendp揚(yáng)聲器控制主程序;數(shù)據(jù)段數(shù)據(jù)段freqdw 1193180/600;代碼段代碼段mov ax,freqcall speaker;設(shè)置揚(yáng)聲器音調(diào)設(shè)置揚(yáng)聲器音調(diào)call speakon;打開揚(yáng)聲器聲音打開揚(yáng)聲器聲音mov ah,1;等待按鍵等待按鍵int 21hcall speakoff;關(guān)閉揚(yáng)聲器聲音關(guān)閉揚(yáng)聲器聲音揚(yáng)聲器控制(3) 可編程硬件延時(shí) 利用日時(shí)鐘每隔55ms中斷一次不變的特點(diǎn),可以編寫一段不隨系統(tǒng)時(shí)鐘頻率變化的固定延時(shí)程序 由于日時(shí)鐘中斷的時(shí)間單位是55ms,所以無法實(shí)現(xiàn)更短時(shí)間的延時(shí) 這時(shí)只有利用實(shí)時(shí)時(shí)鐘中斷,不過

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論