单片微机w的定时器.pptVIP

  • 2
  • 0
  • 约1.33万字
  • 约 65页
  • 2016-11-29 发布于湖南
  • 举报
单片微机w的定时器

表–1定时器/计数器的工作方式 M1 M0 工作方式 计数器配置 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式2 自动重装载的8位计数器 1 1 方式3 T0分为两个8位计数器,T1停止计数 表6–2 定时器/计数器T2的工作方式 RCLK+TCLK CP/RL2 TR2 工 作 方 式 0 0 1 自动重装载方式 0 1 1 捕获方式 1 × 1 波特率发生器方式 × × 0 关闭 ⑵ ?? 编 程 ORG 0000H AJMP MAIN ORG 001BH ;T1中断矢量地址 AJMP INQP ORG 100H ;主程序入口 MAIN:MOV TMOD,#10H ;T1为定时器方式1 MOV TH1,#0FEH ;写定时常数 ,定时1ms MOV TL1,#0CH SETB TR1 ;启动T1 SETB ET1 ;允许T1中断 SETB EA ;开放CPU中断 AJMP $ ORG 00 XX H ;中断服务程序 INQP:MOV TH1,#0FEH ;重写定时常数 MOV TL1,#0CH CPL P1.0 ;P1.0变反输出 RETI ;中断返 例3.欲用80C51产生两个方波,一个周期为200μs,另一个周期为400μs,该80C51同时使用串行口,用定时器/计数器作为波特率发生器。 解: ⑴ 这时T0采用方式3工作,其中,TL0产生200μs定时,由 P1.0输出方波;TH0产生400μs定时,由Pl.1输出方波;T1设置为方式2作波特率发生器用。focs=9.216 MHz。 ? 定时常数计算 ?TL0定时常数为 TCL0:tl0=100μs 单位μs,为十进数制数值。十六进制数值为TCBL0=B3H。 ?TH0定时常数为TCH0:定时时间为th0=200μs 单位μs,为十进制数值。十六进制的值为TCBH0=66 H。?TH1的波特率(详细计算见串行口部分) 设波特率为2400,则定时常数为TC2=F6H (1/波特率=(1/2400)S=(1/24)x104μs ⑵ 编 程 ORG 0000H AJMP MAIN ORG 000BH ;TL0的中断入口 AJMP ITL0 ORG 00lBH ;TH0的中断入口 AJMP ITH0 ORG 0100H MAIN:MOV SP,# 60H ;设栈指针 MOV TMOD,# 23H ;设T0为方式3,TI为2 MOV TL0,#0B3H ;设TL0初值(100μs定时) MOV TH0,#66H ;设TH0初值(200μs定时) MOV TL1,#0F6H ;设TL1初值(波特率为2400) MOV TH1,# 0F6H ;设 TH1初值 SETB TR0 ;启动 TL0 SETB TR1 ;启动TH0 SETB ET0 ;允许TL0中断 SETB ET1 ;允许TH0中断 SETB EA ;CPU中断开放 AJMP $ ORG 0200H ITL0:MOV TL0,# 0B3H ;重装定时常数 CPL P1.0 ;输出方波(200μs) RETI ITH0:MOV TH0,#66H ;重装定时常数 CPL P1.1 ;输出方波(400μs) RETI 当TMOD寄存器中C/T位设置为“1”时,定时器/计数器作为计数器使用,可对来自单片微机引脚T0或T1上的

文档评论(0)

1亿VIP精品文档

相关文档