《彩灯控制器设计》课程设计说明书专业班级:12级电子信息科学与技术4班姓名学号:刘翔*********张银080212154李鹏航080212156指导教师:***设计时间: 2014.6.6物理与电气工程学院2014 年6 月6 日摘要彩灯是人们日常生活中的一种装饰用品,它美观大方,尤其在节日期间,倍增节日气氛。
它蕴涵着丰富的文化底蕴,被广泛地应用于各种店面的装饰。
变换无穷的彩灯样式,给城市增添活力,吸引着人们的注意力,深受人民的喜爱。
在日常生活中,人们还将彩灯摆放成各种图案,增添美感。
随着电子技术的发展,应用系统向着小型化、快速化、大容量、重量轻的方向发展。
科学技术更加贴近人们的生活,向着满足人们需求的方向发展。
节日彩灯的设计与制作工艺也一步一步的走向成熟。
关键词LED灯;键盘;STC89C52;集成电路芯片;数码管目录一.概述 (4)二.彩灯设计内容简要 (4)2.1 彩灯设计内容 (4)2.2 彩灯设计要求 (4)2.3 彩灯设计原理 (4)2.4 彩灯总体控制框图 (5)三.硬件电路设计 (5)3.1 STC89C52单片机介绍 (5)3.2 系统的硬件构成及功能描述 (7)四.系统软件设计 (9)4.1 程序流程图 (9)4.2 软件程序 (10)五.设计体会 (4)六.参考文献 (16)一.概述节日彩灯使生活中常常用到的装饰物品。
它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。
本设计以STC89C52单片机为控制核心,采用模块化的设计方案,运用LED 彩灯、按键、数码管等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,七段数码管可以清楚显示彩灯样式编号,易于选取操作。
随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快 ,智能度越来越高 ,应用范围也得到了极大的扩展。
在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。
在娱乐方面,场地的装饰离不开彩灯。
在建筑方面也采用彩灯来装饰高楼大厦。
彩灯又灵活多变的点亮方式,装饰效果非常好,特别时晚上使得高楼大厦更加漂亮。
是彩灯的应用才使得城市的夜景非常迷人。
在国内外,微控制系统主要采用单片机作为控制核心。
因此,单片机的发展将有助于简单实用电子产品的开发。
在本设计中,采用比较先进的STC89C52单片机为控制核心,它的功耗很低,功能多样,是简单电子产品开发控制元件的首选器件。
二.彩灯设计内容简要:2.1 彩灯设计内容1.利用单片机实现LED彩灯花式的变换2.利用单片机实现键盘控制花式的选择3.利用数码管显示彩灯花式的类型4.设计并实现中断对彩灯的控制2.2 彩灯设计要求1.能启动、停止2.能通过开关进行彩灯样式的选择3.能通过数码管显示彩灯的方式4.要体现循环、中断和色彩变化的控制功能和效果2.3 彩灯设计原理主控模块主要设计器件有STC89C52,8个LED灯,6个按键,一块七段数码管。
通过软件设计,使单片机P0口作为一位静态七段数码管字型码的控制口,P1口作为8个彩色LED的驱动信号输出口,P2口为按键输入口,P3.2为外部中断INT 0输入口。
2.4 彩灯总体控制框图图2.4.1 彩灯总体控制框图三.硬件电路设计:3.1 STC89C52单片机介绍STC 89C 52是STC 公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
STC 89C 52使用经典的MCS -51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash ,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8k 字节Flash ,512字节RAM , 32 位I/O 口线,看门狗定时器,内置4KB EEPROM ,MAX 810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM 、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz ,6T /12T 可选。
图3.1.1 STC89C52外形及引脚排列特性:STC89C52RC单片机;8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;AT89S52单片机:8K字节程序存储空间;256字节数据存储空间;带有2KB的EEPROM空间。
参数:1. 增强型8051 单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统80512. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)3. 工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口用时,需加上拉电阻。
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXDP3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片8. 具有EEPROM功能9. 具有看门狗功能10. 共3 个16 位定时器/计数器。
即定时器T0、T1、T211. 外部中断4 路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒12. 通用异步串行口(UART),还可用定时器软件实现多个UART13. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)14. PDIP 封装3.2 系统的硬件构成及功能描述控制系统硬件设计电路图如图所示:图3.2.1 控制系统硬件设计电路图功能描述:系统硬件设计电路主要由四部分组成:按键复位电路、时钟震荡电路、按键电路、LED彩灯电路、数码管显示电路。
按键复位电路:复位是单片机的初始化,其作用是使CPU中的各个部件都处于一个确定的初始状态,并从这个状态开始工作。
在接电瞬间RST端的电位与VCC 相同,随着电容充电电流的减小,+5V立即加到了RST/VPD端,RST的电位逐渐下降。
时钟振荡电路:在STC89C52的外部,XTAL1和XTAL2之间跨越晶体振荡器和微调电容,从而构成一个自激振荡器,形成时钟振荡电路。
时钟电路产生的振荡脉冲经过触发器二分频后,形成单片机的时钟脉冲信号。
按键电路:用P2.3、P2.2、P2.1、P2.0作彩灯亮灯方式输入口,按键输入均采用低电平有效。
本设计中按键程序的就是采用查询方式,若图中的P2.0的按键按下,软件程序查询到P2.0口为低电平,跳转到该按键控制的相应彩灯亮灯方式1。
LED彩灯电路:发光二极管与单片机的P1口相连接,其电路图如图所示。
发光二极管为共阳极,其他管脚分别接P1口的8个端口,P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7每个端口接一个彩灯,当给他们送低电平时发光二极管就会亮。
数码管显示电路:该一位数码管为静态显示,字段接P0口,因为公共端接了二极管,电路板上的插针为三极管的基极,所以电路板上的插针接低电平(或接地),但此数码管为共阳极。
当某个键按下,软件程序就会给P0口送相应的执行码,就会在数码管上显示相应的样式编号。
四.系统软件设计:4.1 程序流程图图4.1.1 程序流程图4.2 软件程序:#include<reg52.h>unsigned char code table1[]={0xfc,0xeb,0x9f,0xff};unsigned char code table2[]={0xf8,0x8f,0x8f,0xf8};unsigned char code table3[]={0xe8,0xc9,0x9b,0xff};unsigned char code table4[]={0x00,0xff,0x00,0xff};int a;unsigned int z;void delay(unsigned int z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.{ unsigned int x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void liushuideng1()//流水灯样式1{P0=0xf9;P1=table1[a];delay(400);a++;if(a==4){a=0;}}void liushuideng2()//流水灯样式2 {P0=0xa4;P1=table2[a];delay(400);a++;if(a==4){a=0;}}void liushuideng3()//流水灯样式3 {P0=0xb0;P1=table3[a];delay(500);a++;if(a==4){a=0;}}void liushuideng4()//流水灯样式4{P0=0x99;P1=table4[a];delay(500);a++;if(a==4){a=0;}}void main(){a=0;P3=0xfe;P2=0xef;while(1){ if(P2==0xee)//判断第一个键{delay(50);//延时等待while(P2==0xef){liushuideng1();}}if(P2==0xed)//判断第二个键{delay(50);while(P2==0xef){liushuideng2();}}if(P2==0xeb)//判断第三个键{delay(50);while(P2==0xef){liushuideng3();}}if(P2==0xe7)//判断第四个键{delay(50);while(P2 ==0xef){ liushuideng4();}}}}五.设计体会:经过努力,我们组终于完成这次彩灯的课程设计任务。
我们首先查阅了大量的书本资料,接着又上网搜集了许多有用信息,有时候为了找到一个合适的电路而苦恼,有时候又为取得一点成功而由衷的高兴。
通过课程设计,我们增强了对单片机的理解,学会查寻资料﹑比较方案,学会单片机的设计﹑计算;进一步提高分析解决实际问题的能力,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。