基于单片机的键控彩灯电路设计_第1页
基于单片机的键控彩灯电路设计_第2页
基于单片机的键控彩灯电路设计_第3页
基于单片机的键控彩灯电路设计_第4页
基于单片机的键控彩灯电路设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

信息传媒系2013级高职学生毕业设计(论文)任务书设计题目基于单片机的键控彩灯电路设计学生姓名 系别信息传媒系专业电子信息工程班级电子13301班指导教师职称讲师课题来源指导老师拟定任务书下达时间2015.8.24系主任签字教研室主任签字1、毕业设计(论文)主要内容及技术指标本课题一单片机为核心,利用其中断器和8个LED,设计一个彩灯控制器。有以下功能:1)花型种类不少于四中,花型自拟;2)可用键控制彩灯按预设的花型进行变换;3)可用键控制分别用快/慢俩种节拍实现花型变换。2、毕业设计(论文)基本要求①编写设计(论文),格式按烟台工程职业技术学院毕业设计(论文)要求完成。②完成项目开发,自行设计完成。所需数据资料及参考文献[1]高峰.单片微型计算机原理与接口技术.科学出版社,2007[2」武庆生,仇梅.单片机原理与应用.电子科技大学出版,1998,12[3]朱定华.单片机原理与接口技术.电子工业出版社,2001,4进度计划序号阶段性工作及成果时间安排1申报毕业设计(论文)课题2015.82开题会,各指导教师下达任务书。2015.8.243全体指导教师及学生大会:考试时间调整;各指导教师检查工作进展情况。2015.9.14课题设计、撰写论文、实物制作2015.9.2—2015.10.85上交有关材料给指导老师2015.10.96答辩会2015.10.15烟台工程职业技术学院信息与传媒系电子信息专业13级毕业设计(论文)题目:基于单片机的键控彩灯电路设计姓名学号指导教师(签名)2015年10月12日烟台工程职业技术学院毕业设计(论文)诚信承诺书本人慎重承诺:我所撰写的设计(论文)《基于单片机的键控彩灯电路设计》是在老师的指导下自主完成,没有剽窃或抄袭他人的论文或成果。如有剽窃、抄袭,本人愿意为由此引起的后果承担相应责任。毕业论文(设计)的研究成果归属学校所有。学生(签名):2015年10月15日目录一.摘要…………………………4二.前言…………………………5三.正文…………………………63.1设计目的………………63.2设计要求………………………63.3硬件电路的设计………………63.3.1单片机总体设计原理…………63.3.2闪烁系统

…………73.3.3脉冲震荡系统…………83.3.4核心控件…………83.3.5移位法…………93.3.6循环移位法…………103.3.7查表法……………………123.3.8复位电路…………13四.使用说明………………14五.流程图设计………………16结论…………………………19结束语………………………20参考文献……………………21成绩评定表…………………22摘要近年来,彩灯对于美化、亮化城市有着不可轻视的重要作用。因此作为城市装饰的彩灯需求量越来越大,对与彩灯的技术和花样也越来越高。目前市场上各种式样的LED彩灯多半是采用全硬件电路实现,存在电路结构复杂、功能单一等局限性,因此有必要对现有的彩灯控制器进行改进。单片机技术是电路设计中不可缺少的一部分,而本课题一单片机为核心,利用其中断器和8个LED,设计一个彩灯控制器,通过键控让发光二极管工作。前言电子技术是当今高新技术的“龙头”,各先进国家无不把它放在优先的发展的地位。电子技术是电类专业的一门重要的技术基础课,课程的显著特点之一是它的实践性。要想很好的掌握电子技术,除了掌握基本器件的原理,还要掌握单片机技术,本课题就是利用单片机技术设计键控彩灯电路。一、设计目的通过课程设计的教学实践,将课本所学应用于实际中,缩小理论与实际的差距,记忆不学习、掌握单片机应用系统的有关知识,加深了解单片机的工作原理。初步掌握简单单片机应用系统的设计、制作、调试的方法。是自己的设计水平和对所学的只是的应用能力以及分析问题解决问题的能力得到全面提高。设计要求本课题一单片机为核心,利用其中断器和8个LED,设计一个彩灯控制器。有以下功能:花型种类不少于四中,花型自拟;可用键控制彩灯按预设的花型进行变换;可用键控制分别用快/慢俩种节拍实现花型变换。三、硬件电路的设计单片机总体设计原理LED残灯系统包括5大部分,闪烁系统发光二极管显示器简称LED。这种灯具具有线路简单、耗电少、成本少、寿命长等优点,本系统输出结果选用8个LED。LED有共阴共阳之分,本系统采用共阳型LED,其原理图如图所示,每段有8个发光二极管,公共端由8个发光二极管的阳极并接而成,正常显示时公共端接高电平,各发光二极管是否点亮取决于各引脚上是否是低电平。彩灯闪烁由+5V电源和8个LED发光二极管,八个限压电阻组成如下图所示是彩灯闪烁系统的主要的外部可视部件。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器:另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。2、闪烁系统

发光二极管显示器简称LED。这种灯具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用8个LED。LED有共阴共阳之分,本系统采用共阳型LED,其原理图如图2所示,每端有8个发光二极管,公共端由8个发光二极管的阳极并接而成,正常显示时公共端接高电平,各发光二极管是否点亮取决于各引脚上是否是低电平。彩灯闪烁由+5V电源和八个LED发光二极管,八个限压电阻组成如下图所示是彩灯闪烁系统的主要的外部可视部件。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。

由于系统要显示的内容比较简单,显示量不多,所以选用LED既方便又经济如下图所示。脉冲震荡系统为彩灯循环系统提供稳定频率波在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,引入唯一的外部脉冲信号作为各单片机的振荡脉冲。这时外部的脉冲信号是经单片机89C52的XTAL2引脚注入的;如图3所示4、核心控件89C52单片机是整个彩灯循环系统的核心是控制彩灯循环闪烁等等一切功能的部件;其中内部有ROM、有RAM、有并行I/O口等,在52单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。P1接口(P1.0~P1.7);8位准双向I/O接口,占1~8脚.准双向接口是指该接口内部有上拉电阻,能驱动4个LSTTL(低功耗肖脱基晶体管逻辑电路)负载.P1接口一般作通用I/O接口线使用.P2接口(P2..~P2.7);8位准双向I/O接口,占21~28脚.能驱使动个LSTTL负载.如果系统接有外部存储器,则CPU访问外边存储器时,该口作高8位地址线使用.P3接口(P3.0~P3.7);8位准双向I/O接口,占10~17脚.能驱动4个LSTTL负载.P3借口同时也是多功能接口,除可作通用I/O接口线使用外,其每一引脚还有第二功能。89C52单片机最小系统是指单片机要工作所必须保证的最低配置如图4所示。5、移位法这是一种最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下:ORG0000H;单片机上电后从0000H地址执行AJMPSTART;跳转到主程序存放地址处ORG0030H;设置主程序开始地址START:MOVSP,#60H;设置堆栈起始地址为60HCLRP1.0;P1.0输出低电平,使LED1点亮ACALLDELAY;调用延时子程序SETBP1.0;P1.0输出高电平,使LED1熄灭CLRP1.1;P1.1输出低电平,使LED2点亮ACALLDELAY;调用延时子程序SETBP1.1;P1.1输出高电平,使LED2熄灭CLRP1.2;P1.2输出低电平,使LED3点亮ACALLDELAY;调用延时子程序SETBP1.2;P1.2输出高电平,使LED3熄灭CLRP1.3;P1.3输出低电平,使LED4点亮ACALLDELAY;调用延时子程序SETBP1.3;P1.3输出高电平,使LED4熄灭CLRP1.4;P1.4输出低电平,使LED5点亮ACALLDELAY;调用延时子程序SETBP1.4;P1.4输出高电平,使LED5熄灭CLRP1.5;P1.5输出低电平,使LED6点亮ACALLDELAY;调用延时子程序SETBP1.5;P1.5输出高电平,使LED6熄灭CLRP1.6;P1.6输出低电平,使LED7点亮ACALLDELAY;调用延时子程序SETBP1.6;P1.6输出高电平,使LED7熄灭CLRP1.7;P1.7输出低电平,使LED8点亮ACALLDELAY;调用延时子程序SETBP1.7;P1.7输出高电平,使LED8熄灭ACALLDELAY;调用延时子程序AJMPSTART;8个LED流了一遍后返回到标号START处再循环DELAY:;延时子程序MOVR0,#255;延时一段时间D1:MOVR1,#255DJNZR1,$DJNZR0,D1RET;子程序返回END;程序结束6、循环移位法在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以实现“流水”效果。具体编程如下所示。ORG0000H;单片机上电后从0000H地址执行AJMPSTART;跳转到主程序存放地址处ORG0030H;设置主程序开始地址START:MOVSP,#60H;设置堆栈起始地址为60HMOVA,#0FEH;ACC中先装入LED1亮的数据(二进制的11111110)MOVP1,A;将ACC的数据送P1口MOVR0,#7;将数据再移动7次就完成一个8位流水过程LOOP:RLA;将ACC中的数据左移一位MOVP1,A;把ACC移动过的数据送p1口显示ACALLDELAY;调用延时子程序DJNZR0,LOOP;没有移动够7次继续移动AJMPSTARTDELAY:;延时子程序MOVR0,#255;延时一段时间D1:MOVR1,#255DJNZR1,$DJNZR0,D1RET;子程序返回END;程序结束7、查表法上面的两个程序都是比较简单的流水灯程序,“流水”花样只能实现单一的“从左到右”流方式。运用查表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果。我们首先把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVCA,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。具体源程序如下,TAB标号处的数据表可以根据实现效果的要求任意修改。ORG0000H;单片机上电后从0000H地址执行AJMPSTART;跳转到主程序存放地址处ORG0030H;设置主程序开始地址START:MOVSP,#60H;设置堆栈起始地址为60HMOVDPTR,#TAB;流水花样表首地址送DPTRLOOP:CLRA;累加器清零MOVCA,@A+DPTR;取数据表中的值CJNEA,#0FFH,SHOW;检查流水结束标志AJMPSTART;所有花样流完,则从头开始重复流SHOW:MOVP1,A;将数据送到P1口ACALLDELAY;调用延时子程序INCDPTR;取数据表指针指向下一数据AJMPLOOP;继续查表取数据DELAY:MOVR0,#255;延时一段时间D1:MOVR1,#255DJNZR1,$DJNZR0,D1RET;子程序返回;下面是流水花样数据表,用户可据要求任意编写TAB:DB11111110B;二进制表示的流水花样数据,从低到高左移DB11111101BDB11111011BDB11110111BDB11101111BDB11011111BDB10111111BDB01111111BDB01111111B;二进制表示的流水花样数据,从高到低右移DB10111111BDB11011111BDB11101111BDB11110111BDB11111011BDB11111101BDB11111110BDB0FEH,0FDH,0FBH,0F7H;十六进制表示的流水花样数据DB0EFH,0DFH,0BFH,7FHDB7FH,0BFH,0DFH,0EFHDB0F7H,0FBH,0FDH,0FEH„„DB0FFH;流水花样结束标志0FFHEND;程序结束8、复位电路复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除PC之外,复位操作还对其它一些专用寄存器有影响,它们的复位状态如表1所示:单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。单片机的复位方式可由手动复位方式完成。复位电路如图所示四、使用说明1、花型选择按钮,每按一次切换一次花型,循环切换4种花型。2、复位开关,返回第一种花型及慢速状态。3、快慢控制按钮,用于快/慢两种节拍的切换。五、流程图设计#include<reg52.h>unsignedcharkey=1;bitspeed=0;voiddelay(){unsignedintj,k;if(speed==0){for(k=0;k<1000;k++)for(j=0;j<100;j++);}else{for(k=0;k<1000;k++)for(j=0;j<20;j++);}}voidint_init(){IT0=1;IT1=1;EX1=1;EX0=1;EA=1;}voidshow1(void){unsignedchari;while(1){if(key!=1)break;for(i=0;i<8;i++){if(key!=1)break;P1=~(1<<i);delay();}}}voidshow2(void){unsignedchari;while(1){if(key!=2)break;for(i=0;i<8;i++){if(i<7)P1=~(3<<i);elseP1=~(0x81);delay();if(key!=2)break;}}}voidshow3(void){while(1){if(key!=3)break;P1=0xaa;delay();P1=0x55;delay();}}voidshow4(void){while(1){if(key!=4)break;P1=~0x18;delay();if(key!=4)break;P1=~0x24;delay();if(key!=4)break;P1=~0x42;delay();if(key!=4)break;P1=~0x81;delay();}}main(){//timer_init();int_init();while(1){switch(key){case1:show1();break;case2:show2();break;case3:show3();break;case4:show4();break;default:show1();}}}voidinterrupt_int0()interrupt0{speed=~speed;}voidinterrupt_int1()interrupt2{key++;if(key==5){key=1;}当上述程序之一编写好以后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码烧写到单片机中,最后连接好电路通电,我们就看到LED1~LED8的“流水”效果了设计总结单片机是一门实践性很强的课程,光光一个单片机并不能发挥什么作用,必须要和其它的芯片一起才能最大可能的发挥它的各种各样的功能。为了做这个课程设计我查阅了不少单片机的资料,图书馆关于单片机的书基本上都被我们班同学借光了。上网查找相应的资料和找老师指导;最后完成了这篇课程设计。在这次设计的过程中,软件编程是比较难的环节,因为用的是汇编和C语言,汇编语言是低级语言,不像高级语言哪么直观,算法的实现也比较困难,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,才能实现LED灯的相应的功能,在编程上需要花大量的时间在里面。结束语在这次设计中,我真诚地感谢老师和同学们的帮助,在他们的帮助下我顺利的完成了此次设计也使我对单片机的一些相应的周边知识有了更进一步的了解。在做论文的过程中,老师又反复而耐心地给我指出问题的所在,并帮助我纠正了许多不妥之处。在做系统设计这一过程中,也给我提出了许多意见和建议,并交给我许多解决问题的技巧和方法。参考文献[1]高峰.单片微型计算机原理与接口技术.科学出版社,2007[2」武庆生,仇梅.单片机原

温馨提示

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

评论

0/150

提交评论