单片机定时器/计数器综合应用举例

  P1.0、P1.1 经 7407 驱动 LED 交替发光并以每秒一次的频率闪烁。硬件连接见下图(采用 6MHZ 晶振)

  分析:闪烁周期为 1S ,亮、灭各占一半,定时时间需要 500mS 。使用 6MHZ 晶振,最长定时时间仅为 131mS ,所以需要采用软件记数方法扩展定时时间。

  使用定时 / 计数器 0 ,定时方式,工作方式 1 。
  设置 TMOD 控制字: TMOD = 01H
  使用 6MHZ 晶振,机器周期为 2 μ s ,设定时时间 100mS ,定时初值 3CB0H 。定时器溢出 5 次为 500mS 。
  程序如下:
  ORG 0140H
  LED1 : MOV TMOD,#01H ;设置 T0 工作方式
  SETB P1.0 ;输出初始状态
  CLR P1.1
  SETB TR0 ;启动定时器
  LOOP0: MOV R2,#05H ;送软件计数初值
  LOOP1: MOV TL0,#0B0H ;送定时常数
  MOV TH0,#3CH
  JBC TF0,$ ;循环等待定时时间到
  DJNZ R2,LOOP1 ;软件计数 –1 ≠ 0 循环
  XRL P1,#03H ; P1.0、P1.1 求反
  SJMP LOOP0 ;循环

,  P1.0、P1.1 经 7407 驱动 LED 交替发光并以每秒一次的频率闪烁。硬件连接见下图(采用 6MHZ 晶振)

  分析:闪烁周期为 1S ,亮、灭各占一半,定时时间需要 500mS 。使用 6MHZ 晶振,最长定时时间仅为 131mS ,所以需要采用软件记数方法扩展定时时间。

  使用定时 / 计数器 0 ,定时方式,工作方式 1 。
  设置 TMOD 控制字: TMOD = 01H
  使用 6MHZ 晶振,机器周期为 2 μ s ,设定时时间 100mS ,定时初值 3CB0H 。定时器溢出 5 次为 500mS 。
  程序如下:
  ORG 0140H
  LED1 : MOV TMOD,#01H ;设置 T0 工作方式
  SETB P1.0 ;输出初始状态
  CLR P1.1
  SETB TR0 ;启动定时器
  LOOP0: MOV R2,#05H ;送软件计数初值
  LOOP1: MOV TL0,#0B0H ;送定时常数
  MOV TH0,#3CH
  JBC TF0,$ ;循环等待定时时间到
  DJNZ R2,LOOP1 ;软件计数 –1 ≠ 0 循环
  XRL P1,#03H ; P1.0、P1.1 求反
  SJMP LOOP0 ;循环

单片机定时器/计数器综合应用举例

相关文章:

你感兴趣的文章:

标签云: