【单片机知识】第5章MCS51单片机内部定时器.ppt

上传人:牧羊曲112 文档编号:1299279 上传时间:2022-11-06 格式:PPT 页数:32 大小:2.48MB
返回 下载 相关 举报
【单片机知识】第5章MCS51单片机内部定时器.ppt_第1页
第1页 / 共32页
【单片机知识】第5章MCS51单片机内部定时器.ppt_第2页
第2页 / 共32页
【单片机知识】第5章MCS51单片机内部定时器.ppt_第3页
第3页 / 共32页
【单片机知识】第5章MCS51单片机内部定时器.ppt_第4页
第4页 / 共32页
【单片机知识】第5章MCS51单片机内部定时器.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《【单片机知识】第5章MCS51单片机内部定时器.ppt》由会员分享,可在线阅读,更多相关《【单片机知识】第5章MCS51单片机内部定时器.ppt(32页珍藏版)》请在三一办公上搜索。

1、【单片机知识】第5章-MCS-51单片机内部定时器,【单片机知识】第5章-MCS-51单片机内部定时器,第5章 MCS-51单片机内部定时器/计数器,第5章 MCS-51单片机内部定时器/计数器,5.1 定时器/计数器概述 定时器/计数器实际上是加1计数器,当它对外部事件进行计数时,由于频率不固定,此时称之为计数器;当它对内部固定频率的机器周期进行计数时称之为定时器。,5.1 定时器/计数器概述,振荡器和时序OSC,程序存储器4KB ROM,数据存储器4KB RAM,64KB总线扩展控制器,可编程I/O,可编程全双工串行口,8051CPU,216位定时器/计数器,外时钟源,内中断,外中断,控制

2、,并行口,串行通信,外部事件计数,1 MCS-51单片机总体构框图,振荡器和时序程序存储器数据存储器64KB总线可编程I/O可编,【单片机知识】第5章-MCS-51单片机内部定时器,T0(或T1)在作定时器使用时,输入的时钟脉冲由晶振的输出经12分频后得到的。T0(或T1)在作计数器使用时,输入的时钟脉冲由外部输入端P3.4(T0)和P3.5(T1)提供。,T0(或T1)在作定时器使用时,输入的时钟脉冲由晶振的输出经,定时器/计数器的基本结构如图所示。,定时器/计数器的基本结构如图所示。,当加法计数器的初值被设置后,用指令改变特殊功能寄存器TMOD和TCON的内容,就会在下一条指令的第一个机器

3、周期的S1P1时刻按照设定方式自动进行工作。,当加法计数器的初值被设置后,用指令改变特殊功能寄存器TMOD,初值的设置方法:,设计数器计数的最大值为M,计数值为N,初值为X,则X的计算方法为: 计数器工作方式时:X=M-N 定时器工作方式时:X=M-定时时间/T T=12/晶振频率,初值的设置方法:设计数器计数的最大值为M,计数值为N,初值为,5.2 定时器/计数器的控制字 定时器/计数器有4种工作模式,由TMOD设置并由TCON控制。,5.2 定时器/计数器的控制字,定时器/计数器的工作模式寄存器TMOD:,特殊功能寄存器TMOD的地址为89H,它不能位寻址,在设置时一次写入。,定时器/计数

4、器的工作模式寄存器TMOD: 特殊功,TMOD各位的含义,门控信号位,定/计数方式选择位: C/T0,为定时方式C/T1,为计数方式,模式选择位:M1 M0 模式 0 0 0 0 1 1 1 0 2 1 1 3 (T1无模式3),TMOD各位的含义D7D6D5D4D3D2D1D0GATEC,定时器控制寄存器TCON:,定时器控制寄存器TCON(地址为88H)除可字节寻址外,各位还可以位寻址。,与中断有关,见第4章,T0,T1的运行控制位,通过软件置1后定时器/计数器才能正常工作。,定时器控制寄存器TCON:定时器控制寄存器TCON(地址为8,GATE=0时,则只要TR0(或TR1)置1,T0(

5、或T1)就被选通,与INT0和INT1的电平状态无关。,GATE=1时,不仅要TR0(或TR1)置1,还必须INT0和INT1的电平为高,T0(或T1)才能被选通。,GATE=0时,则只要TR0(或TR1)置1,T0(或T1),5.3 定时器/计数器工作模式 51系列单片机的定时器/计数器T0和T1对M1和M0位的设置对应于四种工作模式,即模式0、模式1、模式2、模式3。在模式0、模式1和模式2时,T0和T1的工作情况相同。,5.3 定时器/计数器工作模式,工作模式0 模式0是选择16位定时/计数器(T0或T1)的高8位和低5位组成的一个13位定时器/计数器。,工作模式0,C/T=0时,为定时

6、工作方式。定时时间为: t=(213-T0初值)振荡周期12C/T=1时,为计数工作方式,计数最大长度为 2138192个外部脉冲。例:设定时/计数器0工作于模式0,定时时间为1ms,时钟频率为12MHZ,试确定初值。 解:设初值为X,则 110-3=(213-X)1/1210-612 X=7192 化为二进制:X=1110000011000B 高8位化为16进制=E0H 低5位化为16进制=18H,TH0=0E0HTL0=18H,C/T=0时,为定时工作方式。定时时间为:TH0=0E0H,根据上例编写程序,利用定时器/计数器每隔1ms控制产生宽度为一个机器周期的负脉冲,并由P1.0口输出。,

7、解:1、计算初值得1110000011000B 2、 初值装入TH0=0E0H,TL0=18H 3、写模式控制TMOD: M1M0=00,GATE=0,C/T=0,因此 TMOD=00H 4、编程,根据上例编写程序,利用定时器/计数器每隔1ms控制产生宽度为,ORG 0000H AJMP MAIN ;上电,转主程序 ORG 000BH ;T0的中断入口地址 AJMP T0INT ;转中断服务程序 ORG 0100H MAIN: SETB P1.0 MOV TH0,#0E0H ;装入定时器初值 MOV TL0,#18H MOV TMOD,#00H ;设置为模式0 MOV IE,#82H ;EA=

8、1,ET0=1,允许T0中断 SETB TR0 ;启动T0LOOP: SJMP LOOP ;等待中断 ORG 0200HT0INT: CLR P1.0 SETB P1.0 ;输出1周期负脉冲 MOV TH0,#0E0H ;重新装入定时器初值 MOV TL0,#18H RETI ;中断返回,ORG 0000H,例:设时钟频率为6MHZ,试利用T1,采用模式0产生10ms的定时,并使P1.7输出周期为20ms的方波。,解:1、计算初值得110001111000B 2、 初值装入TH1=63H,TL1=18H 3、写模式控制TMOD: M1M0=00,GATE=0,C/T=0,因此 TMOD=00H

9、 4、编程,20ms,10ms,例:设时钟频率为6MHZ,试利用T1,采用模式0产生10ms,ORG 0000H LJMP MAIN ;上电,转主程序 ORG 001BH ;T1的中断入口地址 AJMP T1INT ;转中断服务程序MAIN: MOV TH1,#63H ;装入定时器初值 MOV TL1,#18H MOV TMOD,#00H ;设置为模式0 SETB EA ;CPU开中断 SETB ET1 ;允许T1中断 SETB TR1 ;启动T1LOOP: SJMP LOOP ;等待中断T1INT: CPL P1.7 ; P1.7口取反,输出 MOV TH1,#63H ;重新装入定时器初值

10、MOV TL1,#18H RETI ;中断返回,ORG 0000H,工作模式1 该模式对应的是一个16位的定时器/计数器。 其结构与操作与模式0几乎相同,定时时间为: t=(216-T0初值)振荡周期12 计数工作方式时,计数最大长度为: 21665536个外部脉冲。,工作模式1,例:设时钟频率为6MHZ,试利用T0,采用模式1产生10ms的定时,并使P1.7输出周期为20ms的方波。,解:1、计算初值得X=65036=1111111000010110B 2、 初值装入TH0=0FEH,TL0=16H 3、写模式控制TMOD: M1M0=01,GATE=0,C/T=0,因此 TMOD=01H

11、4、编程,20ms,10ms,例:设时钟频率为6MHZ,试利用T0,采用模式1产生10ms,ORG 0000H LJMP MAIN ;上电,转主程序 ORG 000BH ;T0的中断入口地址 AJMP T0INT ;转中断服务程序MAIN: MOV TH0,#0FEH ;装入定时器初值 MOV TL0,#16H MOV TMOD,#01H ;设置为模式1 SETB EA ;CPU开中断 SETB ET0 ;允许T0中断 SETB TR0 ;启动T0LOOP: SJMP LOOP ;等待中断T0INT: CPL P1.7 ; P1.7口取反,输出 MOV TH0,#0FEH ;重新装入定时器初值

12、 MOV TL0,#16H RETI ;中断返回,ORG 0000H,用查询方式对上例进行编程。,ORG 0100H MOV TH0,#0FEH ;装入定时器初值 MOV TL0,#16H MOV TMOD,#01H ;设置为模式1 SETB TR0 ;启动T0LOOP: JNB TF0, $ ;时间未到,等待 MOV TH0,#0FEH ;重新装入定时器初值 MOV TL0,#16H CPL P1.7 ; P1.7口取反,输出 SJMP LOOP ;返回 END,用查询方式对上例进行编程。 ORG 0,工作模式2 模式2把TL0(或TL1)设置成一个可以自动重装载的8位定时器/计数器 。定时

13、时间为: t=(28-T0初值)振荡周期12 计数工作方式时,计数最大长度为:28256个外部脉冲。,工作模式2,例:用定时器T1的模式2对外部信号计数,要求每计满100次,将P1.0端取反。,解:1、计算计数器初值 XM-N= 28-100=156=9CH 2、 初值装入TH1=9CH,TL1=9CH 3、写模式控制TMOD: M1M0=10,GATE=0,C/T=1,因此 TMOD=01100000B=60H 4、编程,例:用定时器T1的模式2对外部信号计数,要求每计满100次,,ORG 0000H LJMP MAIN ;上电,转主程序 ORG 001BH ;T1的中断入口地址 AJMP

14、T1INT ;转中断服务程序MAIN: MOV TH1,#9CH ;装入计数器初值 MOV TL1,#9CH MOV TMOD,#60H ;设置为计数器,工作为模式1 SETB EA ;CPU开中断 SETB ET1 ; 允许T1中断 SETB TR1 ;启动T1LOOP: SJMP LOOP ;等待中断T1INT: CPL P1.0 ; P1.0口取反,输出 RETI ;中断返回,ORG 0000H,工作模式3 工作模式3对T0和T1大不相同。 若将T0设置为模式3,TL0和TH0被分成为两个相互独立的8位计数器 。,工作模式3,5.4 定时器/计数器应用实例 利用定时器0产生25Hz的方波

15、,由P1.0输出。假设CPU不做其它工作,则可采用查询方式进行控制,设晶振频率为12MHz。 25Hz方波,周期为1/2540ms,可以采用定时器定时20ms,每隔20ms改变一下P1.0的电平,即可得到25Hz的方波信号。比较一下该采用哪种模式:模式0:最长定时时间为t=213110-6=8.192ms模式1:最长定时时间为t=216110-6=65.536ms模式2:最长定时时间为t=28110-6=0.256ms根据上面分析,采用模式1,5.4 定时器/计数器应用实例,设初值为X,则有: t=(216-X)110-6=2010-3 求得X=45536=B1E0H 程序如下: ORG 0100H MOV TMOD, #01H MOV TH0, #0B1H MOV TL0, #0E0H SETB TR0LOOP: JNB TF0, $ ;$为当前指令指针地址 CLR TF0 MOV TH0, #0B1H MOV TL0, #0E0H CPL P1.0 SJMP LOOP END,设初值为X,则有:,感谢聆听,感谢聆听,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号