自动控制网移动版

自动控制网 > 自动化 > 单片机 >

AT89S52单片机定时器/计数器的应用

通过实例,对涉及到的相关知识点进行回顾,同时学习体会定时器/计数器应用的基本方法。

AT89S52单片机的LED控制。利用定时器/计数器控制端口P1或者P2引脚相连的LED以1s为间隔循环闪亮。

图1 CS-III型单片机开发板

(1) 原理分析

LED是常用的一种电子器件,主要有两种接法:共阴和共阳。若采用的是共阳接法,则如果PORT1或者PORT2输出为低电平0,则LED点亮;如果PORT1或者PORT2输出为高电平1,LED灭。如图2所示。



图2 LED原理

(2)设定初值和工作方式

CS-III外部时钟采用24MHz,每定时1s时间需要计系统内部时钟12000000个,即为2000000个机器周期。可选用定时器0的工作方式1,定义初值为(65536-50000)=15536,即从15536开始计数,共50000次,重复40次可以达到50000*40=2000000个机器周期,即1s。

因此:M1M0=01;TH0=3CH,TL0=B0H

初始化程序段:

     mov TL0, #0B0H          ; 置定时器初值

     mov TH0, #03CH          ; 初值为0x3caf

     mov TMOD, #01H          ; 设定定时器/计数器0工作方式为1

     setb EA                 ; 允许中断

     setb ET0                ; 允许定时器/计数器0溢出中断

     setb TR0                ; 启动定时器/计数器0

(3) 总体程序设计

单片机控制LED闪亮的程序流程图如图3和4所示。

      
图3 总程序流程                                     图4 溢出中断服务程序流程

(4)程序运行的效果

通过定时器计数器的设置和编写相应的程序,还可以在LED上实现高低交替闪烁、循环点亮的流水灯、逐位间隔点亮等效果。

    本文已影响
    最近关注
    0基础免费学PLC,扫描观看

    扫描上方二维码免费观看PLC视频课程