欢迎来到天天文库
浏览记录
ID:56994464
大小:654.50 KB
页数:94页
时间:2020-07-26
《单片机培训5-定时器计数器与中断系统课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、定时器/计数器与中断系统周剑峰1MCS-51单片机的定时器/计数器2一、MCS-51单片机定时器/计数器组成:定时器/计数器0(T0):16位的加计数器定时器/计数器1(T1):16位的加计数器二、定时器/计数器的功能对外部输入信号的计数功能。定时器/计数器0(T0)的外来脉冲输入端为P3.4;定时器/计数器1(T1)的外来脉冲输入端为P3.5。定时功能。定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单片机的片内振荡器输出经12分频后产生的信号,即为对机器周期计数。MCS-51单片机的定时器/计数器3MCS-5
2、1单片机定时器/计数器逻辑结构图T1由TH1、TL1构成,字节地址为8DH、8BHT0由TH0、TL0构成,字节地址为8CH、8AHTCON则用于控制定时计数器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。特殊功能寄存器TMOD控制定时计数器的工作方式4定时器/计数器的控制主要是通过以下几个寄存器实现的:TCON---定时器/计数器控制寄存器TMOD---定时器/计数器工作方式控制寄存器IE---中断允许控制寄存器定时器/计数器的控制5TMOD89HD7D6D5D4D3D2D1D0GATEM1M0GATE
3、M1M0←T1方式字段→←T0方式字段→GATE——门控位。GATE=0启动不受/INT0或/INT1的控制,TCON的TR0或TR1置1,启动定时器工作;GATE=1,/INT0或/INT1为高电平,且TCON的TR0或TR1置1,启动定时器工作。C/T——外部计数器/定时器方式选择位C//T=0定时方式;C//T=1计数方式。M1M0——工作方式选择位(编程可决定四种工作模式)。6方式寄存器TMODM1和M0方式选择位M1M0工作方式功能00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3
4、定时器0分成2个8位计数器,定时器1停止计数7=0——定时;=1——对外计数。定时:fosc/12=1/(12/fosc)=1/TN个方波T计数:脉冲不等间隔。波形等间隔,次数已定,时间确定即对机器周期进行计数。左图定时时间为N*T每个下降沿计数一次确认一次负跳变需两个机器周期,所以,计数频率最高为fosc/24。8TCON88HD7D6D5D4D3D2D1D0TF1TR1TF0TR0TR0——定时/计数器0运行控制位。软件置位,软件复位。TR1——定时/计数器1运行控制位。(用法与TR0类似)TF0、TF1分别是定时、计数
5、器T0、T1的溢出标志位。9(1)定时/计数器的工作方式M1M0——工作模式选择位(编程可决定四种工作模式)0013位定时/计数器模式00116位定时/计数器模式108位定时/计数器(自动重装初值)模式211T08位定时/计数模式311T1停止工作模式3101)工作方式0T0的等效逻辑结构11在计数工作方式0下,计数器的计数值范围是:1~8192(2的13方)当为定时工作方式时,定时时间的计算公式为:(8192-计数初值)×晶振周期×12或 (8192-计数初值)×机器周期其时间单位与晶振周期或机器周期相同。16位寄存器
6、只用13位,TL0/TL1的高3位未用。如果单片机的晶振选为6.000MHz,则最小定时时间为:[8192—(8192—1)]×1/6×10-6×12=2×10-6(s)=2(us)最长定时时间为:(8192—0)×1/6×10-6×12=16384×10-6(s)=16384(us)。122)工作方式1T0的等效逻辑结构13在工作方式1下,计数器的计数值范围是:1~65536(2的16方)当为定时工作方式1时,定时时间的计算公式为:(65536—计数初值)×晶振周期×12或 (65536—计数初值)×机器周期其时间单位
7、与晶振周期或机器周期相同。如果单片机的晶振选为6.000MHz,则最小定时时间为:[65536—(65536—1)]×1/6×10-6×12=2×10-6(s)=2(us)最长定时时间为:(65536—0)×1/6×10-6×12=131072×10-6(s)=131072(us)。143)工作方式2T0的等效逻辑结构15方式2与方式0、1的区别:工作方式0和工作方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。工作方式2就具有
8、自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置
此文档下载收益归作者所有