1、
单片机课程设计节日彩灯控制器的设计
10
2020年4月19日
文档仅供参考,不当之处,请联系改正。
HUBEI NORMAL UNIVERSITY
单片机 课程设计
所在院系
教育信息与技术学院
专业名称
电子信息工程
班级
题目
节日彩灯控制器的设计
指导教师
成员
完成时间
/12/18
一、设计任务及要求:
设计任务:
以单片机为核心,设计一个节日彩灯控制器。
要 求:
(1) P1.0—停止,按此键则停止流动,所有灯为暗;
(2) P1.1—
2、开始,按此键则灯全亮;
(3) P1.2—按此键则灯由下向上流动;
(4) P1.3—按此键则灯由上向下流动。
指导教师签名:
12月28日
二、指导教师评语:
指导教师签名:
年12月 18日
三、成绩
验收盖章
12月18 日
3、
节日彩灯控制器的设计
1.设计要求与思路
1.1设计要求
(1) P1.0—停止,按此键则停止流动,所有灯为暗;
(2) P1.1—开始,按此键则灯全亮;
(3) P1.2—按此键则灯由下向上流动;
(4) P1.3—按此键则灯由上向下流动。
1.2设计思路
由按键控制功能的流水灯,LED工作的方式经过键盘的扫描实现。其中的LED采取共阳极接法,经过依次向连接LED的I/O口送出低电平,可实现题目
4、要求的功能。
1.3电路设计(Proteus仿真经过)
本节日彩灯控制器电路原理图,如下图所示,各按键功能与实验设计要求相同:
2.代码设计:
代码使用keil uvision4软件编辑,并编译为HEX文件。
#include
#include
sbit quanmie=P1^0;
sbit quanliang=P1^1;
sbit congxiashang=P1^2;
sbit congshangxia=P1^3;
int chuzhi,i;
void delay
5、ms(int z)
{
int x,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}
void main()
{
P1=0xff;
P2=0xff;
while(1)
{
if(quanmie==0)
{
P2=0xff;
}
if(quanliang==0)
{
P2=0;
}
if(congxiashang==0)
{
int a;
a=0xfe;
while(1)
{
delay_ms(100);
a
6、cror_(a,1);
P2=a;
if(quanliang==0||quanmie==0||congshangxia==0)
{
break;
}
}
}
if(congshangxia==0)
{
delay_ms(10);
if(congshangxia==0)
{
int a;
a=0xfe;
while(1)
{
delay_ms(100);
a=_crol_(a,1);
P2=a;
7、 if(quanliang==0||quanmie==0||congxiashang==0)
{
break;
}
}
}
}
}
}
3. Proteus仿真
加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“led.hex”;在“Clock Frequency”栏中输入晶振频率为12MHz。
启动仿真如下页图所示:
P1.0—停止,按此键则停止流动,所有灯为暗。
P1.1—开始,按此键则灯全亮。
8、
P1.3—按此键则灯由下向上流动。
P1.4—按此键则灯由上向下流动。
4.结论
经过几天的努力,终于完成了本学期的单片机课程设计,过程虽是辛苦的,但从中我学到了很多东西。首先巩固了课上学习的理论知识,对于计算机汇编语言的系统化整体化有了更深的认识。在编写程序的过程中遇到了很多困难经过重复修改不断修正最终才能得以执行。再次是经过搜集资料基本了解了proteus软件的使用。整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上的。
5.参考文献
1、《单片机应用系统设计技术》 张齐 朱宁西 编著
2、《单片机原理与应用系统设计》 张齐 编著