基于AT89C51单片机的花样彩灯.doc

上传人:豆**** 文档编号:17529091 上传时间:2022-05-24 格式:DOC 页数:11 大小:258.50KB
返回 下载 相关 举报
基于AT89C51单片机的花样彩灯.doc_第1页
第1页 / 共11页
基于AT89C51单片机的花样彩灯.doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《基于AT89C51单片机的花样彩灯.doc》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的花样彩灯.doc(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流基于AT89C51单片机的花样彩灯.精品文档.目 录1摘要.12 系统设计.22.1 设计任务与要求.22.2 方案的选择与论证.23 系统硬件设计.23.1 控制器模块.33.2 按键模块.53.4 LED显示模块.53.5硬件元件清单.64软件设计与仿真.64.1主程序设计.6 4.2 仿真软件简介.84.3 仿真结果.104.4 系统调试.104.5 误差分析.11 结束语.11参考文献.13附录 程序代码.14摘要: 随着电子技术的迅速发展,单片机得到了越来越多的应用。本设计用单片机8951结合LED制作了一种新型的LED彩灯控制系统

2、的设计方法,以AT-89C51单片机作为主控核心,与按键、显示器等较少的辅助硬件电路相结合,利用软件实现对LED彩灯进行控制。本系统具有体积小、硬件少、电路结构简单及容易操作等优点。 关键字:LED彩灯;AT89C51单片机;彩灯控制器;模块设计 系统设计2.1 设计任务与要求2.1.1 设计任务(1)设计一个基于单片机的花样彩灯;(2)在设计过程中,选择12个单元电路使用仿真软件(例如Proteus等)进行仿真调试;(3)用计算机绘制所有的电路图。2.1.2 设计要求(1)设计一个花样彩灯。(2)彩灯至少有7种工作模式。(3)当按下按键后,模式可以复位。2.2 方案的选择与论证2.2.1 总

3、体设计方案方案一:采用各类数字电路来组成键盘控制系统,进行信号处理,如选用CPLD等可编程逻辑器件。本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。方案二:过单片机控制二极管的闪烁,通过中断来改变模式同时串行输出数码管。P0,P1口接16个二极管,P3口接扩展板的数码显示接口。 该方案简单,易于设计和控制。3 系统硬件设计按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT-89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位

4、定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.255.50V的电压工作范围和024MHz工作频率,使用AT-89C51单片机时无须外扩存储器。因此,本彩灯控制系统实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。图1彩灯硬件原理图从图1中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要让接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1P1.7口的其他7个LED的点亮和熄灭的方法同LED

5、1。因此,要实现彩灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做彩灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“彩灯”效果了。3.1 控制器模块本系统控制器芯片采用AT89C51单片机,其管脚图如图3所示。D8-D6:数据输入线。RESET:复位端口。T0,T1:计数器端口外部计数脉冲输入线。XTAL1,XTAL2:时钟电路。VCC:供电电压。GND:接地。图3 89C51功能说明图AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMF

6、lash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51具有以下特性:与

7、MCS-51 兼容,4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:10年,全静态工作:0Hz-24MHz,三级程序存储器锁定,1288位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式、片内振荡器和时钟电路。3.2 按键模块采用如下所示电路来实现控制花样彩灯的复位,按下开关,单片机复位,花样彩灯按模式一闪烁。图电源电路有三端稳压器7805和电容组成,外部电池供电,BAT接7V左右的电压,稳压输出5V的电压。电源电路如图4所示。图4.电源电路3.4 LED显示模块LED显示电路由单片机89C51的P0口,P1口和P2

8、口与发光二极管相连,低电平二极管发光。LED显示电路如图2所示。图2.LED显示电路3.5硬件元件清单系统元器件清单见表2。表2 系统元器件清单器件数量器件数量AT89C511晶振器1LED8排阻(4.7k)8电容(30pF)2电阻(100k)1电容(10uF)1开关14软件设计与仿真本系统程序包括主程序、键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序等。主程序用于系统初始化,子程序调度等。键盘扫描子程序用于扫描键盘状态,将被按键的位置号存入缓冲器中。发送键码子程序用于将缓冲区键的接通码或断开码发送给单片机接口。发送数据子程序用于将数据发给单片机接口。接收命令子程序用于接收单片

9、机接口发来的键盘命令。4.1主程序设计程序流程图:中断程序:主程序: 4.2 仿真软件简介Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 80

10、51/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。Proteus7.5是目前最好的模拟单片机外围器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD、RAM、ROM、键盘

11、、马达、LED、AD/DA、部分SPI器件、部分IIC器件等)。软件编译采用KEIL C51软件,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。4.3 仿

12、真结果 先按复位键,系统初始化,然后8个LED开始按照要求闪烁,分别按下列模块点亮:模块1:循环单向闪烁,只有一个灯亮模块2:循环单向闪烁,只有两个灯亮模块3:循环往复闪烁,只有一个灯亮模块4:全亮全灭模块5:顺次点亮或者熄灭, 多个灯亮模块6:顺次点亮或者熄灭,多个灯亮,一次点亮两个模块7:双端对称往返闪烁4.4 系统调试在调试过程中主要是对程序的修改,特别是延时子程序。开始延时较短时,当按下开关时,LED开始闪烁。如果延时较长则LED闪烁更慢。通过修改程序,将延时调到适中,系统正常工作。4.5 误差分析设定预设值后,记录模式一的数据,每次送出的数据是不同,具体的数据如下表1所示 P1.7P

13、1.6P1.5P1.4P1.3P1.2P1.1P1.0说明L8L7L6L5L4L3L2L111111110L1亮11111101L2亮11111011L3亮11110111L4亮11101111L5亮11011111L6亮10111111L7亮01111111L8亮后面几种模式的实验结果基本和理论值一样,没什么误差。结束语该设计是以AT-89C51单片机为主控芯片,与发光二极管、晶振电路、复位电路和电源电路组成,通过程序控制彩灯流水花样。本文所给程序实现的功能比较简单,旨在抛砖引玉,可以在此基础上扩展成更复杂的彩灯控制,比如键盘控制流水花样、控制流水灯显示数字或图案等等。通过花样彩灯的制作,给

14、我最大的体会是对一个程序整体的把握和控制,只有将子程序有效的结合起来,才能完成设计的目的。另外,在程序的调试过程中,我也遇到了很多意想不到的困难,在老师的帮助和自己的不懈努力下,我对伟福这款仿真软件有了更深的认识,将困难一一克服,使程序编译成功,仿真实现。参考文献1 吴金戎 8051单片机实践与应用M 北京:清华大学出版社, 2003.8 2 王质朴 MCS-51单片机原理接口及应用M 北京:北京理工大学出版社,2009.113 皮大能 单片机课程设计指导书M 北京:北京理工大学出版社,2010.74 夏路易 单片机技术基础教程与实践M 北京:电子工业出版社, 2008.15 蒋辉平 基于Pr

15、oteus的单片机系统设计与仿真实例M 北京:机械工业出版社, 2009.7附录:程序清单#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(

16、30000); P1=0xfe; 模块2:循环单向闪烁,只有两个灯亮 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次,转入下一模块 wh

17、ile(3!=fre1+) 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(3000000); if(P1=0xe7) comp1=1; if(comp2=0x01) comp1=0xfe; comp2=0x80;void delay(uint cnt) while(cnt-);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com