《节日彩灯控制器设计》课程设计说明书专业班级:12级电子信息科学与技术3班姓名学号:张娟*********陈晶晶080212118程文文080212130王鹏飞080212094指导教师:***设计时间: 2014.6.6物理与电气工程学院2014 年6 月6 日摘要伴随社会发展的需求,无论是生活娱乐,还是工业控制,彩灯是必不可少的元素,节日中闪烁的彩灯,不仅使人们身心愉悦,还能带来视觉享受。
我们希望节日彩灯能够启动、停止;能够通过开关进行功能选择;能够体现循环、组合和色彩变化的控制功能和效果。
本次设计利用单片机程序以及利用集成电路芯片、LED灯和按键来设计彩灯,将软、硬件有机地结合在一起,实现设计的目的。
通过按键的选择可以控制彩灯及数码管显示,另外还设置一中断按键在突发场景下给人以提醒。
电路结构简单,变换效果多样,在实际生活中操作简单、易于实现。
关键词LED灯;键盘;STC89C52;集成电路芯片;数码管目录1 概述 (1)2 彩灯设计内容简要 (1)2.1 彩灯设计内容 (1)2.2 彩灯设计要求 (1)2.3 彩灯设计原理 (1)2.4 彩灯总体控制框图 (2)3 硬件电路设计 (2)3.1 STC89C52单片机介绍 (2)3.2 系统的硬件构成及功能描述 (4)4 系统软件设计 (6)4.1 程序流程图 (6)4.2 软件程序 (7)5 仿真结果与结论 (10)6 设计体会 (13)7 参考文献 (13)1 概述节日彩灯使生活中常常用到的装饰物品。
它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。
本设计以STC89C52单片机为控制核心,采用模块化的设计方案,运用LED 彩灯、按键、数码管等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,七段数码管可以清楚显示彩灯样式编号,易于选取操作。
随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快 ,智能度越来越高 ,应用范围也得到了极大的扩展。
在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。
在娱乐方面,场地的装饰离不开彩灯。
在建筑方面也采用彩灯来装饰高楼大厦。
彩灯又灵活多变的点亮方式,装饰效果非常好,特别时晚上使得高楼大厦更加漂亮。
是彩灯的应用才使得城市的夜景非常迷人。
在国内外,微控制系统主要采用单片机作为控制核心。
因此,单片机的发展将有助于简单实用电子产品的开发。
在本设计中,采用比较先进的STC89C52单片机为控制核心,它的功耗很低,功能多样,是简单电子产品开发控制元件的首选器件。
2 彩灯设计内容简要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为外部中断INT0输入口。
2.4 彩灯总体控制框图图2.4.1 彩灯总体控制框图3 硬件电路设计3.1 STC89C52单片机介绍STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,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.4、P2.2、P2.1作彩灯亮灯方式输入口,按键输入均采用低电平有效。
独立式按键的软件可采用查询方式,本设计中按键程序的就是采用查询方式,若图中的P2.3的按键按下,软件程序查询到P2.3口为低电平,跳转到该按键控制的相应彩灯亮灯方式1。
P3.2(INT0)口接一个按键,INT0为边沿触发方式(下降沿有效),当按键按下进入中断服务子程序,彩灯会暂停在此时刻的状态。
P2.0口接一个按键,低电平有效,当在暂停后按下该键,彩灯继续按照暂停前状态循环点亮。
LED彩灯电路:发光二极管与单片机的P1口相连接,其电路图如图所示。
发光二极管为共阴极,其他管脚分别接P1口的8个端口,P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7每个端口接一个彩灯,当给他们送高电平时发光二极管就会亮。
数码管显示电路:该一位数码管为静态显示,字段接P0口,因为公共端接了二极管,电路板上的插针为三极管的基极,所以电路板上的插针接低电平(或接地),但此数码管为共阴极。
当某个键按下,软件程序就会给P0口送相应的执行码,就会在数码管上显示相应的样式编号,若中断键按下,就会在数码管上显示不变。
图4.1.1 程序流程图4.2 软件程序#include<reg52.h>unsigned char code table1[]={0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18}; unsigned char code table2[]={0x88,0x44,0x22,0x11,0x55,0xaa,0x55,0xaa}; unsigned char code table3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char code table4[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};int a;unsigned int z;sbit d1=P2^0;sbit d2=P2^3;sbit d3=P2^4;sbit d4=P2^2;sbit d5=P2^1;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 liu1()//流水灯样式1{P0=0x06;P1=table1[a];delay(200);a++;if(a==8){a=0;}}void liu2()//流水灯样式2{P0=0x5b;P1=table2[a];delay(400);a++;if(a==8){a=0;}}void liu3()//流水灯样式3{P0=0x4f;P1=0xff;delay(200);P1=table3[a];delay(300);a++;if(a==8){a=0;}}void liu4()//流水灯样式4{P0=0x66;P1=table4[a];delay(150);a++;if(a==8){a=0;P1=0xff;delay(300);}}void main(){EA=1; //开中断EX0=1;IT0=1;P2=0x1f;P1=0x00;P3=0X0f;P0=0x00;a=0;while(1){if(d2==0)//判断第一个键{delay(80);//延时等待while(P2==0x1f){liu1();}}if(d3==0)//判断第二个键{delay(80);while(P2==0x1f){liu2();}}if(d4==0)//判断第三个键{delay(80);while(P2==0x1f){liu3();}}if(d5==0)//判断第四个键{delay(80);while(P2==0x1f){liu4();}}}}void INTO_() interrupt 0 // 外部中断是0号{while(d1==1);//判断播放键delay(800);//延时等待}5 仿真结果与结论PROTEUS软件自带编辑器,可以实现对汇编程序的编译,其操作步骤是:新建源文件:点菜单Source→Add/Remove source Files在出现的对话框中,选择ASEM51编辑器,新建NOMAME1.asm源文件。