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

下载本文档

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

文档简介

1、课程设计报告题目:基于51单片机的呼吸灯设计信息工程学院课程设计任务书学生卡1学生专业课)设计主题基于51单片机的呼吸灯设计认为数数技术技术参数字8颗LED依次实现呼吸效果。添加其他闪烁图案以获得更耀眼的效果。认为数数想求采用单片机的I/O口,通过C语言编程实现LED逐渐变亮再变暗的效果,类似于人呼吸的效果。参测试首都材料1 郭天祥,新概念51单片机C语言教程,电子行业,2009年1月2徐爱军,单片机高级语言C51应用程序设计,电子工业,2000年5月年月日学生:学生号:课程设计主题:基于51单片机的呼吸灯设计分数:指导老师:年月日信息工程学院课程设计成绩评估表摘要本设计基于单片机的原理和接口

2、设计,利用单片机的I/O口,用C语言编程实现LED渐亮渐暗的效果,效果类似人类的呼吸。关键词AT89C51,PWM(脉冲宽度调制)一、设计要求:呼吸灯就是让LED灯像呼吸一样闪烁,呼吸进出,明暗,利用LED的余辉和人眼的余辉效应,看起来像人的呼吸。2、设计原则:用C语言编程实现PWM(脉宽调制)输出驱动LED,逐渐增加PWM的占空比,实现LED模拟呼吸的过程,即逐渐变亮,再变暗,再变亮再变暗。 .等等,然后用LED 人眼的余辉和余辉效果看起来就像人的呼吸一样。三、整体方案设计8颗LED依次实现呼吸效果。添加其他闪烁图案以获得更耀眼的效果。4. 实验元件及设备(1) 组件: 8 个 LED(发光

3、二极管)8 个 1K 电阻器2个1nf电容1个晶振1个AT89C51芯片1个Atmega128开发板1台电脑硬件原理主电路:8颗LED分别接AT89C51的P1口,采用共阳极方式,电源加1k电阻。(2) 时钟电路:外部时钟方式是使用外部振荡脉冲信号。软件设计与系统仿真调试调试方法:使用keil软件编写和调试C语言程序,然后使用Proteus仿真软件进行仿真实验。调试过程中遇到的问题:1、由于仿真软件Proteus中的呼吸灯程序效果不明显,很难区分LED是否有呼吸的效果。所以在用keil调试程序的时候,使用STC编程软件直接写入开发板,这样LED是否有呼吸作用就一目了然了;2.程序运行时,LED

4、闪烁过快。由于人眼的余辉效应,似乎所有的 LED 都是常亮的。调试后修改延迟时间,达到呼吸效果。七、结论与经验在本设计中,C语言程序可以在开发板上实现相应的功能。在调试过程中,发现很多问题都是因为不专心造成的。因此,在今后的设计方案中,要集中精力,不可马虎。此外,缺乏知识。虽然是一个小的设计方案,但是我查阅了很多相关资料。以后我应该有足够的知识来保证C程序编写的质量。参考1 郭天祥,新概念51单片机C语言教程,电子行业,2009年1月2徐爱军,单片机高级语言C51应用程序设计,电子工业,2000年5月附录A:呼吸灯设计电路图附录 B: C 语言程序列表#include/*-定义MCU管脚-*/

5、位 LED0=P10;位 LED1=P11;位 LED2=P12;位 LED3=P13;位 LED4=P14;位 LED5=P15;位 LED6=P16;位 LED7=P17;无效延迟(无符号整数 t); /函数声明无符号整数 z,y;void main(void)/主函数unsigned int CYCLE=500,PWM_LOW=0;/定义循环并赋值while (1) /主循环/*-整排LED灯呼吸-*/P1=0 x00;延迟(500); /加一个延时,可以看到熄灭的过程(下面的过程同)for(PWM_LOW=1;PWM_LOW0;PWM_LOW-) /逐渐变亮的相反过程 P1=0 x00

6、; /点亮LED 延迟(PWM_LOW); P1=0 xff; /关闭LED 延迟(CYCLE-PWM_LOW); /在主循环中添加其他需要一直工作的程序,延迟长度从599减少到600个循环中的1个/*-第一个LED灯呼吸-*/LED0=1;延迟(500);对于(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED0=0; 延迟(PWM_LOW); LED0=1; 延迟(CYCLE-PWM_LOW);/*-第二个LED在呼吸-*/LED1=1;延迟(500);对于(PWM_LOW=1;PWM_LOW0;PWM_LOW-)LED1=0;延迟(PWM_LOW);LED1=1;延迟(CY

7、CLE-PWM_LOW);/*-第三个LED在呼吸-*/LED2=1;延迟(500);对于(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED2=0; 延迟(PWM_LOW); LED2=1; 延迟(CYCLE-PWM_LOW); /*-第四颗LED灯呼吸-颗*/LED3=1;延迟(500);对于(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED3=0; 延迟(PWM_LOW); LED3=1; 延迟(CYCLE-PWM_LOW);/*-第五颗LED灯呼吸-*/LED4=1;延迟(500);对于(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED4=

8、0; 延迟(PWM_LOW); LED4=1; 延迟(CYCLE-PWM_LOW);/*-第六颗LED灯呼吸-颗*/LED5=1;延迟(500);对于(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED5=0; 延迟(PWM_LOW); LED5=1; 延迟(CYCLE-PWM_LOW);/*-第七颗LED灯呼吸-颗*/LED6=1;延迟(500);对于(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED6=0; 延迟(PWM_LOW); LED6=1; 延迟(CYCLE-PWM_LOW);/*-第八颗LED灯呼吸-*/LED7=1;延迟(500);对于(PWM_LOW=1;PWM_LOW0;PWM_LOW-) LED7=0; 延迟(PWM_LOW); LED7=1; 延迟(CYCLE-PWM_LOW); P1=0 x00;对于(z=500;z0;z-)for(y=110;y0;y-);P1=0 xff;对于(z

温馨提示

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

评论

0/150

提交评论