MCS-51单片机内部定时器_第1页
MCS-51单片机内部定时器_第2页
MCS-51单片机内部定时器_第3页
MCS-51单片机内部定时器_第4页
MCS-51单片机内部定时器_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,微机原理及应用,第5章MCS-51单片机内部定时器/计数器,5.1定时器/计数器概述定时器/计数器实际上是加1计数器,当它对外部事件进行计数时,由于频率不固定,此时称之为计数器;当它对内部固定频率的机器周期进行计数时称之为定时器。,振荡器和时序OSC,程序存储器4KBROM,数据存储器4KBRAM,64KB总线扩展控制器,可编程I/O,可编程全双工串行口,8051CPU,216位定时器/计数器,外时钟源,内中断,外中断,控制,并行口,串行通信,外部事件计数,1MCS-51单片机总体构框图,T0(或T1)在作定时器使用时,输入的时钟脉冲由晶振的输出经12分频后得到的。T0(或T1)在作计数器使用时,输入的时钟脉冲由外部输入端P3.4(T0)和P3.5(T1)提供。,定时器/计数器的基本结构如图所示。,当加法计数器的初值被设置后,用指令改变特殊功能寄存器TMOD和TCON的内容,就会在下一条指令的第一个机器周期的S1P1时刻按照设定方式自动进行工作。,初值的设置方法:,设计数器计数的最大值为M,计数值为N,初值为X,则X的计算方法为:计数器工作方式时:X=M-N定时器工作方式时:X=M-定时时间/TT=12/晶振频率,5.2定时器/计数器的控制字定时器/计数器有4种工作模式,由TMOD设置并由TCON控制。,定时器/计数器的工作模式寄存器TMOD:,特殊功能寄存器TMOD的地址为89H,它不能位寻址,在设置时一次写入。,TMOD各位的含义,门控信号位,定/计数方式选择位:C/T0,为定时方式C/T1,为计数方式,模式选择位:M1M0模式000011102113(T1无模式3),定时器控制寄存器TCON:,定时器控制寄存器TCON(地址为88H)除可字节寻址外,各位还可以位寻址。,与中断有关,见第4章,T0,T1的运行控制位,通过软件置1后定时器/计数器才能正常工作。,GATE=0时,则只要TR0(或TR1)置1,T0(或T1)就被选通,与INT0和INT1的电平状态无关。,GATE=1时,不仅要TR0(或TR1)置1,还必须INT0和INT1的电平为高,T0(或T1)才能被选通。,5.3定时器/计数器工作模式51系列单片机的定时器/计数器T0和T1对M1和M0位的设置对应于四种工作模式,即模式0、模式1、模式2、模式3。在模式0、模式1和模式2时,T0和T1的工作情况相同。,工作模式0模式0是选择16位定时/计数器(T0或T1)的高8位和低5位组成的一个13位定时器/计数器。,C/T=0时,为定时工作方式。定时时间为:t=(213-T0初值)振荡周期12C/T=1时,为计数工作方式,计数最大长度为2138192个外部脉冲。例:设定时/计数器0工作于模式0,定时时间为1ms,时钟频率为12MHZ,试确定初值。解:设初值为X,则110-3=(213-X)1/1210-612X=7192化为二进制:X=1110000011000B高8位化为16进制=E0H低5位化为16进制=18H,TH0=0E0HTL0=18H,根据上例编写程序,利用定时器/计数器每隔1ms控制产生宽度为一个机器周期的负脉冲,并由P1.0口输出。,解:1、计算初值得1110000011000B2、初值装入TH0=0E0H,TL0=18H3、写模式控制TMOD:M1M0=00,GATE=0,C/T=0,因此TMOD=00H4、编程,ORG0000HAJMPMAIN;上电,转主程序ORG000BH;T0的中断入口地址AJMPT0INT;转中断服务程序ORG0100HMAIN:SETBP1.0MOVTH0,#0E0H;装入定时器初值MOVTL0,#18HMOVTMOD,#00H;设置为模式0MOVIE,#82H;EA=1,ET0=1,允许T0中断SETBTR0;启动T0LOOP:SJMPLOOP;等待中断ORG0200HT0INT:CLRP1.0SETBP1.0;输出1周期负脉冲MOVTH0,#0E0H;重新装入定时器初值MOVTL0,#18HRETI;中断返回,例:设时钟频率为6MHZ,试利用T1,采用模式0产生10ms的定时,并使P1.7输出周期为20ms的方波。,解:1、计算初值得110001111000B2、初值装入TH1=63H,TL1=18H3、写模式控制TMOD:M1M0=00,GATE=0,C/T=0,因此TMOD=00H4、编程,ORG0000HLJMPMAIN;上电,转主程序ORG001BH;T1的中断入口地址AJMPT1INT;转中断服务程序MAIN:MOVTH1,#63H;装入定时器初值MOVTL1,#18HMOVTMOD,#00H;设置为模式0SETBEA;CPU开中断SETBET1;允许T1中断SETBTR1;启动T1LOOP:SJMPLOOP;等待中断T1INT:CPLP1.7;P1.7口取反,输出MOVTH1,#63H;重新装入定时器初值MOVTL1,#18HRETI;中断返回,工作模式1该模式对应的是一个16位的定时器/计数器。其结构与操作与模式0几乎相同,定时时间为:t=(216-T0初值)振荡周期12计数工作方式时,计数最大长度为:21665536个外部脉冲。,例:设时钟频率为6MHZ,试利用T0,采用模式1产生10ms的定时,并使P1.7输出周期为20ms的方波。,解:1、计算初值得X=65036=1111111000010110B2、初值装入TH0=0FEH,TL0=16H3、写模式控制TMOD:M1M0=01,GATE=0,C/T=0,因此TMOD=01H4、编程,ORG0000HLJMPMAIN;上电,转主程序ORG000BH;T0的中断入口地址AJMPT0INT;转中断服务程序MAIN:MOVTH0,#0FEH;装入定时器初值MOVTL0,#16HMOVTMOD,#01H;设置为模式1SETBEA;CPU开中断SETBET0;允许T0中断SETBTR0;启动T0LOOP:SJMPLOOP;等待中断T0INT:CPLP1.7;P1.7口取反,输出MOVTH0,#0FEH;重新装入定时器初值MOVTL0,#16HRETI;中断返回,用查询方式对上例进行编程。,ORG0100HMOVTH0,#0FEH;装入定时器初值MOVTL0,#16HMOVTMOD,#01H;设置为模式1SETBTR0;启动T0LOOP:JNBTF0,$;时间未到,等待MOVTH0,#0FEH;重新装入定时器初值MOVTL0,#16HCPLP1.7;P1.7口取反,输出SJMPLOOP;返回END,工作模式2模式2把TL0(或TL1)设置成一个可以自动重装载的8位定时器/计数器。定时时间为:t=(28-T0初值)振荡周期12计数工作方式时,计数最大长度为:28256个外部脉冲。,例:用定时器T1的模式2对外部信号计数,要求每计满100次,将P1.0端取反。,解:1、计算计数器初值XM-N=28-100=156=9CH2、初值装入TH1=9CH,TL1=9CH3、写模式控制TMOD:M1M0=10,GATE=0,C/T=1,因此TMOD=01100000B=60H4、编程,ORG0000HLJMPMAIN;上电,转主程序ORG001BH;T1的中断入口地址AJMPT1INT;转中断服务程序MAIN:MOVTH1,#9CH;装入计数器初值MOVTL1,#9CHMOVTMOD,#60H;设置为计数器,工作为模式1SETBEA;CPU开中断SETBET1;允许T1中断SETBTR1;启动T1LOOP:SJMPLOOP;等待中断T1INT:CPLP1.0;P1.0口取反,输出RETI;中断返回,工作模式3工作模式3对T0和T1大不相同。若将T0设置为模式3,TL0和TH0被分成为两个相互独立的8位计数器。,5.4定时器/计数器应用实例利用定时器0产生25Hz的方波,由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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论