1、本科生毕业设计基于单片机可变色灯泡设计院 系 电气(机电)工程学院 专 业 电气工程及其自动化 班 级 级本4班 学 号 学 生 姓 名 孙国强 联 系 方 式 指 导 教 师 苏良昱 职称:教授 年 5 月独 创 性 声 明本人郑重申明:所呈交毕业设计是本人在指导老师指导下所取得研究结果。除了文中尤其加以注释和致谢地方外,本设计中不包含任何其它人已经发表或撰写研究结果。和本研究结果相关全部些人所做出任何贡献均已在设计中作出了明确说明并表示了谢意。署名: 年月 日授 权 声 明本人完全了解许昌学院相关保留、使用本科生毕业设计要求,即:有权保留并向国家相关部门或机构送交毕业设计复印件和磁盘,许可
2、毕业设计被查阅和借阅。本人授权许昌学院能够将毕业设计全部或部分内容编入相关数据库进行检索,能够采取影印、缩印或扫描等复制手段保留、汇编本设计。本人设计中有原创性数据需要保密部分为(如没有,请填写“无”): 学生署名: 年 月 日指导老师署名: 年 月 日基于单片机可变色灯泡设计摘 要本文介绍了一个由12个LED发光二极管组成四个可变色灯泡多功效发光形式简易彩灯控制系统软硬件设计过程,方案以AT89C51单片机作为主控关键, 且以复位电路、时钟电路、按键电路、中止电路和彩灯显示电路组成,利用软件编程烧录程序到单片机来实现对LED彩灯进行多样控制。该控制电路能完成多个闪灯模式和随意变换想要闪烁方法
3、和控制彩灯闪烁频率等功效。该系统含有电路结构简单、易操作、硬件少、体积少、成本低、能耗低等优点,有一定实用价值。关键词: 8051单片机 LED彩灯 控制系统 闪烁方法Design ofcolor changinglampbased on SCMAbstractThis paperintroduces the hardware and software designprocess ofasimplelanternconsists of 12light-emitting diode LEDconsisting of fourcolorlightmultifunctionallightingcon
4、trol system,program for AT89C51 microcontroller as the controlcore,and thereset circuit,clock circuit,keyboard circuit,interrupt circuitdisplay circuitand thelights,the use of softwareprogrammingthe program to themicrocontroller to achievea variety ofcontrolof LED lights.Flashinglightsand thecontrol
5、 ofthe control circuitcancomplete a variety offlashmode andrandom transformtotheflicker frequencyfunction.The systemhas the advantages of simple circuit structure,easy operation,less hardware,small volume,low cost,low energy consumption,has a certain practical value.Keywords:8051 MCUflashingLED ligh
6、ts control system目录1. 绪论61.1选题意义61.2 外界研究,71.3本文关键内容72. 设计方案72.1设计要求82.2设计限定92.3按键部分92.4显示模块93. 硬件电路设计103. 1 单片机选择1032 仿真软件选择123.3单片机最小系统133.4按键控制电路153.5中止电路163.6 LED显示电路1637 仿真部分总结184. 软件编程设计2041 编程软件2042 延时部分2043 按键部分2044 综合仿真21参考文件23附 录 源 程 序24致 谢261. 绪论1.1选题意义20世纪以后现身于世单片机以其超高性价比赢取了世人青睐,以后单片机在各个
7、领域全部如雨后春笋般出现。得到了广泛应用,开启了自动化时代新篇章。单片机含有运行速度快、抗干扰能力强、体积小、性能可靠、环境要求不高、价格低廉等特点。使用时无需更改内部结构,只需为其搭配适宜外围电路就能够组成一套完整针对性极强单片机控制系统。伴随社会发展进步,大家对生活质量度而要求也越来越高,彩灯越来越广泛出现在了我们生活里。在过年过节,举行派对,广告宣传灯多个领域,彩灯全部很好完成了营造气氛,活跃气氛职能。彩灯即使简单,但一直是一个被改善技术以往角落,多年以来并没有多少改善。市面上彩灯多为一次性彩灯,颜色单一,改变方法单一,通常彩灯用了一次先发给换个新花样了,就只能把旧扔掉,不环境保护,又浪
8、费钱财。所以我考虑能够设计改善已经有彩灯。增加灯变换方法,并能够经过简单改变,来改变彩灯变换方法。可提前设定多个常见变换方法,经过按键来改变多个预先设定变换方法。而且本设计还将引入光三原色交融来进行灯换色,一灯多色。本设计基于单片机能愈加好实现现有彩灯功效,并达成以达成换色,换方法不过不换硬件目标。1.2 外界研究,本设计在中国外已经有实物上市出售,研究结果显著,不过仍然存在不足和缺点,需要改善和加强。依据市场效果来看,市场反应很好。现在研究出来彩灯已经能够实现彩灯自由变换功效,但仍需改善。价格太贵是其最大弊端。 我在进行选题时候首先考虑就是设计实用性和经济性,而且能够最大化利用自己知识处理生
9、活中碰到问题,对于可变色灯泡这个选题,首先它延续了大家对舒适生活一贯要求,让创新愈加好融入到生活中去,提供新设备,提升大家生活舒适度;其次,对于可变色灯泡研究,本设计更主张人性化,经济化,吸纳了很多类似产品优点,对于经过光三原色搭配,切实降低了可变色灯泡成本。1.3本文关键内容在此次设计中,可变色灯泡包含按键模块、led显示模块等,要求本设计能够经过简单改变实现彩灯改变,确保设计合理实用性。我首先需要处理是对于硬件电路按键次序调整和反应模块实现,以后经过软件编程使软硬件相结合,从而确保按键功效愈加好实现,反应模块关键是依据单片机特征来实现。在此次设计中,我采取proteus软件进行电路仿真处理
10、,另外经过keil编写程序,最终将两个软件结合使用,以此实现本设计仿真处理。 本篇文章包含四个章节,分别是绪论:包含设计意义和选题背景介绍;设计方案:对本设计基础方案进行介绍和部分模块设计;硬件设计部分需要利用PROTEUS软件对于本设计各个部分加以分析;软件设计需要利用KEIL软件使单片机完成设计要求功效。2. 设计方案依据此次设计论文题目,依据设计要求首先绘出设计单片机系统整体控制原理框图图2-1所表示图2-1 系统总体设计框图设计首先考虑是基于单片机基础上进行控制,将经过按键模块控制单片机,然后利用单片机原理,对反应模块和显示模块进行控制操作,本章节将对整个设计方案进行计划分析,对各个模
11、块进行设计,预先对不一样部分功效做出预想和设计,便于以后在硬件设计部分进行制作。2.1设计要求本设计是一个可变色彩灯,设计要求是:能够经过按键来改变彩灯单个灯泡色彩和才呢过变换方法。当按动其中一个按键以后,彩灯便会在此按键代表方法下运行,按动其它按键时,原变换结束,按动按键代表运行方法开始实施,以一个新运行方法变换。可变色灯泡需要包含按键部分、显示部分等,要求能够在不改变硬件只改变部分软件情况下就能实现等跑变色,及变样变换。此次仿真选择protues软件,经过AT89C51单片机,使用其定时功效和外部电路,实现彩灯闪烁,变色,变样功效。 2.2设计限定因为不一样人群,对彩灯需求不一样,为了确保
12、可变色彩灯实用性,本设计提供多个模式,以确保不一样类型人在不一样模式基础上做少许改变就能够基础实现想要功效。不一样人需要灯泡闪烁间隔和亮时间也不一样,依据不一样人群需求能够提供多个预先设置方案。至于闪烁定时,也能够依据不一样人需求来提供。2.3按键部分按键部分需要能够控制单片机,按下对应按键,就会有对应动作,设计奖采取6个按键开关。按键可实现5个模式选择,一个暂停按钮。也能够依据不一样人群需要增加按键,增加程序模块,以达成增加模式效果。为了充足利用端口,本设计不提供开关按钮,每一个模式按键均能够当做开始按钮,暂停开关可作为关闭按键。按键模块设计图。图 2-2 按键模块设计图按键控制方法和原理:
13、模式一、模式二、模式三、模式四、模式五:分别以第一个、第二种、第三种、第四种、第五种模式运行彩灯系统 开/关:暂停彩灯、重新打开彩灯 经过以上设计,使按键模块实现对单片机操作,当然,这些操作按键是由软件输入单片机中,经过软件形式对单片机加以操作和控制,每个按键原理基础相同,分别给输出口以不一样高低电平组合,来实现多种模式。2.4显示模块显示模块本设计对彩灯实际运行做了模拟性仿真,基于条件限制,本设计采取了四个灯泡组成简单彩灯系统。四个灯每个均由红、蓝、绿三个led灯组成,以达成变色目标。因为本模拟设计对于彩灯颜色没有特殊要求,光三原色组合能够满足需求,所以每个灯泡由三个、颜色led灯组成即可。
14、即本模拟设计经过十二个led灯组成四个可变色彩灯系统。3. 硬件电路设计3. 1 单片机选择(1)AT89C51单片机简单介绍 对于这次设计,我将选择AT89C51单片机。该类型芯片采取了ATMEL企业生产高密度非易失性存放器技术,含有MCS51系列单片机全部功效,片上还放置了闪存存放器单元和通用8关键处理器,从而能够实现很强功效大。图3-1是单片机AT89C51引脚图。图 3-1 AT89C51双列直插式引脚图AT89C51各个引脚作用:VCC:供电电压+5V。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口管脚第一次写1时,被定义为高阻输入。P
15、0能够用于外部程序数据存放器,它能够被定义为数据/地址第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必需被拉高。本系统中P0口接LED数码管段选段。 P1口:P1口是一个内部提供上拉电阻8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是因为内部上拉缘故。在FLASH编程和校验时,P1口作为第八位地址接收7。P2口:P2口为一个内部上拉电阻8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,
16、且作为输入。并所以作为输入时,P2口管脚被外部拉低,将输出电流。这是因为内部上拉缘故。P2口当用于外部程序存放器或16位地址外部数据存放器进行存取时,P2口输出地址高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存放器进行读写时,P2口输出其特殊功效寄存器内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。本系统中语音芯片ISD1420地址端接P2口。P3口:P3口是8个带内部上拉电阻双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,因为外部下拉为低电平,P3口将输出电流,这是因为上拉缘故。P3口也可
17、作为AT89C51部分特殊功效口,如表2.5所表示。P3口同时为闪烁编程和编程校验接收部分控制信号。表2.5P3口第二功效口管脚备选功效信号名称P3.0RXD串行输入口P3.1TXD串行输出口P3.2/INT0外部中止0P3.3/INT1外部中止1P3.4T0记时器0外部输入P3.5T1记时器1外部输入P3.6/WR外部数据存放器写选通P3.7/RD外部数据存放器读选通RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期高电平时间。ALE/PROG:当访问外部存放器时,地址锁存许可输出电平用于锁存地址地位字节。在平时,ALE端以不变频率周期输出正脉冲信号,此频率为振荡器频率1/6。
18、所以它可用作对外部输出脉冲或用于定时目标。然而要注意是:每当用作外部数据存放器时,将跳过一个ALE脉冲。如想严禁ALE输出可在SFR8EH地址上置0。此时, ALE只有在实施MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。假如微处理器在外部实施状态ALE严禁,置位无效。PSEN:外部程序存放器选通信号。在由外部程序存放器取指期间,每个机器周期两次/PSEN有效。在访问外部数据存放器时,这两次有效PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存放器(0000H-FFFFH),不管是否有内部程序存放器。注意加密方法1时,EA将内部锁定为RESET;当E
19、A端保持高电平时,此间内部程序存放器。在本设计中,对ROM读操作只在内部程序存放器中,所以EA置应高电平。XTAL1:反向振荡放大器输入及内部时钟工作电路输入。XTAL2:来自反向振荡器输出8。(2)AT89C51单片机关键性能:和MCS-51产品指令系统兼容 、4k字节可重新擦写Flash闪速存放器、1000次可擦写周期、全静态操作:0Hz-24MHz、1288字节内部RAM、三级加密程序存放器、32个可编程I/O口线、2个16位定时/计数器、6个中止源 、可编程串行UART通道、低功耗空闲和掉电模32 仿真软件选择此次设计采取protues仿真软件,该软件ISIS是一款能够经过自己动手画电
20、路图来对实物进行仿真软件。这个软件不仅支持多种型号单片机,元件库齐全,而且使用很方便,仿真效果很好,是一款很值得向大家推荐能使用单片机进行实物仿真软件。proteus 能够很好对单片机电路进行实物模拟试验,模拟效果相较于其它实物试验要好多。使用者在使用本软件过程中,能够依据本身需求,随心所欲来画电路图、补充电路图和修改电路图。在合适操作后可立即进行仿真以检验该电路实际运行效果,充足填补了我们在实际应用时无法一次次修改硬件电路弊端。采取软件修改硬件电路方法,愈加方便快捷。在使用软件绘制电路图时候我们还能够依据自己实际需求选择使用或不使用软件提供电路元器件,也能够经过自己改变元器件参数,来得到不一
21、样试验数据。试验结果若符合预期要求,便可进行下一步,依据软件绘图来进行实物制作,这种方法经济快捷使得其本身含有很大实用价值。3.3单片机最小系统单片机要工作起来就需要为其提供外部硬件电路,最基础外部电路扩单片机、时钟电路、复位电路等几部分,而单片机最小电路则只是由复位电路和时钟信号电路组成(图3-2)。图3-2 单片机最小系统图复位电路:为了确定单片机起始工作状态而且完成单片机开启过程,单片机复位方法有手动复位和上电自动复位两种。本设计采取后者,上电自动复位。时钟电路:单品机最小系统中另一个模块叫做时钟电路。时钟电路存在是为了产生时钟频率,由一个晶振和两个小电容组成。因为AT89C51单片机内
22、部一个振荡器由一个反向放大器组成,当XTAL1和XTAL2分别作为振荡电路输出和输入端时,时钟可有内部和外部产生。当在XTAL1和XTAL2引脚上接定时元件,内部振荡电路就会产生自激震荡。单片机系统采取石英晶体和电容组成并联谐振会路作为定时元件。选择晶振频率为12MHz,电容为30Pf。电容大小对系统频率起微调作用。 3.4按键控制电路本设计按键控制电路由五个按键开关组成。这五个按键开关分别接在AT89C51单片机p1.0-p1.4引脚上,是为了实现一对一控制彩灯不一样颜色变换及闪烁形式。当按下key1时,12个led发光二极管以第一个闪烁发光方法运行,从而实现三个一组灯泡不一样颜色变换和闪烁
23、。当按下按键key2时候,十二个led发光二极管以第二种方法闪烁,从而实现四个灯泡不停变换颜色闪烁第二种模式。同理,当按下开关能够3时十二个led二极管以第三种方法闪烁,实现四个可变色灯泡第三种按键控制电路(图3-3)是由4个按键开关组成。她们分别接在单片机AT89C51P1.0P1.3引脚上,为了一对一方法控制16个LED彩灯不一样闪烁形式。当按下开关key1时,16个LED发光二极管闪烁第一个彩灯方法;当按下开关key2时,16个LED发光二极管闪烁第二种彩灯方法;同理,当按下开关key3时,16个LED发光二极管闪烁第三种彩灯方法;当按下开关key4时,16个LED发光二极管闪烁第四种彩
24、灯方法。图3-3 按键控制电路图3.5中止电路中止电路作用是,不管彩灯正在以哪种方法运行,按下中止按钮以后,该过程一定终止,十二支led不一样色发光二极管均处于熄灭状态,停止目前工作。当在按下一次中止按钮时候,彩灯继续第一次按下中止按钮前方法,从头开始工作。为此我们经过单片机p3.3引脚来接上中止按钮,来实现对彩灯中止控制。中止控制按钮接法图3-4图3-4中止控制电路图3.6 LED显示电路 四个可变色灯泡,由十二个发光二极管组成。发光二极管(Light-Emitting Diode),简称LED,led 常被用作微型计算机和数字电路输出装置,是一个含有体积小、耗电低等优点能讲点能转化为光能半
25、导体器件。Led两端能够加上正向电压,当由电流流过led时,她便会发光,将电能转化为光能。而且led亮度会伴随经过它本身电流大小而改变,不过过大电流也会烧毁led,大电流会使led使用寿命缩短。一般led正向电流通常不会低于5mA,同时也不会高于20mA.本设计led采取灌电流方法,即电流从电流源出发,流经led以后进入单片机I/O口。这是因为51单片机I/O口是弱上拉方法,高电平时只能输出几十微安电流,不过其输出低电平时又能够输入几十微安电流,故而,为了确保led正常发光采取了这种管电流方法。为了避免流过led电流过大,从而烧坏led,本设计在led和电源之间串联上了一个电阻,以降低电流。当
26、p0口和p2口输出高电平时(即p0/p2=1),led两端没有压降,一次,全部led全部是熄灭不亮。当p0口和p2口输出低电平时(即p0/p2=0),led正向导通发光。因为led两端串联电阻起分压作用,造成led两端电压约为1.7V,而串联限流电阻两端电压约为3.3V。经过查阅AT89C51单片机技术手册,我们发觉,单个I/O口输入电流最大值不能超出10mA;p0口输入电流总和最大值不能超出26mA;p1口、p2口、p3口输入电流总和最大值不能超出15mA;全部I/O口输入电流总和最大值不得超出71mA。Led显示电路接法,图3-5。图3-5 led显示电路图37 仿真部分总结图3-6所表示
27、,本设计关键控制部件为AT89C51单片机。共四十个引脚,此次设计选择p2口和p0口进行led变色灯泡发光部分,p1口进行关键控制按键模块传送,p3口用作中止按钮传送,另外还有重置电路和振荡电路部分。本设计选择AT89C51单片机p0口六个引脚(p0.0p0.5)和p2口德六个引脚(p2.0p2.5)作为显示数据传送端口。因为这个设计四个可变色灯泡均由三个三原色led灯组成,所以只需要使用p0口和p2口十二个引脚,足够数据能够传输显示,依据设计原理图,本设计将数码管引脚经过p0口和p2口12个引脚(p0.0p0.5、p2.0p2.5)接上那个led灯以后再接上限电电阻就能够实现显示模块功效了。
28、此次可变色灯泡设计,选择p1口5个引脚(p1.0p1.4)分别用作按键模块第一个模式、第二种模式、第三种模式、第四种模式、第五种模式这五个按键输入端口首先把这5个引脚经过按键和地相接,这么,假如按下对应按钮,那这个按键和单片相连引脚就会变成低电平,从而给单片机输入一个低电平脉冲,再依据单片机内部软件功效,分别实现每个按键功效。中止按钮接在p3.3上,其原理和以上五个模式按键原理相同,再次不在反复说明。图 3-6 硬件设计原理图4. 软件编程设计41 编程软件此次设计选择keil为编程软件。单片机使用有两种设计,一个为硬件电路设计,一个为软件设计。单片机软件汇编分为手工汇编和机器汇编两种汇编方法
29、。伴随单片机开发技术日新月异不停发展进步,设计人员对单片机使用更是越来越熟练。而一般汇编语言夜早已因为愈加高级而且愈加实用语言诞生而不复存在。Keil软件是用来开发51系列单片机常见软件之一。 Keil能够进行 c51汇编语言,PLM语言和C语言程序设计,而且它界面十分友好,而且人性化,对于我们首次接触使用者来说,也是很好学习。42 延时部分在软件设计中会常常见到延时部分,所以对延时程序进行统一编程,方便以后进行程序调用,方便省时。设计编写延时程序时,需要定义延时头文件DELAY_h,编写时为了满足设计需要,在此文件中定义了四个延时函数,分别是1ms延时函数、2s延时函数、0.2s延时函数和5
30、ms延时函数。定义时,必需将每个函数全部起好名称区分清楚,预防用错。在函数调用时,直接就能够调用函数名来使用。43 按键部分依据硬件要求,本设计一共需要定义六个按键,分别是第一个变换模式、第二个变换模式、第三个变换模式、第四个变换模式、第五个变换模式和一个中止模式,为了满足设计需求,每一个按键按下后全部必需实现其目标而且经过led灯变换显示出来。依据原理,绘制了图4-1原理框图以下:图4-1 按键设计原理图44 综合仿真仿真部分总结:在仿真之前,首先需要将keil和protues进行联调,然后在keil中用源程序项目生成HEX文件后,在protues中导入单片机,即可在protues中进行仿真
31、。图4-2所表示,利用仿真图左侧按键部分,分别按动由上到下五个按钮按钮,系统开始以各个模式运行,四个可变色灯泡以不一样颜色往返变换跳跃闪烁。按动最下方按钮来实现中止作用。从而实现了本设计可变色灯泡全部功效。图 4-2 仿真原理图参考文件1 曹天汉,模拟电子技术,北京师范大学出版社 8月2 侯玉宝、陈忠平、李成群,基于Proteus51系列单片机设计和仿真电子工业出版社 9月3 曹天汉、钱卫星、张雪娟,单片机原理和接口技术(第3版),电子工业出版社3月4 张国华, 张弛, 吴冬芳等. 基于单片机学习式倒计时器 J. 煤炭技术, ,30(5):47-495 李全利 ,单片机原理和接口技术M,高等教
32、育出版社 12月6 李忠国、陈刚 ,单片机应用技能实训,人民邮电出版社 7 刘丹. Protues和Keil联合仿真在单片机教学中应用 J. 科教导刊, ,(23):120-1218 李生明, 杨红. PROTUES软件在学习单片机中应用 J. 清远职业技术学院学报, ,03(6):40-429 马刚, 李向仓. 用Proteus和Keil整合构建单片机虚拟仿真平台 J. 现代电子技术, ,29(24):129-13110 伍冯洁, 谢斌. 基于Proteus和Keil单片机试验教学改革J. 试验室研究和探索, ,28(7):125-12711 唐前辉, 丁明亮. Proteus ISIS和K
33、eil在单片机教学中应用 J. 重庆电力高等专科学校学报, ,11(4):46-4912 胡敬朋, 王聪. 单片机项目教学研究及实践 J. 电气电子教学学报, ,31(5):82-84 附 录 源 程 序void timer0(void)interrupt 1 using 1TL0= 0x00;/重置初值TH0 = 0xBE;TL0 = 0xE5;key=P1;switch(key)case 0xFE:state=1;stateTemp=1;break;case 0xFD:state=2;stateTemp=2;break;case 0xFB:state=3;stateTemp=3;break
34、;case 0xF7:state=4;stateTemp=4;break;case 0xef:state=5;stateTemp=5;break;default:break;void _int()interrupt 2 using 2 if(flag=0) state=6; flag|=1; else state=stateTemp; flag&=0; void main() IT1=1;IE|=0x86;TMOD= 0x21;TH0 = 0xBE;TL0 = 0xE5;ES = 0;/严禁串口中止TR0 = 1;/开启定时器0,开始定时while(1)switch(state)case 1:
35、fun1();break;case 2:fun2();break;case 3:fun3();break;case 4:fun4();break;case 5:fun5();break;case 6:P0=0xFF;P2=0xFF;break;default:break;致 谢在毕业设计论文立即完成之际,我想向曾经给我帮助和支持人表示衷心感谢。首先我要感谢我指导老师王红玲老师,她谆谆教导给了我莫大帮助,使这次毕业设计成了我一个很好实践锻炼机会,经过这次设计,我开阔了自己视野,学会了很多实际应用知识。其次我还要感谢大学四年来全部老师,她(她)们为我打下电气类专业知识基础;同时我还要感谢我全部同学,正是因为有了你们支持和激励,我这次毕业设计才能顺利完成。 最终我要感谢电气(机电)工程学院和我母校许昌学院四年来对我大力栽培,四年大课时光,让我愈加好成长,以后我将继续努力,为了自己目标而奋斗