版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章89C51的定时器/计数器两个可编程的定时器/计数器T1、T0。
2种工作模式:。(1)计数器工作模式(2)定时器工作模式
4种工作方式(方式0-方式3第6章89C51的定时器/计数器两个可编程的定时器/计数15.1定时器/计数器的结构与工作原理加一计数器5.1定时器/计数器的结构与工作原理加一计数器25.2定时计数器的控制与工作方式(寄存器TMOD、TCON)
M1M200方式0(13位)01方式1(16位)10方式2(8位,自动重装)11方式3(T0,2个8位)计数器模式和定时器模式选择位0:定时器模式。1:计数器模式。
门控位
0:仅以TRX(X=0,1)来启动定时器/计数器运行。1:用引脚INT0*(或INT1*)来启动定时器/计数器运行。1、控制5.2定时计数器的控制与工作方式(寄存器TMOD、TCON3
TF1、TF0计数溢出标志位(2)TR1、TR0定时计数运行控制位1:启动0:停止IT0/IT1选择外中断请求IT0=0
为电平触发方式。IT0=1
为跳沿触发方式。可由软件置“1”或清“0”。
IE0=0、IE1=0
无外部中断请求。IE0=1、IE1=1,外部中断0、1有中断请求。当CPU响应该中断,转向中断服务程序时,由硬件清“0”IE0。TF1、TF0(2)TR1、TR0IT0/IT1IE0=4
2、4种工作方式
方式0
M1、M0为00,定时器/计数器的框图:
2、4种工作方式方式05方式1
M1、M0=01,16位的计数器
方式1M1、M0=01,16位的计数器6方式2
M1、M0=10\计数满后自动装入计数初值
,等效框图如下:
方式2
M1、M0=10\计数满后自动装入计数初值,7方式2工作过程图定时器/计数器的方式2工作过程如图6-7(X=0,1)。省去用户软件中重装初值的程序,精确的定时。图6-7方式2工作过程图定时器/计数器的方式2工作过程如图6-7(X8
4方式3
方式3中T0分成两个的8位定时器/计数器:TL0、TH0与T1构成3个定时器/计数器。方式3只适用于T0,不适用于T1,若T1工作于方式3时相当于TR1=0,停止计数。方式3时T1可工作于方式0、方式1和方式2,作波特率发生器(或不需中断的场合)4方式3方式3中T0分成两个的8位定时器/计数器:91)工作方式3下的T0
T0分为两个独立的8位计数器:TL0、TH0
4方式31)工作方式3下的T0
T0分为两个独立的8位计数器:T10T0为方式3时
T1可定为方式0、方式1和方式2
用作串行口的波特率发生器(Baudrategenerator
),即作为串口数据传送时的时钟信号。或不需要中断的场合(因为TF0、TF1 均被T0占用)。(1)T1工作在方式0
2)工作在方式3下的T1
T0为方式3时2)工作在方式3下的T111(2)T1工作在方式1
(3)T1工作在方式2
(2)T1工作在方式112INT0\INT1\T0\T1和中断系统的连接P3.4T0P3.5T1TR0TR1P3.2INT0P3.3INT15.3定时器/计数器的编程和应用1)、编程步骤:(1)设置工作方式(2)装入计数初值(3)开中断(4)启动计数1、初始化INT0\INT1\T0\T1和中断系统的连接P3.4T13(1)计数时的初值计算:X=M(模值)-要计数的值(2)定时时的计数初值计算:X=M(模值)-定时时间(要计数的时间)/定时脉冲周期(每计一次数的时间)*注:定时脉冲周期=12/fosc
定时、计数的初值计算:(1)计数时的初值计算:定时、计数的初值计算:14举例说明计数初值的计算
假设系统时钟频率采用6MHz,要求产生10ms定时,试分别计算定时器在方式0、1、2时的初值。X=213–10ms÷(12÷6Mhz)=213-5000=3192DX=28–10ms÷(12÷6Mhz)=28-5000=-4744
说明不能采用方式2产生10ms定时。
X=216
–10ms÷(12÷6Mhz)=216-5000=60536D=0EC78
(1)方式0的初值X(2)方式1的初值X(3)方式2的初值X
举例说明计数初值的计算
假设系统时钟频率采用6MHz,要求15
2)、最大定时时间的计算假设系统时钟频率采用6MHz,试分别计算定时器在方式0、1、2时的最大定时时间。[分析]X=M(模值)-定时时间/定时脉冲周期,式中X=0.即:定时时间max=M×定时脉冲周期,故:(1)方式0的最大定时时间:T=213×12÷6Mhz=16.384ms(2)方式1的最大定时时间:T=216×12÷6Mhz=131.027ms(3)方式2的最大定时时间:T=28×12÷6Mhz=512us
2)、最大定时时间的计算假设系统时钟频率采用6MHz,试16
4)、初始化编程举例例5-1T1、方式1、定时50ms,软件启动、允许中断(设fosc=12MHZ),编写初始化程序段P3.4T0P3.5T1TR0TR1P3.2INT0P3.3INT11、编程步骤:(1)设置工作方式(2)装入计数初值(3)开中断(位编程或字节编程)(4)启动计数4)、初始化编程举例例5-1T1、方式1、定时50ms,17例5-2
计数器T0对T0引脚(P3.4)出现的脉冲计数,每计数100个脉冲向CPU中断一次、设用软件启动,编写初始化程序段。P3.4T0P3.5T1TR0TR1P3.2INT0P3.3INT11、编程步骤:(1)设置工作方式(2)装入计数初值(3)开中断(位编程或字节编程)(4)启动计数计数时的初值计算:X=M(模值)-要计数的数值例5-2计数器T0对T0引脚(P3.4)出现的脉冲计数,每18分配存储空间主程序中断服务程序X=216–10ms÷(12÷12Mhz)=216-10000=55536=0D8F0H所以:T0的初值为:
TH0=D8HTL0=F0H例5-3(定时):
T0定时,在P1.7输出50HZ(20ms)方波,设晶振频率12MHZ(分别
①采用中断、②查询方式编程)主程序:①设置工作方式②装入计数初值③开中断
④启动计数等待中断请求
2、定时/计数应用举例(定时/计数举例)(1)计算初值X(2)程序设计(观察下页图)
ORG0000H
①AJMPMAIN
ORG000BH
②
AJMPIT0P
③
ORG0100HMAIN:MOVSP,#60H
④
MOVTMOD,#01H MOVTL0,#0F0H
MOVTH0,#0D8H
SETBTR0
⑤
SETBET0
SETBEAHERE:AJMPHERE
⑥
ITOP:MOVTL0,#0F0H
MOVTH0,#0D8HCPLP1.7
RETI
END分配存储空间X=216–10ms÷(12÷12Mhz19P3.4T0P3.5T1TR0TR1P3.2INT0P3.3INT1TL0TH0TF0设置T0工作方式装入计数初值开中断启动计数000BPCP3.4T0P3.5T1TR0TR1P3.2IN20跳转到主程序0000
0001
跳转到INT00003跳转到T1
…001B跳转到T0000B
…跳转到INT10013
…
…串口中断0023跳转到主程序00000001跳转到INT00003跳转到21例5-4(计数):计数/定时器T1对T1引脚计数,每计数100个脉冲,在P1.0输出一个正脉冲。X=28–100=156=9CH主程序:①设置工作方式②装入计数初值③开中断使P1.0输出0电平
④启动计数等待中断请求
分配存储空间主程序中断服务程序(1)计算初值X(2)程序设计
ORG0000H
①AJMPMAIN
ORG001BH
②
AJMPIT1P
③
ORG0100HMAIN:MOVSP,#60H
④
MOVTMOD,#01H MOVTL0,#9CH
MOVTH0,#9CHSETBET1
SETBEA
CLRP1.0
SETBTR1
⑤
HERE:AJMPHERE
⑥
IT1P:SETBP1.0
NOPNOP
CLRP1.0
RETI END
例5-4(计数):计数/定时器T1对T1引脚计数,每计数22(2)程序设计
(1)计算初值X分配存储空间主程序中断服务程序例5.5(定时扩展):利用软件扩展方法实现1s定时,使得P1口控制8各发光二极管轮流点亮(低电平点亮),设fosc=6MHZ. ORG0000H
LJMP MAIN
ORG000BH
LJMP DVT0ORG0030H
主程序:①设置工作方式②装入计数初值③开中断设置中断次数使P1口D0灯亮
④启动计数等待中断请求
MAIN: MOVSP,#60H
MOVTMOD,#01H
MOVTH0,#9EH
MOVTL0,#58H SETBET0 SETBEA
R2,#20H MOVA,#0FEH MOVP1,A
SETBTR0
SJMP$
DVT0: DJNZR2,RTN
RLA MOVP1,A
MOVR2,#20 RTN: MOVTH0,#9EH
MOVTL0,#58H RETI
END
(2)程序设计(1)计算初值X分配存储空间例5.5(定时23例5.6(扩展外部(引脚)中断源):利用T0扩展一个外部中断源。将T0设置为计数方式,按方式2工作,TH0\TL0的值均为0FFH,T0允许中断,CPU开放中断,只写初始化程序。①设置工作方式②装入计数初值③开中断
④启动计数
例5.6(扩展外部(引脚)中断源):利用T0扩展一个外部中24(2)程序设计
(1)计算初值X=0000H分配存储空间主程序例5.7(GATE位应用):利用T0的GATE位。测量INT0引脚上出现的脉冲宽度,并将结果存于片内30H\31H处。试编程实现上述功能。
T0P3.4INT0TF1主程序:①设置工作方式②装入计数初值③开中断×(无需开中断)设置存储脉冲宽度的地址指针等待INT0变低
④开启TR0(并未启动计数)INT0一旦变高,则启动计数INT0一旦变低,则停止计数INTO=0则将计数器TL0\TH0存于指定存储单元查询INT0=0(2)程序设计(1)计算初值X=0000H分配存储空间例25实例设89C51单片机的工作频率为6Mhz,利用T0中断扩展方式产生1s定时,当1s定时到,从P1.0输出低电平点亮发光二极管,每产生一次中断,P1.7取反一次。实例设89C51单片机的工作频率为6Mhz,利用T0中断扩26电路图电路图27程序ORG0000H;复位入口
LJMP MAIN;转到主程序
ORG000BH;T0中断入口
LJMP TT0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浆纱浆染工复测竞赛考核试卷含答案
- 主提升机操作工岗位指挥能力考核试卷含答案
- 烟类作物栽培工岗中质量能力考核试卷含答案
- 电线电缆镀制工岗前能力评估考核试卷含答案
- 压电石英晶片加工工岗位应急处理考核试卷含答案
- 压延玻璃成型工创新方法水平考核试卷含答案
- 旅游鞋制作工岗前执行力考核试卷含答案
- 商场营运部消防安全职责手册
- 2026年空天飞行器热防护涂层技术
- 基层帕金森病中西医结合诊疗专家共识(2026年版)
- 统编版语文五年级(上册)古诗词解读
- 2026年山东龙山产业发展投资集团有限公司招聘(32人)笔试参考题库及答案详解
- 路灯平均照度、功率密度值计算
- 2025年幼儿园区域活动:材料投放与观察指导
- 2026-2030新疆保险业市场深度评估与前景研究研究报告
- 老年髋部骨折诊疗与管理指南(2026年版)
- 2026年水务集团面试智慧水务建设与信息化系统应用题
- 手术室护理职业素养培养
- 2026年芯片设计DFT工程师高频面试题包含详细解答
- 供排水安全工作方案
- 娄底市辅警招聘公安基础知识考试题库及答案
评论
0/150
提交评论