通过实例,对涉及到的相关知识点进行回顾,同时学习体会定时器/计数器应用的基本方法。 自动控制网www.eadianqi.com版权所有 AT89S52单片机的LED控制。利用定时器/计数器控制端口P1或者P2引脚相连的LED以1s为间隔循环闪亮。图1 CS-III型单片机开发板 (1) 原理分析 本文来自www.eadianqi.com LED是常用的一种电子器件,主要有两种接法:共阴和共阳。若采用的是共阳接法,则如果PORT1或者PORT2输出为低电平0,则LED点亮;如果PORT1或者PORT2输出为高电平1,LED灭。如图2所示。 本文来自www.eadianqi.com
图2 LED原理 (2)设定初值和工作方式 自动控制网www.eadianqi.com版权所有 CS-III外部时钟采用24MHz,每定时1s时间需要计系统内部时钟12000000个,即为2000000个机器周期。可选用定时器0的工作方式1,定义初值为(65536-50000)=15536,即从15536开始计数,共50000次,重复40次可以达到50000*40=2000000个机器周期,即1s。 本文来自www.eadianqi.com
因此:M1M0=01;TH0=3CH,TL0=B0H 本文来自www.eadianqi.com 初始化程序段: 本文来自www.eadianqi.com mov TL0, #0B0H ; 置定时器初值 本文来自www.eadianqi.com mov TH0, #03CH ; 初值为0x3caf 自动控制网www.eadianqi.com版权所有 mov TMOD, #01H ; 设定定时器/计数器0工作方式为1 本文来自www.eadianqi.com setb EA ; 允许中断 自动控制网www.eadianqi.com版权所有 setb ET0 ; 允许定时器/计数器0溢出中断 本文来自www.eadianqi.com setb TR0 ; 启动定时器/计数器0 自动控制网www.eadianqi.com版权所有 (3) 总体程序设计 本文来自www.eadianqi.com
单片机控制LED闪亮的程序流程图如图3和4所示。 自动控制网www.eadianqi.com版权所有 图3 总程序流程 图4 溢出中断服务程序流程 (4)程序运行的效果 本文来自www.eadianqi.com 通过定时器计数器的设置和编写相应的程序,还可以在LED上实现高低交替闪烁、循环点亮的流水灯、逐位间隔点亮等效果。 本文来自www.eadianqi.com |