发布日期:2022-04-17 点击率:100
通过实例,对涉及到的相关知识点进行回顾,同时学习体会定时器/计数器应用的基本方法。
AT89S52单片机的LED控制。利用定时器/计数器控制端口P1或者P2引脚相连的LED以1s为间隔循环闪亮。
图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上实现高低交替闪烁、循环点亮的流水灯、逐位间隔点亮等效果。
通过实例,对涉及到的相关知识点进行回顾,同时学习体会定时器/计数器应用的基本方法。
AT89S52单片机的LED控制。利用定时器/计数器控制端口P1或者P2引脚相连的LED以1s为间隔循环闪亮。
图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上实现高低交替闪烁、循环点亮的流水灯、逐位间隔点亮等效果。
下一篇: PLC、DCS、FCS三大控
上一篇: 索尔维全系列Solef?PV