基于51单片机的呼吸灯设计C语言.doc_第1页
基于51单片机的呼吸灯设计C语言.doc_第2页
基于51单片机的呼吸灯设计C语言.doc_第3页
基于51单片机的呼吸灯设计C语言.doc_第4页
基于51单片机的呼吸灯设计C语言.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告书 题目: 基于51单片机的呼吸灯设计 信息工程学院课程设计任务书学 号1学生姓名专业(班级)设计题目基于51单片机的呼吸灯设计设计技术参数8个LED按照顺序逐个实现呼吸效果。加以其他闪烁花样增加更炫彩的效果。设计要求采用单片机I/O口,加以C语言编程实现LED渐亮再渐暗类似人的呼吸一样的效果。参考资料 1郭天祥,新概念51单片机C语言教程,电子工业出版社,2009年1月 2徐爱钧,单片机高级语言C51应用程序设计,电子工业出版社,2000年5月 年 月 日 学生姓名: 学号: 031340901 专业(班级): 09 课程设计题目: 基于51单片机的呼吸灯设计 成绩: 指导教师: 徐建 年 月 日信息工程学院课程设计成绩评定表摘要本设计是基于单片机的原理与接口设计,采用单片机I/O口,加以C语言编程实现LED渐亮再渐暗类似人的呼吸一样的效果。关 键 词AT89C51,PWM(脉宽调制)一、设计要求:呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。二、设计原理:用C语言编程实现PWM(脉宽调制)输出驱动LED,逐渐增加PWM的占空比从而实现LED模拟呼吸的过程,即渐亮再渐暗再渐亮再渐暗如此往复,再利用LED的余辉和人眼的暂留效应,看上去就和人的呼吸一样。三、整体方案设计8个LED按照顺序逐个实现呼吸效果。加以其他闪烁花样增加更炫彩的效果。四、实验元件及器材(1)元件: LED(发光二极管)8个 1K电阻8个 1nf电容2个 晶振1个 AT89C51芯片1个(2)器件:Atmega128开发板1块计算机1台5、 硬件原理(1) 主电路:8个LED分别连接AT89C51的P1口,使用共阳方式,并加以1k的电阻接入电源。(2)时钟电路:外部时钟方式是使用外部振荡脉冲信号。6、 软件设计及系统仿真调试(1) 调试方法:利用keil软件进行C语言程序编写及调试,再利用Proteus仿真软件进行仿真实验。(2) 调试过程所遇问题:1、由于呼吸灯的程序在仿真软件Proteus中实现的效果不明显,很难辨别LED是否具有呼吸的效果。所以边用keil调试程序边用STC烧写软件直接写入开发板,从而很明显看出LED是否具有呼吸效果;2、程序运行时,出现LED闪烁过快,由于人眼的暂留效应看似LED全部一直亮着,经调试,修改延时时间,实现呼吸效果。七、结论与心得在本次设计中,C语言程序在开发板中得以实现应有的功能。在调试过程中,发现很多问题都是由于不细心导致的,因此在以后的设计方案中,要集中精力,莫粗心大意。再者就是知识量的不足,虽然是一个小小的设计方案,但是查阅了很多相关资料,在日后,要多充足自己的知识量,保证C程序的编写质量。参考文献 1郭天祥,新概念51单片机C语言教程,电子工业出版社,2009年1月 2徐爱钧,单片机高级语言C51应用程序设计,电子工业出版社,2000年5月附件A:呼吸灯设计电路图附件B:C语言程序清单#include /*-定义单片机引脚-*/sbit LED0=P10;sbit LED1=P11;sbit LED2=P12;sbit LED3=P13;sbit LED4=P14;sbit LED5=P15;sbit LED6=P16;sbit LED7=P17;void Delay(unsigned int t); /函数声明unsigned int z,y;void main (void)/主函数unsigned int CYCLE=500,PWM_LOW=0;/定义周期并赋值while (1) /主循环/*-整排LED灯呼吸-*/P1=0x00;Delay(500); /加延时,可以看到熄灭的过程(下面程序同理)for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) /与逐渐变亮相反的过程 P1=0x00;/点亮LED Delay(PWM_LOW); P1=0xff;/熄灭LED Delay(CYCLE-PWM_LOW);/主循环中添加其他需要一直工作的程序,延时长度,600次循环中从599减至1/*-第一颗LED灯呼吸-*/LED0=1;Delay(500); for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED0=0; Delay(PWM_LOW); LED0=1; Delay(CYCLE-PWM_LOW); /*-第二颗LED灯呼吸-*/LED1=1;Delay(500); for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED1=0;Delay(PWM_LOW);LED1=1;Delay(CYCLE-PWM_LOW);/*-第三颗LED灯呼吸-*/LED2=1;Delay(500); for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED2=0; Delay(PWM_LOW); LED2=1; Delay(CYCLE-PWM_LOW); /*-第四颗LED灯呼吸-*/LED3=1;Delay(500);for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED3=0; Delay(PWM_LOW); LED3=1; Delay(CYCLE-PWM_LOW); /*-第五颗LED灯呼吸-*/LED4=1;Delay(500); for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED4=0; Delay(PWM_LOW); LED4=1; Delay(CYCLE-PWM_LOW); /*-第六颗LED灯呼吸-*/LED5=1;Delay(500); for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED5=0; Delay(PWM_LOW); LED5=1; Delay(CYCLE-PWM_LOW); /*-第七颗LED灯呼吸-*/LED6=1;Delay(500); for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED6=0; Delay(PWM_LOW); LED6=1; Delay(CYCLE-PWM_LOW); /*-第八颗LED灯呼吸-*/LED7=1;Delay(500); for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED7=0; Delay(PWM_LOW); LED7=1; Delay(CYCLE-PWM_LOW); P1=0x00;for(z=500;z0;z-)for(y=110;y0;y-);P1=0xff;for(z=50

温馨提示

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

评论

0/150

提交评论