资源描述
HUBEI NORMAL UNIVERSITY
单片机 课程设计
所在院系
教育信息和技术学院
专业名称
电子信息工程
班级
题目
节日彩灯控制器设计
指导老师
组员
完成时间
/12/18
一、设计任务及要求:
设计任务:
以单片机为关键,设计一个节日彩灯控制器。
要 求:
(1) P1.0—停止,按此键则停止流动,全部灯为暗;
(2) P1.1—开始,按此键则灯全亮;
(3) P1.2—按此键则灯由下向上流动;
(4) P1.3—按此键则灯由上向下流动。
指导老师署名:
12月28日
二、指导老师评语:
指导老师署名:
年12月 18日
三、成绩
验收盖章
12月18 日
节日彩灯控制器设计
1.设计要求和思绪
1.1设计要求
(1) P1.0—停止,按此键则停止流动,全部灯为暗;
(2) P1.1—开始,按此键则灯全亮;
(3) P1.2—按此键则灯由下向上流动;
(4) P1.3—按此键则灯由上向下流动。
1.2设计思绪
由按键控制功效流水灯,LED工作方法经过键盘扫描实现。其中LED采取共阳极接法,经过依次向连接LEDI/O口送出低电平,可实现题目要求功效。
1.3电路设计(Proteus仿真经过)
本节日彩灯控制器电路原理图,以下图所表示,各按键功效和试验设计要求相同:
2.代码设计:
代码使用keil uvision4软件编辑,并编译为HEX文件。
#include <reg52.h>
#include <intrins.h>
sbit quanmie=P1^0;
sbit quanliang=P1^1;
sbit congxiashang=P1^2;
sbit congshangxia=P1^3;
int chuzhi,i;
void delay_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=_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;
if(quanliang==0||quanmie==0||congxiashang==0)
{
break;
}
}
}
}
}
}
3. Proteus仿真
加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好目标代码文件“led.hex”;在“Clock Frequency”栏中输入晶振频率为12MHz。
开启仿真以下页图所表示:
P1.0—停止,按此键则停止流动,全部灯为暗。
P1.1—开始,按此键则灯全亮。
P1.3—按此键则灯由下向上流动。
P1.4—按此键则灯由上向下流动。
4.结论
经过几天努力,最终完成了本学期单片机课程设计,过程虽是辛劳,但从中我学到了很多东西。首先巩固了课上学习理论知识,对于计算机汇编语言系统化整体化有了更深认识。在编写程序过程中碰到了很多困难经过反复修改不停修正最终才能得以实施。再次是经过搜集资料基础了解了proteus软件使用。整个设计过程最大收获就是意识到理论知识扎实关键性,实践是建立在理论之上。
5.参考文件
1、《单片机应用系统设计技术》 张齐 朱宁西 编著
2、《单片机原理和应用系统设计》 张齐 编著
展开阅读全文