MCS-51单片机定时器计数器.pptVIP

  • 6
  • 0
  • 约 35页
  • 2017-08-31 发布于安徽
  • 举报
3.3 MCS-51单片机的定时器/计数器(一) 一、MCS-51单片机定时器/计数器组成: 定时器/计数器0(T0):16位的加计数器 定时器/计数器1(T1):16位的加计数器 二、定时器/计数器的功能 对外部输入信号的计数功能。定时器/计数器0(T0)的外来脉冲输入端为P3.4;定时器/计数器1(T1)的外来脉冲输入端为P3.5。 定时功能。定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单片机的片内振荡器输出经12分频后产生的信号,即为对机器周期计数。 定时器/计数器的控制 定时器/计数器的控制主要是通过以下几个寄存器实现的: TCON---定时器/计数器控制寄存器 TMOD---定时器/计数器工作方式控制寄存器 IE ---中断允许控制寄存器 MCS-51单片机的定时器/计数器(二) MCS-51单片机的定时器/计数器应用举例: 利用定时器/计数器实现固定时间的定时 利用定时器/计数器实现对外来信号脉冲的计数 利用定时器/计数器实现对外来信号脉冲信号脉宽的测量 实例一:定时器/计数器实现固定时间的定时 题目:利用T0,使用工作方式0,在单片机的P1.0输出一个周期为2ms,占空比为1:1的方波信号。 解:周期为2ms,占空比为1:1的方波信号,只需要利用T0产生定时,每隔1ms将P1.0取反即可。 编程步骤: 计算TMOD的值        由于GATE=0;M1M0=00;C/T=0;        所以 (TMOD)=00H 计算初值(单片机振荡频率为12MHZ)  所需要的机器周期数: n=(1000us/1us)=1000 计数器的初始值: X=8192-1000=7192 所以:(TH0)=0E0H,(TL0)=18H 流程图 3:程序清单 ORG 4000H LJMP MAIN ORG 400BH ;T0中断入口地址 LJMP SER ;中断服务程序 MAIN:MOV SP,#50H ;开辟堆栈 MOV TMOD,#00H ;工作方式设置 MOV TH0,#0E0H ;初始值设置 MOV TL0,#18H SETB EA ;开中断 SETB ET0 ;开T0中断 SETB TR0 ;运行T0 HERE:SJMP $ ;等待中断 SER:CPL P1.0 ;定时到,输出取反 MOV TH0,#0E0H ;重新加载初战值 MOV TL0,#18H RETI ;中断返回 END 实例二:利用方式1定时 题目:用定时器T1,使用工作方式1,在单片机的P1.0输出一个周期为2分钟、占空比为1:1的方波信号。 解:周期为2分钟,占空比为1:1的方波信号,只需要利用T1产生定时,每隔1分将P1.0取反即可。 由于定时器定时时间有限,设定T1的定时为50ms,软件计数1200次,可以实现1分钟定时。 编程步骤: 1、计算TMOD的值        由于:GATE=0;M1、M0=0、1;C/T=0;        所以:(TMOD)=10H 2、计算初值(单片机的振荡频率为12MHZ)  所需要的机器周期数: n=(50000us/1us)=50000 计数器的初始值:X=65536-50000=15536 所以:(TH0)=3CH;(TL0)=0B0H 流程图 程序清单 ORG 4000H LJMP MAIN ORG 401BH ; T0中断入口地址 LJMP SER ; 中断服务程序 MAIN:MOV SP,#50H ; 开辟堆栈 MOV TMOD,#10H ; 工作方式设置 MOV TH1,#3CH ; 初始值设置 MOV TL1,#0B0H

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档