当前位置:文档之家› 单片机课程设计流水灯控制设计

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

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)
{
{
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===============*/
5.
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.
本次课程实习我们虽然用了一个星期的时间就全部完成,但整个过程我们都认真的完成了,而且从中收获很多。可以总结以下几点:
单片机课程设计流水灯控制设计
题目名称:流水灯的控制设计
姓名:杨松杭
班级:电气N091
学号:9832
日期:2012年6月16日
1.
课程设计是本专业集中时间环节的主要内容之一。训练正确地应用单片机,培养解决工业控制、工业检测等领域具体问题的能力。学生通过所做课题,熟悉单片机应用系统开发研制的过程,软硬件设计的工作方法、内容及步骤,对学生进行基本技能训练。例如组成系统、编程、调试、绘图等。使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。
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。
4.2
通过此次的课程设计,我加深了对单片机以及C语言的认识和理解,使各部分的知识得到了进一步的巩固。在编程的过程中遇到很多问题,例如for/while/if等语句的不熟练应用导致许多次仿真效果不尽人意。通过上网的查找和翻阅图书,一步步地解决了问题。理论与实践的结合相当之重要,最初以为只会是一个简单的过程,实际中每个元器件都相连在一起,在考虑这个的同时还要兼顾另外的东西。经过一次次的一起地完善学习,渐渐弥补了知识上的匮乏,最终做出了让自己满意的效果。
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;
4.1
这次课程设计中,主要困难就是对ISIS 7 Professional软件和Keil C51编程软件的陌生,经过小队的一起探讨,确定了课题,进行了分工。我负责Keil C51的熟悉与初步掌握,对本次课程设计的方案进行编程。在用ISIS 7 Professional软件仿真时总达不到预定效果,经小组的多次探讨才仿真成功。
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,
a=0xfe;
x=0;
while(led1==1&&led2==1&&led3==1);
}
/*=================循环程序===============*/
/*================模式1===============*/
while(led2==1&&led3==1&&led4==1&&led5==1)
图2-1 LED灯管
因为计算计算的速率很快,人的眼睛不可能分辨的过来,所以在每只LED灯亮的时候设有一定的延时,熄灭也一样。依次从左往右时就会产生“流水”的效果。
模式2、模式3也是一样,只因程序的不同而不同。
3.
3.1
图3-1硬件原理图
3.2
#include<>
#include<>
sbit led4=P2^6;
本课程设计的目的:设计一个简单的由单片机控制的输入输出系统。
2.
2.1
设计流水灯控制电路,使连接在该电路上的八个LED灯按三种不同的模式进行闪烁。
2.2
本方案是用ATMEL的AT89C51来实现的。每个口都为低电平有效,我们用P2口的高低电平来控制P0口的电平,以实现不同的闪烁模式。通过三个按钮选择不同模式的亮灯方案,模式一:顺序逐个亮灭,产生流水效果;模式二:逆序同时两灯流水;模式三:同时闪烁,一个甚至多个移位,包含模式一、二等64种不同的闪烁效果。三种模式可以随意切换,还带有暂停和复位功能。
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,
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;
相关主题