《第10章-可编程定时计数器.ppt》由会员分享,可在线阅读,更多相关《第10章-可编程定时计数器.ppt(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、NUIST第第1010章章 可编程定时可编程定时/计数器计数器NUIST第第1010章章 可编程定时可编程定时/计数器计数器82593的引脚功能和编程结构1 18253的编程2 28253的工作方式3 38253综合应用举例4 48254芯片5 52NUIST第第1010章章 可编程定时可编程定时/计数器计数器82593的引脚功能和编程结构1 18253的编程2 28253的工作方式3 38253综合应用举例4 48254芯片5 5310.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程结构 8253的主要功能 3个独立的16位计数器 每个计数器都可以按二进制或BCD码计
2、数 每个通道的计数频率可达2MHz 每个计数器都具有6种不同的工作方式 每个计数器的计数初值都可以通过编程设置 所有的输入输出都与TTL兼容 410.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程结构 8253的引脚功能 与读写控制逻辑相关片选信号读信号写选信号内部口地址选择,通常与系统总线低位相连。00计数器0#01计数器1#10计数器2#11控制寄存器510.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程结构 8253的引脚功能 与计数通道相关的引脚计数器的时钟输入610.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程
3、结构 8253的引脚功能 计数器的门控信号。为高时,计数器工作。计数器的输出710.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程结构 8253的引脚功能 数据线电源线地线810.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程结构 8253的编程结构 读读/写写控制控制逻辑逻辑数据总线数据总线缓冲器缓冲器计数器0 号计数器1 号计数器2 号D7D0RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线910.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程结构 8253的编
4、程结构 读读/写写控制控制逻辑逻辑数据总线数据总线缓冲器缓冲器计数器0 号计数器1 号计数器2 号D7D0RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线8位的双向三态缓冲器,通过引脚D7D0与系统数据总线相连接,用来传输CPU向8253写入的控制字,计数器的初值,以及CPU读出的8253的计数器当前值。由片选信号CS来控制是否被选中。在选中情况下,接收来自CPU的读写控制信号和地址信号。经过组合产生控制整个芯片工作的内部控制信号,选择相应的操作。当A1A0=11时,通道读/写控制逻辑电路选中控制寄存器。它用来保存初始化时由CPU写入的
5、控制字,并根据控制字内容发出相应的控制信号,控制每个计数器的操作方式,使各部件完成指定动作。1010.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程结构 8253的编程结构 读读/写写控制控制逻辑逻辑数据总线数据总线缓冲器缓冲器计数器0 号计数器1 号计数器2 号D7D0RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2内部总线三个计数器完全相同且相互独立.由一个16位的锁定寄存器和一个16位的可预置的减法计数器组成。初始的计数值可保存在锁定寄存器中,由它传递给计数器。每个计数器通道可对输入脉冲CLK按二进制或BCD码进行
6、减1计数,减到0为止,在OUT输出端输出一个信号。在计数的开始和计数过程中,计数器还要受到门控信号GATE的控制,两者的关系取决于方式控制字。11计数器0#控制寄存器高8位初值寄存器(CR)低8位高8位 低8位计数单元(CR)高8位 低8位输出锁存器(OL)D7D0 计数器1#计数器2#RD WR CS 地址译码地址总线 A1A0GATE0 CLK0 OUT0 GATE1 CLK1 OUT1 GATE2 CLK2OUT2 VCC GND+5V 8253计数器内部结构1210.1 8253 10.1 8253 的引脚功能和编程结构的引脚功能和编程结构 8253的内部寄存器的选择 假设A6为1,A
7、7、A5、A4、A3、A2均为0时8253的片选有效,则各端口地址为40H43H(IBM PC/XT中8253的端口地址)。CS A1 A0读(RD)写(WR)端口地址 0 0 0 CNT0数据总线数据总线CNT040H 0 0 1 CNT1数据总线数据总线CNT141H 0 1 0 CNT2数据总线数据总线CNT242H 0 1 1 数据总线控制字寄存器43H 1 X X 无效(D7D0为高阻状态)13NUIST第第1010章章 可编程定时可编程定时/计数器计数器82593的引脚功能和编程结构1 18253的编程2 28253的工作方式3 38253综合应用举例4 48254芯片5 5141
8、0.2 8253 10.2 8253 的编程的编程 8253的控制字 SC1 SC0 RW1 RW0M2 M1 M0BCD计数器选择读/写方式选择工作方式选择数制选择00计数器001计数器110计数器211控制寄存器00锁存计数器的当前值,以便读出检查01只读/写 低8位计数值10只读/写 高8位计数值11先读/写低8位,后读/写高8位计数值000方式0011方式3001方式1100方式4010方式2110方式5写入数的范围最大值00二进制数0000HFFFFH655361十进制数BCD 码0000 9999100001510.2 8253 10.2 8253 的编程的编程 8253的计数初值
9、 当输出信号为连续的周期波时:假设计数器输入信号CLK的频率为fCLK,要求OUT端输出信号的频率为fOUT,则计数初值N的计算公式为 N=fCLK fOUT 当计数器/定时器工作在一次性有效的定时方式时:如希望的定时时间为T,则计数初值 N的计算公式为:N=fCLK T 1610.2 8253 10.2 8253 的编程的编程 8253的初始化 包括两方面的内容:向控制器写入控制字。向相应计数器写入计数初值。需先送控制字,后送计数初值。设置初始值时,要按控制字中RW1、RW0所约定的格式规定写入计数初值。注意17 例10-1 某系统用8235作为电话双音频信号发生电路。用通道0和通道1产生双
10、音频所需的两个方波信号,经方波正弦波转换电路转换成两个音频信号并叠加得到双音频信号。用通道2作为发号时间控制定时器。18+5V1MHzINT方波到正弦波转换电路方波到正弦波转换电路发号时间到中断请求双音频信号输出8253CLK0CLK1CLK2GATE0GATE1GATE2OUT1OUT0OUT219电话双音频信号是两个音频信号的叠加,以数字8为例,两个音频信号的频率分别为852Hz和1336Hz。当按下一个电话号码时电话机将发出这一双音频信号,其发号时间为50ms80ms,本例选50ms。根据原理电路我们使通道0产生852Hz的方波,通道1产生1336Hz的方波,通道2产生50ms的定时,时
11、间到产生中断请求信号。20计算各通道计数初值通道0:fCLK0=1MHz,fOUT0=852HzN=fCLK0/fOUT0=1MHz/852Hz=1174通道1:fCLK1=1MHz,fOUT1=1336HzN=fCLK1/fOUT1=1MHz/1336Hz=748通道2:fCLK2=1MHz,T=50msN=fCLK2 T=1MHz 50ms=50000=C350H21确定各通道控制字通道0:读写高低字节方式3BCD码计数通道1:通道2:读写高低字节方式3BCD码计数读写高低字节方式0二进制计数SC1SC0RW1RW0M2M1M0BCD0011011137H0111011177H101100
12、00B0H22确定端口地址设地址总线的A7A2为111111时8253的片选有效,A1A0接8253的A1A0,则端口地址为:FCHFFH。初始化程序COUNTER0:MOV AL,37HOUT0FFH,ALMOV AL,74HOUT0FCH,ALMOV AL,11HOUT0FCH,AL23初始化程序COUNTER1:MOVAL,77HOUT0FFH,ALMOV AL,48HOUT0FDH,ALMOV AL,07HOUT0FDH,AL COUNTER2:MOVAL,0B0HOUT0FFH,ALMOV AL,50HOUT0FEH,ALMOV AL,0C3HOUT0FEH,AL 2410.2 82
13、53 10.2 8253 的编程的编程 8253的计数器读操作 直接读操作 直接执行输入指令读取相应通道的瞬时值。1#通道的瞬时计数值读入CX INAL,41HMOVCL,ALINAL,41HMOVCH,AL结果可能是错误的0100高字节低字节AL00 0000CHCL00FF00-12510.2 8253 10.2 8253 的编程的编程 8253的计数器读操作 直接读操作影响计数器的正常工作从而影响定时计数的精度 先通过GATE信号暂停计数器计数,再做读操作,读完后再让计数器继续工作 2610.2 8253 10.2 8253 的编程的编程 8253的计数器读操作 锁存读操作 在读之前先向
14、要读的计数通道发一个锁存字。然后再做读操作。SC1SC0RW1RW0M2M1M0BCD计数器选择:00:0#,01:1#10:2#,11:无意义00:锁存当前值无意义读取1#通道计数值 MOVAL,40HOUT43H,ALINAL,41HMOVCL,ALIN AL,41HMOVCH,AL27NUIST第第1010章章 可编程定时可编程定时/计数器计数器82593的引脚功能和编程结构1 18253的编程2 28253的工作方式3 38253综合应用举例4 48254芯片5 52810.3 8253 10.3 8253 的工作方式的工作方式8253 共有6种工作方式,主要区别在:输出波形不同 启动
15、计数器的触发方式不同 门控信号GATE对计数过程的影响不同 计数过程中修改计数初值对计数过程的影响不同2910.3 8253 10.3 8253 的工作方式的工作方式共同遵守的3个基本原则:控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态 GATE信号是上升沿起作用,GATE信号的作用是在下一个CLK周期的下降沿生效 计数初值装入计数器和减1计数都是在输入脉冲的下降沿有效的 30计数结束,此上升沿可作为中断请求信号10.3 8253 10.3 8253 的工作方式的工作方式 方式 0(计数结束产生中断)CLKGATEWROUTCE43210FFFEFDCW=10HLSB
16、=4计数值装入,开始计减1数写入控制器后,OUT变低计数值写入初值寄存器3110.3 8253 10.3 8253 的工作方式的工作方式 方式 0 写入控制字之后,输出端OUT变低,写入计数值后开始计数。计数到0后输出端OUT为高电平,并且一直保持高电平,除非写入新的计数值。方式0的计数值是一次有效的,即写入一次工作一次。实际应用中,常将计数结束后的上升跳变作为中断请求信号。3210.3 8253 10.3 8253 的工作方式的工作方式 方式 0 在计数过程中改变计数值是立即有效的。即新的计数值写入后,在其下一个CLK周期开始按新值计数。计数过程中可由GATE信号控制计数过程的暂停。当GAT
17、E=0时,计数器暂停计数,直到GATE=1时,计数器又继续计数。在计数过程中,GATE的变化不影响OUT的状态。33延时1个CLK周期按新值计数10.3 8253 10.3 8253 的工作方式的工作方式 方式 0 CLKGATEWROUTCE32121FFFECW=10HLSB=30LSB=2计数过程中改变计数值改变计数初值3410.3 8253 10.3 8253 的工作方式的工作方式 方式 0 CLKGATEWROUTCE32221FFFECW=10HLSB=30门控信号GATE的作用GATE=0暂停计数GATE=1继续计数35 例10-2 要实现定时中断,定时时间为4096个(1000
18、H)CLK周期。采用计数器0,设定方式0,读写高低2字节,按二进制计数。8253GATE0CLK0OUT0+5V INT8259 A IRi36CLK0WROUT030H00H10H4096 4095104096 CLKMODE0:MOV AL,00110000B;计数器0,2字节读写,OUT43H,AL ;方式0,二进制计数 MOV AL,00H OUT40H,AL ;装入计数初值低8位 MOV AL,10H OUT40H,AL ;装入计数初值高8位 37无需再次装入计数初值,GATE触发计数GATE触发计数10.3 8253 10.3 8253 的工作方式的工作方式 方式 1(硬件再触发单
19、脉冲发生器)CLKGATEWROUTCE3210FF32CW=12HLSB=3写入控制字后OUT变高3810.3 8253 10.3 8253 的工作方式的工作方式 方式 1 写入控制字以后输出端OUT变高电平并保持,写入计数值以后并不立即装入开始计数,而是等待硬件(GATE)的触发。触发一次计数一次,计数到0后输出端OUT变高电平,计数次数到等待下次触发。方式1的计数值不必重新写入,除非要改变计数初值,即写入一次可多次使用,取决于硬件GATE的触发 39写入控制字后,OUT保持高电平10.3 8253 10.3 8253 的工作方式的工作方式 方式 1 CLKGATEWROUTCE321FF
20、12CW=12HLSB=3LSB=20FE0新计数值在下次启动后才生效计数过程中改变计数值40GATE脉冲重新启动,按初值计数。10.3 8253 10.3 8253 的工作方式的工作方式 方式 1 CLKGATEWROUTCE43420CW=12HLSB=431门控信号GATE的作用4110.3 8253 10.3 8253 的工作方式的工作方式 方式 1 在计数过程中改变计数值不是立即有效的。即新的计数值写入后现行计数不受影响,新计数值在下次启动后才开始生效。计数过程中可由GATE脉冲重新启动按初值计数,但GATE的变化不影响OUT的状态,只有计数到0时OUT才变高。42 例10-3 某系
21、统使用了8253的三个定时器,要求定时器0在初始化后立即启动定时,计数器1和定时器2在定时器0启动一段时间(这里设为1000个CLK)后同时启动。要求计数器1的计数次数为65536次,计数器2的计数次数为10000次。设端口地址为40H 43H。GATE0OUT0CLK0CLK1CLK2GATE1GATE2OUT1OUT2+5V825343SC1SC0RW1RW0M2M1M0BCD001000010101001010100011方式0,只写入高字节,BCD码计数;计数初值:1000通道0方式1,只写入低字节,二进制计数;计数初值:65536(最大值)通道1方式1,只写入高字节,BCD码计数;计
22、数初值:10000(最大值)通道244CNT1:MOV AL,01010010BOUT43H,ALMOV AL,00HOUT41H,AL CNT2:MOV AL,10100011BOUT43H,ALMOV AL,00HOUT42H,AL CNT0:MOV AL,00100001BOUT43H,ALMOV AL,10HOUT40H,AL 45经过1个CLK恢复高电平,重新计数计数到1,输出端变低10.3 8253 10.3 8253 的工作方式的工作方式 方式 2(速率发生器)CLKGATEWROUTCE43242CW=14HLSB=4131432写入控制字,OUT变高并保持4610.3 825
23、3 10.3 8253 的工作方式的工作方式 方式 2 如果GATE为高,当控制字写入之后输出端OUT变高电平并保持,计数值写入之后开始计数。计数到1时,输出端OUT变低,经过一个CLK后输出又恢复为高电平,同时自动重新装入计数值开始计数。计数值是多次有效的,只需要写入一次计数值,就可连续输出周期性信号 47当现行计数结束,才开始按新值计数。10.3 8253 10.3 8253 的工作方式的工作方式 方式 2 CE321CLKWRCW=14HLSB=4LSB=3GATE计数过程中改变计数值4321OUT4810.3 8253 10.3 8253 的工作方式的工作方式 方式 2 当GATE为高
24、电平时,在计数过程中写入新的计数初值不是立即有效的,仅当现行计数结束,OUT输出负脉冲后,才将新的计数值打入减1计数器,开始按新值计数。可由GATE信号控制计数过程的暂停。当GATE=0时,计数器暂停计数,待GATE变高后的下一个CLK周期使计数器恢复初值N,重新开始计数。但在计数过程中GATE的变化不影响OUT的状态。49GATE变高的下一个CLK,恢复初值重新计数GATE=0,暂停计数10.3 8253 10.3 8253 的工作方式的工作方式 方式 2CE43243WRCW=14HLSB=4CLK134OUT321GATE门控信号GATE的作用5010.3 8253 10.3 8253
25、的工作方式的工作方式 方式 2 如果使用中断,OUT信号即为中断请求信号,可将OUT信号直接接到CPU的中断请求输入端,或接到中断优先权排队电路的中断请求输入端。51 例10-4 使8253每隔一定时间产生一次中断请求,中断请求间隔为500个CLK脉冲,采用计数器2,方式2,读写高低2个字节,按BCD计数。8253GATE2CLK2OUT2+5V INT500 CLK500 CLKCLK2INT52MODE2:MOV AL,10110101B;计数器2,读写高低字节,OUT 43H,AL ;方式2,按BCD计数 MOV AL,00H OUT 42H,AL ;装入计数初值低8位值00H MOV
26、AL,05H OUT 42H,AL ;装入计数初值高8位值05H 53计数器减到0,OUT从高变低,重新装入计数初值每输入一个脉冲计数器减210.3 8253 10.3 8253 的工作方式的工作方式 方式 3(方波发生器)CE42444WRCW=16HLSB=4CLK22GATE2424OUT写入控制字,OUT变高并保持计数初值为偶数54重新装入计数初值的第1个CLK,计数器减3。其后每个减210.3 8253 10.3 8253 的工作方式的工作方式 方式 3CE54224WRCW=16HLSB=555GATE2525计数初值为奇数CLKOUT4第1个CLK脉冲减一其后每个CLK脉冲减2计
27、数器减到0,OUT从高变低,重新装入计数初值计数器减到0,OUT从低变高,重新装入计数初值5510.3 8253 10.3 8253 的工作方式的工作方式 方式 3 如果GATE为高,当控制字写入之后输出端OUT变高电平并保持,计数值写入之后开始计数。根据计数初值N的奇偶性分为两种情况。当N为偶数时:在计数初值装入以后的每一个输入脉冲计数器减2。当计数器减到0时,一方面改变输出端OUT的状态,同时又自动重新装入计数值,然后重复这一过程。5610.3 8253 10.3 8253 的工作方式的工作方式 方式 3 当N为奇数时:在计数初值装入以后的第一个CLK脉冲计数器减1,其后的每一个CLK脉冲
28、计数器减2。当计数器减到0时,一方面输出端OUT变低,同时又自动重新装入计数值。在重新装入计数值后的第一个CLK脉冲,使计数器减3,其后的每一个CLK脉冲计数器又都减2。当计数器减到0时,一方面输出端OUT恢复为高电平,同时又自动重新装入计数值重复上述过程。57现行计数结束后,按新值计数10.3 8253 10.3 8253 的工作方式的工作方式 方式 3CE54224CW=16H55GATE2222CLK2计数过程中改变计数值(GATE为高)WRLSB=5LSB=2OUT新写入的计数初值不是立即有效5810.3 8253 10.3 8253 的工作方式的工作方式 方式 3 计数值多次有效,只
29、需要写入一次计数值,就可连续输出周期性信号。当GATE为高电平时,在计数过程中写入新的计数初值不是立即有效的,仅当现行计数结束,OUT输出改变状态后,才将新的计数值打入计数器,开始按新值计数 59GATE变高后的第1个CLK下降沿按新值计数10.3 8253 10.3 8253 的工作方式的工作方式 方式 3CE54225552222CLK2计数过程中改变计数值(GATE变化)CW=16HWRLSB=5LSB=2OUTGATEGATE变低暂停计数6010.3 8253 10.3 8253 的工作方式的工作方式 方式 3 如果写入新的计数初值后GATE产生由低到高的变化,在GATE变高后的第一个
30、CLK周期下降沿开始按新值计数。计数过程中,可由GATE信号控制计数过程的暂停或重新启动计数。若在OUT为高电平期间,GATE变低,则暂停计数过程,待GATE变高后计数器又重装初值开始计数 61GATE变高后的第1个CLK下降沿重新计数10.3 8253 10.3 8253 的工作方式的工作方式 方式 3CE42444224424CLK2OUT为低期间GATE的作用CW=16HWRLSB=4GATEOUTGATE变低暂停计数OUT立即变高62 例10-5 对输入时钟CLK(32.768KHz)进行分频,获得1HZ其占空比50%的方波信号。采用计数器0,读写高低字节,按二进制计数。8253GAT
31、E032.768KHzOUT0+5V 1Hz计数初值N =(32.7681000)1=32768=8000H 63MODE3:MOV AL,00110110B OUT CTRL,AL ;MOV AL,0 OUT CNT0,AL;装入低位00HMOV AL,80H OUT CNT0,AL;装入高位80H 6410.3 8253 10.3 8253 的工作方式的工作方式 方式 4(软起动单拍脉冲发生器)CE5431FFWRCW=18HLSB=520GATEFE FD FC FBCLKOUTFA写入控制字,OUT变高并保持写入计数值后开始计数,软件启动计数到0时停止计数,OUT变低电平,维持一个CL
32、K周期。计数值一次有效6510.3 8253 10.3 8253 的工作方式的工作方式 方式 4 写入控制字之后,输出端OUT变高电平,写入计数值后开始计数(即软件启动)。计数到0时停止计数,输出端OUT变为低电平,维持一个CLK周期后又变为高电平,因此这种方式的计数是一次性的,只有再次写入计数初值,才启动另一次计数过程。66写入新计数初值后,延时1个CLK周期按新值计数10.3 8253 10.3 8253 的工作方式的工作方式 方式 4CE4325364GATE210FFCLKOUTFE计数过程中改变计数值WRCW=18HLSB=4LSB=667GATE=1,计数器继续计数10.3 825
33、3 10.3 8253 的工作方式的工作方式 方式 4CE55531WRCW=18HLSB=542GATE0FFFE FDCLKOUTFCGATE=0,计数器暂停计数OUT为低期间GATE的作用6810.3 8253 10.3 8253 的工作方式的工作方式 方式 4 新的计数值写入后,在其下一个CLK周期开始按新值计数,若计数值为双字节,则在写入第一字节时停止计数,在写入第二字节后开始按新值计数 计数过程中可由GATE信号控制计数过程的暂停。当GATE=0时,计数器暂停计数,直到GATE=1时计数器又继续计数。69 例10-6 对于锁存器,实现定时锁存控制,即在一定时间后产生一锁存信号LE,
34、延迟时间为10个CLK周期。采用计数器1,方式4,低位字节,按BCD计数。8253GATE1CLK1OUT1+5V INT锁存器 LE70CLK1WROUT159H10H1010 CLK910MODE4:MOV AL,01011001BOUTCTRL,ALMOV AL,10HOUT CNT1,AL71计数到0,OUT变低,1个CLK后变高GATE触发计数10.3 8253 10.3 8253 的工作方式的工作方式 方式 5(硬启动单拍脉冲发生器)CE43210FF4WRCW=1AHLSB=4CLKGATE写入控制字后OUT变高OUT7210.3 8253 10.3 8253 的工作方式的工作方
35、式 方式 5 写入控制字以后,输出端OUT变高电平并保持,写入计数值以后,计数器并不立即开始计数,而是等待硬件(GATE)的触发启动。触发一次启动一次,计数到0时输出端OUT变为低电平,一个CLK后又变高,即输出一个CLK周期的负脉冲。方式5的计数值不必重新写入。7310.3 8253 10.3 8253 的工作方式的工作方式 方式 5 CE321FF01CLKWRCW=12HLSB=3LSB=202GATEFF计数过程中改变计数值OUT74GATE脉冲重新启动,按初值计数。10.3 8253 10.3 8253 的工作方式的工作方式 方式 5 CE43231WRCW=12HLSB=4CLK4
36、2门控信号GATE的作用GATE0FFOUT75 例10-7 在一个通信系统中,收发双方采用REQ握手方式进行通信应答,发送方采用发出发送请求后转入接收应答信号SEND的检测,如果输出发送数据请求REQ之后一定时间(这里为100CLK脉冲)内不能接受到应答信号时,就在接收方发生通信异常信号FAIL。用8253实现100个CLK的定时计数,采用计数器1,方式5,低位1字节,按二进制计数。768253OUT1GATE1CLK1SENDREQSENDREQFAIL发送侧接收侧77MODE5:MOV AL,01011010BOUT CTRL,AL MOV AL,100OUT CNT1,A L高电平GA
37、TE1100CLK100 99 98 97.1 064H5AHCLK0WRREQSENDFAIL7810.3 8253 10.3 8253 的工作方式的工作方式 方式 5 在计数过程中改变计数值不是立即有效的。即新的计数值写入后只要不发门控信号,现行计数不受影响,新计数值在下次启动后才开始生效。计数过程中可由GATE脉冲重新启动按初值计数,但GATE的变化不影响OUT的状态,只有计数到0时OUT输出一个CLK周期的负脉冲。79NUIST第第1010章章 可编程定时可编程定时/计数器计数器82593的引脚功能和编程结构1 18253的编程2 28253的工作方式3 38253综合应用举例4 48
38、254芯片5 58010.4 8253 10.4 8253 的综合应用举例的综合应用举例 自动气象站问题分析 在自动气象站的瞬时风速和降雨量的测量中,风速传感器和翻斗式雨量传感器的速出都是脉冲信号。瞬时风速V=a+bf,其中a为常数(起动风速),b为系数,f为单位时间内的脉冲数(每秒脉冲数)翻斗式雨量传感器某时段的降雨量计算公式为P=kN,其中N该时段内传感器输出脉冲的个数,k为系数。本例时间段取1分钟。请应用8253实现瞬时风速和降雨量的测量。8110.4 8253 10.4 8253 的综合应用举例的综合应用举例 自动气象站资源分配 要实现瞬时风速和降雨量的测量均需要实现对脉冲的计数和定时
39、 8253的通道0实现定时1秒钟 计数器1用于对风速传感器输出的脉冲信号计数 计数器2用于对翻斗式雨量传感器输出的脉冲信号计数 82CSOUT0CLK0CLK1CLK2GATE1GATE2OUT1OUT2接图0-2的Y18253GATE050kHz接风速传感器接雨量传感器1s到请求中断接8259A的IR083产生T=1s的基准时间,工作在方式2,设通道0时钟的频率f CLK0=50KHz 计数器0N0=T/TCLK0=1s/0.02ms=50000(C350H)记录风速传感器的输出脉冲,工作在方式0,设计数初始值为N1,当定时1s到如果读出的当前值为M1,则风速传感器输出脉冲的频率f1=N1-
40、M1。一般风速传感器脉冲频率范围是01221Hz,计数器1设 N1=FFFFH84记录翻斗式雨量传感器的输出脉冲。工作在方式0,设计数初始值为N2,当定时60s(计数器0中断60次)到如果读出的当前值为M2,则60秒记录的脉冲个数为N=N2-M2,根据翻斗式雨量传感器某时段的雨量计算公式为P=kN,可以求出该段时间内的降雨量。计数器28510.4 8253 10.4 8253 的综合应用举例的综合应用举例 自动气象站程序编写 SC1SC0RW1RW0M2M1M0BCD001101000111000010110000方式2,读写2字节,二进制计数;计数初值:C350H通道0方式0,读写2字节,二
41、进制计数;计数初值:FFFFH通道1方式0,读写2字节,二进制计数;计数初值:FFFF通道286开始现场保护开中断通道1锁存读写通道1计数初值60s到?Y通道2锁存读写通道2计数初值60s计数器清零计算60s降雨量计算风速N关中断现场恢复中断返回通道0的中断服务程序流程图87NUIST第第1010章章 可编程定时可编程定时/计数器计数器82593的引脚功能和编程结构1 18253的编程2 28253的工作方式3 38253综合应用举例4 48254芯片5 58810.5 8254 10.5 8254 芯片芯片8254是8253的改进型,两者的主要差别是:最高计数频率不同。8253的最高计数频率
42、为2MHz,而8254允许的最高计数脉冲频率可达10MHz(8254为8MHz,8254-2为10MHz)8254每个计数通道的内部都有一个状态寄存器和状态锁存器,而8253没有 8254多一个读回命令字,用以读出当前计数单元的内容和状态寄存器的内容,而8253没有 8910.5 8254 10.5 8254 芯片芯片 8254的状态寄存器和状态锁存器 8254每一个计数通道都有一个状态寄存器和对应的状态锁存器,状态寄存器用于保存该计数器的状态。状态寄存器的内容可经由状态锁存器被CPU读出。CPU读出的状态锁存器的内容称为状态字。90OUTNULL outRW1RW0M2M1M0BCDD7D6
43、D5D4D3D2D1D0反映该通道输出引脚的电平状态:0:低电平1:高电平指示初值寄存器的内容是否装入计数单元:0:已装入;1:未装入与写入该通道的控制字意义相同。9110.5 8254 10.5 8254 芯片芯片 8254的锁存命令和读回命令 锁存命令与8253同(略)读回命令不仅用来将指定的计数通道的计数单元的当前内容锁存入输出锁存器中,以供CPU读取,而且还能将状态寄存器的内容锁存在状态输出锁存器中供CPU读取。另外,8254锁存命令能同时锁存几个计数通道的当前计数值,而8253一次只能锁存一个通道。921 1 COUNT STATUS CNT2D7D6D5D4D3D2D1D0CNT1CNT000:把当前计数值锁存到输出锁存器1:不锁存计数值0:把当前状态值锁存到输出锁存器1:不锁存状态值0:锁存通道2(锁存内容取决于D5D4)1:不锁存通道2功能与CNT2类似,针对通道1和093