单片机课程设计(流水灯控制设计)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目名称:流水灯的控制设计姓名:杨松杭
班级:电气N091
学号:200945679832
日期:2012年6月16日
目录
目录 (1)
1. 课程设计的目的 ....................................................................................................................... 壹
2. 任务描述及设计方案 ............................................................................................................... 壹
2.1 任务描述 ......................................................................................................................... 壹
2.2 设计方案 ......................................................................................................................... 壹
2.3 设计思路 ......................................................................................................................... 壹
3. 流水灯控制的硬件原理图及程序语言.................................................................................... 贰
3.1 硬件原理图如下:.......................................................................................................... 贰
3.2 程序语言 ......................................................................................................................... 叁
4. 分析和总结 ............................................................................................................................... 伍
4.1 分析 ................................................................................................................................. 伍
4.2 总结 ................................................................................................................................. 伍
5. 心得体会 ................................................................................................................................... 陆
6. 参考文献 ................................................................................................................................... 陆
1.课程设计的目的
课程设计是本专业集中时间环节的主要内容之一。

训练正确地应用单片机,培养解决工业控制、工业检测等领域具体问题的能力。

学生通过所做课题,熟悉单片机应用系统开发研制的过程,软硬件设计的工作方法、内容及步骤,对学生进行基本技能训练。

例如组成系统、编程、调试、绘图等。

使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。

本课程设计的目的:设计一个简单的由单片机控制的输入输出系统。

2.任务描述及设计方案
2.1 任务描述
设计流水灯控制电路,使连接在该电路上的八个LED灯按三种不同的模式进行闪烁。

2.2 设计方案
本方案是用ATMEL的AT89C51来实现的。

每个口都为低电平有效,我们用P2口的高低电平来控制P0口的电平,以实现不同的闪烁模式。

通过三个按钮选择不同模式的亮灯方案,模式一:顺序逐个亮灭,产生流水效果;模式二:逆序同时两灯流水;模式三:同时闪烁,一个甚至多个移位,包含模式一、二等64种不同的闪烁效果。

三种模式可以随意切换,还带有暂停和复位功能。

2.3 设计思路
P0^1~P0^7接八个LED灯,P2^1~P2^3、P2^6、P2^7分别接按钮开关,编号1~5。

按钮一端接地。

在编程时,用P2口的高低电平来控制P1口的电位。

开关1~3分别为模式1~3的选择启动按钮,开关按钮4为停止复位键,开关按钮5为暂停键。

以模式一为例,LED从左往右分别为D1~D8,按下开关按钮1时,启动模式1,亮灭顺序从1~8。

图2-1 LED灯管
因为计算计算的速率很快,人的眼睛不可能分辨的过来,所以在每只LED灯亮的时候设有一定的延时,熄灭也一样。

依次从左往右时就会产生“流水”的效果。

模式2、模式3也是一样,只因程序的不同而不同。

3.流水灯控制的硬件原理图及程序语言
3.1 硬件原理图如下:
图3-1 硬件原理图
3.2 程序语言
#include<reg51.h>
#include<intrins.h>
sbit led4=P2^6;
sbit led5=P2^7;
sbit led1=P2^1;
sbit led2=P2^2;
sbit led3=P2^3;
#define uchar unsigned char
#define uint unsigned int
code uint num[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,
0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xc0,
0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xfe,0xfc,
0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x81,0xc3,
0xe7,0xff,0xe7,0xff,0xe7,0xc3,0x81,0x00,
0x42,0x24,0x00,0xff,0x00,0xff,0x00,0xff,
0x24,0x42,0x81,0x24,0x42,0x81,0x24,0x42,
0x81,0x18,0x81,0x18,0x81,0x18,0x81,0xff,}; void delay(uint ms);
uint count=0;
static uchar x=0;
void main()
{
uchar a;
uchar b;
b=0x5f;
a=0xfe;
if(led1==0||led2==0||led3==0)
{
while(1)
{
/*================复位================*/ if(led4==0)
{
P0=0xff;
a=0xfe;
x=0;
while(led1==1&&led2==1&&led3==1);
}
/*=================循环程序===============*/
/*================模式1===============*/
while(led2==1&&led3==1&&led4==1&&led5==1)
{
P0=a;
delay(250);
a=_crol_(a,1);
}
/*================模式2===============*/
while(led1==1&&led3==1&&led4==1&&led5==1)
{
P0=b;
delay(250);
b=_cror_(b,1);
}
/*================模式3===============*/
while(led1==1&&led2==1&&led4==1&led5==1)
{
for(count=30000;count>0;count--);
P0=num[x++];
if(x==64)
x=0;
}
/*================暂停================*/
if(led5==0)
{
while(led1==1&&led2==1&&led3==1&&led4==1);
}
}
}
}
void delay(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
4.分析和总结
本次课程实习我们虽然用了一个星期的时间就全部完成,但整个过程我们都认真的完成了,而且从中收获很多。

可以总结以下几点:
4.1 分析
这次课程设计中,主要困难就是对ISIS 7 Professional软件和Keil C51编程软件的陌生,经过小队的一起探讨,确定了课题,进行了分工。

我负责Keil C51的熟悉与初步掌握,对本次课程设计的方案进行编程。

在用ISIS 7 Professional软件仿真时总达不到预定效果,经小组的多次探讨才仿真成功。

4.2 总结
通过此次的课程设计,我加深了对单片机以及C语言的认识和理解,使各部分的知识得到了进一步的巩固。

在编程的过程中遇到很多问题,例如for/while/if等语句的不熟练应用导致许多次仿真效果不尽人意。

通过上网的查找和翻阅图书,一步步地解决了问题。

理论与实践的结合相当
之重要,最初以为只会是一个简单的过程,实际中每个元器件都相连在一起,在考虑这个的同时还要兼顾另外的东西。

经过一次次的一起地完善学习,渐渐弥补了知识上的匮乏,最终做出了让自己满意的效果。

5.心得体会
通过此次设计实验,加深了对单片机的理解,开阔了我们的思维境界,使我们的知识更加丰富。

对于学到了新的知识,掌握了这两款软件的初级应用有一定的满足感,这是一个好的开始,好好学习,更上一层楼。

6.参考文献
【1】单片机原理及接口技术(第3版)李朝青编著北京航空航天大学出版社
【2】51单片机开发入门人民邮电出版社
【3】C语言程序设计人民邮电出版社。

相关文档
最新文档