欢迎来到天天文库
浏览记录
ID:50035839
大小:122.00 KB
页数:19页
时间:2020-03-08
《单片机原理与接口技术 教学课件 作者 徐瑞华 第六章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第6章定时器/计数器及应用1、软件定时:靠执行一个循环程序以进行时间延迟。时间精确,不需外加硬件电路;要占用CPU开销,定时时间不宜太长。2、硬件定时:定时功能全部由硬件电路完成,不占用CPU时间;但通过改变电路中元件参数来调节定时时间,使用不方便。3、可编程定时器定时:通过对系统的时钟脉冲的记数来实现,使用灵活方便;用计数方法实现定时,因此还可以对外部脉冲进行计数,实现计数功能。单片机内部靠定时器/计数器来实现第三种功能的6.1MCS-51定时器/计数器的结构及各寄存器的设置一、内部结构:MCS-51定时器/计数器实质上是一个16位的计数寄存器。分
2、为高8位TH和低8位TL,来一个脉冲,这个TL里面的数据就会自动加1,计满以后自动向TH进1。从图中可以看出,计数器的核心部件是一个加1计数器。MCS-51单片机内部有两个这样的计数器,分别与外部引脚T0和T1相连接。从结构图中还可以看出,当开关往上接的时候,定时器/计数器对单片机时钟信号进行计数,每隔一个机器周期的时间就加1,这种方式叫做定时方式。定时时间:n由计数器工作方式决定(一会详细讲)当开关往下接的时候,定时器/计数器对单片机外部引脚T0或T1来的脉冲进行计数,来一个下降沿就加1,这种方式叫做计数方式。计数个数:开关的上下连接通过设置C/T
3、的值来完成。而C/T是工作方式寄存器TMOD中的一个位。二、定时器/计数器工作方式寄存器TMOD1、M1和M0工作方式控制位定时器/计数器有四种工作方式,每种工作方式的计数位数、初值的计算等都各不一样,主要是通过M1和M0两位的设定来选择。(至于工作方式我们一会讲)2、定时器/计数器选择位C/TC/T=0,设置为定时方式,对机器周期进行计数;开关往上。C/T=1,设定为计数方式,对外部引脚信号T0(P3.4)或T1(P3.5)进行计数,开关往下。3、GATE门控位(定时器/计数器开启方式控制位)GATE=0时,只要用软件使定时器/计数器的启动开关TR
4、0(或TR1)置1,就能启动定时器T0(或T1)工作;GATE=1时,只有在INT0(或INT1)引脚为高电平的情况下,且由软件使TR0(或TR1)置1时,才能启动定时器T0(或T1)工作。以上为TMOD各个位的含义,在使用定时器/计数器的时候,根据自己的意愿,首先要设定TMOD的值。注意:该寄存器不能进行位操作,只能进行字节操作。比如:要完成对T0口上的脉冲进行计数,且要求工作在方式1。则设置TMOD各个位分别为:00000101用指令MOVTMOD,#05H刚才讲到,定时器/计数器的启动开关TR0(或TR1),这个部件是控制寄存器TCON中的一个
5、位。三、定时器/计数器的控制寄存器TCON控制寄存器TCON在前面讲解中断的时候已经涉及,其低四位为外部中断标志和出发方式控制位。而高四位是T0和T1的控制位:主要用来控制定时器/计数器的启动与停止;当定时器/计数器计满溢出,能够产生溢出标志,在中断允许的情况下,这个溢出标志就能产生中断请求。TF1:定时器T1溢出标志位。当定时器T1溢出时,由硬件自动使TF1置1,并向CPU申请中断。CPU响应中断后,自动对TF1清零。TF1也可以用软件清零。TR1:定时器T1运行控制位。可由软件置1(或清零)来启动(或关闭)定时器T1,使定时器T1开始计数。用指令
6、SETBTR1(或CLRTR1)使TR1置1(或清零)。TF0:定时器T0溢出标志位。其功能与TF1相同。TR0:定时器T0运行控制位。其功能与TR1相同6.2MCS-51定时器/计数器的工作模式主要掌握:每种工作模式的计数位数、初值的计算和设定以及具体应用。一、工作模式0M1M0设定为00的时候,工作在方式0,此时,为一个13位的定时/计数器。13位由TH的8位和TL的低5位组成,而TL的高3位不使用。当TL计数到00011111的时候,如果再来一个数,TL就变成00000000,而向TH进位。用于定时的时候:将T初值计算出来,然后转换成13位二进
7、制,把高8位放入TH,把低5位的前面加三个0后放入TL。用于计数的时候:将T初值计算出来,然后转换成13位二进制,把高8位放入TH,把低5位的前面加三个0后放入TL。例:利用定时器T0产生定时脉冲。每隔2ms产生宽度为1个机器周期的正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHZ)。解:首先求出定时器T0初值。由于时钟频率为6MHZ,所以,机器周期为2µs。因为:t=(213-T0初值)机器周期所以,当t=2ms时,则:(213-T0初值)210-6=210-3解得T0初值=7096=1101110111000B,其中将高8位1
8、1011101B=DDH赋给TH0,低5位00011000B=18H赋给TL0方法一:采用查询工作方式,编程
此文档下载收益归作者所有