五彩灯控制器.doc_第1页
五彩灯控制器.doc_第2页
五彩灯控制器.doc_第3页
五彩灯控制器.doc_第4页
五彩灯控制器.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

五彩灯控制器引 言:随着人们生活环境的不断改善和美,在许多场合可以看到彩色霓虹灯。彩灯作为一种景观,安装在建筑物的适当地方作为装饰增添节日气氛,再是有广告宣传的作用,也可用在舞台上增强晚会灯光效果。LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。基于单片机的彩灯控制简单,易行,成本低。 设计内容及要求:设计5个按键实现对8个LED的控制,并利用数码管显示按下的按键号,5个按键对应的功能为:1号键:此键按下,对应所有的灯都熄灭。2号键:此键按下,LED1-LED8流动点亮。3号键:此键按下,LED1-LED8依次点亮。4号键:此键按下,LED1、LED3、LED5、LED7和LED2、LED4、LED6、LED8轮流点亮。5号键:此键按下,LED1LED8闪烁。一 设计目的:通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。二 具体设计:1问题分析: 该彩灯控制器是一种基于 AT89C51 单片机的彩灯控制器,实现对 LED 彩灯的控制。本方案以 AT89C51 单片机作为主控核心,与键盘、显示等模块组成核心主控制模块。在主控模块上设有 5个按键和1位七段码 LED 显示器,根据用户需要可以编写若干种亮灯模式,根据各种亮灯时间的不同需要,利用软件产生的延时来控制在不同时刻输出灯亮或灯灭的控制信号,然后驱动灯亮或灭。该新型 LED 彩灯与普通 LED 彩灯相比,具有体积小、价格低、低能耗等优点。2总体设计思想:五彩灯分为 2部分,即彩灯控制器(主控模块)和显示模块(受控模块)。整个系统工作由软件程序控制运行,根据需要,用户可以在 LED 彩灯工作时通过主控模块上的按键来控制LED彩灯的不同的点亮模式。上电后系统经过初始化,直接进入一号功能键模式。再等待按键输入控制信号控制中断的来临并扫描按键进入中断子服务程序实现1键、2键、3键、4键和5键的各种功能。LED 彩灯控制器按照程序设定好的按下不同按键实现不同的5个亮灯花样模式并显示按下的是几号功能键。该系统中用了两个中断,其中前面四个功能共用一个外部INTT0则5号功能通过外部中断INTT1来实现。七段码 LED 显示器用来显示当前是几号键已经按下,这两个功能都是通过查询而进入不同的中断子程序。在硬件上单片机选用MSC-51系列的80C51,P2口输出控制信号控制LED灯的亮或灭,单片机的串行输出接上74HC164转换成并行输出来控制七段码LED显示器。单片机控制器晶振电路键盘电路显示电路显示电路图(1)系统的原理框图3.具体实现方法:本设计是基于AT89C51单片机的键盘控制及显示电路设计,从系统的设计功能上看,系统可分为两大部分,即键盘输入控制部分和显示部分,对于每一个部分都有不同的设计方案,起初我对键盘和显示每个都拟订了下面两种方案:键盘部分:第一种方案:采用扫描键盘,可以用普通按键构成44矩阵键盘,直接接到80C51单片机的P1口,高四位作为行,低四位作为列,通过软件完成键盘的扫描和定位。这种方式相对下面的独立式键盘节省了很多的I/O口。第二种方案:键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。显示部分:第一种方案:显示部分采用静态显示方法,所谓静态显示,就是每一个显示器都要占用一个独立的具有锁存功能的接口用于存储字形码。这样单片机只要把要显示的字形代码发送到接口电路,从而输送至各数码管显示。被显示的数据只要输出一次,直到要显示新的数据时,再发送新的字形码。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。第二种方案:显示部分采用动态显示。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。动态显示是利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个数码管有显示。由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。本设计可采用74HC164驱动七段数码管显示。此方单片机的I/O口占用较少,可以节约单片机接口资源,而且功耗更低。由于本设计要求按键较少,且本次设计只是对所学知识的一次实践,设计要求简单,容易实现,成本低廉。比较以上各种设计方案,采用独立式键盘,因为本系统只有一个七段数码管显示故显示部分选用静态,这样的设计比较适合本次设计,故最终决定选用这样的一种搭配设计方案。对于LED彩灯,将采用p2口和1k欧姆的限流电阻组成外围电路驱动LED彩灯。在程序设计方面,将显示程序做成一个中断子程序。另外可以将键盘扫描程序置于中断程序中,采用扫描方式检测键盘的按键情况。计时方面,利用软件产生的延时4.硬件连线图及流程图:图(2)硬件连线图硬件连接说明:本系统以8051单片机为核心。单片机采用内部振荡的方式。P2口通过1欧姆的限流电阻与8个LED彩灯相连。从串行口输出通过74HC164输出LED数码管的字形码,低电平有效。4个功能按键和P1口相连,中间通过10K的电阻与+5V电源相连,按键另一端接地,P1口低电平时表示按键被按下。Y5.主程序的流程图 Y X开始P1.2=0?INTT0P1.1=0?INTT1P1.3=0?中断请求第i种键模式彩灯初始化P1.0=0?NYNNYNYYYNNN图(3)主程序的流程图四PROTEUS调试过程及现象:上电后LED数码管显示8,程序处于等待状态,LED灯进入1号功能键模式并待中断。测到有键按下后,转到相应的中断子程序执行。没有中断则循环当前的模式。此时的模式为一号功能键模式即所有的灯都熄灭。调试如图(4)所示:图(4)仿真初始状态图1号键按下后,产生中断,硬件自身识别外部中断0或1,并扫描键盘进入相应的中断子程序。此时产生外部中断并扫描键盘进入子程序实现1号键功能,LED彩灯为全灭,LED数码管显示1,此后一直循环此功能直到下一个中断产生才结束。调试如图(5)所示:图(5) 功能1仿真图2号键按下后,产生中断,硬件自身识别INTT0或INTT1并扫描键盘进入相应的中断子程序。此时产生INTT0中断并扫描键盘进入子程序实现2号键功能,LED1-LED8流动点亮,LED数码管显示2,此后一直循环此功能直到下一个中断产生才结束。调试如图(6)所示:图(6)功能2仿真图3号键按下后,产生中断,硬件自身识别INTT0或INTT1并扫描键盘进入相应的中断子程序。此时产生INTT0中断并扫描键盘进入子程序实现3号键功能,LED1-LED8依次点亮,LED数码管显示3,此后一直循环此功能直到下一个中断产生才结束。调试如图(7)所示:图(7)功能3仿真图4号键按下后,产生中断,硬件自身识别INTT0或INTT1并扫描键盘进入相应的中断子程序。此时产生INTT0中断并扫描键盘进入子程序实现4号键功能,LED1、LED3、LED5、LED7和LED2、LED4、LED6、LED8轮流点亮,LED数码管显示4,此后一直循环此功能直到下一个中断产生才结束。调试图(8)所示:图(8)功能4仿真图5号键按下后,产生中断,硬件自身识别INTT0或INTT1并扫描键盘进入相应的中断子程序。此时产生INTT0中断并扫描键盘进入子程序,LED数码管显示键号5,等上一次显示周期完毕后实现4号键功能,LED1LED8闪烁,此后一直循环此功能直到下一个中断产生才结束。调试仿真如图(9)。图(9)功能5仿真图五调试问题及解决方法: 开始在硬件上想采用并行输出驱动七段数码管,但后来发现单片机的P1口,P2口都用上了,P3口又作第二功能输出。P0口通常做数据复用总线,要作I/O借口那还得接上拉电阻,后来就采用了串行输出的办法来解决,所以选用了74HC164进行串行和并行的转换再输出驱动数码管。后来调试的时候又出现了问题,编写程序的时候把二号键的功能写在前面了,导致系统一上电就默认实现二号键功能,即LED彩灯实现LED1-LED8流动点亮。还在硬件上的链接和软件有一点点的不错位,结果导致数码管不能正确显示按下的功能键,后来我们通过修改软件得到了纠正。至于系统上电后默认的状态,我们就设为2号键的功能,在软件上我们让系统设为一上电就执行1号键的LED彩灯亮或灭的程序,而数码管显示程序不执行,这样系统在默认的时候会使彩灯就是全灭。对于数码管显示不正确我没就没有去修改软件区解决,而是我在硬件上进行了修改。六、心得体会 由本次课程设计,我单片机的原理和应用有了进一步的了解。回顾起此次单片机课程设计,在两周的日子里,我感触颇多。从选题到定稿,由理论到实践,对于我来说是一个复杂、头痛的过程。不过在此过程中,不仅巩固了我以前所学过的知识,且可以学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计过程中,我遇到了一些问题,所设计的控制器有部分功能不完善。这些表明我学习中存在很多不足之处。“路漫漫其修远兮,吾将上下而求索”,以之勉励自己。 很感谢这次课程设计,让我真正感受到的合作的重要性。七、参考文献:2 张为明,沈新群等.MCS51系列单片机系统及其应用 M.北京:高等教育出版社,19921 曾屹.单片机原理与应用 M.湖南:中南大学出版社,20093 何立民.单片机应用技术选篇(5) M .北京:北京航天航空大学出版社,19974 杨光友.单片机微型计算机原理及接口技术 M.北京:中国水利数电出版社。2002八、源程序ORG 0000HLJMP MAINORG 0003HLJMP INTT0ORG 0013HLJMP INTT1ORG 0050HMAIN:MOV TCON,#05H MOV IE,#85HDIS1:MOV P2,#0FFH ACALL DELAY LJMP RETTDIS2:MOV R1,#08H MOV A,#0FEH L1: MOV P2,A RL A ACALL DELAY DJNZ R1,L1 LJMP RETTDIS3:MOV R1,#08H MOV A,#0FEH L2: MOV P2,A CLR C RLC A ACALL DELAY DJNZ R1,L2 LJMP RETTDIS4:MOV P2,#55H ACALL DELAY MOV P2,#0AAH ACALL DELAY LJMP RETTDIS5:MOV P2,#00H ACALL DELAY MOV P2,#0FFH ACALL DELAY LJMP RETTRETT:MOV A,#00H JMP A+DPTRDELAY:MOV R2,#5 L3:MOV R3,#200 L4:MOV R4,#200 DJNZ R4,$ DJNZ R3,L4 DJNZ R2,L3 RETINTT0:JNB P1.0,L11 JNB P1.1,L12 JNB P1.2,L13 JNB P1.3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论