资源描述
目录摘要霓虹灯在现代社会中有广泛的应用,但传统的霓虹灯控制器利用移位寄存器的移位方式,只能实现几种有限的花式,因此市场迫切需要一种低成本高性能的霓虹灯控制器。本设计采用AT89C51单片机实现对霓虹灯的控制。系统的设计由霓虹灯的硬件电路设 计和软件设计两部分组成。硬件设计分为发光二极管的设计、复位电路、时钟电路、按键设计、外设接口设计五个模块组成,按键主要功能是实现人为控制霓虹灯,实现单片机控制显示不同的图案以及想要的各种花样闪烁,并能实现各种闪烁模式的互相切换。软件部份是运用Keil软件基于C语言进行编写的程序。该系统具有电路结构简单、易操作等优点,具有较强的实用价值。并且有较强的实用性,操作简单,扩展功能强。如需要增加功能可方便更改程序,灵活性强。该系统主要由单片机的主控部分、键盘输入部分和LED显示部分组成,运用I/O口输出的信号驱动发光二极管和数码管,使其产生有规律的闪烁和移动。该控制器电路实现简单,成本低,具有较高的性价比。关键词: 单片机,Keil,C语言,发光二极管 目录第一章 设计任务与要求11.1、总体方案设计11.2、 要求完成的主要任务内容:2第二章 方案选择32.1、控制芯片、LED恒流源模块方案选择32.1.1、 控制器模块32.1.2、 LED恒流源模块32.1.3、 时钟模块42.1.4、 理论分析与参数计算4第三章 系统设计与模块化硬件电路设计63.1、系统总体设计63.2、 单元电路设计及工作原理分析63.2.1、 电路的恒流源的设计63.2.2、 复位电路83.2.3、 驱动LED灯电路103.2.4、 振荡电路133.2.5复位控制电路143.2.6时钟电路153.2.7、 整体单片机控制电路16第四章 软件系统设计184.1 程序总体结构184.2 程序总体流程184.3 程序编写19第五章 系统调试265.1测试方法与数据265.1.1 测试方案与方法265.1.2 元件清单27附录28致谢29参考文献30III第一章 设计任务与要求第一章 设计任务与要求前言现代科学技术飞速发展,日新月异。霓虹灯技术在我们国家已经发展了多年的历史。现已在广告业、商业、交通、建筑、室内外装饰、舞台布景、家用电器、城市美化等领域发挥了重要的作用。单片机是一种把计算机主要功能集成到一块芯片的微型计算机。在科学技术高速发展的今天,如何用简单便宜、性能良好的元器件制造出对人类生活有用的产品,已经成为人们研究的主要趋势。在自动化技术中,无论是过程控制技术还是数据采集技术还是测控技术,都离不开单片机,在工业自动化的领域中,机电一体化技术发挥越来越重要的作用。这种芯片构成的系统简单、可靠,性价比相当高,适合成为霓虹灯程序控制器的核心部件。所需电路简单,制作易改变,扩展简单;而后者由于电路已作定,控制方式可以随意改变。然而市场上需要低成本高性能的霓虹灯控制技术。我们此次设计的霓虹灯控制系统就符合市场需求。1.1、总体方案设计本设计要求完成一个霓虹灯控制器,控制发光二极管点阵显示,要求能形成多种闪亮形式。实现图案和字的左右移动、暂停、继续移动、跳转到指定位置的操作。 本设计是以STC89C51芯片的电路为基础,通过软件程序来控制单片机内部的定时器来控制矩阵贴片发光二极管的点亮,显示不同的形式,形成霓虹灯控制器。实物以STC89C51为主控芯片,主要包括电源、控制电路、时钟电路、复位电路、显示电路。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性和一定的实际使用价值。图1-1 控制系统图1.2、 要求完成的主要任务内容:本设计要求使用单片机以及相应外围电路来实现简易霓虹灯的模拟控制;设计要求通过对单片机的编程,控制开发板上的8只发光二极管分别以水滴形、拉幕形、快闪、慢闪形式点亮,每种状态各持续10秒钟,循环不止;在该状态中按下K1键,奇数号发光二极管以1Hz的频率闪烁报警;任何时候按下K2键,偶数号发光二极管以10Hz的频率闪烁报警,直至系统复位。搭建相应电路并编写程序完成该霓虹灯控制器的设计。 26 第二章 方案选择第二章 方案选择2.1、控制芯片、LED恒流源模块方案选择2.1.1、 控制器模块采用89C51单片机控制,AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。2.1.2、 LED恒流源模块采用大功率三极管加集成运放作为恒流源:由大功率三极管构成的电路电流较大,集成运放作为负反馈元件反馈深度高,因此电路不仅结构简单,而且精度可靠性高,同时通过DAC能够直接与单片机相连,通过调整数字量,能够实现精密调光的功能,并且功耗低。2.1.3、 时钟模块采用软件时钟:采用软件时钟硬件电路简单,软件编程也较为容易,成本低且完全可以满足题目要求。2.1.4、 理论分析与参数计算1.电路参数计算:由5V电源供电,NPN 型三极管驱动,输出数字量范围0-255,电流在0-255ma可调.为了减少电阻发热及对电阻功率要求;也为方便后面设计计算方便,对于发光二极管电阻取值1欧姆。由发光二极管工作电流在0-255ma,因此电阻的热功耗:P=I2R=2552 *1 =65mW (2-1)故普通1/4W电阻既可满足设计要求,而不需要那种大体积电阻。这样把大量线性热功率分配到了大功率三极管,降低了电阻的负担。2.环境检测模块参数计算:将LM324运放的反相输入端与一个可调电阻相连作为运放的基准电压,光敏电阻和可调电位器与同相输入端相连,作为输入端,通过调整输入端的可调电位器阻值,可以改变运放的输入电压。则Ui=VCC/(RP+Rg)* Rg,输入与基准电压相比,大于基准电压输出高电平,小于基准电压输出低电平。基准电压为:Uref=VCC/(4.7K+RP)*RP3.LED驱动电源参数计算:恒流源的供电电压为5V,当三极管8050导通处于放大状态时,大功率三极管TIP41C也导通,通过给集成运放不同参考电压与电阻电压比较控制电流大小,其电流大小由下式决定:IO=VREF/R=DACO*K/R=(5*D*K)/(255*R) (2-2)恒流源三极管的选择:电路的电流为255mA,电流比较大,我们选择电流和耗散功率比较大的TIP41C NPN型三极管;由于大功率三级管直流放大系数小,不利于高精度控制因此前面再加一个8050驱动。比例系数K由可调电阻调节,在这里取10k精密电位器。最大电流:Imax=VCC/R=5/10K=0.5mA。DAC选用MAX505其输出驱动电流达20ma,完全满足设计要求。第三章 系统设计与模块化硬件电路设计第三章 系统设计与模块化硬件电路设计3.1、系统总体设计 本系统采用89C51作为控制核心,通过控制芯片来采集DS1302芯片中设置的时间信号来对单片机分析处理后控制LED灯的点亮与熄灭状态来进行操作。如图3-1所示:图31 方案总体的方框3.2、 单元电路设计及工作原理分析3.2.1、 电路的恒流源的设计最简单的恒流源就是用一只恒流二极管。实际上,恒流二极管的应用是比较少的,除了因为恒流二极管的恒流特性并不是非常好之外,电流规格比较少,价格比较贵也是重要原因。最常用的简易恒流源用两只同型三极管,利用三极管相对稳定的be电压作基准。 电流数值为:I = Vbe/R1。 这种恒流源优点是简单易行,而且电流的数值可以自由控制,也没有使用特殊的元件,有利于降低产品的成本。缺点是不同型号的管子,其be电压不是一个固定值,即使是相同型号,也有一定的个体差异。同时不同的工作电流下,这个电压也会有一定的波动。因此不适合精密的恒流需求。 为了能够精确输出电流,通常使用一个运放作为反馈,同时使用场效应管避免三极管的be电流导致的误差。如果电流不需要特别精确,其中的场效应管也可以用三极管代替。 电源采用自制通用电源。通过变压器把220V市电降到双12V,通过镇流滤波经三端稳压器稳压,最后输出恒定的正负5伏与正9伏直流电为整个系统供电。如图3-2所示:图3-2 电源电路原理图3.2.2、 复位电路复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效。上电自动复位通过电容C3和电阻R2来实现,按键手动复位如图3-2-2所示复位键来实现的。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图1所示的RC复位电路可以实现上述基本功能,图3为其输入-输出特性。但解决不了电源毛刺(A点)和电源缓慢下降(电池电压不足)等问题 而且调整 RC 常数改变延时会令驱动能力变差。上电瞬间,由于电容两端电压不能突变,RST引脚电压端为VR为VCC,随着对电容的充电, RST引脚的电压呈指数规律下降,到t1时刻,VR降为3.6V,随着对电容充电的进行,VR最后将接近0V。为了确保单片机复位,t1必须大于两个机器周期的时间,机器周期取决于单片机系统采用的晶振频率,R不能取得太小,典型值 8.2k;t1与RC 电路的时间常数有关,由晶振频率和R可以算出C的取值。如图 3-3所示:图3-3 复位电路原理图3.2.3、 驱动LED灯电路LED概述它是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。发光二极管的反向击穿电压大于5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过二极管的电流。限流电阻R可用下式计算:R=(EUF)/IF (3-1)式中E为电源电压,UF为LED的正向压降,IF为LED的正常工作电流。发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。 当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。LED的具体结构如图3-4所示:图3-4 LED的结构图首先,所谓的驱动能力,指的是输出电流的能力。比方说,某型单片机通用IO口在高电平时的最大输出电流是20mA,这个20mA的指标,就表征了该IO口的驱动能力。其次,如果负载过大,则负载电流有可能超过其最大输出电流,这时我们说驱动能力不足。 再次,出现驱动能力不足,直接后果是输出电压下降,对逻辑电路来说,就是无法保持其高电平,以致出现逻辑混乱,不能实现预期的效果。这种现象一般是不允许出现的。如果想让控制LED灯的亮的强弱,只需要改变电阻R就可以。如下图3-5所示:图3-5 驱动LED灯电路原理图3.2.4、 振荡电路外部时钟电路,它在单片机的外部通过XTAL1、XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器。本系统采用的为11.0592MHz的晶振,一个机器周期为1us,C1、C2为22PF。晶振,内部是电容和电阻,串联后再并联的。他可以在一定的时间完成充放电。有了充放电,就有了时间基准。这样单片机就有一个标准的时间源了,实现计数,什么的,都可以处理。电容接地是为了稳定,因为频率太高,旁边不接东西,手在附近,都可能有干扰,用这个电容下地,是个好选择。如下图3-6所示:图3-6 驱动LED灯电路原理图3.2.5复位控制电路单片机需要重置开始操作时, 重置 CPU 和其他组件在系统处于工作状态决定的, 并从这种状态开始工作。在系统中 , 有时还有异常显示和不正常运行状态, 并且为了我们更加方便的调试 , 所以在单片机复位电路的设计需要 , 复位电路主要完成以下的两个功能, 即系统上电复位功能, 以及系统在运行时用户按钮复位功能。在单片机的复位是由外部的电路设计完成, AT89C51 单片机复位引脚RST ,显著性水平为高水平。如果 RST 保持高电平,单片机复位。在这一点上, ALE/PSEN , P0 , P1 , P2和 P3口是一个高电平输出。如果此时 RST 为低电平后,并且单片机退出复位状态 , 那么此时 CPU 就会开始正常工作。值得我们注意的是,复位操作将不会影响片上 RAM 工作重要内容。复位电路控制器的基本功能主要是指在上电复位信号的时候,只有当电源稳定后从而取消复位信号控制器,单片机进入正常工作状态。图 3-7 展示的是基本 RC复位电路,这个电路为高电平复位的时候有效果。图3-7 复位控制电路3.2.6时钟电路单片机控制运行在时钟脉冲的统一, 时钟脉冲信号由单片机发出时钟电路, 单片机时钟生成有两种内部时钟和外部时钟, 本设计采用内部时钟。这种方式是使用振荡器在芯片内部, 然后在别针 xtal1 和 xtal2 销连接频率为11.0592MHZ 晶体振荡器, 构成了单片机自激振荡器, 发出脉冲直接进入内部时钟电路。外部晶体,C4 和 C5价值 15 pf - 33 pf, 电容优化影响频率。C4和C5的值一般会 16PF-34PF 之间选择,而电容对频率则有微调的作用。如图3-8 所示,即为时钟控制电路的电路图。图3-8 时钟电路3.2.7、 整体单片机控制电路对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。51系列单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0P3。在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。如图3-9所示:图3-9 驱动LED灯电路原理图第四章 软件系统设计第四章 软件系统设计4.1 程序总体结构为了便于管理、规范化、调试本系统,加快软件开发的速度,提高软件开发的质量。将系统用一个工程来进行管理,并且有一个比较清晰的结构。每个文件都有对应的包含文件.h和.c,这样是为了调用方便。 4.2 程序总体流程霓虹灯控制器最大特点在于所有亮灯模式均由软件控制完成。系统中软件可以分为主程序和子程序。主程序的大部份时间是在处理按键的查询,1个自锁式开关实现模式切换和8个按键式开关实现样式的选择。1个功能复位按键。主程序除了调用各种子模式子程序,调用延时子程序之外,还一直保持查询是否有功能切键按下以及是否有模式改变按键按下,一旦有功能切换键和模式改变键按下,就会进入相应的按键处理。4.3 程序编写软件部分,由自锁开关实现两种模式的切换。模式一,自锁开关打开,通过if语句判断P0.0是否为低电平。当P0.0为低电平时,通过读取独立式键盘18的信号进行判断,检测到哪个键按下,便实现不同样式的选择,且由软件设置延迟时间,从而实现闪烁时间的不同。#include sbit P34=P34;sbit P32=P33;int count200=0;int arri=0;void main(void)void Timer0delay(int m);void lamu(void);/水滴void shuidi(void);/拉幕int count=0,i=0;TMOD=0 x11;/定时器0和定时器1都工作在工作模式1中TH1=0 x3c;TL1=0 xb0;TR0=1;/定时器启动控制TR1=1;IT0=0;/外部中断低电平触发IT1=0;IE=0 x8d;/开中断,定时器1中断,外部中断0,1IP=1;/外部中断0为最高优先级P1=0 x00;while(1)if(count200=200)i+;count200=0;P1=0 x00;switch(i)case 0 :shuidi();break;/水滴case 1 :Timer0delay(2);lamu();break;/拉幕case 2 :Timer0delay(1);/快闪P1=P1;break;case 3 :Timer0delay(5);/慢闪P1=P1;break;default :i=0;break;void Timer1(void) interrupt 3/用来定时0.05sTH1=0 x3c;TL1=0 xb0;count200+;/计数200次达到10s延时void Int0(void) interrupt 0/外部中断0,K2键,最高优先级while(1)P1=0 xaa;Timer0delay(20);P1=0 xff;Timer0delay(20);void Int1(void) interrupt 2/外部中断1,K1键while(1)P1=0 x55;Timer0delay(2);P1=0 xff;Timer0delay(2);void Timer0delay(int m)int i=0;while(i6)arri=0;void shuidi(void)/水滴int m,n,middle=0;int psave=1;int save=0;for(m=7;m!=0;m-)if(count200=200)break;elsefor(n=0;n=m;n+)Timer0delay(1);middle=(psave | save);P1=middle;psave=(psave1);psave=1;save=middle;第五章 系统调试第五章 系统调试5.1测试方法与数据5.1.1 测试方案与方法方案:先对各模块检测,LED驱动电源模块进行调试,然后再对整机进行调试,以提高调试效率。测试方法:1.焊完后先目测有没有明显焊错的地方,如元件极性焊反、线路短路等;2.对照原理图检查线路,可以根据原理图的线路用万用表测量线路的连通性;3.通电测试功能,如果功能都正常,基本就测试合格。4、其次检测模块的调试:搭接电路前先对发光二极管进行检测,根据测出的数据来确定发光二极管是否损坏。测完后,搭接电路,测量经过运放后的输出,将其调整为电阻的量来对发光二极管的发光深度。使其能够精确的发挥出其作用。5、振荡电路和发光二极管的调试:检查硬件接线正确无误后,软件测试。6、LED驱动电源模块:检查电路中三极管的状态是否正确,检查完毕后,在检查7805稳压电源是否输出正常,最后通电测量所要恒定的电流。7、整机调试:各模块电路检测达标后,将各模块电路连接到一起进行调试。检查电路连线是否正确,对软件进行调试。软硬件都调试完后将程序烧录到芯片中实际演练观察工作过程,对系统软硬件反复调试。5.1.2 元件清单 见附录I 元件清单附录元件清单元件名称型号数量单片机AT89C511LEDArk SM470501K3极性电容10uF1电容22pf2电阻4703电阻1K2排线 2按键1晶振11.0592MHz1致谢 在论文完成之际,我要特别感谢我的指导老师的热情关怀和悉心指导。指导老师以严禁的治学态度、渊博的学识、独特的学术思维、一丝不苟的工作作风、热情待人的品质、使我满怀敬意。每遇到困难都会努力找寻解决的方法,提高自己解决问题的能力并巩固老师所授予的知识。增强了自己实践操作和动手应用的能力,提高了独立思考的能力。在此,谨向所有帮助过我的老师和同学表示我诚挚的谢意。参考文献1 赵茂泰.智能仪器原理及应用.北京: 电子工业出版社,2004.7 :5-72 张毅刚,刘杰.MCS51单片机原理及应用.哈尔滨: 哈尔滨工业大学出版社,2004.6 :22-243 何立民.单片机应用技术选编.北京: 北京航天航空大学出版,2002.5 :9-104 电子线路基础教程,科学出版社,2003年1月 :5-65 自动控制原理,国防工业出版社,1999年05月 :9-126 电动机的单片机控制,北京航空航天大学出版社,2002年5月 :10-297 李全利,迟荣强。单片机原理及接口技术。北京:高等教育出版社,2004 :26-328 李华,MCS-51系列单片机实用接口技术,北京:航空航天大学出版社,2000 :34-369 王静霞,杨宏丽,单片机应用技术(C语言版),电子工业出版社,2009 :12-19
展开阅读全文