单片机彩灯循环
基于AT89S52单片机的简易循环彩灯设计

基于AT89S52单片机的简易循环彩灯控制设计目录绪论 (4)1项目分析 (2)1.1 需求分析 (2)1.2 功能模块分析 (3)1.2.1 系统模块图 (3)1.2.2 外部时钟电路 (3)1.2.3 复位电路 (3)1.2.4 LED驱动电路 (4)1.2.5 最小系统电路 (4)1.3 方案设计 (5)1.3.1 设计方案比较及选择 (5)1.3.2 可行性分析 (5)1.3.3 难点分析及解决方法 (5)1.4 技术性能指标 (6)1.4.1基本要求: (6)1.4.2 彩灯闪烁花型 (6)2 硬件设计 (6)2.1 总体电路图 (6)2.2 电路的工作原理 (7)2.3 元器件及其参数选择 (7)2.4 PCB板的制作 (9)2.5焊接组装 (9)3 电路调试 (10)3.1 静态调试 (10)3.2 通电调试 (10)3.3 故障分析与排除 (10)4 软件设计 (11)4.1 程序设计 (11)4.2 程序功能模块的划分 (11)4.3 程序框架图 (11)4.4 软件程序: (11)4.4 程序调试 (14)4.5 系统仿真 (14)4.6 设计结果评价 (15)5 结语 (15)参考文献 (17)附录: (18)致谢 (19)基于AT89S52单片机的简易循环彩灯控制设计摘要在当代生活里,人们对生活灯饰品的要求越来越高,这样无疑使得各种彩灯成为了最日常生活中不可缺少的装饰品,它不仅能美化都市环境,渲染生活气氛,还可将其用于各种娱乐场所和电子玩具中。
现以本毕业设计为例进行分析与设计简易的可编程的循环彩灯控制电路很多,其组合的方式和运用的集成块的种类及数目更是多种多样,而且还有专门的可编程[9]循的各种复杂程度的循环彩灯控制电路模块。
市场上及大多数的彩灯都是运用各种数字电路来实现的,但本毕业设计在考虑到制作简易程度及成本的前提下,由于单片机具有集成度高、功耗低、运行可靠性强、体积并不大、价格低廉等优点 , 所以特意地运用了单片机、LED等优点及技术,来实现对各种形式不一的各色彩灯的自动简易控制。
循环彩灯控制系统实验报告

循环彩灯控制系统实验报告一、设计要求1、程序中由3个按钮控制每按下一个按钮都会出现不同的彩灯循环现象二、硬件电路设计1、单片机最小系统(2)发光二极管的电路三、软件设计(一)1、在Keil uVision4.LNK上写好程序后通过STC_ISP_V480.exe.lnk和USB口输入到reg52.h单片机中按下开关蓝色指示灯亮,然后按下P3^7按钮发光二极管从左往右依次点亮;2、①在不复位的情况下按下P3^6时发光二极管可以做往返运动依次点亮②在复位时按下P3^6发光二极管是从右往左依次点亮的;3、①在不复位的情况下按下P3^5时发光二极管可以在从左往右或者从右往左点亮后1,3,5,7与2,4,6,8交替闪烁(在看先点亮P3^6还是P3^5 来实现从左还是从右开始循环)②在复位时按下P3^5发光二极管是作1,3,5,7与2,4,6,8交替闪烁。
(二)说明(“0”“1”“2”“3”“4”“5”“6”“7”按键P3^7 0X7F 0XBF 0XDF 0XEF 0XF7 0XFB 0XFD 0XFE 复位P3^6 0XFE 0XFD 0XFB 0XF7 0XEF 0XDF 0XBF 0X7F 复位P3^5 0X7F/0XFF 0XFF/0XBF0XDF/0XFF0XFF/0XEF0XF7/0XFF0XFF/0XFB0XFD/0XFF0XFF/0XFE复位8421码10=A 11=B 12=C 13=D 14=E 15=F四、系统测试步骤1:新建工程→New Project→选择单片机型号→Atmel→AT89C52取名→保存2:新建文档→New file→取名→保存(—3个按键控制两种LED现象.C)3:点右键→Add file to group→选择(—3个按键控制两种LED现象.C)4:点工程右键→options “output”(√)create hex file5产出hex档→编译按钮(↓)(↓↓)(↓↓↓)STC下载软件1:选择单片机型号“STC89C52RC”2:打开文件→(流水灯.hex)3:选择COM口(裝置管理員)4:点下载按鈕→开启电源按钮→“OK 已加密”附录源程序清单#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit key1 =P3^7; //第一个按键sbit key2 =P3^6; //第二歌按键sbit key3 =P3^5; //第三个按键uchar A1=0,A2=0,A3=0;void delay(uint z){uint i,j;for(i=0;i<z;i++)for(j=0;j<110;j++);}void O_to_E() //1,3,5,7与2,4,6,8交替闪烁{P0=0Xaa;delay(200);P0=~0Xaa;delay(200);}{if(!key1){delay(10); //延时if(!key1)A1=1;}if(!key2){delay(10); //延时if(!key2)A2=1;}if(!key3){delay(10); //延时if(!key3)A3=1;}}void main(){uchar i;while(1){if(A1){for(i=0;i<8;i++) //从左往右亮,每盏灯亮一次{P0=~(0x7f>>i);delay(100);}}if(A2){for(i=0;i<8;i++) //从右往左亮,每盏灯亮一次{P0=~(0xfe<<i);delay(100);}}if(A3){O_to_E(); //1,3,5,7与2,4,6,8交替闪烁}}}附加图片(因为手机问题从左往右跟从右往左还有左右往返的看不出来所以就拍了2张图片)1、从左往右、从右往左、往返2、//1,3,5,7与2,4,6,8交替闪烁超。
AT89S51单片机循环 彩灯

3.1 任务二 P1口外接8只LED发光二极管模拟彩灯
3.1.4 相关知识
1,什么是数据传送操作与数据传送指令 MCS-51单片机有哪些数据传递指令
查表指令(2条)
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯
3.1.4 相关知识
1,什么是数据传送操作与数据传送指令 MCS-51单片机有哪些数据传递指令
_堆栈操作类指令(2条)
____这类指令的作用是把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元中.这类指令只有两条,下述的第一条常称为入栈操作指令,第二条称为出栈操作指令.需要指出的是,单片机开机复位后,(SP)默认为07H,但一般都需要重新赋值,设置新的SP首址.入栈的第一个数据必须存放于SP+1所指存储单元,故实际的堆栈底为SP+1所指的存储单元.
________MOV _A,#data ___;#data→(A) 立即数送到累加器A中
________MOV _A,Rn______;(Rn)→(A) Rn中的内容送到累加器A中
________MOV _A,@Ri ____;((Ri))→(A) Ri内容指向的地址单元中的内容送到累加器A
END
3.1 任务二 P1口外接8只LED发光二极管模拟彩灯
3.1.3 源程序的编辑,编译,下载
打开"伟福"模拟仿真软件进行程序的编辑,编译.
1,正确选择单片机类型8751或8031
2,正确选择编译器-伟福编译器
3,选择模拟仿真功能
基于单片机c语言花样彩灯设计

/*-------------2011.3.19 xxx编写------------------------------------------------------------设计名称:花样和速度可控的花样彩灯设计功能:1.本程序用了两个按键,其中一个可以循环控制花样,另一个循环控制流水速度;2.有断电保存当前花样和速度功能,即断电后,在重现上电时,执行的花样和速度仍旧是断电前的速度和花样。
缺点:1、本程序为延时计时,精度不高;2、由于使用延时来得到秒信号,时数和分数被改变后,有时要过一秒后才能被更新显示------------------------------------------------------------------------------------------------*/#include<reg52.h>#include<zi.c>#include<24c02.c>sbit s1=P1^4; //定义按键sbit s2=P1^5;void zhongduan(void)interrupt 1{//P1=0xff;TR0=0; //关闭定时器T0if(s1==0) //如果按键s1被按下{delay_ms(10); //延时消抖di();{if(s1==0) //如果按键s1按下{k++;write_add_24c02(0,k);if(k==6){k=1;}}while(!s1);flag=1;} //等待s1键抬起并改变标志位TR0=1; //启动定时器T0}if(s2==0) //如果按键s2被按下{delay_ms(10); //延时消抖di();if(s2==0){i++;write_add_24c02(1,i);if(i==6)i=1;}while(!s2);flag=1;} //等待s2键抬起并改变标志位TR0=1; //启动定时器T0}void main(void){TMOD=0X02; // 定时器TO,工作方式2,带自动装在的8位计数器,最大数值2^8=256TH0=256-200; //装载初值TL0=256-200;ET0=1; // 定时器T0中断允许TR0=1; //开启定时器T0EA=1; //打开外部中断0k=read_add_24c02(0);i=read_add_24c02(1);if(k>=6)k=1;if(i>=6)i=1;while(1){flag=0; //按键按下标志位while(flag==0) //检测到有按键按下{ switch(k){case 1:huayang_1();break;case 2:huayang_2();break;case 3:huayang_3();break;case 4:huayang_4();break;case 5:huayang_5();break;}switch(i){case 1:x=10;break;case 2:x=100;break;case 3:x=500;break;case 4:x=1000;break;case 5:x=2000;break;}}}}/****************************************花样子文件zi.c*************************************************/ /*sbit S1=P1^3; 定义按键s1为引脚P1.3sbit S2=P1^4;sbit S3=P1^5;sbit S4=P1^6;sbit S5=P1^7;*/#define led P3sbit beep=P2^0; //定义蜂鸣器为引脚P2.0unsigned int x=10;unsigned char k=1,i=1,flag=0;//#define led ledvoid delay_ms(unsigned int xms) //1ms延时子程序{ unsigned int aa,bb;for(aa=xms;aa>0;aa--){if(flag==1) //当检测到有按键按下,跳出内层循环break;for(bb=800;bb>0;bb--);} //调整bb数值,以使本句运行时间为1ms 。
学习任务三单片机循环彩灯制作 《单片机应用技术》教学课件

一、单片机中常用的数制及编码
表3-2常用的ASCII中的部分符号说明如下。
NUL 空
FF 换页
CAN 作废
SOH 标题开始 CR 回车 EM 载终
STX 正文结束 SO 移出符 SUB 取代
ETX 本文结束 SI 移入符 ESC 换码
EOT 传输结束 DLE 转义符 FS 文字分割符
ENQ 询问 DC1 设备控制1 GS 组分割符
(2)利用开关作为单片机的输入, 拨动不同的开关,循环彩灯点亮的方式 和花样有所不同。
学习目标
能力要求
(1)能够灵活运用单片机中的传送指令; (2)能够使用WAVE6000软件对汇编程序进行调试、编译等; (3)能够进行ED电路的正确连接及调试; (4)能够进行时钟电路、复位电路的正确连接及调试; (5)能够根据项目要求设计出硬件电路; (6)能够进行本项目单片机系统控制电路的正确连接及调试; (7)能够使用编程器下载程序到单片机中。
8421BCD码是一种最常用的编码。4 位二进制码的权从前到后分别为8、4、 2、1。其特点如下。
(1)由4位二进制数0000~1001分 别表示十进制数0~9。
(2)每4位二进制数进位规则为逢十 进一。
(3)当进行两个BCD码运算时,为 了得到BCD码结果,需要进行十进制
一、单片机中常用的数制及编码
2)ASCII码
ASCII码是由7位二进制 数码构成的字符编码,常用的 ASCII码表共有27=128种组合 状态,用它们表示52个大小 写英文字母、10个十进制数、 7个标点符号、9个运算符号 及50个其他控制符号。
在表示这些符号时,用高3位表示行码, 低4位表示列码。常用的十进制数0~9 的ASCII码为 30H~39H,大写字母A~ Z的ASCII码为 41H~5AH,小写字母 a~z的ASCII码为 61H~7AH。
单片机节日彩灯控制器设计彩灯控制器

单片机节日彩灯控制器设计彩灯控制器一、设计任务与要求(1)PD0:开始,按此键则灯开始流动(由上而下);(2)PD1:停止,按此键则停止流动,所有灯为暗;(3)PD2:上,按此键则灯由上向下流动;(4)PD3:下,按此键则灯由下向上流动。
二、方案设计与论证随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响彩灯效果,因此有必要对现有的彩灯控制器进行改进。
本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。
其硬件构成框图如图所示,以单片机为核心控制,由单片机最小系统,时钟电路、复位电路、电源、按键控制电路、LED发光二极管和5V直流电源电路组成。
图2单片机彩灯循环控制系统硬件框图开始键按下?停止键按下?正向键按下?反向键按下?灯全灭停止键按下?正向键按下?此设计方案中单片机的PD 口接4路按键控制电路,实现彩灯花型的切换功 能,单片机上的PB 口接8路LED 发光二极管组成彩灯电路,显示彩灯循环情况。
1、总体流程图设计2、键盘设计论证 方案一、独立式独立式键盘是各按键相互独立,每个按键各接一根输入线,一根输入线上的 按键工作状态不会影响到其他输入线上的工作状态。
因此,通过检测输入线的电 平状态可以很容易判断那个键被按下了。
独立式按键电路配置灵活,软件简单,但每个按键需要占用一根输入口线, 在按键数量较多时,需要较多的输入口线且 电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。
基于单片机的LED流水彩灯设计

第1章概述近几年来,彩灯对于美化、亮化城市有着不可轻视的重要工作。
因此作为城市装饰的彩灯需求量越来越大,对与彩灯的技术和花样也越来越高。
但传统的彩灯控制电路一般是由数字电路组成,这种彩灯控制器电路结构复杂、成本较高、功率损耗大,此外从功能效果上看,彩灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进行改进。
然而单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
LED彩灯具有成本低、发光纯度高、发光热量小、耗电量低、超长寿命的特点。
所以利用单片机作LED彩灯控制,不仅是使控制花样、路数大大增加,成本也很低,而且对环境能源没有污染,有着很大的发展前景。
本方案是一种基于AT-89C51单片机的彩灯控制方案,实现对LED彩灯的控制。
主要以AT-89C51单片机作为主控核心与发光二极管、晶振、复位、电源等组成电路,利用软件编辑实现彩灯流水灯的效果。
第2章方案设计2.1设计任务(1)共有红、绿、蓝3色彩灯各8个,要求按一定顺序和时间关系运行:红色发光二极管由弱到强—>绿色发光二极管由弱到强—>蓝色发光二极管由弱到强。
(2)利用三基色原理,控制每次点亮红色发光二极管,绿色发光二极管,蓝色发光二极管的数目,实现黄色,紫色,青色。
(3)控制不同颜色发光二极管的数目,实现花样彩灯。
(4)编写程序代码。
(5)程序分析与调试。
2.2工程方案按照设计任务要求,红,绿,蓝光由弱到强,每个颜色用8个发光二极管,在程序控制下,先亮一个,再亮两个,再亮三个,慢慢的直到最后全亮,就能看到由弱到强的现象。
如果同一颜色使用更多的发光二极管,显示效果会更柔和。
要实现黄色,紫色,青色光,只能根据三基色原理进行合成。
所谓三基色是指红,绿,蓝三色,人眼对红,绿,蓝最为敏感,大多数可以通过红,绿,蓝3种颜色按照不同的比例合成产生。
同时,绝大多数单色光也可以分解成红绿蓝三种光。
基于单片机的节日彩灯设计(六种状态)

LED lightsAT-89C52
一、绪论
彩灯是我国普遍流行的传统的民间的综合性的工艺品。彩灯艺术也就是灯的综合性的装饰艺术。新中国成立后,彩灯艺术得到了更大的发展,特别是随着我国科学技术的发展,彩灯艺术更是花样翻新,奇招频出。而随着人们生活环境的不断改善和美化,在许多节日的气氛里可以看到彩色霓虹灯,这种LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。其将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一。在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。
uchar scan(void)
{
uchar ans;
//if(P1!=0xF0)
//{
//delay(4);
if(!key1)
{
ans=1;
while(!key1);
}
if(!key2)
{
ans=2;
while(!key2);
}
if(!key3)
{
ans=3;
while(!key3);
}
if(!key4)
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
P0=0xFF;
}
/***************************************************/
//按键扫描
/***************************************************/
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机原理及应用》课程设计报告题目:彩灯循环系统专业:电子信息工程班级:学号:姓名:指导教师:一.实验目的:《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。
其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。
二.实验内容:通过8051单片机实现彩灯循环三.实验过程:1.引言随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。
LED彩灯由于其丰富的灯光色彩,便宜的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,。
本方案提出了一种基于8051单片机的彩灯控制方案,实现对LED彩灯的控制。
本方案以8051单片机作为主控核心,在主控模块上设有3个按键和8个码LED显示灯,根据需要可以编写若干种亮灯模式,利用其内部定时器T0实现一个基本单位时间为1 ms的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。
与普通LED 彩灯相比,具有体积小、价格低、低能耗等优点。
2.8051单片机引脚功能介绍首先我们来连接一下单片机的引脚图,如果,具体功能在下面都有介绍。
单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。
⒈电源: ⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
⒊控制线:控制线共有4根,⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵ PSEN:外ROM读选通信号。
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
② VPD功能:在Vcc掉电情况下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋ I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
〈51单片机引脚图及引脚功能〉拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。
1、电源:这当然是必不可少的了。
单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。
2、振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。
只要买来晶体震荡器,电容,连上就能了,按图1接上即可。
3、复位管脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。
4、 EA管脚:EA管脚接到正电源端。
至此,一个单片机就接好,通上电,单片机就开始工作了。
我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个管脚相连,不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了刚才用掉的5个管脚,还有35个,我们将这个LED和1脚相连。
(见图1,其中R1是限流电阻)按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED 才发亮。
因此要1脚我们要能够控制,也就是说,我们要能够让1管脚按要求变为高或低电平。
即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不能由我们来更改。
3系统功能LED彩灯用软件控制硬件的方式来是彩灯闪烁,即彩灯控制器和管内LED 板模块)。
彩灯采用8051提供+5V电压工作,经过开关电源变换,输出直流工作电压,一方面为管内LED模块提供+5V工作电源,另一方面为主控模块单片机系统彩灯控制器提供5 V工作电源。
整个系统工作由软件程序控制运行,根据需要,用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯时间和灯光闪动频率。
上电后系统经过初始化,查询是否有功能切换键按下:有,则进入设定模式状态;无,则进入默认工作状态。
在设定模式状态下,可以根据个人爱好及不同场合的需要来指定调用哪些模式,并且可以改变每种模式的时间T1、频率F1参数,在工作状态下,LED彩灯控制器按照程序设定好的若干亮灯花样模式程序顺序调用往下走,开始工作,依次8个等亮完为一个亮灯周期,然后再回主循环继续工作,同样如果想进入其它设定模式状态,只需按下功能切换键即可。
整个3种亮灯模式时间可以看作一个大周期T,对于每一个模式编写一个独立工作子程序,其中设定了从左到右点亮LED,在从右到左点亮LED,还有自己定义的LED点亮方式。
因此在LED彩灯上电工作后,可以方便地通过控模块上的显示器知道LED彩灯当前工作模式,工作时间Ti,频率Fi等实时参数。
若实际应用需要根据不同场合和时间来改变彩灯闪亮效果,可以通过主控模块上的按键来设定LED不同的闪烁频率Fi和亮灯时间Ti,以便符合实际需要。
此外如果对某一种模式感兴趣需要仔细观看该种亮灯模式,可以让程序循环硬件设计:LED彩灯系统包括,即LED彩灯控制器(8051主控模块)LED彩灯管在8051外部接一个震荡时钟频率。
用8051的控制模块,具有按键、显示等功能,并利用8051的P0口输出控制信号,利用P0口的8个输出端上面焊有8个LED彩灯,使得彩灯在软件的控制下工作。
主控模块电路设计主控模块电路如图1所示。
主控模块主要设计器件有80C51,8个 LED 显示器,3个开关按键,1个稳压器(5 V电压),1个外部晶振震荡器信号输出驱动,4个电阻。
通过软件设计,使单片机P0口作为三色LED驱动信号输出口及移位时钟CLOCK信号,8051的P0口为LED的输出口。
软件设计:LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。
系统中软件可以分为主程序和中断服务子程序。
上电后在按键控制灯的闪烁方式,通过软件来控制循环,以一个单位时间1 ms的T0定时为中断服务子程序。
在这个1 ms的T0定时基础上,可以根据需要来确定各种模式工作时间Ti,以及确定在各种亮灯内点亮和熄灭各种状态LED灯等。
整个系统软件由程序)、各个模式子程序、1 ms中断服务子程序、调用循环程序组成。
利用T0定时器作为定时基本单位,根据模式需要计算好各控制信号的发生时刻,根据移位触发的翻转时刻步调一致,使LED彩灯按照设计的模式工作。
除了T0定时中断之外,程序的大部份时间是在处理按键的查询和LED 显示的延时。
3个按键分别为:K1按键.从左到右点亮LED,K2按键.从右到左点亮LED,K3按键.用户自己定义方式点亮LED。
在每次的T0定时中断服务子程序里,需要对各个时间寄存器和模式寄存器进行加1或者清,为主程序查询作准备,同时查询是否已中断1ms,若1ms到了,则对按键一次,是否有按下并进行相应子程序处理。
主程序除了调用各种子模式子程序,调用LED显示子程序和延时子程序之外,还一直保持查询是否有功能切键按下以及是否有模式改变按键按下,一旦有功能切换键和模式改变键按下,就会进入相应的按键处理。
程序流程如图2所示亮灯模式,只要控制好各色灯触发和熄灭时刻就可以组合成各种亮灯效果。
4.实验结构图仿真:5.实验软件程序:ORG 0000HLJMP STARTORG 0003HLJMP INTOORG 0100HSTART: MOV R2,#08H ;设置循环次数MOV A,#0FEH ;送显示模式字SETB P0.1CLR P0.0CLR P0.7CLR P0.2SETB EASETB IT0SETB EX0HERE: AJMP HEREINTO:MOV P0,A ;点亮二极管RL A ;左移一位,改变显示模式字RETIDELAY: MOV R5,#1DEL3: MOV R3,#0FFH ;延时子程序开始DEL2: MOV R4,#0FFHDEL1: NOPDJNZ R4,DEL1DJNZ R3,DEL2DJNZ R5,DEL3RETEND6.彩灯循环方式的修改:此程序里面涉及了主程序,延迟程序,主程序实现彩灯的循环控制,延迟程序实现彩灯的交替闪烁的时间,通过改变显示模式的显示字就可以实现不同的闪烁方法,比如,可以在下面再加一个RL A 就会隔一个闪了,要是开始两个都亮则可以把上面的MOV A,#0FEH ,改为MOV A,#0FDH ,等等四.实验心得:通过这几天的实训,我对单片机有了更深的体会。
了解和掌握了一些编程思想和对I/O口得使用。
本次做的控制循环彩灯控制系统的设计是以单片机8051为核心,结合相关的元器件(共阴极LED数码显示器、通用I/O接口芯片8155等),再配以相应的软件,达到实现LED二极管的发光功能,也具有改变彩灯的花样、彩灯的暂停、彩灯的加减速功能。
在软件调试的过程中,遇到很多困难,第一次实现了彩灯的花样变化,未能进行加减速的调整,后来经过调试后基本达到要求,但当减速见到一定程度后就不明显了,花形3全亮后左右最边亮灯没有灭,花形2时LED数码显示器上显示的不是“2”字,字码表上明明是“5BH”(共阴极)但是显示的“2”字多了一点。
尽管这次的单片机课程设计还存在一些瑕疵但经过自己的努力制作出了彩灯的循环控制,也让自己对单片机有了更大的兴趣。
通过这次的设计使我认识到我对单片机方面的知识学习得不够透彻,对书本上的很多知识还不能灵活的运用,有很多我们需要掌握的知识在等着我去学习,在以后的学习生活中弥补所缺失的知识。
这次实训使我对于软件的设计运用有了一定的了解,从程序设计到调试,再到装载到硬件电路中运行。
最重要的一点是自己的动手能力的提高。
作为一个高职学生动手能力差是不行的,相比本科理论知识有所欠缺,这样就不利于我们以后到社会中的工作。
提高动手能力,毕业后能够更快的适应工作。