预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

东北大学秦皇岛分校《单片机原理与接口技术》课程设计报告题目:单片机的LED流水灯系统设计专业:通信工程学号:4091025姓名:于萍提交日期:2011/11/05成绩:一.功能介绍:此流水灯控制器,在按钮A=0时,8个流水灯的里亮灭顺序是1.,2,3,4,5,6,7,8;当A=1时,8个灯得亮灭顺序是8,7,6,5,4,3,2,1。按钮B可以随时启动或停止流水灯的运行。二.设计理念:将按钮A设在P3.6,按钮B设在P3.7。在按钮A=0时,若B=0,则灯不亮;若B=1,则8个灯按照1,2,3,4,5,6,7,8的顺序亮灭,反复循环,B随时按下都可以启动或停止流水灯的运行。在按钮A=1时,若B=0,则灯不亮;若B=1,则8个流水灯按照8,7,6,5,4,3,2,1的顺亮灭,反复循环,B随时按下都可以启动或停止流水的运行。满足设计要求。三.硬件结构图:80C51按钮控制流水灯模块四.软件流程图:开始主程序运行结束判断按钮A是否按下是判断B是否按下否8个灯亮灭顺序为1,2,3,4,5,6,7,8否判断B是否按下否8个灯亮灭顺序为8,7,6,5,4,3,2,1是是8个灯熄灭五.源代码:#include<AT89X51>SBITA=P3^6;SBITB=P3^7;unsignedchari,j,k;voiddelays(void)//定义延时程序{for(i=50;i>0;i--)for(j=100;j>0;j--)for(k=248;k>0;k--);}voidmian(){constunsignedcharS1[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};constunsgnedcharS2[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedcharc;while(1){{if(A==0)for(c=0;c<8;c++)//8个灯亮灭顺序为1,2,3,4,5,6,7,8,{if(B==0)break;//按钮B随时可以启动或停止流水灯的运行if(B==1)P2=S1[c];delays(void);}}{if(A==1)for(c=0;c<8;c++)//8个灯亮灭顺序为8,7,6,5,4,3,2,1{if(B==0)break;//按钮B随时可以启动或停止流水灯的运行if(B==1)P2=S2[c];delays(void);}}P2=0xff;//8个灯熄灭}}六.总结当今社会,由单片机芯片控制各种硬件工作的技术日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中应用更为广泛,较为贴近生活。以前在路上夜景中经常见到各种流水灯,感觉很漂亮,通过此次编程以后才知道了原理,让我有一种学以致用的成就感!很开心!流水灯控制的设计所需要的知识不仅吻合了我们本学期对于单片机这门课程的学习,而且对于我们以前所学习的如数码管显示、LEG灯等知识也是一次很好地运用,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。总的来说,这次设计获益良多。。不仅培养了实践能力,还培养了设计思维,在摸索该如何设计电路使之实现所需功能的过程中,锻炼了运用所学知识的灵活性,加深了对知识的理解及提高了解决问题的能力。在体会到设计电路编写程序的艰辛的同时,更能体会到成功的喜悦和快乐。