资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,定时的基本概念,软件控制,编一段具有循环功能的程序,一般用在延时时间不长,且使用次数不多的场合。,硬件控制,(,专用芯片,),计数容量,计数频率,计数过程(启动、停止等),输出信号,8253,可编程计数定时器的结构及引脚功能,1.,数据总线缓冲器,数据总线缓冲器是,8,位、双向、三态的缓冲器,通过,8,根数据线,D0,D7,接收,CPU,向控制寄存器写入的控制字,向计数器写入的计数初值,也可把计数器的当前计数值读入,CPU,。,2.,读写逻辑电路,CS,:片选信号,输入,低电平有效。它与译码器输出信号相连接,当,CS,为低电平时,,8253,芯片被,CPU,选中。,A1,、,A0,:输入信号,用来对,3,个计数器和控制寄存器进行寻址,与,CPU,的系统地址线相连。当,A1,、,A0,为,00,、,01,、,10,、,11,时分别表示对计数器,0,、计数器,1,、计数器,2,和控制寄存器的访问。,WR,:写引脚,输入,低电平有效。,RD,:读引脚,输入,低电平有效。,3.,计数通道,8253,有,3,个相互独立的同样的计数电路,分别称作计数器,0,、计数器,1,和计数器,2,。,8位的控制寄存器,16位的初值寄存器,16位计数执行单元CE,16位输出锁存器OL,CLK,:计数时钟,输入。用于输入定时脉冲或计数脉冲信号。计数器用其下降沿作减,1,计数。,GATE,:门控信号,输入,由外部信号通过,GATE,端控制计数器的启动计数和停止计数的操作。,OUT,:输出信号。在不同的模式下,可输出不同波形。,通道选择,A,1,A,0,=00:,选择通道,0,;,A,1,A,0,=01,,选择通道,1,;,A,1,A,0,=10,,选择通道,2,;,A,1,A,0,=11,,选择控制端口,8253,的控制字和编程,图 8253的控制字,2.8253,初始化的顺序,(1),先将控制字写入相应计数器的控制寄存器中。,(2),写入定时或计数的初值。这里要注意的是如果计数值为,16,位,则要,CPU,执行两次输出指令完成初值的设置,即先写低字节,再写高字节。,计数初值的计算,定时时间,T,时钟脉冲周期,tc,计数初值,n,例如,在某微机中,,8253,的计数脉冲频率是,1MHZ,,脉冲周期,tc=1s,,若定时时间,T=1ms,,则设置的计数器初值,n=T/tc=1000=3E8H,。,计数启动,软件启动,用输出指令向计数器赋予初值来启动。第一个外部时钟,CLK,信号,(,经历由低变高,再由高变低,),将初值寄存器的内容送入计数器。第二个,CLK,下降沿,开始计数。,硬件启动,写入计数初值后,还不能启动计数,需要将门控信号,GATE,变成,高电平,再经,CLK,信号的上升沿采样,随后的,CLK,下降沿才开始使计数器减,1,。,8253,的工作方式,-,方式,0(,计数结束产生中断,),软件启动,不能自动重复,8253,的工作方式,-,方式,0(,计数结束产生中断,),计数过程中,GATE,变低,8253,的工作方式,-,方式,0(,计数结束产生中断,),计数过程中重新写入计数初值,8253,的工作方式,-,方式,1(,可编程单脉冲,),硬件启动,不能自动重复,8253,的工作方式,-,方式,1(,可编程单脉冲,),在计数过程启动之后,完成之前,GATE,又发生正跳变,8253,的工作方式,-,方式,1(,可编程单脉冲,),计数过程中重新写入计数初值,8253,的工作方式,-,方式,2(,速率发生器,),可软件启动,也可以硬件启动。可自动重复计数。,8253,的工作方式,-,方式,2(,速率发生器,),计数过程中,GATE,变低,3,8253,的工作方式,-,方式,2(,速率发生器,),计数过程中重新写入计数初值,8253,的工作方式,-,方式,3(,方波发生器,),可软件启动,也可硬件启动,计数能自动重复,8253,的工作方式,-,方式,3(,方波发生器,),计数初值为奇数,8253,的工作方式,-,方式,3(,方波发生器,),计数过程中,GATE,变低,8253,的工作方式,-,方式,3(,方波发生器,),计数过程中重新写入计数初值,8253,的工作方式,-,方式,4(,软件触发选通,),软件启动,不自动重复,8253,的工作方式,-,方式,4(,软件触发选通,),GATE,为低,8253,的工作方式,-,方式,4(,软件触发选通,),计数过程中重新写入计数初值,8253,的工作方式,-,方式,5(,硬件触发选通,),硬件触发选通方式,完全由,GATE,端引入的触发信号控制定时和计数,8253,的工作方式,-,方式,5(,硬件触发选通,),计数过程中,GATE,产生了正跳变,8253,的工作方式,-,方式,5(,硬件触发选通,),计数过程中重新写入计数初值,例:假设,8253,的计数器,0,工作在方式,5,,按二进制计数,计数初值为,46H,;计数器,1,工作在方式,1,,按,BCD,码计数,计数初值为,4000H,;计数器,2,工作在方式,2,,按二进制计数,计数初值为,0304H,。请将以上三种情况的初始化程序写出。,8253,芯片占用地址,04C0H,、,04C2H,、,04C4H,、,04C6H,。,MOV AL,00011010B,;二进制,方式,5,写低字节,计数器,0,MOV DX,04C6H,;设置,8253,控制口地址,OUT DX,AL,;写入工作方式控制字,MOVAL,46H,;计数值的低字节,MOVDX,04C0H,;设置,8253,计数器,0,地址,OUT DX,AL,;写入计数值的低字节,MOV AL,01110011B,;,BCD,数,方式,1,写,16,位数,计数器,1,MOV DX,04C6H,;设置,8253,控制器地址,OUT DX,AL,;写入工作方式控制字,MOV AL,00H,;计数值低字节,MOV DX,04C2H,;设置,8253,计数器,1,地址,OUT DX,AL,;写入计数值低字节,MOV AL,40H,;计数器高字节,OUT DX,AL,;写入计数值高字节,MOV AL,10110100B,;二进制,方式,2,写入,16,位数,计数器,2,MOV DX,04C6H,;控制口地址,OUT DX,AL,MOV AL,04H,;计数值低字节,MOV DX,04C4H,;设置计数器,2,地址,OUT DX,AL,;写入计数值低字节,MOV AL,03H,;计数值高字节,OUT DX,AL,;写入计数值高字节,
展开阅读全文