51单片机心形流水灯设计毕业设计说明书_第1页
51单片机心形流水灯设计毕业设计说明书_第2页
51单片机心形流水灯设计毕业设计说明书_第3页
51单片机心形流水灯设计毕业设计说明书_第4页
51单片机心形流水灯设计毕业设计说明书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书题目:51单片机心形流水灯设计产品设计工艺设计方案设计√类型:学生姓名:学号:学院:电子信息工程学院专业:应用电子技术班级:学校指导教师:企业指导教师:2016年5月3日摘要51单片机心形流水灯的设计以51单片机为核心控制部件,将发光二灯在排列上做成心形的形状,加上不同的软件控制方式就形成了心形流水灯。如果不加外扩展方式,最多只能用32个发光二极管做成心形的流水灯。该设计只使用32个发光二极管,在外形排列上排成心形的形状。配以八种控制方式,形成多花样的心形流水灯。关键词:STC89C51单片机;心形流水灯;八种控制方式 目录1.引言 42.51单片机的心形流水灯硬件 42.1心形流水灯的最小系统 42.2心形流水灯的工作原理 53.心形流水灯的程序设计 53.1心形流水灯的主程序设计 53.2.心形流水灯的延时模块 63.3.心形流水灯的工作方式模块 6致谢与结论 20参考文献 20

1.引言单片机心形流水灯控制器,外围电路简单,程序控制可以多样化,通过将32个发光二极管在外形排列成为心的形状,配以软件程序设计的多方式控制,完成51单片机的心形流水灯的设计与制作,下面将从硬件电路和软件设计两方面对51单片机的心形流水灯给与说明。2.51单片机的心形流水灯硬件2.1心形流水灯的最小系统心形流水灯的最小系统是由STC89C51单片机、上电复位电路、、振荡电路、STC89C51工作电源、心形发光二极管组成。上电复位电路工作原理:当心形流水灯的单片机接通电源时,由于电容两端的电压不能突变,C1相当于短路,单片机的复位引脚9相当于接电源电压正极,这时单片机进行复位操作。按钮复位电路工作原理:当心形流水灯在工作过程中按下复位按钮S,单片机的9脚直接接电源正极。这时单片机也进行复位操作。振荡电路是由一个12MHz晶体振荡器和两个30pF的电容构成,单片机工作周期为12μS。心形流水灯的最小系统如图2.1所示。图2.1心形流水灯的单片机最小系统图2.2心形流水灯的工作原理心形流水灯是由32个发光二极组成,32个发光二极管接成共阳连接,另一端与单片的32个输入输出引脚相连,让哪个发光二极管导通,与单片机相连的引脚输出低电平,对应的发光二极管就发光,通过程序的控制就可让心形流水灯多花样的工作。心形流水灯的原理图如图2.2所示。图2.2心形流水灯的原理图从原理图中可以看出,如果要让接在P0.0口的LED1亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,其他LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要控制发光二极管依次点亮、熄灭。就能看到流水灯“流水”效果了。3.心形流水灯的程序设计3.1心形流水灯的主程序设计心形注水灯在单片机复位时,以一个灯亮的形式顺时针方向以500毫秒间隔进行流动,当32个流水灯都亮完后,以第二种方式、第三种方式、第四种方式、第五种方式、第六种方式、第七种方式、第八种方式进行工作,当所有的工作方式完成后重复开始进行,直到关闭心形流水灯为止。心形流水灯的主程序如下:voidmain(){ inital();//初始心形流水灯 while(1) { led_black1();//调心形流水灯的第一种工作方式 led_black2();//调心形流水灯的第二种工作方式 led_black3();//调心形流水灯的第三种工作方式 led_black4();//调心形流水灯的第四种工作方式 led_black5();//调心形流水灯的第五种工作方式 led_black6();//调心形流水灯的第六种工作方式 led_black7();//调心形流水灯的第七种工作方式 led_black8();//调心形流水灯的第八种工作方式 }}3.2.心形流水灯的延时模块心形流水灯每个发光二极管亮的时间为500毫秒,在这个心形流水灯中的我使用程序延时来实现,具体延时程序如下://一个带参延时模块,当x的参数就为延时的时间voiddelay(intx){ inti,j;//延时模块的局部参数 for(i=0;i<x;i++)//循环X次数 for(j=0;j<121;j++);//延时1毫秒模块}3.3.心形流水灯的工作方式模块心形流水灯的第一种工作方式是以一个发光二极管以500毫秒间隔进行顺时针运行。心形流水灯的第一种工作方式的程序如下:voidled_black1(){ P0=0xfe; delay(500);//延时500毫秒 P0=0xfd; delay(500);//延时500毫秒 P0=0xfb; delay(500);//延时500毫秒 P0=0xf7; delay(500);//延时500毫秒 P0=0xef; delay(500);//延时500毫秒 P0=0xdf; delay(500);//延时500毫秒 P0=0xbf; delay(500);//延时500毫秒 P0=0x7f; delay(500);//延时500毫秒 P0=0xff; P1=0xfe; delay(500);//延时500毫秒 P1=0xfd; delay(500);//延时500毫秒 P1=0xfb; delay(500);//延时500毫秒 P1=0xf7; delay(500);//延时500毫秒 P1=0xef; delay(500);//延时500毫秒 P1=0xdf; delay(500);//延时500毫秒 P1=0xbf; delay(500);//延时500毫秒 P1=0x7f; delay(500);//延时500毫秒 P1=0xff; P2=0xfe; delay(500);//延时500毫秒 P2=0xfd; delay(500);//延时500毫秒 P2=0xfb; delay(500);//延时500毫秒 P2=0xf7; delay(500);//延时500毫秒 P2=0xef; delay(500);//延时500毫秒 P2=0xdf; delay(500);//延时500毫秒 P2=0xbf; delay(500);//延时500毫秒 P2=0x7f; delay(500);//延时500毫秒 P2=0xff; P3=0xfe; delay(500);//延时500毫秒 P3=0xfd; delay(500);//延时500毫秒 P3=0xfb; delay(500);//延时500毫秒 P3=0xf7; delay(500);//延时500毫秒 P3=0xef; delay(500);//延时500毫秒 P3=0xdf; delay(500);//延时500毫秒 P3=0xbf; delay(500);//延时500毫秒 P3=0x7f; delay(500);//延时500毫秒 P3=0xff;}心形流水灯的第二种工作方式是以两个发光二极管以500毫秒间隔进行顺时针运行。心形流水灯的第二种工作方式的程序如下:voidled_black2(){ P0=0xfc; delay(500);//延时500毫秒 P0=0xf3; delay(500);//延时500毫秒 P0=0xcf; delay(500);//延时500毫秒 P0=0x3f; delay(500);//延时500毫秒 P0=0xff; P1=0xfc; delay(500);//延时500毫秒 P1=0xf3; delay(500);//延时500毫秒 P1=0xcf; delay(500);//延时500毫秒 P1=0x3f; delay(500);//延时500毫秒 P1=0xff; P2=0xfc; delay(500);//延时500毫秒 P2=0xf3; delay(500);//延时500毫秒 P2=0xcf; delay(500);//延时500毫秒 P2=0x3f; delay(500);//延时500毫秒 P2=0xff; P3=0xfc; delay(500);//延时500毫秒 P3=0xf3; delay(500);//延时500毫秒 P3=0xcf; delay(500);//延时500毫秒 P3=0x3f; delay(500);//延时500毫秒 P3=0xff;//灭P3口的灯}心形流水灯的第三种工作方式是以三个发光二极管以500毫秒间隔进行顺时针运行。心形流水灯的第三种工作方式的程序如下:voidled_black3(){ P0=0xf8; delay(500);//延时500毫秒 P0=0xf1; delay(500);//延时500毫秒 P0=0xe3; delay(500);//延时500毫秒 P0=0xc7; delay(500);//延时500毫秒 P0=0x8f; delay(500);//延时500毫秒 P0=0x1f; delay(500);//延时500毫秒 P0=0xff; P1=0xf8; delay(500);//延时500毫秒 P1=0xf1; delay(500);//延时500毫秒 P1=0xe3; delay(500);//延时500毫秒 P1=0xc7; delay(500);//延时500毫秒 P1=0x8f; delay(500);//延时500毫秒 P1=0x1f; delay(500);//延时500毫秒 P1=0xff; P2=0xf8; delay(500);//延时500毫秒 P2=0xf1; delay(500);//延时500毫秒 P2=0xe3; delay(500);//延时500毫秒 P2=0xc7; delay(500);//延时500毫秒 P2=0x8f; delay(500);//延时500毫秒 P2=0x1f; delay(500);//延时500毫秒 P2=0xff; P3=0xf8; delay(500);//延时500毫秒 P3=0xf1; delay(500);//延时500毫秒 P3=0xe3; delay(500);//延时500毫秒 P3=0xc7; delay(500);//延时500毫秒 P3=0x8f; delay(500);//延时500毫秒 P3=0x1f; delay(500);//延时500毫秒 P3=0xff;//灭P3口的灯}心形流水灯的第四种工作方式是以四个发光二极管以500毫秒间隔进行顺时针运行。心形流水灯的第四种工作方式的程序如下:voidled_black4(){ P0=0xf0; delay(500);//延时500毫秒 P0=0x0f; delay(500);//延时500毫秒 P0=0xff; P1=0xf0; delay(500);//延时500毫秒 P1=0x0f; delay(500);//延时500毫秒 P1=0xff; P2=0xf0; delay(500);//延时500毫秒 P2=0x0f; delay(500);//延时500毫秒 P2=0xff; P3=0xf0; delay(500);//延时500毫秒 P3=0x0f; delay(500);//延时500毫秒 P3=0xff;//灭P3口的灯}心形流水灯的第五种工作方式是以五个发光二极管以500毫秒间隔进行顺时针运行。心形流水灯的第五种工作方式的程序如下:voidled_black5(){ P0=0xe0; delay(500);//延时500毫秒 P0=0xc1; delay(500);//延时500毫秒 P0=0x83; delay(500);//延时500毫秒 P0=0x07; delay(500);//延时500毫秒 P0=0x0f P1=0xfe; delay(500);//延时500毫秒 P0=0x1f P1=0xfc; delay(500);//延时500毫秒 P0=0x3f P1=0xf8; delay(500);//延时500毫秒 P0=0x7f P1=0xe0; delay(500);//延时500毫秒 P0=0xff P1=0xc1; delay(500);//延时500毫秒 P1=0x83; delay(500);//延时500毫秒 P1=0x07; delay(500);//延时500毫秒 P1=0x0f P2=0xfe; delay(500);//延时500毫秒 P1=0x1f P2=0xfc; delay(500);//延时500毫秒 P1=0x3f P2=0xf8; delay(500);//延时500毫秒 P1=0x7f P2=0xe0; delay(500);//延时500毫秒 P1=0xff P2=0xc1; delay(500);//延时500毫秒 P2=0x83; delay(500);//延时500毫秒 P2=0x07; delay(500);//延时500毫秒 P2=0x0f P3=0xfe; delay(500);//延时500毫秒 P2=0x1f P3=0xfc; delay(500);//延时500毫秒 P2=0x3f P3=0xf8; delay(500);//延时500毫秒 P2=0x7f P3=0xe0; delay(500);//延时500毫秒 P2=0xff P3=0xc1; delay(500);//延时500毫秒 P3=0x83; delay(500);//延时500毫秒 P3=0x07; delay(500);//延时500毫秒 P3=0xff;//灭P3口的灯}心形流水灯的第六种工作方式是以六个发光二极管以500毫秒间隔进行顺时针运行。心形流水灯的第六种工作方式的程序如下:voidled_black6(){ P0=0xc0; delay(500);//延时500毫秒 P0=0x81; delay(500);//延时500毫秒 P0=0x03; delay(500);//延时500毫秒 P0=0x07; P1=0xfe; delay(500);//延时500毫秒 P0=0x0f; P1=0xfc; delay(500);//延时500毫秒 P0=0x1f; P1=0xf8; delay(500);//延时500毫秒 P0=0x3f; P1=0xf0; delay(500);//延时500毫秒 P0=0x7f; P1=0xe0; delay(500);//延时500毫秒 P0=0xff; P1=0xc0; delay(500);//延时500毫秒 P1=0x81; delay(500);//延时500毫秒 P1=0x03; delay(500);//延时500毫秒 P1=0x07; P2=0xfe; delay(500);//延时500毫秒 P1=0x0f; P2=0xfc; delay(500);//延时500毫秒 P1=0x1f; P2=0xf8; delay(500);//延时500毫秒 P1=0x3f; P2=0xf0; delay(500);//延时500毫秒 P1=0x7f; P2=0xe0; delay(500);//延时500毫秒 P1=0xff; P2=0xc0; delay(500);//延时500毫秒 P2=0x81; delay(500);//延时500毫秒 P2=0x03; delay(500);//延时500毫秒 P2=0x07; P3=0xfe; delay(500);//延时500毫秒 P2=0x0f; P3=0xfc; delay(500);//延时500毫秒 P2=0x1f; P3=0xf8; delay(500);//延时500毫秒 P2=0x3f; P3=0xf0; delay(500);//延时500毫秒 P2=0x7f; P3=0xe0; delay(500);//延时500毫秒 P2=0xff; P3=0xc0; delay(500);//延时500毫秒 P3=0x81; delay(500);//延时500毫秒 P3=0x03; delay(500);//延时500毫秒 P3=0xff;//灭P3口的发光二极管}心形流水灯的第七种工作方式是以七个发光二极管以500毫秒间隔进行顺时针运行。心形流水灯的第七种工作方式的程序如下:voidled_black7(){ P0=0x80; delay(500);//延时500毫秒 P0=0x01; delay(500);//延时500毫秒 P0=0x03; P1=0xfe; delay(500);//延时500毫秒 P0=0x07; P1=0xfc; delay(500);//延时500毫秒 P0=0x0f; P1=0xf8; delay(500);//延时500毫秒 P0=0x1f; P1=0xf0; delay(500);//延时500毫秒 P0=0x3f; P1=0xe0; delay(500);//延时500毫秒 P0=0x7f; P1=0xc0; delay(500);//延时500毫秒 P0=0xff; P1=0x80; delay(500);//延时500毫秒 P1=0x01; delay(500);//延时500毫秒 P1=0x03; P2=0xfe; delay(500);//延时500毫秒 P1=0x07; P2=0xfc; delay(500);//延时500毫秒 P1=0x0f; P2=0xf8; delay(500);//延时500毫秒 P1=0x1f; P2=0xf0; delay(500);//延时500毫秒 P1=0x3f; P2=0xe0; delay(500);//延时500毫秒 P1=0x7f; P2=0xc0; delay(500);//延时500毫秒 P1=0xff; P2=0x80; delay(500);//延时500毫秒 P2=0x01; delay(500);//延时500毫秒 P2=0x03; P3=0xfe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论