基于51单片机的花样流水灯设计
2018-03-02段婷
段婷
摘要:本文以AT89C51单片机为核心,采用单片机技术和C语言编程技术实现了一款8位LED流水灯系统。该系统中的LED灯并排排列可以按照某种既定的规律进行闪烁,对于其他同类灯光美化系统设计而言具有一定的借鉴价值。
关键词:51单片机;流水灯;单片机设计
中图分类号:TP391.41 文献标识码:A 文章编号:1007-9416(2018)12-0156-02
本文以AT89C51单片机芯片为核心,通过硬件设计工作和软件设计工作,实现控制8个发光LED二极管的闪烁,即使LED二极管按照某种位置放置,按照时间先后和间隔顺序进行发光与熄灭的实现,也称流水灯控制系统。该系统的设计主要分为三部分,即系统框架设计、硬件设计以及系统软件设计。
1 系统框架设计
本设计的目的主要是为了能够控制8个LED发光二极管的闪烁工作,对于一般的基于单片机技术的控制系统开发而言,需要实现系统供电、系统驱动、系统复位以及功能扩展。为了简化系统设计,减少系统开发工作量,因此本设计的系统框架搭建主要分为单片机最小工作系统模块、灯光控制模块、以及LED发光二极管电路模块3部分,而单片机最小工作系统模块中又分为时钟电路模块和复位电路模块,以及单片机芯片。
2 AT89C51单片机
单片机全称为单片微型计算机,又被称为单片微控制器,经过不断的技术迭代和改进,如今的单片机已将一个基本完整的、能够实现计算机基本功能的器件集成于一块微型芯片当中。开发人员在开发各种控制系统时,常常将单片机作为系统的核心,通过其接口来扩展和实现其他功能,通过向单片机内烧录已经制定好的程序来实现系统自动控制。
AT89C51型单片机是51系列单片机众多款型中最为的经典的单片机之一。该单片机以其低廉的价格、可靠的性能、良好的扩展和兼容性占据了广大的单片机市场,获得了许多电子工程师的应用。
2.1 单片机最小工作系统
要想驱动一块单片芯片正常工作,需要为其提供合适的工作电压,需要能够提供时钟脉冲信号来控制单片机内部各个指令的有序执行和操作的时钟电路,以及能够控制系统复位操作的复位电路三部分。它们是实现单片机正常工作的最小条件,在单片机芯片的接口上也具有专门的接口来实现这些条件。
2.1.1 工作电压
單片机在封装过程中提供了正负极两个独立的引脚,以便外部供电电源的接入。AT89C51型单片机的标准电压为+5V,因此只需将电源+5V接口接入单片机正极,而单片机的负极则接地便可实现单片机的正常供电条件。
2.1.2 时钟电路设计
单片机若想按照预期进行有序、稳定地运行,执行各种操作,离不开时钟电路所产生的时钟脉冲驱动。时钟脉冲是按照某种周期而产生的脉冲信号。通常而言,在一个时钟周期内,单片机完成一条指令的操作。
单片机内部通常具有专门用于振荡器的高增益反向放大器,而单片机芯片的XTAL1与XTAL2接口即该放大器的I端和O端。本设计采用了内部时钟激励方式来搭建时钟电路,这样使得电路更加简单、生成的时钟信号也更加稳定。在单片机的两个关于时钟信号放大器的输入输出引脚上分别接入石英晶体振荡器的两端,同时各自并接入电容值相同的电容器件,两电容的另一端共同接地,从而组成了一个完整的并联谐振电路。电路中的电容可以将振荡器频率更加稳定,同时还可以缩短起振过程所花费的时间。
2.2 复位电路设计
当需要对系统进行初始化操作或遭遇故障时进行重启操作的情况下,需要对系统进行电路复位。电路复位的具体内容是将单片机内部的某些寄存器内容恢复至系统烧录程序的起点,即初始状态,从而实现了系统的重启工作。但通常单片机内部没有集成完整的复位电路,需要开发人员根据实际情况在外部搭建复位电路接入单片机预留的复位引脚RST上来实现系统的复位功能。
如图1所示,该复位电路结合了上电复位电路与按键复位电路两种方式,上电复位电路由电阻R1、电容C3,以及供电电源接口VCC、单片机的复位接口RST和接地接口VSS共同组成,利用电容充放电原理来实现对RST端给予持续的高电平信号,使得单片机接收到复位信号,实现复位操作。当电路中的电流在接通瞬间时,RST端与供电电源端VCC电平信号相同,接着电容充电电流持续降低,导致电位下降,直至低于RST端的施密特触发器可接收高电平信号的下限值。在图中的复位电路中,电容两端还并接了一个串联电阻的按键开关,实现了用户可以通过简单的按键操作便可实现单片机复位功能。通常情况下,当RST引脚接收到持续两个机器周期的高电平信号后,单片机便自动进行复位操作,重置单片机内部各寄存器与堆指针,而RAM不受影响。此外,RST端接收的高电平信号可持续时间主要受电阻R1与电容C3共同影响。
2.3 单片机P1接口控制的8位发光二极管电路设计
为了能够完全控制8只LED发光二极管的工作,本设计采用独立连接方式来设计控制LED发光二极管,即单片机每个独立的物理接口通过串联电阻分别对应连接到一个LED发光二极管的,而二极管另一端则共同接地。在本设计中,使用了单片机的P1.1~P1.7端接口,具体电路图如图1所示。
3 软件设计
3.1 LED发光二极管的工作特点分析
根据二极管工作特性,要想驱动LED发光二极管发出灯光,就需要有电流流过该LED发光二极管电路,当没有电流流过时,发光二极管熄灭。在本系统中,单片机芯片通过其P1端接口控制着8位二极管的电流流向状态,从而使得LED发光二极管进行闪烁。在数字电路中,电流的高低电平分别用“1”和“0”来表示,在单片机中,也是通过“0”、“1”信号来控制其接口的高低电平状态。当连接着LED发光二极管的某接口电平状态为高电平时,LED进行闪烁,当为低电平时则熄灭。
當8个LED二极管全部熄灭时,P1端口的状态为P1= 11111111B,用16进制表示则为P1=0XFF,若想改变某一LED灯的状态,则将对应位数字进行改变即可。
3.2 软件设计思路
在本设计中,实现流水灯控制,即将排列好的LED发光二极管按照先后顺序依次闪烁一段时间,当最后一个LED闪烁完毕后,接着第一个LED开始闪烁,进行循环闪烁。
4 结语
本设计通过使用单片机技术,实现了对8个LED发光二极管的闪烁控制。按照图2电路原理图搭建起系统的硬件电路,再将2.3节中的程序代码段烧录到单片机芯片中后,通电启动系统,便实现了本设计的效果和目的,使得系统中的8个LED发光二极管其能够按照排列的先后顺序进行顺序闪烁。当然,我们也可以通过改写控制程序代码来改变系统中的LED发光效果。
参考文献
[1]张灿.单片机花样流水灯设计[J].信息通信,2013(1):42-43.
[2]李灵锋.单片机控制流水灯方法研究[J].煤炭技术,2010,29(11):210-211.
[3]杨宁,阳泳,江世明. 基于单片机的LED流水灯控制与简述[J].电子世界,2016(1):52-52.
[4]郭明磊.用单片机实现流水灯的控制设计[J].黑龙江科技信息,2008(4):72.
Design of Flow Lamp Based on 51 Single Chip Microcomputer
DUAN Ting
(Datong No. 1 Middle School, Datong Shanxi 037000)
Abstract:This paper takes AT89C51 single chip computer as the core, adopts single chip computer technology and C language programming technology to realize an 8-bit LED pipeline lamp system. The LED lights in the system can flicker in accordance with certain rules, which has certain reference value for other similar lighting beautification system design.
Key words:51 MCU; pipeline lamp; MCU design