彩虹灯的设计与开发11引言1.1本课题研究的意义LED彩虹灯是用在住宅、商场、酒店等场所的日常照明和局部照明而采用的一种新型灯具,该灯采用金属,钢化玻璃面罩,超高亮LED光源,并有多种色彩可供选择,具有外观时尚、坚固可靠、亮度高、光线柔和、节能环保等特点,是居家、办公、商业照明的理想灯具,也是一种取代传统照明产品的最佳选。LED灯具具有现代照明灯具特点,适用于商场,酒店,精品屋投射照明。室内,安装简便、快捷,通用性强,应用范围广。适合住宅和酒店、商场、办公场所的日常照明,点缀照明,可以烘托气氛,改善照明环境,提升照明品位。LED灯具特点:●单色性好,光线柔和,发光效率高●冷光源、无热辐射、无有害金属汞、绿色环保●功率低、耗电小、不发热、寿命长、稳定性好、可靠性高●工作温度可达-20℃--+50℃,低温启动正常,响应速度快●灯具电气一体化,灯体设计新颖别致、典雅美观、具有现代照明灯具特点,安装简单,调节方便。随着我国商品的发展,城市化进程的加速,在城市照明与美化,各种电子器件的装配等多方面,彩虹灯的应用越来越频繁。我们应用已掌握的知识与技术,开发与设计彩虹灯,通过理论设计,查阅资料,选择元器件,实际动手安装、调试等过程,能够使我们了解和掌握电子线路设计的一般方法。巩固和运用在电路与电子技术等课程中所学理论知识和技能,提高设计能力和动手能力,为以后从事相关工作打下基础。同时,通过开发与设计彩虹灯,能够使我们初步的接触到单片机技术。纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。所以,开发与设计彩虹灯可以为我们打开通向单片机技术的大门,从而将我们引入一个更广阔的学习与工作的领域。彩虹灯的设计与开发21.2研究现状与发展动态单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机,以及程控玩具等等,这些都离不开单片机。单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。在目前,用户对单片机的需要越来越多,但是,要求也越来越高。在单片机应用中,可靠性是首要因素为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。2功能与实现2.1功能介绍利用单片机和发光二极管及相关硬件设备实现彩灯的循环控制。由门电路或者时器构成的多谐振荡器产生时钟信号。由计数器和译码器组成顺序脉冲产生电路,在时钟信号的作用下,输出在时间上有先后顺序的脉冲。为使彩灯点亮顺序具有双向流动的效果,必须使计数器交替进行加法和减法的计数。计数器的控制端,需要交替得到高、低电平的控制信号。硬件设计中,K1、K2键设置彩灯的循环方式:K1控制左循环,K2控制右循环。2.2方案选择彩虹灯的实现有多种方案,较为实用的方法有应用可编程逻辑器件PLC,应用数字电路或单片机来实现对LED彩虹灯的设计与开发。PLC中文全称为可编程逻辑控制器,是一种数字运算操作的电子系统,专为在工业环境应用而设计的。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路。按实现功能,数字电路可分为组合逻辑电路与时序逻辑电路。数字电路是以二进制逻辑代数为数学基础,使用二进制数字信号,既能进行算术运算又能方便地进行逻辑运算。简单可靠,准确性高,集成度高,体积小,功耗低是数字电路突出的优点.彩虹灯的设计与开发3单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机是靠程序的,并且可以修改,通过不同的程序实现不同的功能。它的体积小、质量轻、价格便宜、为学习,应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。正是由于其种类多,性能价格比高,低功耗,可移植性高等特点,使我们最终决定以的单片机技术作为我们设计与开发彩虹灯的实现方法。3硬件设计3.1系统总体构架图3.1系统总体架构图如图所示,硬件系统首先通过MAX232与PC机串口相连,从而获得软件系统输入的软件程序。然后MAX232将信息传送给P89V51,P89V51根据程序初始化硬件设备,实现LED灯的循环闪烁,并实时监测是否有按键按下。当K1键按下,LED灯实现左循环,当K2键按下,LED灯实现右循环。3.2P89V51RD2芯片P89V51RD2是Philips公司生产的一款80C51微控制器,包含64KBFlash和1024字节的数据RAM。Flash程序存储器支持并行和串行在系统编程(ISP),ISP允许在软件控制下对成品中的器件进行重复编程。应用固件的产生/更新能力实现了ISP的大范围应用。5V的工作电压,操作频率为0~40MHz。P89V51RD2芯片的功能框图,管脚框图如图3.2,图3.3所示:彩虹灯的设计与开发4图3.2功能框图图3.3管脚框图主要管脚功能描述如下:P0口:P0口是一个8位开漏双向I/O口。写入‘1’时P0口悬浮,可用作高阻态输入。当访问外部程序和数据存储器时,P0口复用为低位地址和数据总线。应用中P0口利用强内部上拉来发送‘1’电平。P0口可在外部主机模式编程过程中接收代码字节和在外部主机模式校验过程中发送代码字节。P0口用作程序校验或通用I/O口时均需连接一个外部上拉电阻。P1口:P1口是一个带内部上拉的8位双向口。写入‘1’时P1口被内部上拉拉高,可彩虹灯的设计与开发5用作输入。用作输入时,由于内部上拉的存在,P1口被外部器件拉低时将吸收电流。在外部主机模式编程和校验中,P1口也可接收低位地址字节。T2:定时器/计数器2的外部计数输入或时钟输出。T2EX:定时器/计数器2捕获/重装触发和方向控制。CEX0:PCA模块0的捕获/比较外部I/O口。每个捕获/比较模块连接一个P1口用作外部I/O口。该口线不被PCA占用时仍可用作标准I/O口。CEX1:PCA模块1的捕获/比较外部I/O口。MOSI:SPI主机输出从机输入端。CEX2:PCA模块2的捕获/比较外部I/O口。MISO:SPI主机输入从机输出端。CEX3:PCA模块3的捕获/比较外部I/O口。SCK:SPI主机输出从机输入端。CEX4:PCA模块4的捕获/比较外部I/O口。P2口:P2口是一个带内部上拉的8位双向口。写入‘1’时P2口被内部上拉拉高,可用作输入。用作输入时,由于内部上拉的存在,P2口被外部器件拉低时将吸收电流(IIL)。在取指外部程序存储器或访问16位地址(MOVX@DPTR)的外部数据存储器时,P2口发送高位地址。应用中P2口利用强内部上拉来发送‘1’。在外部主机模式编程和校验中,P2口可接收一些控制信号和部分高地址位。P3口:P3口是一个带内部上拉的8位双向口。写入‘1’时P3口被内部上拉拉高,可用作输入。用作输入时,由于内部上拉的存在,P3口被外部器件拉低时将吸收电流(IIL)。在外部主机模式编程和校验中,P3口可接收一些控制信号和部分高地址位。RxD:串口输入。TxD:串口输出。INT0:外部中断0输入INT1:外部中断1输入T0:定时器/计数器0的外部计数输入。T1:定时器/计数器1的外部计数输入。WR:外部数据存储器写选通信号。RD:外部数据存储器读选通信号。3.3MAX232芯片此外,在本设计中还用到了专门用于串行通信的芯片MAX232。MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。MAX232内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v彩虹灯的设计与开发6和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电。15脚GND、16脚VCC(+5v)。MAX232芯片管脚如图3.4,图3.5所示:图3.4MAX232芯片管脚图图3.5MAX232芯片图彩虹灯的设计与开发73.4电源模块电源模块为系统板上其它硬件设备提供+5V电源,电源输入有两种方式,一种为交直流电源从电源插座输入,输入的电压要求,直流输入应大于7.5V,交流输入应大于5V,通过7805三端稳压器得到5V的直流电源供给系统其它模块工作,另一种为从USB接口获取+5V电源,只要用相应配套的USB线从电脑主机获取+5V直流电源,在电源模块中加有保护电路,即电路中有短路,不会对7805三端稳压器及电脑主机电源有损害!其电路原理图如图3.6所示:图3.6电源模块4软件设计4.1KeilC5系统介绍KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。首先启动Keil软件的集成开发环境,双击uVision的图标以启动该软件。UVison启动后,使用菜单“File-New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,可以在该窗口中输入汇编语言源程序。保存该文件,注意必须加上扩展名(汇编语言源程序一般用asm或a51为扩展名)在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(Keil支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式。彩虹灯的设计与开发8图4.1选择目标CPU图4.2加入文件点击“Project-NewProject…”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字(设为exam1),不需要扩展名。点击“保存”按钮,出现第二个对话框,如图4.1所示,这个对话框要求选择目标CPU(即你所用芯片的型号。