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 fourcolorlightmultifunctionallightingco
4、ntrol 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 thecontro
5、l 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 lig
6、hts 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时,被定义为高阻输入。P0可以用于外部程序
15、数据存储器,它可以被定义为数据/地址第八位。在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口也可作为AT89C51
17、某些特殊功能口,如表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;当EA端保持高电平时,此间
19、内部程序存储器。在本设计中,对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发光二极管以第一种闪烁发光方式运营,从而实现三个一组灯泡不同颜色变换和闪烁。当按下按键ke
23、y2时候,十二个led发光二极管以第二种方式闪烁,从而实现四个灯泡不断变换颜色闪烁第二种模式。同理,当按下开关可以3时十二个led二极管以第三种方式闪烁,实现四个可变色灯泡第三种按键控制电路(如图3-3)是由4个按键开关构成。她们分别接在单片机AT89C51P1.0P1.3引脚上,为了一对一方式控制16个LED彩灯不同闪烁形式。当按下开关key1时,16个LED发光二极管闪烁第一种彩灯方式;当按下开关key2时,16个LED发光二极管闪烁第二种彩灯方式;同理,当按下开关key3时,16个LED发光二极管闪烁第三种彩灯方式;当按下开关key4时,16个LED发光二极管闪烁第四种彩灯方式。图3-3
24、 按键控制电路图3.5中断电路中断电路作用是,无论彩灯正在以哪种方式运营,按下中断按钮后来,该过程一定终结,十二支led不同色发光二极管均处在熄灭状态,停止当前工作。当在按下一次中断按钮时候,彩灯继续第一次按下中断按钮前方式,从头开始工作。为此咱们通过单片机p3.3引脚来接上中断按钮,来实现对彩灯中断控制。中断控制按钮接法如图3-4如图3-4中断控制电路图3.6 LED显示电路 四个可变色灯泡,由十二个发光二极管构成。发光二极管(Light-Emitting Diode),简称LED,led 常被用作微型计算机与数字电路输出装置,是一种具备体积小、耗电低等长处能讲点能转化为光能半导体器件。Le
25、d两端可以加上正向电压,当由电流流过led时,她便会发光,将电能转化为光能。并且led亮度会随着通过它自身电流大小而变化,但是过大电流也会烧毁led,大电流会使led使用寿命缩短。普通led正向电流普通不会低于5mA,同步也不会高于20mA.本设计led采用灌电流方式,即电流从电流源出发,流经led而后进入单片机I/O口。这是由于51单片机I/O口是弱上拉方式,高电平时只能输出几十微安电流,但是其输出低电平时又可以输入几十微安电流,故而,为了保证led正常发光采用了这种管电流方式。为了避免流过led电流过大,从而烧坏led,本设计在led和电源之间串联上了一种电阻,以减少电流。当p0口和p2口
26、输出高电平时(即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延时函数和5ms延时
30、函数。定义时,必要将每个函数都起好名称区别清晰,防止用错。在函数调用时,直接就可以调用函数名来使用。43 按键某些依照硬件规定,本设计一共需要定义六个按键,分别是第一种变换模式、第二个变换模式、第三个变换模式、第四个变换模式、第五个变换模式和一种中断模式,为了满足设计需求,每一种按键按下后都必要实现其目并且通过led灯变换显示出来。依照原理,绘制了图4-1原理框图如下:图4-1 按键设计原理图44 综合仿真仿真某些总结:在仿真之前,一方面需要将keil与protues进行联调,然后在keil中用源程序项目生成HEX文献后,在protues中导入单片机,即可在protues中进行仿真。如图4-2
31、所示,运用仿真图左侧按键某些,分别按动由上到下五个按钮按钮,系统开始以各个模式运营,四个可变色灯泡以不同颜色来回变换跳跃闪烁。按动最下方按钮来实现中断作用。从而实现了本设计可变色灯泡所有功能。图 4-2 仿真原理图参照文献1 曹天汉,模仿电子技术,北京师范大学出版社 8月2 侯玉宝、陈忠平、李成群,基于Proteus51系列单片机设计与仿真电子工业出版社 9月3 曹天汉、钱卫星、张雪娟,单片机原理与接口技术(第3版),电子工业出版社3月4 张国华,张弛,吴冬芳等. 基于单片机学习式倒计时器 J. 煤炭技术,,30(5):47-495 李全利 ,单片机原理与接口技术M,高等教诲出版社 12月6
32、李忠国、陈刚 ,单片机应用技能实训,人民邮电出版社 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和Keil在单片机教学中应用 J. 重庆
33、电力高等专科学校学报,,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;case 0xF7:state=4;st
34、ateTemp=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:fun1();break;case 2:f
35、un2();break;case 3:fun3();break;case 4:fun4();break;case 5:fun5();break;case 6:P0=0xFF;P2=0xFF;break;default:break;致 谢在毕业设计论文即将完毕之际,我想向曾经予以我协助和支持人表达衷心感谢。一方面我要感谢我指引教师王红玲教师,她谆谆辅导给了我莫大协助,使这次毕业设计成了我一种较好实践锻炼机会,通过这次设计,我开阔了自己视野,学会了诸多实际应用知识。另一方面我还要感谢大学四年来所有教师,她(她)们为我打下电气类专业知识基本;同步我还要感谢我所有同窗,正是由于有了你们支持和勉励,我这次毕业设计才干顺利完毕。 最后我要感谢电气(机电)工程学院和我母校许昌学院四年来对我大力栽培,四年大学时光,让我更好成长,此后我将继续努力,为了自己目的而奋斗