单片机控制的霓虹灯控制器讲解Word格式.docx

上传人:b****4 文档编号:8158517 上传时间:2023-05-10 格式:DOCX 页数:14 大小:384.54KB
下载 相关 举报
单片机控制的霓虹灯控制器讲解Word格式.docx_第1页
第1页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第2页
第2页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第3页
第3页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第4页
第4页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第5页
第5页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第6页
第6页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第7页
第7页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第8页
第8页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第9页
第9页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第10页
第10页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第11页
第11页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第12页
第12页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第13页
第13页 / 共14页
单片机控制的霓虹灯控制器讲解Word格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机控制的霓虹灯控制器讲解Word格式.docx

《单片机控制的霓虹灯控制器讲解Word格式.docx》由会员分享,可在线阅读,更多相关《单片机控制的霓虹灯控制器讲解Word格式.docx(14页珍藏版)》请在冰点文库上搜索。

单片机控制的霓虹灯控制器讲解Word格式.docx

而俄罗斯制作工艺的平台是以耐火水泥板为主,特征是直接烧制成型,主要在东北地区;

中国传统制作工世,灯管以立式炮火进行弯制,特征是以铜制独孔对火焊接灯头,主要分布在上海,甚至覆盖了全国。

目前,比较先进的是可以进行远距离遥控霓虹灯变化的控制器,遥控、定位、监视、监控等是其技术原理依据。

在现在的商业时代,霓虹灯的的用处也越来越广,而且越来越商业化,出现了很多新型霓虹灯产业。

在商业领域的招牌、门面、字幕广告、酒店酒吧、建筑物轮廓等都有霓虹灯闪烁的装饰身影,它们都是用来引来消费者的关注,促进产业的发展。

在一个灯红酒绿的城市,霓虹灯是这个城市繁华的象征,是这个城市经济发展的标志。

但是,传统的霓虹灯采用的是玻璃灯管,在包装运输时存在不易制作、安装及易破碎等缺陷。

很久以前,人们就期望能用不同颜色的小灯泡安装在电线里用于装饰和照明。

如今,这种灯已遍布各国的各个城市,走进了大街小巷,走进了我们的生活中,所以霓虹的发展是很有前景的。

1霓虹灯的设计

1.1设计任务

设计一个单片机控制的霓虹灯控制器,通过程序控制单片机,让26个发光二极管闪烁,形成各式各样的花样和图案。

1.2总体设计方案

1.2.1单片机芯片的选择

从霓虹灯的成本上考虑,本次设计选择成本校低的AT89C51,此芯片功能强大,足以用于本次设计

1.2.2接口设计

从使用者是否方便使用的角度考虑,本次设计的接口设计为USB接口,利用PL2303HX来实现此功能,使用者可以在任何有USB接口的电器上使用此霓虹灯控制器,如电脑等。

1.2.3方案设计

霓虹灯的设计选用的器件是发光二极管,将26个不同颜色的发光二极管连接在AT89C51单片机上,但是AT89C51单片机只有40个引脚,如果每个引脚上连接一个发光二极管,对二极管逐个控制,则需要26个引脚,不能实现资源的合理利用。

考虑到引脚有限,所以利用LED显示器里的动态扫瞄的方案,可以在P0的每个引脚上接4个发光二极管,然后再通过P2的前4个引脚各连接一个PNP三极管,通过给三极管低电平来扫瞄P0端口的发光二极管,类似于单片机中LED显示器的扫瞄方法来实现位选码和段选码。

2设计原理

2.1单片机AT89C51

AT89C51是美国ATMEL公司生产的低电压,是一种带4K字节可编程、可擦除的只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,是高性能CMOS8位的微处理器,俗称单片机。

该器件是采用ATMEL的高密度、非易失存储器制造技术进行制造的,该单片机与工业标准的MCS-51指令集和输出管脚是相互兼容的。

因为是将多功能的8位CPU和闪烁存储器组合在单个芯片中,AT89C51是一种高效微控制器,为嵌入式控制系统提供了很多高灵活性且低成本的方案。

AT89C51的引脚如图2.1-1所示,功能介绍如下:

●VCC:

接+5V,电源端,为单片机提供电能。

●GND:

接地端口。

●RST:

复位信号的输入。

当该引脚连接振荡器复位器件时,要让RST脚保持两个机器周期以上的高电平时间。

●XTAL1:

接外部晶体的一个引脚,CHMOS单片机采用外部时钟信号时,时钟信号由此引脚引入。

●XTAL2:

接外部晶体的一个引脚,HMOS采用外部时钟信号时,外部时钟信号由此引脚引入。

●ALE/PROG:

地址锁存允许。

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址。

●EA/VPP:

EA=0时,单片机只访问外部程序存储器;

当EA=1时,单片机访问内部程序存储器;

在AT89C51单片机片内EPROM编程期间,此引脚引入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端口作为数据输入输出端口,用于控制霓虹灯的发光二极管的控制引脚。

图2.1-1AT89C51引脚

2.2芯片PL2303HX

随着电子技术的不断更新发展,PL2303HX广泛用于电子产业,用此芯片连接而成的USB接口已成为外设的连接标准。

芯片PL2303HX的引脚如下图2.2-1所示,特征介绍如下:

◆对USB1.1协议完全兼容。

◆能对输出电压进行调节,能满足不同电压的应用。

◆两个GPIO端口。

◆SSOP小封装的28个引脚。

◆具有外部的流控制功能。

图2.2-1PL2303HX引脚

3霓虹灯的硬件设计

硬件设计分成三个模块,分别是:

复位控制电路模块、时钟电路模块、发光二极管模块、按键设计模块和外设USB接口模块,下面是对这些硬件设计模块进行详细的介绍。

3.1复位控制电路

单片机在启动运行时都需要进行复位,复位能使CPU和系统中的其他部件都处于一个确定的工作状态,并从这个状态开始工作。

在系统中,有时也会出现不正常显示和不正常运行的情况,并且为了我们方便调试,所以在单片机上需要设计一个复位电路,复位电路主要完成两个功能,即系统的上电复位功能、系统在运行时用户的按键复位功能。

在本次设计中单片机的复位是靠外部电路来实现的,AT89C51单片机有一个复位引脚RST,有效电平是高电平。

若RST保持高电平,单片机便保持复位状态。

此时,ALE/PSEN、P0、P1、P2和P3口都输出的是高电平。

若RST变成低电平后,则单片退出复位状态,CPU开始正常工作。

需要注意的是,复位操作是不会影响到片内RAM工作的内容。

复位电路的基本功能是控制器上电时提供复位信号,直至控制器的电源稳定后,撤销复位信号,单片机才进入正常工作状态。

图3.1-1为基本RC复位电路,其电路为高电平复位有效。

图3.1-1复位控制电路

3.2时钟电路

单片机的工作是在统一的时钟脉冲的控制下运行,这个时钟脉冲信号是由单片机的时钟电路发出的,单片机的时钟产生有内部时钟和外部时钟两种,本次设计采用的是内部时钟方式。

此方式是利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两个引脚上连接一个频率为11.0592MHZ的晶体振荡器,就构成了单片机的自激振荡器,发出的脉冲直接送入内部的时钟电路。

外接晶振时,C4和C5的值通常选择为15PF—33PF之间,电容对频率有微调作用。

时钟控制电路图如图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型三极管,将4个三极管的集电极与每组发光二极管的其中一个的阳极相连,然后通过控制P1端口的三极管来向24个发光二极管提供高电平,通过P0端口向发光二极管提供低电平,实现26个发光二极管逐个点亮,以便于发光二极管闪烁出各种图形。

图3.3-1发光二极管电路

3.4外设USB接口

单片机的外设有两种方法:

串口连接和USB接口,串口连接的外设是很不方便,但USB接口相对于串口来说,有更多的优点,如:

方便易用,数据传输速度与串口连接相比校快,可以连接多个设备等,已经被广泛使用。

如图3.4-1是本次设计的外设电路,可以实现控制器与电脑通信,用于向霓虹灯提供电源和程序下载等功能,用PL2303HX芯片实现USB接口。

图3.4-1USB接口

3.5按键设计

在单片机应用系统人机交互中,常需要配置一些开关,实现向单片机内部输入数据,传送命令信号等功能,是单片机工作中进行人工干预系统的主要手段。

开关具有“断开”和“闭合”两种稳定状态。

通过简单电路可将这两种状态转换为逻辑电平的“1”和“0”,从而在接口电路的控制下被CPU所检测,常见的按键开关有按钮开关和触摸开关。

本次设计采用的是两个独立按键,独立式按键电路设计时,每个按键与P1端口的一个引脚相连,另一端接地。

无键按下时,P1的2个I/O口均通过电阻接高电平,信息为“1”;

有键按下时,将使对应的I/O口通过该键接地,信息为“0”。

通过这两个按键对霓虹灯进行人为控制。

按键的硬件设计如图3.5-1所示。

图3.5-1按键的电路

4霓虹灯的软件设计

本次设计的软件部分分成了两个模块:

延时函数模块和主函数模块,程序设计简单易懂。

4.1延时函数

此延时函数是用于主函数调用,实现发光二极管的闪烁的功能,延时为0.2S。

程序如下:

voiddelay02s(void)

{

unsignedchari,j,k;

for(i=20;

i>

0;

i--)

for(j=20;

j>

j--)

for(k=248;

k>

k--);

}

4.2按键控制程序

程序设计效果是如果CPU检测到K1按下,则霓虹灯将分成上下两个部分交替闪烁;

如果CPU检测到K2按下,则霓虹灯将会整体被点亮,一起闪烁。

因为按键按下到闭合后,会再产生一个负的矩形脉冲,但由于在按动按键时,总会有一些抖动,所以为了克服按键触点机械抖动所导致的检测误判,必须采取去抖动措施,可从硬件和软件两方面着手,但因为软件去抖较为简单,而且降低了成本,所友本次设计采用软件去抖动。

软件上采取的措施是在检测到有按键按下时,执行一个10ms左右的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动的影响。

流程如图4.2-1所示。

图4.2-1按键去抖

4.3霓虹灯控制程序

主程序主要负责各个模块的初始化工作:

建立两个字符型数组,数组a和数组b;

初始化P0和P1端口;

用while循环语句对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单片机,发光二极管的设计为主要硬件设计,成功实现霓虹灯的硬件电路与软件程序设计。

实现了在单片机的8个引脚上单独点亮26个不同颜色的发光二极管,可从上往下再从右往左等顺序依次闪烁,实现霓虹灯的花样闪烁。

在本次设计中,在实现霓虹灯花样闪烁的情况下,还添加了两个独立按键,对霓虹灯进行人为的控制,为使用者提供了更多的选择,我们可以按照自己的意愿选择霓虹灯的闪烁方式。

本次设计充分锻炼了我的动手操作能力,从理论到实践的整个过程,独自完成整个设计,自己学到了更多的知识。

从开始着手设计到设计完成,了解到了设计的整个过程,虽然在设计的过程中遇到了很多的问题,但是通过同学和老师的帮助以及自己的努力之下,将本次设计圆满完成。

在设计的过程中,起初自己的知识只局限于书本上的知识和老师教的知识,在设计方面自己的想法很不成熟,始终想不到方法在单片机上的8个引脚上连接26个发光二极管,并且能实现单独控制每一个发光二极管,通过老师的引导以及自己不断的实践和尝试,想到了单片机中的数码管的动态扫瞄的方法。

在本次设计中,我要感谢我的现代通信原理实验课的孙活老师,是他良好的教学方案,让我学到了更多的知识。

在本次设计当中我获益匪浅,明白了三个道理:

1、学习中要把理论和实践联系在一起,只有实践才能开拓自己的思维;

2、在遇到困难时,要保持清醒自己的头脑,看清自己的问题,学会请教别人,学习别人的经验,不要遇到困难就退缩,退缩是永远无法成功的,所以我们要学会有条有理地外理任何的问题和困难;

3、学会独立,学会独自完成事情,不要总想着别人来帮自己,自己才能帮得了自己,只有自己亲手做了,才能从中学到更多的知识,才能将知识有效的转换成自己的。

参考文献:

[1]彭介华:

电子技术课程设计指导,高等教育出版社,2008.4,P3-P7

[2]高吉祥、易凡:

电子技术基础实验与课程设计,北京电子工业出版社,2005.6,P21-P30

[3]任为民:

电子技术基础课程设计,中央广播电视大学出版社,2006.12,P7-P15

[4]李群芳、肖看、张士军:

单片机微型计算机与接口技术,电子业出版社,2011.11,P52-P57

[5]马忠梅:

单片机C语言应用程序设计,北京航空航天大学出版社,2005.6,P31-P42

[6]林立:

单片机原理应用—基于Proteus和Keil,电子工业出版社,2009.7,P15-P27

附录1:

设计原理图

附录2:

源代码

用C语言来编程,通过动态扫瞄的方法实现26个不同颜色的发光二极管按照一定的规律轮流闪烁。

#include<

regx51.h>

voiddelay02s(void);

voiddelay(unsignedcharc)

unsignedchari;

for(;

c>

c--)

for(i=122;

i--);

voidmain(void)

unsignedinti,j;

unsignedcharcodea[]={0xfb,0xf7,0xef,0xdf};

unsignedcharcodeb[]={0xf0,0xcf,0x3f,0xec,0xd3,0xef,0xf9,0xf6,0xdf};

P0=0XFF;

P1=0XFF;

while

(1)//扫瞄

{

if(P1_0==0)

{

delay(10);

while(P1_0==0)

p1=0xc3;

P0=0xec;

delay02s();

P0=0XFF;

//消隐

P0=0x3e;

//消隐

}

}

elseif(P1_1==0)

{

P1=0xc3;

p0=0x00;

delay02s();

P0=0XFF;

else

for(i=0;

i<

2;

i++)

{

for(j=0;

j<

4;

j++)

{

P1=a[j];

P0=b[i];

delay02s();

P0=0XFF;

}

}

P1=0X0F;

P0=0x00;

delay02s();

P0=0XFF;

P0=b[3];

for(i=4;

9;

voiddelay02s(void)//延时

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2