




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第1111章章 可編程定時(shí)器可編程定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 計(jì)算機(jī)中的定時(shí)和延時(shí)控制、對(duì)外部事件或信號(hào)的計(jì)數(shù)計(jì)算機(jī)中的定時(shí)和延時(shí)控制、對(duì)外部事件或信號(hào)的計(jì)數(shù) 軟件方法軟件方法 固定時(shí)間的硬件定時(shí)固定時(shí)間的硬件定時(shí) 可編程的硬件定時(shí)可編程的硬件定時(shí)計(jì)算機(jī)系統(tǒng)中采用可編程定時(shí)計(jì)算機(jī)系統(tǒng)中采用可編程定時(shí)/計(jì)數(shù)器計(jì)數(shù)器I8253和和I8254 8254內(nèi)部集成了內(nèi)部集成了3個(gè)個(gè)16位的計(jì)數(shù)器位的計(jì)數(shù)器, 每個(gè)計(jì)數(shù)器有每個(gè)計(jì)數(shù)器有6種工作方式,種工作方式,計(jì)數(shù)初值可設(shè)定為二進(jìn)制或計(jì)數(shù)初值可設(shè)定為二進(jìn)制或BCD碼。最高工作頻率碼。最高工作頻率10兆。兆。一一.8254內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) (24腳腳)數(shù)據(jù)總
2、線數(shù)據(jù)總線 緩沖器緩沖器讀寫(xiě)讀寫(xiě)控制控制控制字控制字寄存器寄存器 0號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 1號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 2號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器RDWRA0CSA1D70GATE0GATE0OUT0OUT0CLK0CLK0GATE1GATE1OUT1OUT1CLK1CLK1GATE2GATE2OUT2OUT2CLK2CLK2數(shù)據(jù)總線數(shù)據(jù)總線 緩沖器緩沖器讀寫(xiě)讀寫(xiě)控制控制控制字控制字寄存器寄存器 0號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 1號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 2號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器RDWRA0CSA1D70GATE0GATE0OUT0OUT0CLK0CLK0GATE1GATE1OUT1OUT1CLK1CLK1GATE2GATE2OUT2OUT
3、2CLK2CLK2 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器: 完成和系統(tǒng)數(shù)據(jù)線的配接。完成和系統(tǒng)數(shù)據(jù)線的配接。 對(duì)外有對(duì)外有8條數(shù)據(jù)線條數(shù)據(jù)線D70 8254 8254的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線數(shù)據(jù)總線 緩沖器緩沖器讀寫(xiě)讀寫(xiě)控制控制控制字控制字寄存器寄存器 0號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 1號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 2號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器RDWRA0CSA1D70GATE0GATE0OUT0OUT0CLK0CLK0GATE1GATE1OUT1OUT1CLK1CLK1GATE2GATE2OUT2OUT2CLK2CLK2 讀寫(xiě)控制模塊讀寫(xiě)控制模塊: 選擇芯片內(nèi)部的控制寄存器和計(jì)數(shù)器選擇芯片內(nèi)部的控制寄存器和計(jì)數(shù)器, 在讀寫(xiě)在讀寫(xiě)
4、命令的控制下對(duì)選中的端口進(jìn)行讀寫(xiě)操作。對(duì)外有命令的控制下對(duì)選中的端口進(jìn)行讀寫(xiě)操作。對(duì)外有5條引線。條引線。 8254 8254的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)CS 計(jì)數(shù)初值寫(xiě)入計(jì)數(shù)器#000001 操 作 計(jì)數(shù)初值寫(xiě)入計(jì)數(shù)器#100011 計(jì)數(shù)初值寫(xiě)入計(jì)數(shù)器#200101 向控制字寄存器寫(xiě)控制字00111 讀計(jì)數(shù)器#0當(dāng)前計(jì)數(shù)值01000 讀計(jì)數(shù)器#1當(dāng)前計(jì)數(shù)值01010 讀計(jì)數(shù)器#2當(dāng)前計(jì)數(shù)值01100011101XXXX01XX1無(wú)操作無(wú)操作禁止 表7.1 8254內(nèi)部寄存器讀/寫(xiě)操作RDWRA1A0 8254 8254的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線數(shù)據(jù)總線 緩沖器緩沖器讀寫(xiě)讀寫(xiě)控制控制控制字控制字寄存
5、器寄存器 0號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 1號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 2號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器RDWRA0CSA1D70GATE0GATE0OUT0OUT0CLK0CLK0GATE1GATE1OUT1OUT1CLK1CLK1GATE2GATE2OUT2OUT2CLK2CLK2 控制寄存器控制寄存器: 寄存寄存CPU對(duì)其初始化編程時(shí)寫(xiě)入的控制字,對(duì)其初始化編程時(shí)寫(xiě)入的控制字,以決定計(jì)數(shù)器的工作方式和并設(shè)置讀出命令。以決定計(jì)數(shù)器的工作方式和并設(shè)置讀出命令。 8254 8254的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線數(shù)據(jù)總線 緩沖器緩沖器讀寫(xiě)讀寫(xiě)控制控制控制字控制字寄存器寄存器 0號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 1號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器 2號(hào)號(hào)計(jì)數(shù)器計(jì)數(shù)器
6、RDWRA0CSA1D70GATE0GATE0OUT0OUT0CLK0CLK0GATE1GATE1OUT1OUT1CLK1CLK1GATE2GATE2OUT2OUT2CLK2CLK2計(jì)數(shù)器計(jì)數(shù)器: 每個(gè)計(jì)數(shù)器對(duì)外有每個(gè)計(jì)數(shù)器對(duì)外有3條線條線 GATE 控制信號(hào)控制信號(hào) CLK 計(jì)數(shù)脈沖輸入計(jì)數(shù)脈沖輸入 OUT 計(jì)數(shù)器輸出計(jì)數(shù)器輸出 8254 8254的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)口地址口地址譯碼器譯碼器A9A2AEND7D0IORIOWA1A0D7D0RDWRA1A0CS8254 二二. 8254與系統(tǒng)總線的連接與系統(tǒng)總線的連接I/O口地址分口地址分2段段A9A2參加譯碼,譯碼參加譯碼,譯碼 輸出負(fù)脈沖
7、。使輸出負(fù)脈沖。使CS=0, 選中選中8254A1,A0直接與芯片直接與芯片A1,A0 相連,選擇片內(nèi)寄存器相連,選擇片內(nèi)寄存器執(zhí)行執(zhí)行IN時(shí)從選中的內(nèi)部時(shí)從選中的內(nèi)部 寄存器讀寄存器讀執(zhí)行執(zhí)行OUT時(shí)向選中的內(nèi)時(shí)向選中的內(nèi) 部寄存器寫(xiě)部寄存器寫(xiě)三三.8254內(nèi)部寄存器內(nèi)部寄存器/計(jì)數(shù)器口地址計(jì)數(shù)器口地址 在在CS=0前提下前提下 A1 A0 選中選中0 0 0#0 0 0#計(jì)數(shù)器計(jì)數(shù)器0 1 1#0 1 1#計(jì)數(shù)器計(jì)數(shù)器 0 2#0 2#計(jì)數(shù)器計(jì)數(shù)器1 1 1 1 控制寄存器控制寄存器設(shè)設(shè)8254與系統(tǒng)總線如上圖聯(lián)接與系統(tǒng)總線如上圖聯(lián)接: 口地址口地址=40H43H,“選中選中”8254,則
8、,則0#2#計(jì)計(jì) 數(shù)器口地址數(shù)器口地址=40H42H,控制口地址,控制口地址=43H。口地址口地址=2FCH2FFH,“選中選中”8254,則,則 0#2#計(jì)數(shù)器口地址計(jì)數(shù)器口地址=2FCH2FEH,控制口,控制口 地址地址=2FFH。四四.計(jì)數(shù)器內(nèi)部結(jié)構(gòu)示意圖計(jì)數(shù)器內(nèi)部結(jié)構(gòu)示意圖 內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線計(jì)數(shù)初值寄存器計(jì)數(shù)初值寄存器(16位位)減減1計(jì)數(shù)器計(jì)數(shù)器(16位位)計(jì)數(shù)值鎖存器計(jì)數(shù)值鎖存器(16位位)鎖存命令鎖存命令GATECLKOUT內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線 初始化編程時(shí)初始化編程時(shí): : 計(jì)數(shù)初值計(jì)數(shù)初值 計(jì)數(shù)初值寄存器計(jì)數(shù)初值寄存器 減減1 1計(jì)數(shù)器計(jì)數(shù)器內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線計(jì)數(shù)初值寄
9、存器計(jì)數(shù)初值寄存器(16位位)減減1計(jì)數(shù)器計(jì)數(shù)器(16位位)計(jì)數(shù)值鎖存器計(jì)數(shù)值鎖存器(16位位)鎖存命令鎖存命令GATECLKOUT內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線 計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)計(jì)數(shù)器的內(nèi)部結(jié)構(gòu) 當(dāng)當(dāng)GATA=1時(shí)時(shí), CLK的下降沿使計(jì)數(shù)器減的下降沿使計(jì)數(shù)器減1,當(dāng)計(jì)數(shù)值減到當(dāng)計(jì)數(shù)值減到0 (或某個(gè)值或某個(gè)值由工作方式確定由工作方式確定)時(shí)時(shí), OUT有輸出。有輸出。內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線計(jì)數(shù)初值寄存器計(jì)數(shù)初值寄存器(16位位)減減1計(jì)數(shù)器計(jì)數(shù)器(16位位)計(jì)數(shù)值鎖存器計(jì)數(shù)值鎖存器(16位位)鎖存命令鎖存命令GATECLKOUT內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線 計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)計(jì)數(shù)器的內(nèi)部結(jié)構(gòu) 計(jì)數(shù)初值計(jì)數(shù)初值
10、= f c l k / f o u t 收到鎖存命令后收到鎖存命令后, 當(dāng)前計(jì)數(shù)值當(dāng)前計(jì)數(shù)值 計(jì)數(shù)值鎖存器計(jì)數(shù)值鎖存器(以便讀出以便讀出檢查檢查), 而計(jì)數(shù)器仍然做減而計(jì)數(shù)器仍然做減1計(jì)數(shù)計(jì)數(shù)內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線計(jì)數(shù)初值寄存器計(jì)數(shù)初值寄存器(16位位)減減1計(jì)數(shù)器計(jì)數(shù)器(16位位)計(jì)數(shù)值鎖存器計(jì)數(shù)值鎖存器(16位位)鎖存命令鎖存命令GATECLKOUT內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線 計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)作用作用: 選擇一個(gè)計(jì)數(shù)器選擇一個(gè)計(jì)數(shù)器, 確定工作方式確定工作方式, 并規(guī)定初并規(guī)定初 值的寫(xiě)入順序和計(jì)數(shù)初值值的寫(xiě)入順序和計(jì)數(shù)初值 (一串一串0, 1代碼代碼) 的數(shù)制。的數(shù)制。 五五.
11、8254命令字命令字 / 狀態(tài)字狀態(tài)字 D7 D6 D5 D4 D3 D2 D1 D0 計(jì)數(shù)器選擇計(jì)數(shù)器選擇 讀寫(xiě)方式選擇讀寫(xiě)方式選擇 工作方式選擇工作方式選擇 數(shù)制選擇數(shù)制選擇 D7 D6=00 選擇選擇0#計(jì)數(shù)器計(jì)數(shù)器, =01 選擇選擇1#計(jì)數(shù)器計(jì)數(shù)器 =10 選擇選擇2#計(jì)數(shù)器計(jì)數(shù)器, =11 標(biāo)志該命令字標(biāo)志該命令字 是是 “讀出命令讀出命令” 1.方式選擇命令字方式選擇命令字 D5 D4=00 標(biāo)志該命令為標(biāo)志該命令為 “鎖存命令鎖存命令” =01 初值寫(xiě)入時(shí)初值寫(xiě)入時(shí), 只寫(xiě)低只寫(xiě)低8位位, 高高8位自動(dòng)位自動(dòng) 補(bǔ)補(bǔ)0;計(jì)數(shù)值讀出時(shí);計(jì)數(shù)值讀出時(shí), 只能讀低只能讀低8位位 =10
12、 初值寫(xiě)入時(shí)初值寫(xiě)入時(shí), 只寫(xiě)高只寫(xiě)高8位位, 低低8位自動(dòng)位自動(dòng) 補(bǔ)補(bǔ)0;計(jì)數(shù)值讀出時(shí);計(jì)數(shù)值讀出時(shí), 只能讀高只能讀高8位。位。 =11 初值寫(xiě)入初值寫(xiě)入 / 計(jì)數(shù)值讀出的順序?yàn)橄扔?jì)數(shù)值讀出的順序?yàn)橄?低低8位位,后高后高8位。位。D7 D6 D5 D4 D3 D2 D1 D0 計(jì)數(shù)器選擇計(jì)數(shù)器選擇 讀寫(xiě)方式選擇讀寫(xiě)方式選擇 工作方式選擇工作方式選擇 數(shù)制選擇數(shù)制選擇 8254 8254的命令字和狀態(tài)字的命令字和狀態(tài)字 D3 D2 D1 選中的計(jì)數(shù)器工作在選中的計(jì)數(shù)器工作在 0 0 0 方式方式 00 0 1 1 1 0 2 1 1 31 0 0 41 0 1 5 D0=0, 計(jì)數(shù)初值為計(jì)
13、數(shù)初值為二進(jìn)制數(shù)二進(jìn)制數(shù), D0=1, 初值為初值為BCD碼數(shù)碼數(shù)。D7 D6 D5 D4 D3 D2 D1 D0 計(jì)數(shù)器選擇計(jì)數(shù)器選擇 讀寫(xiě)方式選擇讀寫(xiě)方式選擇 工作方式選擇工作方式選擇 數(shù)制選擇數(shù)制選擇 8254 8254的命令字和狀態(tài)字的命令字和狀態(tài)字 2. 鎖存命令鎖存命令( D5 D4=00 標(biāo)志該命令為標(biāo)志該命令為 “鎖存命令鎖存命令”)D7 D6 為鎖存對(duì)象。為鎖存對(duì)象。 = 0 0,鎖存,鎖存0#當(dāng)前計(jì)數(shù)值當(dāng)前計(jì)數(shù)值 = 0 1,鎖存,鎖存1#當(dāng)前計(jì)數(shù)值當(dāng)前計(jì)數(shù)值 = 1 0,鎖存,鎖存2#當(dāng)前計(jì)數(shù)值當(dāng)前計(jì)數(shù)值計(jì)數(shù)器選擇計(jì)數(shù)器選擇 0 0 D7 D6 D5 D4 D3 D0D7
14、 D611D5 D4 = 00 8254 8254的命令字和狀態(tài)字的命令字和狀態(tài)字 3.讀出命令讀出命令讀出命令是多通道的鎖存命令讀出命令是多通道的鎖存命令, 一條命令可以鎖存一條命令可以鎖存3個(gè)計(jì)個(gè)計(jì)數(shù)器的計(jì)數(shù)值、計(jì)數(shù)器狀態(tài)。數(shù)器的計(jì)數(shù)值、計(jì)數(shù)器狀態(tài)。 1 1 0D7 D6 D00: 鎖存當(dāng)前計(jì)數(shù)值鎖存當(dāng)前計(jì)數(shù)值0: 鎖存計(jì)數(shù)器狀態(tài)鎖存計(jì)數(shù)器狀態(tài)1: 選擇選擇0#計(jì)數(shù)器計(jì)數(shù)器D7D6D0=110是讀命令是讀命令1: 選擇選擇1#計(jì)數(shù)器計(jì)數(shù)器1: 選擇選擇2#計(jì)數(shù)器計(jì)數(shù)器 8254 8254的命令字和狀態(tài)字的命令字和狀態(tài)字 4. 4. 狀態(tài)字狀態(tài)字 與方式選擇命令字相同與方式選擇命令字相同D7
15、 D6 D5 D00: 計(jì)數(shù)初值已裝入計(jì)數(shù)器計(jì)數(shù)初值已裝入計(jì)數(shù)器1: 計(jì)數(shù)初值未裝入計(jì)數(shù)器計(jì)數(shù)初值未裝入計(jì)數(shù)器0: OUT腳為低電平腳為低電平1: OUT腳為高電平腳為高電平 8254 8254的命令字和狀態(tài)字的命令字和狀態(tài)字 CPU對(duì)對(duì)8254的初始化編程的初始化編程 例例: 設(shè)設(shè)8254的口地址為的口地址為40H 43H, 要求要求2#計(jì)數(shù)器工作在方式計(jì)數(shù)器工作在方式3, 計(jì)數(shù)初值計(jì)數(shù)初值=4000, 寫(xiě)出寫(xiě)出2#的初始化程序段。的初始化程序段。1. 對(duì)對(duì)8254一個(gè)計(jì)數(shù)器的初始化編程步驟一個(gè)計(jì)數(shù)器的初始化編程步驟: 向控制寄存器寫(xiě)入方式選擇命令字向控制寄存器寫(xiě)入方式選擇命令字 目的目的:
16、 選擇一個(gè)計(jì)數(shù)器選擇一個(gè)計(jì)數(shù)器, 并確定其工作方式并確定其工作方式 和計(jì)數(shù)值(計(jì)數(shù)初值)的讀和計(jì)數(shù)值(計(jì)數(shù)初值)的讀 / 寫(xiě)順序。寫(xiě)順序。 向選擇的計(jì)數(shù)器寫(xiě)入計(jì)數(shù)初值。向選擇的計(jì)數(shù)器寫(xiě)入計(jì)數(shù)初值。 注意注意: 如果方式選擇命令字如果方式選擇命令字D0=0, 則初值則初值 應(yīng)是二進(jìn)制應(yīng)是二進(jìn)制, 否則初值應(yīng)是否則初值應(yīng)是BCD碼數(shù)。碼數(shù)。解解1: 設(shè)初值為二進(jìn)制設(shè)初值為二進(jìn)制, 初值寫(xiě)入順序?yàn)橄鹊统踔祵?xiě)入順序?yàn)橄鹊?位后高位后高8位。位。 MOV AL, 10110110B OUT 43H, AL MOV AX, 4000 OUT 42H, AL MOV AL, AH OUT 42H, AL解解
17、2: 設(shè)初值為二進(jìn)制設(shè)初值為二進(jìn)制, 寫(xiě)入順序?yàn)閮H寫(xiě)高寫(xiě)入順序?yàn)閮H寫(xiě)高8位。位。 MOV AL, 10100110B OUT 43H, AL MOV AL, 40 OUT 42H, AL注意注意: 解解2是錯(cuò)誤的是錯(cuò)誤的, 因?yàn)橐驗(yàn)?4000=0FA0H, 其低其低8位不等于位不等于0。 8254 8254的初始化編程的初始化編程 解解3: 設(shè)初值為設(shè)初值為BCD碼碼, 寫(xiě)入順序?yàn)橄鹊秃蟾邔?xiě)入順序?yàn)橄鹊秃蟾摺?MOV AL, 10110111B OUT 43H, AL MOV AL, 0 OUT 42H, AL MOV AL, 40H OUT 42H, AL解解4: 設(shè)初值為設(shè)初值為BCD碼碼
18、, 僅寫(xiě)高僅寫(xiě)高8位。位。 MOV AL, 10100111B OUT 43H, AL MOV AL, 40H OUT 42H, AL 注意注意: 4000的的BCD碼數(shù)應(yīng)寫(xiě)成碼數(shù)應(yīng)寫(xiě)成4000H, 解解3、解、解4是正確的。是正確的。 8254 8254的初始化編程的初始化編程 2. 當(dāng)計(jì)數(shù)初值當(dāng)計(jì)數(shù)初值 9999時(shí)時(shí), “初值初值”選為二進(jìn)制或選為二進(jìn)制或 BCD碼都可以;碼都可以; 當(dāng)計(jì)數(shù)初值當(dāng)計(jì)數(shù)初值 9999時(shí)時(shí), “初值初值”只能選二進(jìn)制。只能選二進(jìn)制。3. 程序中如何表示程序中如何表示BCD碼數(shù)碼數(shù)? 設(shè)初值設(shè)初值=(1234)10 則則 MOV AX, 1234H 是正確的是正
19、確的 寫(xiě)成寫(xiě)成 MOV AX, 1234 是錯(cuò)誤是錯(cuò)誤的4. 方式選擇命令方式選擇命令, 鎖存命令鎖存命令, 讀出命令必須寫(xiě)入讀出命令必須寫(xiě)入 控制口??刂瓶?。 8254 8254的初始化編程的初始化編程 6. 關(guān)于讀出命令關(guān)于讀出命令 讀出命令也是鎖存命令讀出命令也是鎖存命令, 如果在鎖存計(jì)數(shù)值如果在鎖存計(jì)數(shù)值 的同時(shí)的同時(shí), 也鎖存狀態(tài)也鎖存狀態(tài), 那么在隨后對(duì)計(jì)數(shù)器讀那么在隨后對(duì)計(jì)數(shù)器讀 出時(shí)出時(shí), 先讀出的是狀態(tài)字先讀出的是狀態(tài)字, 后讀的是計(jì)數(shù)值。后讀的是計(jì)數(shù)值。5. 關(guān)于鎖存命令關(guān)于鎖存命令 當(dāng)程序員要了解計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值時(shí)當(dāng)程序員要了解計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值時(shí), 先先 向控制口寫(xiě)入
20、鎖存命令向控制口寫(xiě)入鎖存命令, 然后從選擇的計(jì)數(shù)然后從選擇的計(jì)數(shù) 器端口讀取當(dāng)前計(jì)數(shù)值。器端口讀取當(dāng)前計(jì)數(shù)值。 8254 8254的初始化編程的初始化編程 六六. 8254工作方式工作方式 有有6種工作方式種工作方式, 均在均在CLK下降沿計(jì)數(shù)一次。下降沿計(jì)數(shù)一次。 有有2種啟動(dòng)方式種啟動(dòng)方式: 軟件啟動(dòng)軟件啟動(dòng), 硬件啟動(dòng)。硬件啟動(dòng)。 軟件啟動(dòng)軟件啟動(dòng): GATA=1, 初值寫(xiě)入后初值寫(xiě)入后, 開(kāi)始計(jì)數(shù)。開(kāi)始計(jì)數(shù)。 硬件啟動(dòng)硬件啟動(dòng): 初值寫(xiě)入后初值寫(xiě)入后, 不計(jì)數(shù)。當(dāng)不計(jì)數(shù)。當(dāng)GATE從從 0 1后開(kāi)始計(jì)數(shù)。后開(kāi)始計(jì)數(shù)。 方式方式0: 計(jì)數(shù)結(jié)束計(jì)數(shù)結(jié)束OUT引腳輸出正躍變信號(hào)引腳輸出正躍變
21、信號(hào)軟件啟動(dòng)軟件啟動(dòng), 計(jì)數(shù)值減到計(jì)數(shù)值減到0, OUT從從0 1。WR結(jié)束后,第一個(gè)CLK完成初值裝入 3 2 1 0 1CLKWRN=3GATE=1OUT 8254 8254的工作方式的工作方式 方式方式1: (可重觸發(fā)的可重觸發(fā)的) 硬件啟動(dòng)的單脈沖發(fā)生器硬件啟動(dòng)的單脈沖發(fā)生器GATE由由0 1, 下一個(gè)下一個(gè)CLK下降沿下降沿, 使使OUT由由1 0, 且裝入計(jì)數(shù)值且裝入計(jì)數(shù)值GATE再次從再次從0 1之后之后, 下一個(gè)下一個(gè)CLK完成初值自動(dòng)重裝完成初值自動(dòng)重裝 3 2 3 2 1 0 3 2 1 0 N TCLKCLKWRN=3GATE=1OUTGATEOUTTOUT 8254 8
22、254的工作方式的工作方式 硬件啟動(dòng)(由外部門(mén)控信號(hào)啟動(dòng)計(jì)數(shù))硬件啟動(dòng)(由外部門(mén)控信號(hào)啟動(dòng)計(jì)數(shù)) 初值寫(xiě)入后不計(jì)數(shù)初值寫(xiě)入后不計(jì)數(shù), 當(dāng)當(dāng)GATE從從0 1時(shí)時(shí), OUT 從從1 0。之后每個(gè)。之后每個(gè)CLK下降沿計(jì)數(shù)值減下降沿計(jì)數(shù)值減1, 計(jì)計(jì) 數(shù)值減到數(shù)值減到0時(shí)時(shí), OUT從從0 1。 所以所以: 輸出負(fù)脈沖的寬度輸出負(fù)脈沖的寬度=NTCLK 計(jì)數(shù)過(guò)程中計(jì)數(shù)過(guò)程中, GATE再次從再次從0 1, 初值自動(dòng)重初值自動(dòng)重 裝裝,從而使從而使OUT輸出的負(fù)脈沖加寬輸出的負(fù)脈沖加寬 ( 即有可重即有可重 觸發(fā)的性能觸發(fā)的性能)。 8254 8254的工作方式的工作方式 方式方式2: 分頻器分頻器
23、(脈沖發(fā)生器脈沖發(fā)生器) 軟件啟動(dòng)軟件啟動(dòng) 減減1計(jì)數(shù)計(jì)數(shù), 減到減到1時(shí)時(shí)OUT從從1 0,下一下一CLK初值初值 自動(dòng)重裝。自動(dòng)重裝。所以所以: OUT為周期性波形為周期性波形, 輸出負(fù)脈輸出負(fù)脈 沖的寬度為一個(gè)沖的寬度為一個(gè)TCLK, 周期周期=N TCLK 3 2 1 3 2 1CLKWRN=3GATE=1OUT 周期=N TCLK 8254 8254的工作方式的工作方式 方式方式3: 方波發(fā)生器方波發(fā)生器CLKWRN=4GATE=1OUT 4 2 4 2 4 2軟件啟動(dòng)軟件啟動(dòng), 減減2計(jì)數(shù)計(jì)數(shù), 有初值自動(dòng)重裝功能。有初值自動(dòng)重裝功能。 N=偶數(shù)時(shí)偶數(shù)時(shí), 計(jì)數(shù)值減到計(jì)數(shù)值減到0時(shí)
24、初值重裝時(shí)初值重裝, 輸出輸出1:1連續(xù)波形。連續(xù)波形。 8254 8254的工作方式的工作方式 GATE=1WRN=5CLK 4 2 0 4 2 4 2 0OUT N=奇數(shù)時(shí):奇數(shù)時(shí): 裝入的及重新裝入的初值均為寫(xiě)入的初值裝入的及重新裝入的初值均為寫(xiě)入的初值-1。 輸出正脈沖期間輸出正脈沖期間, 減到減到-2時(shí)重新裝初值時(shí)重新裝初值 輸出負(fù)脈沖期間輸出負(fù)脈沖期間, 減到減到0時(shí)重新裝初值時(shí)重新裝初值 輸出正脈沖寬度輸出正脈沖寬度=TCLK (N+1) / 2 輸出負(fù)脈沖寬度輸出負(fù)脈沖寬度=TCLK (N1) / 2 8254 8254的工作方式的工作方式 方式方式4: 軟件啟動(dòng)軟件啟動(dòng), 單
25、脈沖發(fā)生器單脈沖發(fā)生器軟件啟動(dòng)軟件啟動(dòng), 減減1計(jì)數(shù)計(jì)數(shù),減到減到0 有輸出有輸出, 無(wú)無(wú)初值自動(dòng)重裝功能。初值自動(dòng)重裝功能。 3 2 1 0 -1CLKN=3WRGATE=1OUT 8254 8254的工作方式的工作方式 方式方式5: 硬件啟動(dòng)硬件啟動(dòng), 單脈沖發(fā)生器單脈沖發(fā)生器 硬件啟動(dòng)硬件啟動(dòng), 減減1計(jì)數(shù)計(jì)數(shù), 減到減到0有輸出。有輸出。CLKN=3WR 3 2 1 0 -1OUTGATEGATE從從0 1, 下一個(gè)下一個(gè)CLK下降沿下降沿裝入計(jì)數(shù)初值開(kāi)始計(jì)數(shù)裝入計(jì)數(shù)初值開(kāi)始計(jì)數(shù) 8254 8254的工作方式的工作方式 6種工作方式的比較種工作方式的比較:方式方式1方式方式4方式方式5
26、功能功能都是單脈沖發(fā)生器都是單脈沖發(fā)生器啟動(dòng)方式啟動(dòng)方式硬件啟動(dòng)硬件啟動(dòng)軟件啟動(dòng)軟件啟動(dòng)硬件啟動(dòng)硬件啟動(dòng)輸出輸出負(fù)脈寬負(fù)脈寬=N TCLK負(fù)脈寬負(fù)脈寬=TCLK初值重裝初值重裝在計(jì)數(shù)過(guò)程中在計(jì)數(shù)過(guò)程中(OUT=0期間)期間) GATE從從01時(shí)初值時(shí)初值重裝重裝 計(jì)數(shù)過(guò)程中計(jì)數(shù)過(guò)程中(OUT=1期間)期間) GATE從從0 1時(shí)初值重裝時(shí)初值重裝 8254 8254的工作方式的工作方式 方式方式0方式方式2方式方式3功能功能計(jì)數(shù)結(jié)束計(jì)數(shù)結(jié)束, 輸出正躍變輸出正躍變脈沖發(fā)生器脈沖發(fā)生器方波發(fā)生器方波發(fā)生器啟動(dòng)方式啟動(dòng)方式都是軟件啟動(dòng)都是軟件啟動(dòng)輸出輸出啟動(dòng)后延時(shí)啟動(dòng)后延時(shí)(N+1)TCLK輸出正
27、躍變輸出正躍變負(fù)脈寬負(fù)脈寬=TCLK周期周期=N CLK N=偶數(shù)偶數(shù),輸輸出出1:1方波方波初值重裝初值重裝計(jì)數(shù)結(jié)束計(jì)數(shù)結(jié)束, 初值自動(dòng)重裝初值自動(dòng)重裝 8254 8254的工作方式的工作方式 七七. 8254在在PC機(jī)中的應(yīng)用機(jī)中的應(yīng)用1. 電路電路:主主8259ACLK0 OUT0CLK1CLK2GATE0 OUT1GATE1GATE2 OUT2fclk=1.193182 MHZ+5V8254 PB0 PB18255 B口口IR0 Q D動(dòng)態(tài)存儲(chǔ)器動(dòng)態(tài)存儲(chǔ)器刷新電路刷新電路清清“0”+5V與與門(mén)門(mén)濾波濾波口地址口地址61H 3個(gè)計(jì)數(shù)器的時(shí)鐘端都為個(gè)計(jì)數(shù)器的時(shí)鐘端都為1.193182 MH
28、Z GATE0, GATE1固定接固定接+5v GATE2, OUT2輸出受輸出受8255的的PB0、PB1控制控制2. 系統(tǒng)系統(tǒng)8254口地址為口地址為40H 43H。 3. 系統(tǒng)加電后系統(tǒng)加電后,由由BIOS完成對(duì)完成對(duì)3個(gè)計(jì)數(shù)器初始化。個(gè)計(jì)數(shù)器初始化。 4. 各計(jì)數(shù)器的使用現(xiàn)狀如下:各計(jì)數(shù)器的使用現(xiàn)狀如下: 8254 8254的應(yīng)用的應(yīng)用 工作在方式工作在方式3, 計(jì)數(shù)初值計(jì)數(shù)初值=0,OUT0=周期為周期為 55ms的方波信號(hào)。的方波信號(hào)。 作用作用: 每隔每隔55ms通過(guò)中斷系統(tǒng)提出通過(guò)中斷系統(tǒng)提出 一次日時(shí)鐘中斷請(qǐng)求。一次日時(shí)鐘中斷請(qǐng)求。主主8259ACLK0 OUT0CLK1CL
29、K2GATE0 OUT1GATE1GATE2 OUT2fclk=1.193182 MHZ+5V PB0 PB18255 B口口IR0 Q D動(dòng)態(tài)存儲(chǔ)器動(dòng)態(tài)存儲(chǔ)器刷新電路刷新電路清清“0”+5V與與門(mén)門(mén)濾波濾波口地址口地址61H8254 0#計(jì)數(shù)器計(jì)數(shù)器 8254 8254的應(yīng)用的應(yīng)用 主主8259ACLK0 OUT0CLK1CLK2GATE0 OUT1GATE1GATE2 OUT2fclk=1.193182 MHZ+5V PB0 PB18255 B口口IR0 Q D動(dòng)態(tài)存儲(chǔ)器動(dòng)態(tài)存儲(chǔ)器刷新電路刷新電路清清“0”+5V與與門(mén)門(mén)濾波濾波口地址口地址61H8254 工作在方式工作在方式2, 計(jì)數(shù)初值
30、計(jì)數(shù)初值=18, OUT1=周期周期為為15.1s的連續(xù)脈沖。的連續(xù)脈沖。 作用作用: 每隔每隔15.1s(向向DMAC)提出一次提出一次“動(dòng)態(tài)存儲(chǔ)器刷新請(qǐng)求動(dòng)態(tài)存儲(chǔ)器刷新請(qǐng)求”。1#計(jì)數(shù)器計(jì)數(shù)器 8254 8254的應(yīng)用的應(yīng)用 主主8259ACLK0 OUT0CLK1CLK2GATE0 OUT1GATE1GATE2 OUT2fclk=1.193182 MHZ+5V PB0 PB18255 B口口IR0 Q D動(dòng)態(tài)存儲(chǔ)器動(dòng)態(tài)存儲(chǔ)器刷新電路刷新電路清清“0”+5V與與門(mén)門(mén)濾波濾波口地址口地址61H8254 工作在方式工作在方式3, 初值初值=533H,為音響,為音響 系統(tǒng)提供系統(tǒng)提供900HZ方
31、波。方波。2#計(jì)數(shù)器計(jì)數(shù)器 8254 8254的應(yīng)用的應(yīng)用 主主8259ACLK0 OUT0CLK1CLK2GATE0 OUT1GATE1GATE2 OUT2fclk=1.193182 MHZ+5V8254 PB0 PB18255 B口口IR0 Q D動(dòng)態(tài)存儲(chǔ)器動(dòng)態(tài)存儲(chǔ)器刷新電路刷新電路清清“0”+5V與與門(mén)門(mén)濾波濾波口地址口地址61H 用戶程序禁止使用用戶程序禁止使用1#計(jì)數(shù)器。計(jì)數(shù)器。 用戶程序可以使用用戶程序可以使用0#, 2#計(jì)數(shù)器。計(jì)數(shù)器。注意注意: 8254 8254的應(yīng)用的應(yīng)用 八八. 系統(tǒng)系統(tǒng)8254 應(yīng)用舉例應(yīng)用舉例:編制程序,使編制程序,使PC系列機(jī)系列機(jī)8254的計(jì)數(shù)器產(chǎn)
32、生的計(jì)數(shù)器產(chǎn)生800Hz的方波,經(jīng)濾波后送至揚(yáng)聲器發(fā)聲,當(dāng)鍵盤(pán)有任意按的方波,經(jīng)濾波后送至揚(yáng)聲器發(fā)聲,當(dāng)鍵盤(pán)有任意按鍵時(shí)聲音停止。鍵時(shí)聲音停止。 8254 8254的應(yīng)用的應(yīng)用 分析:分析:8254 的的2號(hào)計(jì)數(shù)器控制揚(yáng)聲器發(fā)聲系統(tǒng)。號(hào)計(jì)數(shù)器控制揚(yáng)聲器發(fā)聲系統(tǒng)。8254初始化初始化后,后,2號(hào)計(jì)數(shù)器功能是方波發(fā)生器,工作在方式號(hào)計(jì)數(shù)器功能是方波發(fā)生器,工作在方式3,二進(jìn)制計(jì)數(shù),初值寫(xiě)入順序?yàn)橄鹊投M(jìn)制計(jì)數(shù),初值寫(xiě)入順序?yàn)橄鹊?位后高位后高8位,位,CLK2輸入頻率為輸入頻率為1.193182MHz,計(jì)數(shù)初值為,計(jì)數(shù)初值為533H,使得使得OUT2輸出方波約為輸出方波約為900Hz。根據(jù)題目要求
33、,要。根據(jù)題目要求,要產(chǎn)生產(chǎn)生800Hz的方波,可以通過(guò)改變的方波,可以通過(guò)改變2號(hào)計(jì)數(shù)器計(jì)數(shù)初號(hào)計(jì)數(shù)器計(jì)數(shù)初值獲得值獲得800Hz的方波輸出,并經(jīng)過(guò)濾波驅(qū)動(dòng)揚(yáng)聲器。的方波輸出,并經(jīng)過(guò)濾波驅(qū)動(dòng)揚(yáng)聲器。 8254 8254的應(yīng)用的應(yīng)用 揚(yáng)聲器發(fā)聲控制揚(yáng)聲器發(fā)聲控制PC機(jī)發(fā)聲系統(tǒng)受到機(jī)發(fā)聲系統(tǒng)受到 8255芯片芯片B口口PB0、PB1輸出的控制。執(zhí)行輸出的控制。執(zhí)行下面的下面的OPEN子程序完成揚(yáng)聲器的打開(kāi),執(zhí)行子程序完成揚(yáng)聲器的打開(kāi),執(zhí)行CLOSE子程序完子程序完成揚(yáng)聲器的關(guān)閉。成揚(yáng)聲器的關(guān)閉。 OPEN PROC CLOSE PROC PUSH AX PUSH AX IN AL,61H IN
34、AL,61H OR AL,00000011B AND AL,11111100B OUT 61H,AL OUT 61H,AL POP AX POP AX RET RET OPEN ENDP CLOSE ENDP 8254 8254的應(yīng)用的應(yīng)用 利用利用8254計(jì)數(shù)器計(jì)數(shù)器2號(hào)產(chǎn)生號(hào)產(chǎn)生800Hz方波,經(jīng)濾波后送方波,經(jīng)濾波后送至揚(yáng)聲器發(fā)聲。至揚(yáng)聲器發(fā)聲。 計(jì)數(shù)初值計(jì)數(shù)初值 N=fclk/fout =1.193182MHz800Hz【程序清單】【程序清單】;FILENAME:11_1.asm.586 CODE SEGMENT ASSUME CS:CODE BEG: IN AL,61H OR AL,
35、03H OUT 61H,AL ;接通揚(yáng)聲器;接通揚(yáng)聲器 MOV DX,12H MOV AX,34DEH ;1.193182 1234DEH 8254 8254的應(yīng)用的應(yīng)用 MOV CX,800 DIV CX ;計(jì)數(shù)初值;計(jì)數(shù)初值A(chǔ)X OUT 42H,AL ;先寫(xiě)低;先寫(xiě)低8位位 MOV AL,AH OUT 42H,AL ;再寫(xiě)高;再寫(xiě)高8位位 MOV AH,1 INT 21H ;等待按鍵;等待按鍵 IN AL,61H AND AL,0FCH OUT 61H,AL ;關(guān)閉揚(yáng)聲器;關(guān)閉揚(yáng)聲器 MOV AH,4CH INT 21H CODE ENDS END BEG九九. 外擴(kuò)外擴(kuò)8254應(yīng)用舉例應(yīng)用舉例 例例: 給定給定2兆信號(hào)發(fā)生器兆信號(hào)發(fā)生器, 在在ISA總線上外擴(kuò)一片總線上外擴(kuò)一片 8254。口地址為??诘刂窞?18 21BH, 要求要求: 設(shè)計(jì)硬件電路設(shè)計(jì)硬件電路 編程產(chǎn)生編程產(chǎn)生8 KHZ方波和方波和1.6 KHZ的連續(xù)脈沖的連續(xù)脈沖解解: 思路思路: 使用外擴(kuò)使用外擴(kuò)8254的的 0#選擇方式選擇方式3, 產(chǎn)生產(chǎn)生8 KHZ方波方波 1#選擇方式選擇方式2, 產(chǎn)生產(chǎn)生1.6 KHZ連續(xù)脈沖連續(xù)脈沖
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陽(yáng)光學(xué)院《鋼筋混凝土及砌體結(jié)構(gòu)課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南工程職業(yè)技術(shù)學(xué)院《光學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山西運(yùn)城農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《土木工程建?!?023-2024學(xué)年第二學(xué)期期末試卷
- 山東省寧津縣保店中學(xué)2024-2025學(xué)年高三畢業(yè)年級(jí)英語(yǔ)試題學(xué)科停課不停學(xué)期間線上測(cè)試含解析
- 重慶工商大學(xué)派斯學(xué)院《建筑遺產(chǎn)保護(hù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西青年職業(yè)學(xué)院《影視攝像基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南省張家界市永定區(qū)2025屆高中畢業(yè)班5月模擬考試生物試題含解析
- 實(shí)施清潔生產(chǎn)的主要途徑ntP第18章
- 木材加工環(huán)境保護(hù)與節(jié)能減排考核試卷
- 電動(dòng)剃須刀刀網(wǎng)修理技巧考核試卷
- 吉林省普通高等學(xué)校實(shí)驗(yàn)教學(xué)示范中心申請(qǐng)
- 居住權(quán)協(xié)議書(shū)
- 中國(guó)公民健康素養(yǎng)66條課件
- 我是少年阿凡提課件
- 肥胖癥康復(fù)課件
- 2023供熱行業(yè)發(fā)展報(bào)告
- 學(xué)生試卷分析萬(wàn)能模板
- 胸腹主動(dòng)脈瘤切除人工血管置換術(shù)術(shù)前宣教
- 固定式起重機(jī)每月定期檢查表
- 腳手架驗(yàn)收合格牌
- 可修改版五年級(jí)數(shù)學(xué)期中考試答題卡模板
評(píng)論
0/150
提交評(píng)論