版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章89C51的定时/计数器,计算机采取的是软、硬结合的方法,配置了专门的定时和计数逻辑电路,可以通过在线调整它的参数,称为可编程定时/计数器。 89C51单片机内部配置了两个16位的可编程定时/计数器。,5.1 89C51的定时与计数,一、几个重要的概念 1.计数的概念 2.计数器的容量 89C51单片机中有两个计数器,分别称之为T0和T1,这两个计数器分别是由两个8位的RAM单元组成的,即每个计数器都是16位的计数器,最大的计数量是65536。 3.定时 晶振的频率非常准,用它作为计数脉冲的时间间隔也很准 。计数值就代表了时间的流逝 ,计一定的数,也就是确定一定的时间。这就是定时与计数的
2、密切关系。,4.溢出,计数器溢出后将使得TF0变为“1”,5.任意定时及计数的方法,加1计数,计到65536就会产生溢出。采用预置数的方法,5.1 89C51的定时与计数,二、 89C51 定时/计数器的方式控制字,在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。 TMOD的地址是89H,1)功能选择位C/T: C/T =0,定时功能,计数内部机器周期脉冲; C/T =1,计数功能,计数引脚T0(T1)输入的负脉冲。,5.1 89C51的定时与计数,2)方式选择位M1、M0: 4种工作方式:,3)门控方式选择位GATE 计数器启动方式的选择,当GATE=0时,软件控制
3、位TR0或TR1置1即可启动定时器; 当GATE=1时,软件控制位TR0或TR1须置1,同时还须(P3.2)或(P3.3)为高电平方可启动定时器,即允许外中断、启动定时器。,确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; 1101 0010 B,5.1 89C51的定时与计数,定时/计数器的4种工作方式,1.方式0 当软件使方式寄存器TMOD中M1M0=00时,计数器长度按13位工作。有TL的低5位(TL的高3位未用)和TH的8位构成13位计数器(对T0、T1都适用)。,5.1 89C51的定时与计数
4、,2.方式1 当软件使方式寄存器TMOD中M1M0=01时,计数器长度按16位工作,即TL、TH全部使用,构成16位计数器,其控制与操作方式与方式0完全相同。,启动计数方式:,非门控方式:当GATE0, 控制权由 TRx 决定 TRx1 计数开始 TRx 0 计数停止,门控方式: 当GATE1、TRx1 控制权由 INTx 决定 INTx1 计数开始 INTx 0 计数停止,5.1 89C51的定时与计数,自动恢复初值8位定时/计数器。TLx为8位加1计数器, THx为8位初值暂存器。,用于需要重复定时和计数的场合。 最大计数值:256 (28),3. 方式2,4.方式3,T0分成2个8位定时
5、器:TL0定时/计数器和TH0定时器 TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位:TR1。 T1不能使用方式3工作,5.1 89C51的定时与计数,5.1 89C51的定时与计数,4.方式3,方式3时,定时器0被分解成两个独立的8位计数器TL0和TH0。 其中,TL0占用原定时器0的控制位、引脚和中断源,即GATE、TR0、TF0和T0(P3.4)引脚、INT0(P3.2)引脚。除计数位数不同于方式0、方式1外,其功能、操作与方式0、方式1完全相同,可定时亦可计数。定时时间为:,5.1 89C51的定时与计数,4.方式3,TH0占用原定时器1的控制位TF1和TR1,同
6、时还占用了定时器1的中断源,其启动和关闭仅受TR1置1或清0控制。 TH0只能对机器周期进行计数,因此,TH0只能用作简单的内部定时,不能用作对外部脉冲进行计数,是定时器0附加的一个8位定时器。 定时时间计算公式为:,5.1 89C51的定时与计数,4.方式3,方式3时,定时器1仍可设置为方式0、方式1或方式2。但由于TR1、TF1及T1的中断源已被定时器0占用,此时,定时器1仅由控制位切换其定时或计数功能,当计数器计满溢出时,只能将输出送往串行口。在这种情况下,定时器1一般用作串行口波特率发生器或不需要中断的场合。 因定时器1的TR1被占用,因此其启动和关闭较为特殊,当设置好工作方式时,定时
7、器1即自动开始运行。若要停止操作,只需送入一个设置定时器1为方式3的方式字即可。,5.1 89C51的定时与计数,控制寄存器TCON,定时/计数器的控制寄存器也是一个8位特殊功能寄存器,字节地址为88H,可以位寻址,位地址为88H8FH,用来存放控制字,其格式如下:,TCON.7 TF1:定时器1溢出标志位 当定时器1计满数产生溢出时,由硬件自动置TF1=1。在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。 在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。,TCON.6 TR1:定时器1运行控制位 由软件置1或清0来启动或关闭定时器1。当GATE=1,
8、且为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。,5.1 89C51的定时与计数,控制寄存器TCON,TCON.5 TF0:定时器0溢出标志位。其功能及操作情况同TF1。 TCON.4 TR0: 定时器0运行控制位。其功能及操作情况同TR1。,当系统复位时,TCON的所有位均清0。,5.1 89C51的定时与计数,定时/计数器的初始化,由于定时/计数器是可编程的,因此在定时或计数之前要用程序初始化,初始化步骤: (1) 确定工作方式对TMOD赋值。 (2) 预置定时或计数的初值直接将初值写入TH0、TL0或TH1、TL1。 定时/计数器的初值因工作方式的不同
9、而不同。设最大计数值为M,则各种工作方式下的M值如下: 方式0: 方式1: 方式2: 方式3:,5.1 89C51的定时与计数,(3) 根据需要开启定时/计数器中断直接对IE寄存器赋值。 (4) 启动定时/计数器工作将TR0或TR1置“1”。,定时/计数器的初始化,在初始化过程中,要置入定时或计数的初值,要做一点计算。由于计数器是加“1”计数器,并在溢出时产生中断请求,因此不能直接将需要计数的个数直接置入计数器,而应送计数个数的补数。,5.1 89C51的定时与计数,5.1 89C51的定时与计数,定时/计数器的初始化,置入计数初值X可这样计算: 计数方式时:X=M-计数值(X即为计数值的补)
10、 定时方式时:(M-X)*T=定时值,故X=M-定时值/T 其中T为计数周期,是单片机时钟的12分频,即单片机机器周期。当晶振为6MHz时,t=2s;当晶振12MHz时,T=1s。,5.1 89C51的定时与计数,【例1】若单片机晶振为12MHz,要求产生500s的定时,试计算X的初值。 解:由于T=1s,产生500s定时,则需要“+1”500次,定时器方能产生溢出。 采用方式0: X=213-(500*10-6s/10-6s)=7692=1E0CH =1111000001100B 但方式0的TL0高3位是不用的,都设为“0”,这1E0CH应写成: F00CH=1111000000001100
11、B 最后将F0H装入TH0,0CH装入TL0。 采用方式1: X=216-(500*10-6s/10-6s)=65036=FE0CH 即将FEH装入TH0,0CH装入TL0。,定时/计数器的应用实例,5.1 89C51的定时与计数,【例2】用定时器1,方式0实现1s的延时。 解:因方式0采用13位计数器,其最大定时时间为:8192*1s=8192s,因此,定时时间可选择为8ms,再循环125次;或者定时时间选择为5ms,再循环200次。 本例选择后者。定时时间选定后,再确定计数值为5000(假定单片机晶振为12MHz ,5ms/1s=5000),则定时器1的初值为: X=M-计数值=8192-
12、5000=3192=C78H=0110001111000B 因13位计数器中TL1的高3位未用,应填写0,TH1占高8位,所以,X的实际填写值应为 X=0110001100011000B=6318H 即TH1=63H,TL1=18H,又因采用方式0定时,故TMOD=00H。,定时/计数器的应用实例,5.1 89C51的定时与计数,【例2】用定时器1,方式0实现1s的延时。 延时子程序如下: DELAY:MOV R0,#200;置5ms计数循环初值 MOV TMOD,#00H;设定时器1为方式0 MOV TH1,#63H;置定时器初值 MOV TL1,#18H SETB TR1 ;启动T1 LP
13、1: JBC TF1,LP2 ;查询计数溢出 SJMP LP1;未到5ms继续计数 LP2: MOV TH1,#63H ;重新置定时器初值 MOV TL1,#18H DJNZ R0,LP1 ;未到1s继续循环 RET ;返回主程序,定时/计数器的应用实例,【例3】用定时器0,方式1实现1s的延时。 延时子程序如下: DELAY: MOV R0,#20;置50ms计数循环初值 MOV TMOD,#01H;设定时器0为方式1 MOV TH0,#3CH;置定时器初值 MOV TL0,#0B0H SETB TR0;启动T0 LP1: JBC TF0,LP2;查询计数溢出 SJMP LP1;未到50ms
14、继续计数 LP2: MOV TH0,#3CH;重新置定时器初值 MOV TL0,#0B0H DJNZ R0,LP1;未到1s继续循环 RET;返回主程序,5.1 89C51的定时与计数,定时/计数器的应用实例,5.1 89C51的定时与计数,定时/计数器的应用实例,【例4】用定时器1,方式2实现1s的延时。 解:因方式2是8位计数器,其最大定时时间为:256*1s=256s,为实现1s的延时,可选择定时时间为250s,再循环4000次。 定时时间选定后,可确定计数值为250,则定时器1的初值为:X=M-计数值=256-250=6=06H。采用定时器1,方式2工作,因此,TMOD=20H。,5.1 89C51的定时与计数,定时/计数器的应用实例,【例4】用定时器1,方式2实现1s的延时 延时子程序: DELAY: MOV R7,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 48252-2026海洋平台远程运维系统通用要求
- 乒乓球拍制作工风险评估水平考核试卷含答案
- 物探工复试考核试卷含答案
- 数控磨工班组协作评优考核试卷含答案
- 管棒型材精整工岗前强化考核试卷含答案
- 重冶浸出工岗前风险评估考核试卷含答案
- 生活垃圾堆肥操作工安全宣教水平考核试卷含答案
- 船舶机械装配工成果转化评优考核试卷含答案
- 船体装配工标准化知识考核试卷含答案
- 二氧化碳回收处理操作工岗前设备性能考核试卷含答案
- 【试卷】湖南省长沙市部分校2027届高三上学期10月阶段检测数学试卷
- 在线网课学习课堂《人工智能(北理)》单元测试考核答案
- 2026年中国华电集团有限公司校园招聘笔试备考试题及答案解析
- 健康体检异常结果测试题及答案解析
- 碳酸钙深加工项目预可行性研究评测报告(新)
- 2026中国农机配件市场发展现状及投资策略分析报告
- 自考13174概率论与数理统计(工)高频考点重点
- 仲利国际租赁在线测评题库及答案
- 光缆制造过程质量控制标准考核试卷及答案
- CSCO软组织肉瘤诊疗指南2026
- 第7课 神奇的世界 第2课时 课件(内嵌视频)2026-2027学年道德与法治四年级上册统编版
评论
0/150
提交评论