




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章 C51定时器/计数器程序设计,C51语言是运行于单片机上的程序语言,因此,学习C51语言必须结合单片机来进行。51系列单片机集成了多种硬件资源,这些资源均可以使用C51语言来进行控制。本章开始便介绍如何将C51程序应用于单片机上。 51系列单片机的集成了两个可编程的定时器/计数器,即定时/计数器0和1,简称T0和T1,有4种工作方式可供选择。单片机内部通过专用寄存器TMOD、TCON来设置定时/计数器工作的参数,例如方式选择、定时计数选择、运行控制、溢出标志、触发方式等控制字。本章介绍如何使用C51语言来进行定时器/计数器程序设计。,9.1 定时器/计数器简介,51系列单片机具有两个通用定时器/计数器T0和T1。T0和T1都具有定时和计数两种功能,可以通过特殊功能寄存器来选择,下面分别介绍。 计数。计数功能就是对计数脉冲进行计数。其中,计数脉冲来自相应的外部输入引脚P3.4(T0)或P3.5(T1)。当该引脚的输入信号发生由高电平至低电平的负跳变时,计数器(TH0、TL0或TH1、TL0)的值增加1。 定时。定时功能是对时间进行统计。定时器/计数器的定时功能其实也是通过计数实现的,只不过,此时的计数脉冲来自于单片机的内部时钟脉冲。 除此之外,定时器/计数器T0和T1共有4种工作模式,同样可以通过特殊功能寄存器来选择。,9.1.1 定时器/计数器的结构,定时器/计数器结构如图9.1所示,其核心是一个16位的加1计数器。其中,16位的定时器/计数器T0由2个8位计数器TH0和TL0构成,16位的定时器/计数器T1由2个8位计数器TH1和TL1构成。另外,寄存器TMOD主要用于指定各定时器/计数器的功能和工作模式;寄存器TCON用于控制定时器/计数器的启动和停止计数,同时也设置定时器/计数器的状态。,定时器/计数器的结构示意图,9.1.2 方式控制寄存器TMOD,TMOD寄存器用于定义T0和T1的工作方式和4种工作模式,其单元地址为89H。定时器/计数器0和1的方式控制寄存器TMOD,如图所示。其中,低4位用于控制T0,高4位用于控制T1,两部分操作和含义完全相同。下面分别介绍各个控制位的含义:,方式控制寄存器TMOD,9.1.3 中断控制寄存器TCON,寄存器TCON的功能是在定时器溢出时设定标志位,并控制定时器的运行、停止和中断请求。寄存器TCON的单元地址为88H。中断控制寄存器TCON的组成,如图所示。其包含3个部分,TF1和TR1位用于控制T1,TF0和TR0位用于控制T0,其它的为中断控制。下面分别介绍各种控制位的含义,如下所示。,控制寄存器TCON,9.1.4 定时器/计数器的初值,单片机内部的定时器/计数器是加法计数,其在计数溢出时才申请中断。为了实现自定义的计数值或定时值,需要从计数最大值计算得出需要设置的初值。在不同的工作模式中,计数最大值不同,可以为213、216和28。假设计数最大值为MAX,则初值X计算方法如下: 在计数方式下,X=MAX-计数值。 在定时方式下,X=MAX-定时值/T。 式中T为单片机的计数周期,也就是单片机的机器周期。 例如,当单片机的机器周期T=0.5s时,如果定时器/计数器工作于模式0,MAX=213x0.5s=4.096ms;如果定时器/计数器工作于模式1,则最大定时值为MAX=216x0.5s=32.768ms。,9.1.5 定时器/计数器的初始化,单片机的定时器/计数器是可编程控制的,在使用之前需要先通过如下步骤进行初始化: (1)指定定时器/计数器的工作模式,通过赋值TMOD寄存器来实现。 (2)装入定时器/计数器的初值,通过赋值TH0、TL0或TH1、TL1来实现。 (3)启动定时器/计数器中断,通过赋值IE来实现。如果程序中不使用中断,则可以省略此步骤。 (4)启动定时器/计数器,通过置位TR0、TR1来实现。置位后,定时器/计数器将按规定的工作模式和初值进行计数或开始定时。,9.2 定时器/计数器工作模式0的C51程序设计,51系列单片机的定时器/计数器工作模式0是13位计数器,其由一个高8位(07)计数器(TH0或TH1)和一个具有32位分频的低8位计数器中的(TL0或TL1)的低5位(04)组成。,9.2.1 定时器/计数器工作模式0,在工作模式0中,定时器/计数器T1和T0的组成结构与功能完全相同。当置寄存器TMOD的M1=0、M0=0时,T0和T1就工作在模式0状态。这里以T0为例进行介绍,T1的使用类似。 在工作模式0下,当TL0的低5位计数溢出时,向TH0进位,当TH0计数器溢出时,计数器清零,并向溢出控制位TF0进位置1,同时向8051 CPU发出中断请求。无论工作于计数方式还是定时方式,其运行原理都是相同的。,9.2.2 定时器/计数器模式0的程序设计,定时器/计数器模式0的程序设计可以按照前面介绍的初始化步骤来实现。假定8051单片机(或者其它兼容型号单片机)外接6MHz晶振,需要在P1.2端口输出频率为500Hz的方波,即周期为2ms。此时可以采用定时器T0工作于模式0,使定时器产生1ms的定时,通过定时中断来产生P1.2端口的方波信号输出。 由于采用了6MHz的晶振,因此单片机的机器周期为126MHz=210-6s=2s。根据前面介绍的定时初值的计数方法,定时时间=1ms=110-3=(213-X)210-6,因此定时器初值X=7692=1E0CH。则根据工作模式0的特点,其为13位定时器,定时器T0的初值应该设置为TH0=0F0H,TL0=0CH。,9.3 定时器/计数器工作模式1的C51程序设计,51系列单片机的定时器/计数器工作模式1是16位计数器,其由TH0(或TH1)的高8位(07)和TL0(或TL1)的低8位(07)组成。工作模式1与模式0的区别在于计数的位数不同。,9.3.1 定时器/计数器工作模式1,在工作模式1中,定时器/计数器T1和T0的组成结构与功能完全相同。当置寄存器TMOD的M1=0、M0=1时,T0和T1就工作在模式1状态。这里以T0为例进行介绍,T1的使用类似。 在工作模式1下,当TL0的计数溢出时,向TH0进位,当TH0计数器溢出时,计数器清零,并向溢出控制位TF0进位置1,同时向8051 CPU发出中断请求。无论工作于计数方式还是定时方式,其运行原理都是相同的。,9.3.2 定时器/计数器模式1的程序设计,定时器/计数器模式1的工作原理和模式0相同,可以按照前面介绍的初始化步骤来实现。假定8051单片机(或者其它兼容型号单片机)外接12MHz晶振,需要在P1.2端口输出频率为50Hz的方波,即周期为20ms。此时可以采用定时器T1工作于模式1,使定时器产生10ms的定时,通过定时中断来产生P1.2端口的方波信号输出。 由于采用了12MHz的晶振,因此单片机的机器周期为1212MHz=110-6s=1s。根据前面介绍的定时初值的计数方法,定时时间=10ms=1010-3=(216-X)110-6,因此定时器初值X=55536=D8F0H。则根据工作模式1的特点,其为16位定时器,定时器T1的初值应该设置为TH0=0D8H,TL0=0F0H。,9.4 定时器/计数器工作模式2的C51程序设计,51系列单片机的定时器/计数器工作模式2是8位自动重新装入的计数器,16位计数器分成独立的2个部分,其中TH0(或TH1)作为计数初值寄存器,用于存放和保持初值,初值在程序中设置。,9.4.1 定时器/计数器工作模式2,在工作模式2中,定时器/计数器T1和T0的组成结构与功能完全相同。当置寄存器TMOD的M1=1、M0=0时,T0和T1就工作在模式2状态。这里以T0为例进行介绍,T1的使用类似。 模式2具有使8位计数器TL0(或TL1)自动重装初值的功能,在程序初始化时,为TH0、TL0赋同样的初值,此后TL0每次溢出都由TH0重新装入初值。在这个过程中,不会丢失计数信号,且重新再装入也不会影响TH0中存放的初值。 装入初值并启动定时/计数器后,TL0按加法计数器工作,当TL0溢出时,使溢出标志位TF0进位置1,并选通三态门,将TH0存放的初值重新装入到TL0中,使TL0从初值开始继续下一轮的计数,如此循环下去。作为额外的用途,溢出信号还将送到串行通信系统,设置并产生串行通信波特率。,9.4.2 定时器/计数器模式2的程序设计,定时器/计数器模式2是自动重装载模式,在这种模式下,计数器初值只需设置1次,在定时器溢出后不用软件重新设置,硬件会自动复位。工作模式2常作为串行口波特率发生器使用。这里假设单片机外接11.0592MHz晶振,使用工作于模式2的定时器/计数器T1作为串行通信的波特率发生器。,9.5 定时器/计数器工作模式3的C51程序设计,51系列单片机的定时器/计数器工作模式3是将16位计数器分成2个相互独立的8位计数器TL0和TH0。,9.5.1 定时器/计数器工作模式3,在工作模式0中,当置定时器/计数器T0寄存器TMOD的M1=1、M0=1时,T0就工作在模式0状态。定时器/计数器的工作模式3只适用于T0。对于T1,设置为模式3时,相当于使TR1=0,使其停止计数,没有什么实际意义。 在工作模式3下,TL0使用了T0的状态控制位C/、GATE、TR0、和TF0。其操作情况与模式0和模式1相同,即可以按计数方式工作,也可以按定时方式工作。在定时器工作方式下,其定时时间=(28-T0初值)时钟周期12。,9.5.2 定时器/计数器模式3的程序设计,定时器/计数器模式3中,TH0和TL0分别作为两个独立的8位定时器使用,其程序设计可以按照前面介绍的初始化步骤来实现。假定8051单片机(或者其它兼容型号单片机)外接6MHz晶振,需要在P1.0端口和P1.1端口输出如图9.4所示的波形。从图中可以看出,P1.0引脚的方波周期为400s,P1.1引脚的方波周期为800s。程序中可以采用TL0和TH0产生200s和400s的定时中断,并在中断服务例程中对P1.0引脚和P1.1引脚取反而得到。 由于采用了6MHz的晶振,因此单片机的机器周期为126MHz=210-6s=2s。根据前面介绍的定时初值的计数方法,定时时间=200s =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婚礼策划与婚礼现场婚礼车队租赁合同
- 第12课 新时期的理论成果说课稿-2025-2026学年高中历史北师大版2010必修3-北师大版2010
- 安全举报培训心得课件
- 民政局离婚案件办理及后续法律跟踪服务合同
- 加拿大团聚担保合同范本
- 住房公积金按揭贷款支持新能源产业发展协议
- 名校教授特聘合同书-学术研究与教学服务
- 农业抵押贷款合同范本协议书
- 个性化离婚协议范本兼顾双方利益与子女成长
- 2025建筑材料供应承包合同
- DZ/T 0254-2014页岩气资源/储量计算与评价技术规范
- DB32/T 3691-2019 成品住房装修技术标准
- 2025年云南文山州富宁县建设投资集团有限公司招聘笔试参考题库含答案解析
- 学校膳食监督家长委员会章程
- 工人工资专户开户及监管协议模板
- 学校承接社会考试协议书
- 单位物品借用协议书
- 大学生国家安全教育第1章总论课件可编辑全文
- 智能财税综合实训 上篇 课件 社会共享企业管家
- 房屋产权确认协议书范本
- 眼科进修汇报
评论
0/150
提交评论