一、任务 以单片机为核心,设计一个节日彩灯控制器。 二、设计要求
以单片机为核心,设计一个节日彩灯控制器,要求有四个控制按键:
第5章 系统调试与测试结果分析
5.1 使用的调试工具及调试环境
1 调试工具
本设计调试工具采用电脑、单片机仿真以及5V直流稳压电源。
2 调试环境
地点:寝室
室温:30 ℃
2 系统调试
根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试,最后将各模块组合后进行整体测试。
1硬件调试
对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。通过kill软件烧录下载到硬件中验证功能。
2软件调试
软件调试采用单片机仿真器及微机,将编好的程序进行调试,主要是检查语法错误。
3硬件软件联调
将调试好的硬件和软件进行联调,主要调试系统的实现功能。
3 测试结果及状态分析
此次系统设计结果较好,经Proteus软件仿真系统的调试,可检测出仿真电路正常;对应按键按下,彩灯出现不同花型,实现了多控制、多闪烁的LED彩灯循环;经以上仿真测试证实,本设计能实现设计系统要求的预期功能。
结 论
本次课程设计以STC89C51单片机作为主控核心,按键控制电路、彩灯显示电路以及单片机最小系统等模块组成的核心主控制电路,利用软件编程烧录程序到单片机来实现对LED节日彩灯的控制。
通过软硬件的仿真调试,对彩灯控制器的运行成果感觉比较满意,它实现了我们要求达到的目标,实现了多控制、多闪烁方式的LED节日彩灯循环,并且用快慢两种节拍实现花型交换。本系统亮灯模式多,可根据操作提示随意变换想要的闪烁方式。同时本设计具有电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,具有一定的实用和参考价值。
但是在设计中也出现了一些问题:Proteus仿真软件不是很稳定,造成仿真页面奔溃,另外硬件调试程序时出现了延时问题等。这种都是以后的工作当中需要注意并解决的问题。
参考文献[1] 刘宏.电子工艺实习,华南理工大学出版社,2011.
[2] 邓奕.电子线路CAD实用教程,华中科技大学出版社,2013
[3] 康华光.电子技术基础.高等教育出版社,2006.
[4] 手把手教你学51单片机C语言版,宋雪松,清华大学出版社。2010
[5] C语言程序设计,谭浩强,清华大学出版社,2010
单片机源程序如下:
- #include <reg52.h>
- #define uchar unsigned char //宏定义
- #define uint unsigned int
- sbit k1=P1^2; //位定义
- sbit k2=P1^3;
- sbit k3=P1^4;
- sbit k4=P1^5;
- uchar a=0; //定义所需变量
- uchar b;
- uchar code table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //从上到下流水数组
- uchar code table2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //从下到上流水数组
- void delay_ms(uint xms) //延时函数
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- void key_scan(uchar b) //按键扫描
- {
- if(b==1) //若K1按下
- {
- while(k2==1&&k3==1&&k4==1)
- {
- for(a=0;a<8;a++) //执行从上到下流水操作
- {
- P0=table1[a];
- delay_ms(100);
- }
- a=0;
- }
- }
- if(b==2) //若K2按下
- {
- while(k1==1&&k3==1&&k4==1)
- { //P0全部输出高电平,关闭LED
- P0=0xff;
- }
- }
- if(b==3) //若K3按下
- {
- while(k1==1&&k2==1&&k4==1)
- {
- for(a=0;a<8;a++) //执行从下到上流水操作
- {
- P0=table2[a];
- delay_ms(100);
- }
- a=0;
- }
- }
- if(b==4) //若K4按下
- {
- while(k1==1&&k2==1&&k3==1)
- {
- P0=0xaa; //奇偶位分别点亮
- delay_ms(100);
- P0=0x55;
- delay_ms(100);
- }
- }
- }
- void main(void) //主函数
- {
- TMOD=0X01; //定时器中断初始化
- TH0=(65536-1000)/256;
- TL0=(65536-1000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1);
-
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
电工1512班 周苗 节日彩灯控制器.zip
(106.51 KB, 下载次数: 60)
|