首页 理论教育 跑马灯控制器设计实例-单片机控制技术

跑马灯控制器设计实例-单片机控制技术

时间:2023-11-24 理论教育 版权反馈
【摘要】:软件部分主要实现对LED灯的控制。图4-8跑马灯控制器的系统结构3.硬件设计系统硬件电路的原理图如图4-9所示。源程序如下:图4-10跑马灯程序流程图5.虚拟仿真与调试跑马灯控制器的Proteus仿真硬件电路图如图4-11所示,在Keil μVision3与Proteus环境下完成仿真调试。图4-12简易彩灯控制器花样图小结:单片机的每个端口的八个引脚可以同时输出指定电平。

跑马灯控制器设计实例-单片机控制技术

1.任务描述

八个发光二极管L1~L8分别接在单片机的P1.0~P1.7接口上,输出“0”时,发光二极管亮,依次点亮L1、L2、L3、L4、L5、L6、L7、L8,再循环显示。

2.总体设计

本项目的设计需要硬件与软件两大部分协调完成。系统硬件电路以AT89S51单片机控制器为核心,包括单片机最小系统硬件电路和LED信号灯电路几个部分。系统结构如图4-8所示。软件部分主要实现对LED灯的控制。

图4-8 跑马灯控制器的系统结构

3.硬件设计

系统硬件电路的原理图如图4-9所示。本项目中选择P1.0~P1.7作为输出口使用,分别接8个LED灯,R1~R8为限流电阻,其阻值选择为220Ω,以保证LED灯正常点亮。

图4-9 硬件电路原理图

4.软件设计

方法1:采用移位指令实现系统功能。

编程思路:由于LED灯为有规律的移动方式,因此,点亮LED灯的数据可以选择左移或者右移运算符实现。程序流程图如图4-10所示。源程序如下:

方法2:采用数组方式实现系统功能。(www.xing528.com)

编程思路:把所有灯亮的花样状态所需要的数据定义成一维数组存放在单片机的某个存储空间,然后在程序中依次调用各花样状态数据送端口显示,从而实现预设花样的循环显示。源程序如下:

图4-10 跑马灯程序流程图

5.虚拟仿真与调试

跑马灯控制器的Proteus仿真硬件电路图如图4-11所示,在Keil μVision3与Proteus环境下完成仿真调试。观察调试结果如下:单片机上电后,P1口外接的8个发光二极管L1~L8依次点亮,循环不止,且每个LED灯点亮的时间为1s。

图4-11 跑马灯仿真图

6.能力拓展

(1)将灯由循环左移改为双向移动,即

(2)单片机外接8个发光二极管L1~L8,这8个发光二极管按照设定的花样变换显示,每个花样运行的时间为1s。设定的花样顺序如图4-12所示。

图4-12 简易彩灯控制器花样图

小结:单片机的每个端口的八个引脚可以同时输出指定电平。在c代码中可以采用直接给端口名称赋值的方式实现数据输出,其中,输出字节数据中的最高位对应端口的第7位,数据中的最低位对应端口的第0位。由于该项目LED是有规律的移动,因此软件设计可以使用运算符左移(<<)指令实现,同时,也可利用数组的方式实现跑马灯功能,利用数组的优势使灯亮的状态可以没有规律。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈