第六章定时器zlf.pptVIP

  • 1
  • 0
  • 约9.39千字
  • 约 43页
  • 2019-06-26 发布于湖北
  • 举报
6.1.1 定时器/计数器的特点 对于定时/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都有以下特点: (1)定时/计数器有多种工作方式,可以是计数方式也可以是定时方式。 (2)定时/计数器的计数值是可变的,当然对计数的最大值有一定限制,这取决于计数器的位数。计数的最大值也就限制了定时的最大值。 (3)可以按照规定的定时时间或计数值,在定时时间到或者计数终止时,发出中断申请,以便实现定时控制。 总 结 在编程时主要注意两点:第一要能正确写入控制字;第二能进行计数初值的计算。包括以下几个步骤: (1)确定工作方式,即对TMOD寄存器进行赋值。   (2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中    (3)根据需要,置位ETx允许T/C中断。    (4)置位EA使CPU开中断(需要时)。    (5)置位TRx启动计数。 例:利用定时/计数器T1通过P1.0引脚输出周期为3ms的矩形波,高电平为1ms。设晶振频率为12MHz。试确定计数初值、TMOD内容及编制相应程序(用软件查询方法)。用定时器功能、方式1 ORG 0000H ; 复位程序入口 MOV TMOD,#10H ;置T1为定时方式1 MOV TH1,#0FCH    ;设置计数初值 MOV TL1,#18H   SETB TR1    ;启动T1 WAIT: JNB TF1,WAIT    ;等待中断IF1=1 INT: CLR P1.0     ;输出矩形波低电平 MOV TH1,#0F8H ;重新装入计数初值 MOV TL1,#30H    CLR TF1 JNB TF1,$ SETB P1.0 ;输出矩形波高电平 MOV TH1,#0FCH ;重新装入计数初值 MOV TL1,#18H    CLR TF1 LJMP WAIT 例:单片机晶振频率12MHz,利用T0的方式0实现1s延时 。 解:1)TMOD初始化 00H 2)计数初值: 定时时间:tmax=8192×1us=8.192ms ; 取5ms,1秒延时实现:5ms延时200次 T0的初值:=213-5000us/1us =3192 =0C78H ∴ TH1=63H,TL1=18H Delay:MOV R3 , #200 LP1: JBC TF0 , LP2 MOV TMOD , #00H SJMP LP1 MOV TH0 , #63H LP2: MOV TH0 , #63H MOV TL0 , #18H MOV TL0 , #18H SETB TR0 DJNZ R3 , LP1 RET * 程序设计(中断方式) 主程序: MOV TMOD, #02H ;设置T0为工作方式2 MOV TH0, #0CEH ;保存计数初值 MOV TL0, #0CEH ;设置计数初值 SETB EA ;开中断 SETB ET0 ;定时器 0 允许中断 SETB TR0 ;定时开始 SJMP $ ;等待中断 中断服务程序: CPL P1.0 ;输出取反 RETI ;中断返回 * ① 计算计数初值 X = 28 – 100 = 156 = 1001 1100B = 9CH 把9CH分别装入TH1和TL1中:TH1 = 9CH,TL1 = 9CH 【例4】使用定时器 1 以工作方式 2 实现

文档评论(0)

1亿VIP精品文档

相关文档