版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、标题:定时/计数器教学目的与要求:1.理解80C51定时/计数器工作原理2.掌握80C51定时/计数器控制寄存器的名称及设置3.掌握定时/计数器工作方式4.掌握根据不同的工作方式设置定时/计数器的方法授课时数:4教学重点:如何根据定时时间设置定时/计数器的初值及TCON,TMOD教学内容及过程:一、80C51定时/计数器定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。此外,定时/计数器还可作为串行通信中波特率发生器。(一). 定时/计数器概述 80C51单片机内部有两个定时/计数器T0和T1,其核心
2、是计数器,基本功能是加1。 对外部事件脉冲(下降沿)计数,是计数器;对片内机周脉冲计数,是定时器。 计数器由二个8位计数器组成。 定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后加1计满后溢出。调整计数器初值,可调整从初值到计满溢出的数值,即调整了定时时间和计数值。 定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚输入。且外部脉冲的最高频率不能超过时钟频率的1/24。8051定时器/计数器逻辑结构图(二) 定时/计数器的控制寄存器 定时/计数器控制寄存器TCONTCONT1中断标志T1运行标志T0中断标志T0运行标志INT1中断标志INT1触发方式INT0中断标志INT
3、0触发方式位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H各位含义如下:(1) TCON.7 TF1:定时器1溢出标志位。当定时器1计满数产生溢出时,由硬件自动置TF1=1。在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。(2) TCON.6 TR1:定时器1运行控制位。由软件置1或清0来启动或关闭定时器1。当GATE=1,且为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。(3) TCON.5 TF0:定时器0溢
4、出标志位。其功能及操作情况同TF1。(4) TCON.4 TR0:定时器0运行控制位。其功能及操作情况同TR1。 定时/计数器工作方式控制寄存器TMODTMOD用于设定定时/计数器的工作方式低4位用于控制T0,高4位用于控制T1。高4位控制T1低4位控制T0门控位计数/定时方式选择工作方式选择门控位计数/定时方式选择工作方式选择GC / TM1M0GC / TM1M0 M1M0 工作方式选择位M1M0工作方式功能0 0方式013位计数器0 1方式116位计数器1 0方式2两个8位计数器,初值自动装入1 1方式3两个8位计数器,仅适用T0 C/T 计数/定时方式选择位 C/T=1,计数工作方式,
5、对外部事件脉冲计数,用作计数器。 C/T=0,定时工作方式,对片内机周脉冲计数,用作定时器。 GATE 门控位 GATE=0,运行只受TCON中运行控制位TR0/TR1的控制。 GATE=1,运行同时受TR0/TR1和外中断输入信号的双重控制。只有当INT0/INT1=1且TR0/TR1=1,T0/T1才能运行。 TMOD字节地址89H,不能位操作,设置TMOD须用字节操作指令。(三). 定时/计数器工作方式 工作方式0 13位计数器,由TL0低5位和TH0高 8位组成,TL0低5位计数满时不向TL0第6位进位,而是向TH0进位,13位计满溢出,TF0置“1”。最大计数值213 = 8192。
6、【例1】用定时器1,方式0实现1 s的延时。 解:因方式0采用13位计数器,其最大定时时间为:81921 ms = 8.192 ms,因此,可选择定时时间为5ms,再循环200次。定时时间选定后,再确定计数值为5000,则定时器1的初值为 X = M -计数值= 8192 - 5000 = 3192 = C78H = 00B因13位计数器中TL1的高3位未用,应填写0,TH1占高8位,所以,X的实际填写值应为X = 11000B = 6318H,即:TH1 = 63H,TL1 = 18H,又因采用方式0定时,故TMOD = 00H。 可编得1 s延时子程序如下: DELAY:MOV R3,#2
7、00 ;置5 ms计数循环初值 MOV TMOD,#00H ;设定时器1为方式0 MOV TH1,#63H ;置定时器初值 MOV TL1,#18H SETBTR1 ;启动T1LP1:JBCTF1,LP2 ;查询计数溢出 SJMPLP1 ;未到5 ms继续计数LP2:MOVTH1,#63H ;重新置定时器初值MOVTL1,#18HDJNZR3,LP1 ;未到1 s继续循环RET ;返回主程序 工作方式116位计数器,最大计数值为216 = 65536。【例2】 (1) 要求:信号灯循环显示,时间间隔为1 s。 (2) 方法:用定时器方式1编制1 s的延时程序,实现信号灯的控制。 系统采用12
8、MHz晶振,采用定时器1,方式1定时50ms,用R3做50 ms计数单元,其源程序可设计如下:ORG 0000H CONT: MOVR2,#07H MOVA,#0FEH NEXT:MOVP1,A ACALLDELAY RLA DJNZR2,NEXT MOV R2,#07H NEXT1:MOVP1,ARRA ACALLDELAY DJNZR2,NEXT1 SJMPCONTDELAY:MOV R3,#14H;置50 ms计数循环初值 MOV TMOD,#10H ;设定时器1为方式1 MOV TH1,#3CH;置定时器初值 MOVTL1,#0B0H SETBTR1 ;启动定时器1LP1:JBCTF1
9、,LP2 ;查询计数溢出 SJMPLP1;未到50 ms继续计数LP2:MOVTH1,#3CH ;重新置定时器初值MOVTL1,#0B0HDJNZR3,LP1;未到1 s继续循环 RET;返回主程序END 工作方式2 8位计数器,仅用TL0计数,最大计数值为28= 256,计满溢出后,一方面使溢出标志TF0 = 1;另一方面,使原来装在TH0中的初值装入TL0。 优点:定时初值可自动恢复;缺点:计数范围小。 适用于需要重复定时,而定时范围不大的应用场合。【例3】试用定时器1,方式2实现例1中1 s的延时。 解:因方式2是8位计数器,其最大定时时间为:2561 ms = 256 ms,为实现1
10、s延时,可选择定时时间为250 ms,再循环4000次。定时时间选定后,可确定计数值为250,则定时器1的初值为:X = M -计数值=256 - 250 = 6 = 6H。采用定时器1,方式2工作,因此,TMOD =20H。 可编得1 s延时子程序如下:DELAY:MOV R5,#28H;置25 ms计数循环初值MOV R6,#64H ;置250 ms计数循环初值 MOV TMOD,#20H ;置定时器1为方式2 MOV TH1,#06H ;置定时器初值 MOV TL1,#06H SETBTR1 ;启动定时器LP1:JBCTF1,LP2 ;查询计数溢出 SJMPLP1 ;无溢出则继续计数 L
11、P2:DJNZR6,LP1 ;未到25 ms继续循环 MOVR6,#64H DJNZ R5,LP1 ;未到1 s继续循环 RET 工作方式3 方式3仅适用于T0,T1无方式3。 T0方式3在方式3情况下,T0被拆成二个独立的8位计数器TH0、TL0。 TL0使用T0原有的控制寄存器资源:TF0,TR0,GATE,C/T,INT0,组成一个8位的定时/计数器; TH0借用T1的中断溢出标志TF1,运行控制开关TR1,只能对片内机周脉冲计数,组成另一个8位定时器(不能用作计数器)。 T0方式3情况下的T1T1由于其TF1、TR1被T0的TH0占用,计数器溢出时,只能将输出信号送至串行口,即用作串行
12、口波特率发生器。【例4】用定时器0。方式3实现1s的延时。解:根据题意,定时器0中的TH0只能为定时器,定时时间可设为250 ms;TL0设置为计数器,计数值可设为200。TH0计满溢出后,用软件复位的方法使T0(P3.4)引脚产生负跳变,TH0每溢出一次,T0引脚便产生一个负跳变,TL0便计数一次。TL0计满溢出时,延时时间应为50ms,循环20次便可得到1 s的延时。 由上述分析可知,TH0计数初值为 X =(256 - 250)= 6 = 06H TL0 计数初值为 X =(256 - 200)= 56 = 38H TMOD = B = 07H 可编得1 s延时子程序如下:DELAY:M
13、OV R3,#14H ;置100 ms计数循环初值 MOV TMOD,#07H ;置定时器0为方式3计数 MOVTH0,#06H ;置TH0初值 MOVTL0,#38H ;置TL0初值 SETBTR0 ;启动TL0 SETBTR1 ;启动TH0 LP1: JBC TF1,LP2 ;查询TH0计数溢出 SJMP LP1 ;未到500 ms继续计数LP2: MOV TH0,#06H ;重置TH0初值 CLR P3.4 ;T0引脚产生负跳变 NOP ;负跳变持续 NOP SETBP3.4 ;T0引脚恢复高电平 JBC TF0,LP3 ;查询TH0计数溢出 SJMP LP1 ;100 ms未到继续计数
14、LP3: MOV TL0,#38H ;重置TL0初值 DJNZ R3,LP1 ;未到1 s继续循环 RET (四)、定时/计数器的应用 定时器/计数器初始化的主要内容(1) 选择工作方式:通过对方式寄存器TMOD进行设置(2) 给定时器赋初值(3) 根据需要设置中断控制字(4) 启动定时器1. 定时器/计数器初值设定方法(1)根据定时长短,选择工作方式(2)计算定时/计数初值80C51定时/计数初值计算公式:其中: N与工作方式有关: 方式0时,N=13;方式1时,N=16;方式2、3时,N=8。 机周时间与主振频率有关:机周时间=12/fosc,fosc=12MHZ时,1机周=1mS; fo
15、sc=6MHZ 时,1机周=2mS。 【例】 已知晶振6MHz,要求定时0.5mS,试分别求出T0工作于方式0、方式1、方式2、方式3时的定时初值。解:工作方式0: 213500mS/2mS=8192-250=7942=1F06H,1F06H化成二进制:1F06H=0001 1111 0000 0110B=000 00110 B其中:低5位00110前添加3位000送入TL0,TL0=000 00110B=06H;高8位B送入TH0TH0=B=F8H。 工作方式1: T0初值 =216-500ms/2ms=65536250=65286=FF06H TH0=FFH;TL0=06H。 工作方式2:
16、 T0初值 =28-500ms/2ms=256-250=6 TH0=06H;TL0=06H。 工作方式3: T0方式3时,被拆成两个8位定时器,定时初值可分别计算,计算方法同方式2。两个定时初值一个装入TL0,另一个装入TH0。因此:TH0=06H;TL0=06H从上例中看到,方式0时计算定时初值比较麻烦,根据公式计算出数值后,还要变换一下,容易出错,不如直接用方式1,且方式0计数范围比方式1小,方式0完全可以用方式1代替,方式0与方式1相比,无任何优点。3.定时器/计数器应用步骤 合理选择定时器/计数器工作方式 计算定时/计数器定时初值(按上述公式计算) 编制应用程序 定时/计数器的初始化
17、包括定义TMOD、写入定时初值、设置中断系统、启动定时/计数器运行等。 正确编制定时/计数器中断服务程序 注意是否需要重装定时初值,若需要连续反复使用原定时时间,且未工作在方式2,则应在中断服务程序中重装定时初值。【例】试用T1方式2编制程序,在P1.0引脚输出周期为400mS的脉冲方波,已知fosc=12MHZ。解: 计算定时初值 T1初值=28-200ms/1ms=256200=56=38H TH1=38H;TL1=38H 设置TMOD: 0 0 10 0000 B=20H T0控制位,与T1无关 T1方式2 T1定时器 T1启动与 无关 编制程序如下: ORG0000H ;复位地址LJM
18、PMAIN ;转主程序ORG001BH ;T1中断入口地址LJMPIT1 ;转T1中断服务程序 ORG0100H ;主程序首地址MAIN: MOVTMOD,#20H ;置T1定时器方式2MOVTL1,#38H ;置定时初值MOVTH1,#38H ;置定时初值备份MOVIP,#B;置T1高优先级MOVIE,#0FFH ;全部开中SETBTR1 ;T1运行SJMP$ ;等待T1中断 ORG 0200H ;T1中断服务程序首地址IT1: CPL P1.0 ;输出波形取反首地址RETI ;中断返回【课堂练习题】 参照以上例题工作方式2,按下列要求分别修改程序: 脉冲方波从P3.0输出; fosc=6M
19、Hz; 脉冲方波脉宽为100ms; 用定时/计数器T0;【例】已知晶振12MHZ,参阅图5-15,要求利用定时器,T0使图中发光二极管LED进行秒闪烁。 解:发光二极管进行秒闪烁。即一秒钟一亮一暗,亮500ms,暗500 ms。晶振12MHz,每机周1ms,T0方式1最大定时只能65ms余。 取T0定时50ms,计数10次,即可实现500ms定时。 计算定时初值 T0初值 =216-50000ms/1ms =6553650000=15536=3CB0H TH0=3CH;TL0=B0H。 设置TMOD: 0000 0 0 01 B = 01H T0方式1 T0 与 无关 T1控制位 编制程序如下
20、: ORG 0000H ;复位地址LJMP MAIN ;转主程序ORG 000BH ;T0中断入口地址LJMP IT0 ;转T0中断服务程序ORG 0100H ;主程序首地址MAIN:MOV TMOD,#01H;置T0定时器方式1MOV TH0,#3CH ;置T0初值50mSMOV TL0,#0B0H ;MOV IE,#B;T0开中 MOV R7,#0AH ;置500mS计数器初值 SETB TR0 ;T0运行SJMP $ ;等待中断ORG 0200H;T0中断服务程序首地址MOV TH0,#3CH;重置T0初值50msMOV TL0,#0B0H;DJNZ R7,GORET;判断500ms到否?CPL P1.7;500ms到,输出取反MOV R7,#0AH;恢复500ms计数器初值GORET:RETI;中断返回【例】用单片机定时器/计数器设计一个秒表,由P1口连接的LED采用BCD码显示,发光二极管亮表示0,暗表示1。计满60 s后从头开始,依次循环。解:定时器0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高级IT安全管理岗位工作手册与面试要点
- 医疗设备工程师面试常见问题及解答技巧
- 联想电脑技术支持岗位面试技巧
- 杂志社新闻报道的采访与编辑安排
- 媒体编辑的招聘面试常见问题与解析
- 2026年中考语文作文押题预测6篇(含题目)
- 交通运输项目面试技巧及常见问题
- 电信行业服务质量提升实施方案
- 安全生产旬检制度讲解
- 消防安全防护用品清单
- 化工厂员工三级安全培训手册
- 深静脉血栓护理新进展
- 股东清算协议书范本
- 中国认知功能社区筛查及管理指南2026
- 2025年消防设施操作员中级维保方向考试试卷及答案
- 呼吸道疾病护理策略与实践
- 中医临床思维综合训练系统需求说明
- 跨国企业财务共享服务中心存在的问题及对策-以中海油为例
- 广电网络面试准备及问题预测集
- 2025及未来5年中国棉连衣裙市场调查、数据监测研究报告
- 《铁路运输市场营销》课件 项目一 认识铁路运输市场营销
评论
0/150
提交评论