51单片机(呼吸灯)c语言版

51单片机(呼吸灯)c语言版

ID:20857718

大小:275.00 KB

页数:16页

时间:2018-10-17

51单片机(呼吸灯)c语言版_第1页
51单片机(呼吸灯)c语言版_第2页
51单片机(呼吸灯)c语言版_第3页
51单片机(呼吸灯)c语言版_第4页
51单片机(呼吸灯)c语言版_第5页
资源描述:

《51单片机(呼吸灯)c语言版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、下载可编辑基于单片机与PWM的呼吸灯设计实训指导教师:班级:设计人姓名:设计日期:设计地点:完成时间:摘要专业文档精心整理下载可编辑本设计是基于单片机的原理与接口设计,采用单片机I/O口,加以C语言编程实现LED渐亮再渐暗类似人的呼吸一样的效果。关键词AT89C51,PWM(脉宽调制)一、设计要求:呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。二、设计原理:用C语言编程实现PWM(脉宽调制)输出驱动LED,逐渐增加PWM的占空比从而实现LED模拟呼吸的过程,即渐亮再渐暗再渐亮再渐暗……如此往复,再利用L

2、ED的余辉和人眼的暂留效应,看上去就和人的呼吸一样。三、整体方案设计8个LED按照顺序逐个实现呼吸效果。加以其他闪烁花样增加更炫彩的效果。四、实验元件及器材(1)元件:LED(发光二极管)8个1KΩ电阻8个1nf电容2个晶振1个AT89C51芯片1个专业文档精心整理下载可编辑(2)器件:Atmega128开发板1块计算机1台五、硬件原理(1)主电路:8个LED分别连接AT89C51的P1口,使用共阳方式,并加以1kΩ的电阻接入电源。(2)时钟电路:外部时钟方式是使用外部振荡脉冲信号。专业文档精心整理下载可编辑六、软件设计及系统仿真调试(1)调试方法:利用keil软件进行

3、C语言程序编写及调试,再利用Proteus仿真软件进行仿真实验。(2)调试过程所遇问题:1、由于呼吸灯的程序在仿真软件Proteus中实现的效果不明显,很难辨别LED是否具有呼吸的效果。所以边用keil调试程序边用STC烧写软件直接写入开发板,从而很明显看出LED是否具有呼吸效果;2、程序运行时,出现LED闪烁过快,由于人眼的暂留效应看似LED全部一直亮着,经调试,修改延时时间,实现呼吸效果。七、结论与心得在本次设计中,C语言程序在开发板中得以实现应有的功能。在调试过程中,发现很多问题都是由于不细心导致的,因此在以后的设计方案中,要集中精力,莫粗心大意。再者就是知识量的

4、不足,虽然是一个小小的设计方案,但是查阅了很多相关资料,在日后,要多充足自己的知识量,保证C程序的编写质量。专业文档精心整理下载可编辑参考文献[1]郭天祥,《新概念51单片机C语言教程》,电子工业出版社,2009年1月[2]徐爱钧,《单片机高级语言C51应用程序设计》,电子工业出版社,2000年5月附件A:呼吸灯设计电路图专业文档精心整理下载可编辑附件B:C语言程序清单#include/*-----------定义单片机引脚-----*/sbitLED0=P1^0;sbitLED1=P1^1;sbitLED2=P1^2;sbitLED3=P1^3;sb

5、itLED4=P1^4;sbitLED5=P1^5;sbitLED6=P1^6;sbitLED7=P1^7;voidDelay(unsignedintt);//函数声明unsignedintz,y;voidmain(void)//主函数专业文档精心整理下载可编辑{unsignedintCYCLE=500,PWM_LOW=0;//定义周期并赋值while(1)//主循环{/*--------整排LED灯呼吸---------*/P1=0x00;Delay(500);//加延时,可以看到熄灭的过程(下面程序同理)for(PWM_LOW=1;PWM_LOW

6、_LOW++)//PWM_LOW表示低{P1=0x00;Delay(PWM_LOW);P1=0xff;Delay(CYCLE-PWM_LOW);}P1=0xff;for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)//与逐渐变亮相反的过程{P1=0x00;//点亮LEDDelay(PWM_LOW);专业文档精心整理下载可编辑P1=0xff;//熄灭LEDDelay(CYCLE-PWM_LOW);//主循环中添加其他需要一直工作的程序,延时长度,600次循环中从599减至1}/*--------第一颗LED灯呼吸---------*/LED0=

7、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_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。