课程设计基于AT89C51单片机的花样彩灯仿真分析_第1页
课程设计基于AT89C51单片机的花样彩灯仿真分析_第2页
课程设计基于AT89C51单片机的花样彩灯仿真分析_第3页
课程设计基于AT89C51单片机的花样彩灯仿真分析_第4页
课程设计基于AT89C51单片机的花样彩灯仿真分析_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、物理与电子信息学院课程设计基于at89c51单片机的花样彩灯仿真分析姓名: 班级: 电子科学与技术 学号: 指导老师: 时间: 2011年1日6日 目 录内容摘要1关键词1abstract11绪论12 系统设计22.1 设计任务与要求22.2 方案的选择与论证23 系统硬件设计23.1 控制器模块33.2 按键模块53.4 led显示模块53.5硬件元件清单64软件设计与仿真64.1主程序设计64.3 仿真结果84.4 系统调试94.5 误差分析9结束语10内容摘要: 随着电子技术的迅速发展,单片机得到了越来越多的应用。本设计用单片机89s51结合led(发光二极管)制作了一个广告移动彩灯,它

2、由一块89s51组成,通过逐次扫描其中一块的p2.0-p2.7口,从而依次实现彩灯轮流点亮、逐点点亮、间隔点亮。关键词:led彩灯;at-89c51单片机;彩灯控制器 abstract:along with the electronic technology rapid development, the monolithicintegrated circuit obtained more and more many applications. here iused monolithic integrated circuit 89c51 to unify led (light emitterdi

3、ode) to manufacture a belt music broadcast function advertisementmigration colored lantern with the loudspeaker, it was composed by two89c51, through gradually scanned together p3.0-p3.2 mouth, judgedwhether had the pressed key to press down, unified the port scanningand the pressed key scanning, th

4、us realized the colored lantern tolighten, to lighten, the gap point by point in turn in turn lightens.keywords: led lantern; at-89c51 single-chip microcomputer; lantern controller1绪论近年来,彩灯对于美化、亮化城市有着不可轻视的重要工作。因此作为城市装饰的彩灯需求量越来越大,对与彩灯的技术和花样也越来越高。但传统的彩灯控制电路一般是由数字电路组成,这种彩灯控制器电路结构复杂、成本较高、功率损耗大,此外从功能效果上看

5、,彩灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。而单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。led彩灯具有成本低、发光纯度高、发光热量小、耗电量低、超长寿命的特点。所以利用单片机作led彩灯控制,不仅是使控制花样、路数大大增加,成本也很低,而且对环境能源没有污染,有着很大的发展前景。本方案是一种基于at-89c51单片机的彩灯控制方案,实现对led彩灯的控制。主要以at-89c51单片机作为主控核心与发光二极管、晶振、复位、电源等组成电路,利用软件编辑实现彩灯流水灯的效果。2 系统设计2.1 设

6、计任务与要求2.1.1 设计任务(1)设计一个基于单片机的花样彩灯;(2)在设计过程中,选择12个单元电路使用仿真软件(例如proteus等)进行仿真调试;(3)用计算机绘制所有的电路图。2.1.2 设计要求(1)设计一个花样彩灯。(2)彩灯至少有7种工作模式。(3)当按下按键后,模式可以复位。2.2 方案的选择与论证2.2.1 总体设计方案方案一:采用各类数字电路来组成键盘控制系统,进行信号处理,如选用cpld等可编程逻辑器件。本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。方案二:过单片机控制二极管的闪烁,通过中断来改变模式同时串行输出数码管。p0,p1口接16个

7、二极管,p3口接扩展板的数码显示接口。 该方案简单,易于设计和控制。3 系统硬件设计按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。at-89c51单片机是美国atmel公司生产的低电压、高性能cmos 8位单片机,具有丰富的内部资源:4kb闪存、128bram、32根i/o口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.255.50v的电压工作范围和024mhz工作频率,使用at-89c51单片机时无须外扩存储器。因此,本彩灯控制系统实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电

8、源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。图1彩灯硬件原理图从图1中可以看出,如果要让接在p1.0口的led1亮起来,那么只要把p1.0口的电平变为低电平就可以了;相反,如果要让接在p1.0口的led1熄灭,就要把p1.0口的电平变为高电平;同理,接在p1.1p1.7口的其他7个led的点亮和熄灭的方法同led1。因此,要实现彩灯功能,我们只要将发光二极管led1led8依次点亮、熄灭,8只led灯便会一亮一暗的做彩灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“彩灯”效果了

9、。3.1 控制器模块本系统控制器芯片采用at89c51单片机,其管脚图如图3所示。d8-d6:数据输入线。reset:复位端口。t0,t1:计数器端口外部计数脉冲输入线。xtal1,xtal2:时钟电路。vcc:供电电压。gnd:接地。图3 89c51功能说明图at89c51是一种带4k字节闪存可编程可擦除只读存储器(fperomflash programmable and erasable read only memory)的低电压、高性能cmos 8位微处理器,俗称单片机。at89c2051是一种带2k字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。

10、该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。at89c51具有以下特性:与mcs-51 兼容,4k字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:10年,全静态工作:0hz-24mhz,三级程序存储器锁定,1288位内部ram,32可编程i/o线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式、

11、片内振荡器和时钟电路。3.2 按键模块采用如下所示电路来实现控制花样彩灯的复位,按下开关,单片机复位,花样彩灯按模式一闪烁。图电源电路有三端稳压器7805和电容组成,外部电池供电,bat接7v左右的电压,稳压输出5v的电压。电源电路如图4所示。图4.电源电路3.4 led显示模块led显示电路由单片机89c51的p0口,p1口和p2口与发光二极管相连,低电平二极管发光。led显示电路如图2所示。图2.led显示电路3.5硬件元件清单系统元器件清单见表2。表2 系统元器件清单器件数量器件数量at89c511晶振器1led8排阻(4.7k)8电容(30pf)2电阻(100k)1电容(10uf)1开

12、关14软件设计与仿真本系统程序包括主程序、键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序等。主程序用于系统初始化,子程序调度等。键盘扫描子程序用于扫描键盘状态,将被按键的位置号存入缓冲器中。发送键码子程序用于将缓冲区键的接通码或断开码发送给单片机接口。发送数据子程序用于将数据发给单片机接口。接收命令子程序用于接收单片机接口发来的键盘命令。4.1主程序设计程序流程图:中断程序:主程序: 4.2 仿真软件简介proteus是英国labcenter公司开发的电路分析与实物仿真软件。它运行于windows操作系统上,可以仿真、分析(spice)各种模拟器件和集成电路,该软件的特点是:(

13、1)实现了单片机仿真和spice电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、rs232动态仿真、i2c调试器、spi调试器、键盘和lcd系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:arm7(lpc21xx)、 8051/52系列、avr系列、pic10/12/16/18系列、hc11系列以及多种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三

14、方的软件编译和调试环境,如keil c51 uvision2、mplab等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和spice分析于一身的仿真软件,功能极其强大。proteus7.5是目前最好的模拟单片机外围器件的工具,可以仿真51系列、avr、pic等常用的mcu及其外围电路(如lcd、ram、rom、键盘、马达、led、ad/da、部分spi器件、部分iic器件等)。软件编译采用keil c51软件,keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而

15、易学易用。用过汇编语言后再使用c来开发,体会更加深刻。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。4.3 仿真结果 先按复位键,系统初始化,然后8个led开始按照要求闪烁,分别按下列模块点亮:模块1:循环单向闪烁,只有一个灯亮模块2:循环单向闪烁,只有两个灯亮模块3:循环往复闪烁,只有一个灯亮模块4:全亮全灭模块5:顺次点亮或者熄灭, 多个灯亮模块6:顺次点亮或者熄灭,多

16、个灯亮,一次点亮两个模块7:双端对称往返闪烁4.4 系统调试在调试过程中主要是对程序的修改,特别是延时子程序。开始延时较短时,当按下开关时,led开始闪烁。如果延时较长则led闪烁更慢。通过修改程序,将延时调到适中,系统正常工作。4.5 误差分析设定预设值后,记录模式一的数据,每次送出的数据是不同,具体的数据如下表1所示 p1.7p1.6p1.5p1.4p1.3p1.2p1.1p1.0说明l8l7l6l5l4l3l2l111111110l1亮11111101l2亮11111011l3亮11110111l4亮11101111l5亮11011111l6亮10111111l7亮01111111l8亮

17、后面几种模式的实验结果基本和理论值一样,没什么误差。结束语该设计是以at-89c51单片机为主控芯片,与发光二极管、晶振电路、复位电路和电源电路组成,通过程序控制彩灯流水花样。本文所给程序实现的功能比较简单,旨在抛砖引玉,可以在此基础上扩展成更复杂的彩灯控制,比如键盘控制流水花样、控制流水灯显示数字或图案等等。通过花样彩灯的制作,给我最大的体会是对一个程序整体的把握和控制,只有将子程序有效的结合起来,才能完成设计的目的。另外,在程序的调试过程中,我也遇到了很多意想不到的困难,在老师的帮助和自己的不懈努力下,我对伟福这款仿真软件有了更深的认识,将困难一一克服,使程序编译成功,仿真实现。附录:程序

18、清单#include#define uint unsigned intvoid delay(uint);main() uint fre=0x04; uint fre1,fre2; uint comp1=0xfe,comp2=0x80; while(1) /*- 模块一:循环单向闪烁,只有一个灯亮 执行3次,转入下一种闪烁 -*/ p1=0xfe; while(1!=fre-) fre1=0x08; while(1!=fre1-) delay(30000); p1=1; p1|=0x01; if(p1=0x7f) delay(30000); p1=0xfe; /*- 模块2:循环单向闪烁,只有两

19、个灯亮 3次,转入下一种闪烁执行 -*/ p1=0xfc; while(3!=fre+) fre2=0x04; while(1!=fre2-) delay(30000); p1=2; p1|=0x03; if(p1=0x3f) delay(30000); p1=0xfc; /*- 模块3:循环往复闪烁,只有一个灯亮 执行3次,转入下一种闪烁 -*/ p1=0xfe; fre1=0x04; while(1!=fre1-) while(p1!=0x7f) delay(30000); p1=1; p1|=0x80; /*- 模块4:全亮全灭 执行3次,转入下一模块 -*/ while(3!=fre1

20、+) delay(30000); p1=0x00; delay(30000); p1=0xff; /*- 模块5:顺次点亮或者熄灭, 多个灯亮,执行3次,转入下一模块 -*/ while(1!=fre1-) p1=0xfe; while(p1!=0x00) delay(30000); p1=1; p1|=0x80; /*- 模块6:顺次点亮或者熄灭,多个灯亮, 一次点亮两个,执行3次,转入下一模块 -*/ while(3!=fre1+) p1=0xfc; while(p1!=0x00) delay(30000); p1=2; p1|=0xc0; delay(30000); /*- 模块7:双端对称往返闪烁 执行3次,进行下一轮循环 -*/ p1=0x7e; delay(30000); while(1!=fre1-) fre2=0x00; while(6!=fre2+) p1=0xff; comp1=1; p1&=comp1; p1=comp2; delay(300

温馨提示

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

评论

0/150

提交评论