1、单片机控制的霓虹灯控制器教材单片机控制的霓虹灯控制器学生:xxx 指导教师:xxx内容摘要:本设计采用AT89C51单片机实现对霓虹灯的控制。系统的设计由霓虹灯的硬件电路设计和软件设计两部分组成。硬件设计分为发光二极管的设计、复位电路、时钟电路、按键设计、外设接口设计五个模块组成,按键主要功能是实现人为控制霓虹灯,实现单片机控制显示不同的图案以及想要的各种花样闪烁,并能实现各种闪烁模式的互相切换。软件部份是运用Keil软件基于C语言进行编写的程序。该系统具有电路结构简单、易操作等优点,具有较强的实用价值。并且有较强的实用性,操作简单,扩展功能强。如需要增加功能可方便更改程序,灵活性强。关键词:
2、单片机发光二极管花样闪烁霓虹灯the neon light controller based on single chipAbstract: This design uses AT89C51 single-chip microcomputer to realize the control of neon lights. The design of the controller including the hardware circuit design and software design of the neon lightstwo parts. Hardware design is divi
3、ded into the light emitting diode design ,reset circuit ,clocking circuit design , key design and peripheral interface design. The main function of Keys is to realize the anthropogenic control of neon lights, realize single-chip microcomputer control display different pattern and want all kinds of p
4、attern flicker, and can realize all kinds of scintillation mode switch to each other. The software part is to use Keil software based on C language program.It has strong practicality, simple operation, and the function expended is strong.If we need to increase the function ,it will be easily changed
5、 procedures, and it has high adaptability.Keywords: single-chip light emitting diode flicker neon lights单片机控制的霓虹灯控制器前言 霓虹技术,在中国已经发展了近百年的历史了,在新的霓虹技术,在新的竞争形势下,霓虹技术发展到今天,在中国目前最常用的霓虹技术有四种,即中国的日本制作工艺、美国制作工艺和俄罗斯制作工艺、传统制作工艺。它们有各自的特征:日本制作工艺,以立式炮火进行对接和弯制一次成型,送气以脚踏为主,主要分布在北京;美国制作工艺是以长排火技术进行弯制,主要特征是九孔和五孔对火进行焊接
6、,分布在广州等地区;而俄罗斯制作工艺的平台是以耐火水泥板为主,特征是直接烧制成型,主要在东北地区;中国传统制作工世,灯管以立式炮火进行弯制,特征是以铜制独孔对火焊接灯头,主要分布在上海,甚至覆盖了全国。目前,比较先进的是可以进行远距离遥控霓虹灯变化的控制器,遥控、定位、监视、监控等是其技术原理依据。在现在的商业时代,霓虹灯的的用处也越来越广,而且越来越商业化,出现了很多新型霓虹灯产业。在商业领域的招牌、门面、字幕广告、酒店酒吧、建筑物轮廓等都有霓虹灯闪烁的装饰身影,它们都是用来引来消费者的关注,促进产业的发展。在一个灯红酒绿的城市,霓虹灯是这个城市繁华的象征,是这个城市经济发展的标志。但是,传
7、统的霓虹灯采用的是玻璃灯管,在包装运输时存在不易制作、安装及易破碎等缺陷。很久以前,人们就期望能用不同颜色的小灯泡安装在电线里用于装饰和照明。如今,这种灯已遍布各国的各个城市,走进了大街小巷,走进了我们的生活中,所以霓虹的发展是很有前景的。 1 霓虹灯的设计1.1 设计任务设计一个单片机控制的霓虹灯控制器,通过程序控制单片机,让26个发光二极管闪烁,形成各式各样的花样和图案。1.2 总体设计方案1.2.1 单片机芯片的选择从霓虹灯的成本上考虑,本次设计选择成本校低的AT89C51,此芯片功能强大,足以用于本次设计1.2.2 接口设计从使用者是否方便使用的角度考虑,本次设计的接口设计为USB接口
8、,利用PL2303HX来实现此功能,使用者可以在任何有USB接口的电器上使用此霓虹灯控制器,如电脑等。1.2.3 方案设计霓虹灯的设计选用的器件是发光二极管,将26个不同颜色的发光二极管连接在AT89C51单片机上,但是AT89C51单片机只有40个引脚,如果每个引脚上连接一个发光二极管,对二极管逐个控制,则需要26个引脚,不能实现资源的合理利用。考虑到引脚有限,所以利用LED显示器里的动态扫瞄的方案,可以在P0的每个引脚上接4个发光二极管,然后再通过P2的前4个引脚各连接一个PNP三极管,通过给三极管低电平来扫瞄P0端口的发光二极管,类似于单片机中LED显示器的扫瞄方法来实现位选码和段选码。
9、2 设计原理2.1 单片机AT89C51 AT89C51是美国ATMEL公司生产的低电压,是一种带4K字节可编程、可擦除的只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,是高性能CMOS8位的微处理器,俗称单片机。该器件是采用ATMEL的高密度、非易失存储器制造技术进行制造的,该单片机与工业标准的MCS-51指令集和输出管脚是相互兼容的。因为是将多功能的8位CPU和闪烁存储器组合在单个芯片中,AT89C51是一种高效微控制器,为嵌入式控制系统提供了很多高灵活性且低成本的方案。AT89C51的引脚如图2.1-1所
10、示,功能介绍如下: VCC: 接+5V,电源端,为单片机提供电能。 GND:接地端口。 RST:复位信号的输入。当该引脚连接振荡器复位器件时,要让RST脚保持两个机器周期以上的高电平时间。 XTAL1:接外部晶体的一个引脚,CHMOS单片机采用外部时钟信号时,时钟信号由此引脚引入。 XTAL2:接外部晶体的一个引脚,HMOS采用外部时钟信号时,外部时钟信号由此引脚引入。 ALE/PROG:地址锁存允许。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址。 EA/VPP:EA=0时,单片机只访问外部程序存储器;当EA=1时,单片机访问内部程序存储器;在AT89C51单片机片内EPROM编程期
11、间,此引脚引入21V编程电源VCC。 P0口:为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。其内部缺少一个上拉电阻。 P1口:是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 P2口:为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。P3口:P3口为双功能静态端口。 P3口:和P1、P2端口一样,是一个内部提供上拉电阻的8位双向I/O口,但与P1、P2口有区别,它有自己独有的特点,就是P3口可作为AT89C51的一些特殊功能口,如用于定时器和计数器等。对于本次设计,我只选用了P0和P1端口作为数据输入输出端口,用于控制霓
12、虹灯的发光二极管的控制引脚。图2.1-1 AT89C51引脚2.2 芯片PL2303HX 随着电子技术的不断更新发展,PL2303HX广泛用于电子产业,用此芯片连接而成的USB接口已成为外设的连接标准。芯片PL2303HX的引脚如下图2.2-1所示,特征介绍如下: 对USB1.1协议完全兼容。 能对输出电压进行调节,能满足不同电压的应用。 两个GPIO端口。 SSOP小封装的28个引脚。 具有外部的流控制功能。图2.2-1 PL2303HX引脚3 霓虹灯的硬件设计硬件设计分成三个模块,分别是:复位控制电路模块、时钟电路模块、发光二极管模块、按键设计模块和外设USB接口模块,下面是对这些硬件设计
13、模块进行详细的介绍。3.1 复位控制电路单片机在启动运行时都需要进行复位,复位能使CPU和系统中的其他部件都处于一个确定的工作状态,并从这个状态开始工作。在系统中,有时也会出现不正常显示和不正常运行的情况,并且为了我们方便调试,所以在单片机上需要设计一个复位电路,复位电路主要完成两个功能,即系统的上电复位功能、系统在运行时用户的按键复位功能。在本次设计中单片机的复位是靠外部电路来实现的,AT89C51单片机有一个复位引脚RST,有效电平是高电平。若RST保持高电平,单片机便保持复位状态。此时,ALE/PSEN、P0、P1、P2和P3口都输出的是高电平。若RST变成低电平后,则单片退出复位状态,
14、CPU开始正常工作。需要注意的是,复位操作是不会影响到片内RAM工作的内容。复位电路的基本功能是控制器上电时提供复位信号,直至控制器的电源稳定后,撤销复位信号,单片机才进入正常工作状态。图3.1-1为基本RC复位电路,其电路为高电平复位有效。图3.1-1 复位控制电路3.2 时钟电路单片机的工作是在统一的时钟脉冲的控制下运行,这个时钟脉冲信号是由单片机的时钟电路发出的,单片机的时钟产生有内部时钟和外部时钟两种,本次设计采用的是内部时钟方式。此方式是利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两个引脚上连接一个频率为11.0592MHZ的晶体振荡器,就构成了单片机的自激振荡器,发出的脉
15、冲直接送入内部的时钟电路。外接晶振时,C4和C5的值通常选择为15PF33PF之间,电容对频率有微调作用。时钟控制电路图如图3.2-1所示:图3.2-1 时钟电路3.3 发光二极管的设计如图3.3-1的发光二极管的电路是本次设计的最重要的硬件设计部份,26个发光二极管全部连接在P0端口的8个引脚上上的引脚,P0_6和P0_7两个引脚上各自连接一个发光二极管的阴极,二极管的阳极直接与电源正极相连,通过给这个引脚低电平,就可以让这两个二极管闪烁。然后将剩下的24个发光二极管分成6组,P0_0到P0_5引脚分别与4个并连的发光二极管的阴极相连,然后在P1_2到P1_5引脚上各自连接一个PNP型三极管
16、,将4个三极管的集电极与每组发光二极管的其中一个的阳极相连,然后通过控制P1端口的三极管来向24个发光二极管提供高电平,通过P0端口向发光二极管提供低电平,实现26个发光二极管逐个点亮,以便于发光二极管闪烁出各种图形。图3.3-1 发光二极管电路3.4 外设USB接口单片机的外设有两种方法:串口连接和USB接口,串口连接的外设是很不方便,但USB接口相对于串口来说,有更多的优点,如:方便易用,数据传输速度与串口连接相比校快,可以连接多个设备等,已经被广泛使用。如图3.4-1是本次设计的外设电路,可以实现控制器与电脑通信,用于向霓虹灯提供电源和程序下载等功能,用PL2303HX芯片实现USB接口
17、。图3.4-1 USB接口3.5 按键设计在单片机应用系统人机交互中,常需要配置一些开关,实现向单片机内部输入数据,传送命令信号等功能,是单片机工作中进行人工干预系统的主要手段。开关具有“断开”和“闭合”两种稳定状态。通过简单电路可将这两种状态转换为逻辑电平的“1”和“0”,从而在接口电路的控制下被CPU所检测,常见的按键开关有按钮开关和触摸开关。本次设计采用的是两个独立按键,独立式按键电路设计时,每个按键与P1端口的一个引脚相连,另一端接地。无键按下时,P1的2个I/O口均通过电阻接高电平,信息为“1”;有键按下时,将使对应的I/O口通过该键接地,信息为“0”。通过这两个按键对霓虹灯进行人为
18、控制。按键的硬件设计如图3.5-1所示。图3.5-1 按键的电路4 霓虹灯的软件设计本次设计的软件部分分成了两个模块:延时函数模块和主函数模块,程序设计简单易懂。4.1 延时函数此延时函数是用于主函数调用,实现发光二极管的闪烁的功能,延时为0.2S。程序如下:void delay02s(void) unsigned char i,j,k; for(i=20;i0;i-) for(j=20;j0;j-) for(k=248;k0;k-);4.2 按键控制程序程序设计效果是如果CPU检测到K1按下,则霓虹灯将分成上下两个部分交替闪烁;如果CPU检测到K2按下,则霓虹灯将会整体被点亮,一起闪烁。因为
19、按键按下到闭合后,会再产生一个负的矩形脉冲,但由于在按动按键时,总会有一些抖动,所以为了克服按键触点机械抖动所导致的检测误判,必须采取去抖动措施,可从硬件和软件两方面着手,但因为软件去抖较为简单,而且降低了成本,所友本次设计采用软件去抖动。软件上采取的措施是在检测到有按键按下时,执行一个10ms左右的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动的影响。流程如图4.2-1所示。图4.2-1 按键去抖4.3 霓虹灯控制程序主程序主要负责各个模块的初始化工作:建立两个字符型数组,数组a和数组b;初始化P0和P1端口;用while循环语句对
20、P0和P1端口进行动态扫瞄,每扫瞄一次,对P0和P1端口进行初始化,输入0XFF的值,用于发光二极管的消隐,提高霓虹灯的闪烁质量。 主函数中,每点亮一次发光二极管就调用一次延时函数,通过两个字符型数组:a=0x7f,0xbf,0xdf,0xef;b=0x0f,0xf3,0xfc,0x37,0xcb,0xF7,0x9f,0x6f,0xfb分别对P1和P0端口进行扫瞄,实现霓虹灯先从上往下、从左往右、从右往左等顺序轮流点亮闪烁。如图4.3-1是该程序的流程图:图4.3-1 程序流程图5 结束语本次设计是基于单片机的霓虹灯控制器,控制系统采用AT89C51单片机,发光二极管的设计为主要硬件设计,成功
21、实现霓虹灯的硬件电路与软件程序设计。实现了在单片机的8个引脚上单独点亮26个不同颜色的发光二极管,可从上往下再从右往左等顺序依次闪烁,实现霓虹灯的花样闪烁。在本次设计中,在实现霓虹灯花样闪烁的情况下,还添加了两个独立按键,对霓虹灯进行人为的控制,为使用者提供了更多的选择,我们可以按照自己的意愿选择霓虹灯的闪烁方式。本次设计充分锻炼了我的动手操作能力,从理论到实践的整个过程,独自完成整个设计,自己学到了更多的知识。从开始着手设计到设计完成,了解到了设计的整个过程,虽然在设计的过程中遇到了很多的问题,但是通过同学和老师的帮助以及自己的努力之下,将本次设计圆满完成。在设计的过程中,起初自己的知识只局
22、限于书本上的知识和老师教的知识,在设计方面自己的想法很不成熟,始终想不到方法在单片机上的8个引脚上连接26个发光二极管,并且能实现单独控制每一个发光二极管,通过老师的引导以及自己不断的实践和尝试,想到了单片机中的数码管的动态扫瞄的方法。在本次设计中,我要感谢我的现代通信原理实验课的孙活老师,是他良好的教学方案,让我学到了更多的知识。在本次设计当中我获益匪浅,明白了三个道理:1、学习中要把理论和实践联系在一起,只有实践才能开拓自己的思维;2、在遇到困难时,要保持清醒自己的头脑,看清自己的问题,学会请教别人,学习别人的经验,不要遇到困难就退缩,退缩是永远无法成功的,所以我们要学会有条有理地外理任何
23、的问题和困难;3、学会独立,学会独自完成事情,不要总想着别人来帮自己,自己才能帮得了自己,只有自己亲手做了,才能从中学到更多的知识,才能将知识有效的转换成自己的。参考文献:1 彭介华:电子技术课程设计指导,高等教育出版社,2008.4,P3-P72 高吉祥、易凡:电子技术基础实验与课程设计,北京电子工业出版社,2005.6, P21-P30 3 任为民:电子技术基础课程设计,中央广播电视大学出版社,2006.12, P7-P154 李群芳、肖看、张士军:单片机微型计算机与接口技术,电子业出版社,2011.11 , P52-P575 马忠梅:单片机C语言应用程序设计,北京航空航天大学出版社,20
24、05.6, P31-P426 林立:单片机原理应用基于Proteus和Keil,电子工业出版社,2009.7, P15-P27 附录1:设计原理图附录2:源代码 用C语言来编程,通过动态扫瞄的方法实现26个不同颜色的发光二极管按照一定的规律轮流闪烁。#include void delay02s(void);void delay(unsigned char c) unsigned char i; for(;c0;c-) for(i=122;i0;i-);void main (void) unsigned int i,j; unsigned char code a=0xfb,0xf7,0xef,0
25、xdf; unsigned char code b=0xf0,0xcf,0x3f,0xec,0xd3,0xef,0xf9,0xf6,0xdf; P0=0XFF; P1=0XFF; while(1) /扫瞄 if(P1_0=0) delay(10); if(P1_0=0) while(P1_0=0) p1=0xc3; P0=0xec; delay02s(); P0=0XFF; /消隐 p1=0xc3; P0=0x3e; delay02s(); P0=0XFF; /消隐 else if(P1_1=0) delay(10); if(P1_0=0) while(P1_0=0) P1=0xc3; p0=0x00; delay02s(); P0=0XFF; delay02s(); else for(i=0;i2;i+) for(j=0;j4;j+) P1=aj; P0=bi; delay02s(); P0=0XFF; /消隐 P1=0X0F; P0=0x00; delay02s(); P0=0XFF; /消隐 P0=b3; delay02s(); for(i=4;i9;i+) for(j=0;j0;i-) for(j=20;j0;j-) for(k=248;k0;k-);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1