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

下载本文档

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

文档简介

基于单片机的彩灯设计工程名称基于单片机的彩灯设计专业班级学生姓名指导教师摘要本文设计了一种基于单片机的简易流水灯的控制系统。主要由AT89S52主控制器、LED发光二极管显示电路和按键控制等电路构成,可以实现彩灯的不同类型显示切换。本系统以单片机汇编语言进行主程序的设计,中断效劳程序等软件设计,由于汇编语言与单片机底层结合,使程序设计的逻辑关系更加简洁明了。此程序直接在Keil软件编译程序,利用Proteus进行仿真调试,方便修改调试。关键词:单片机;数字控制;流水灯;AT89S52AbstractThispaperdescribesthedesignofachipbasedonaflowcontrolsystem.ThesystemconsistsofAT89S52,LEDlight-emittingdiode,key,canbeachievelanterndifferenttypesofdisplayswitch.Hardwaremainlyincludesmaincontroller,LEDdisplaycircuit,aresetcircuit,acrystaloscillatorcircuit.Systemprogramdesignincludesthedesignofthemainprogram,interruptserviceprogramandsoon.ThissystembasedontheMCUassemblylanguageforsoftwaredesign,theassemblylanguageandSCMunderlyingcombination,makethelogicrelationofdesigningprogrammoreconcise.ThisprogramdirectlyintheKeilsoftwarecompiler,usingProteussimulationdebugging,easytomodifytheprogram.Keywords:singlechipmicrocomputer;digitalcontrol;lightwater;AT89S52目录摘要IAbstractII第1章绪论11.1概述11.2整体设计11.3硬件电路设计11.3.1显示局部电路设计21.3.2控制电路设计21.3.3总体电路原理介绍3第2章软件局部设计52.1使用软件介绍52.1.1Keil简介52.1.2Proteus简介52.2程序流程图62.2.1主程序流程图62.2.2中断效劳程序流程图72.3源程序代码8第3章电路调试与仿真123.1电路Proteus仿真及下载调试12结论13参考文献14附录15附录1电路原理图15附录2元件清单16致谢17第1章绪论1.1概述当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否认的。单片机具有体积小、功能强、本钱低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文用AT89C52单片机自制了一款可实现多种循环显示状态的流水灯,重点介绍了其软件编程方法。1.2整体设计实验总体电路构造方案比拟简单,主要包括键盘控制电路〔用脉冲按键开关对电路进行控制〕和显示电路〔单片机控制发光二极管的显示〕。图1.1实验方案图按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C52单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C52单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。1.3硬件电路设计实验电路可划分为两个组成局部,一者为显示电路局部,主要是由4组不同色彩的发光二极管组成,用来显示流水灯的不同显示形态,另一局部即控制电路局部,主要由脉冲按键开关,二极管组成,用以控制流水灯的不同显示状态。1.3.1显示局部电路设计首先介绍显示电路局部,电路原理图如下列图所示:图1.2显示电路组成图从上图中可以看出,如果要让接在P0.0口的LED1亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.1~P0.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否那么我们就看不到“流水〞效果了。控制电路设计再来介绍控制电路,控制电路的电路原理图如下列图所示:图2.3键盘控制电路组成图从上图我们可以看到:不按下任何按键的时候,P3.2口与P1.0~P1.3均为高电平,D9~D12均截止,所以电路做默认的运行状态。按下K1键后,P1.0口变为低电平,D9导通,中断方式选择P1.0口指向的方式,电路改变运行状态,执行P1.0口所指向的程序;按下K2键,P1.1口变为低电平,D10导通,电路再次改变运行状态,执行P1.1口所指向的程序;按下K3键,P1.2口变为低电平,D11导通,电路再次改变运行状态,执行P1.2口所指向的程序;按下K4键,P1.3口变为低电平,D12导通,电路再次改变运行状态,执行P1.3口所指向的程序。总体电路原理介绍整体硬件组成如下列图2.4所示:图2.4流水灯电路原理图整体设计思路:由主程序和中断效劳程序组成。主程序中执行左右流水灯,在中断效劳程序中,首先读取按键状态,然后延时10ms,再读取按键状态。把两次获得的按键状态比拟,如果不同,就表示是抖动,退出中断;否那么,就去判断是哪个按键按下。如果是K1,就执行左向流水灯;如果是K2,就执行右向流水灯;如果是K3,就执行亮点向中间移动;如果是K4,就执行亮点向两边移动。本着尽量使任务简单化的原那么,我采用置标志位的方法。即在主程序中设定一个标志位,不断的对这个标志进行查询:如果是标志为状态1,就执行双向流水灯;如果是状态2,就执行左向流水灯;如果是状态3,就执行右向流水灯,依次类推。而在中断效劳程序中,只需要进行如下工作:去抖动,键识别,改变标志位。这里我们用存放器r0的内容作为标志,当它里面的内容是0ffh时,执行左右流水灯程序;为01h时,执行左流水灯;02h时执行右流水灯;03h时执行两个亮点向中间移动;04h时执行两个亮点向两边移动。第2章软件局部设计2.1使用软件介绍2.1.1Keil简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断开展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断开展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境〔uVision〕将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果使用C语言编程,那么Keil几乎就是你的不二之选〔目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件〕,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Proteus简介Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。ISIS是Proteus系统的中心,它远不仅是一个图表库。Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。它是具有控制原理图画图的外观的超强的设计环境。无论用户的要求是快速实现复杂设计的仿真以及PCB设计,还是设计精美的原理图以供出版,ISIS是您的最好工具。该软件的特点:①全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。③目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。④支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。2.2程序流程图2.2.1主程序流程图中断效劳程序流程图2.3源程序代码org0000hljmpstartorg0003hljmpext1org0020hstart:movr0,#0ffh;对r0赋值,r0为所设标志位setbea;开中断setbex0;允许外部中断0申请中断setbit0;外部中断0为跳变方式触发movsp,#70h;设置中断loop0:cjner0,#0ffh,loop1;r0不为ff,转到loop1ajmpmain_light;否那么执行左右流水灯loop1:cjner0,#01h,loop2;r0不为01,转到loop2ajmpk1_light;否那么执行左向流水灯loop2:cjner0,#02h,loop3;r0不为02,转到loop3ajmpK2_light;否那么执行右向流水灯loop3:cjner0,#03h,loop4;r0不为03,转到loop4ajmpk3_light;否那么执行双亮点向中间移动loop4:cjner0,#04h,loop5;r0不为04,转到loop5ajmpk4_light;否那么执行双亮点向两边移动loop5:ajmploop0;返回重新查询ext1:clrea;关中断pushaccpushpswmova,p1;读入键值anla,#0fh;屏蔽高四位mov30h,a;键状态存入30hlcalldel10msmova,p1;再次读入键值anla,#0fhcjnea,30h,pass;两次键值不同,是抖动,退出中断ajmpk1_check;如果相等,进行键识别k1_check:cjnea,#0eh,k2_check;不是k1,判断是不是k2movr0,#01h;是k1,置标志为01ajmppassk2_check:cjnea,#0dh,k3_check;不是k2,判断是不是k3movr0,#02h;是k2,置标志为02ajmppassk3_check:cjnea,#0bh,k4_check;不是k3,判断是不是k4movr0,#03h;是k3,置标志为03ajmppassk4_check:cjnea,#07h,pass;不是k4,退出中断movr0,#04h;是k4,置标志为04ajmppasspass:poppsw;现场恢复popaccsetbea;开中断reti;中断返回main_light:movr7,#08h;左右流水灯程序movr6,#06hmova,#0fehl_loop:movr1,a;r1保存现在亮点位置,做样式变换时从该处开始movp0,alcalldel100msrladjnzr7,l_loopmova,#0bfhr_loop:movr1,amovp0,alcalldel100msrradjnzr6,r_loopajmploop0k1_light:movr1,a;左向流水灯movp0,alcalldel100msrlamovr1,aajmploop0k2_light:movr1,a;右向流水灯movp0,alcalldel100msrramovr1,aajmploop0k3_light:movp0,#07eh;双亮点向中间移lcalldel100msmovp0,#0bdhlcalldel100msmovp0,#0dbhlcalldel100msmovp0,#0e7hlcalldel100msajmploop0k4_light:movp0,#0e7h;双亮点向两边移lcalldel100msmovp0,#0dbhlcalldel100msmovp0,#0bdhlcalldel100msmovp0,#07ehlcalldel100msajmploop0del10ms:;10ms延时子程序(12M)movr5,#20temp1:movr4,#248djnzr4,$djnzr5,temp1retdel100ms:movr3,#0c3h;100.036mstemp2:movr2,#0ffh;511usdjnzr2,$djnzr3,temp2retend第3章电路调试与仿真3.1电路Proteus仿真及下载调试翻开Proteus软件,在ISIS中连接好电路并导入Hex文件后,启动电路运行起来。电路默认的运行状态为双像流水灯。在按下K1键后,电路的运行状态变为左向流水灯,有一定延时。按下K2键后,电路开始运行右向流水灯。按下K3键后,两个亮点向中间移动。按下K4键,两个亮点由中间向两边移动。仿真的结果和要求得到的结果一致。利用STC-ISP单片机下载软件将程序烧录到AT89S2芯片中,给电路板接上电源,8个发光二极管开始依次点亮进行左右循环。按下不同的按键,流水灯实现不同的显示形态。调试成功。结论通过本次单片机音乐彩灯设计,我加深了对《单片机原理与应用》所学知识的理解,掌握了单片机内部资源的使用方法和步骤,了解了常用程序的编写方法〔显示、中断等〕;同时也学习到了单片机应用的一般步骤和调试方法及软件的调试方法〔模拟仿真〕;并且能够实用相关软件及设备进行模拟与调试;在老师的指导下完成单片机课程设计的各项内容,通过这次的实践提高了自己的动手能力。参考文献[1]赵晶.Prote199高级应用[M].北京:人民邮电出版社,2000.P18-25.[2]郑步生,吴渭.Multisim200l电路设计及仿真入门与应用[M].北京:电子工业出版社,2002.P221-234.[3]沈美明,温冬婵.IBM—PC汇编语言程序设计[M].北京:清华大学出版社,2001.P

温馨提示

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

评论

0/150

提交评论