51单片机呼吸灯实验报告_第1页
51单片机呼吸灯实验报告_第2页
51单片机呼吸灯实验报告_第3页
51单片机呼吸灯实验报告_第4页
51单片机呼吸灯实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、呼吸灯1 功能与技术分析呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。可以展示出各种酷炫的图像。1.1 呼吸灯的实现效果使用调制的方法,灯在高速闪烁时人眼是看不出来的,每个循环给闪烁的熄灭时间加1,灯就会慢慢变暗,在设置熄灭时间加到一定程度就开场减一,就会渐渐变亮了。使得LED灯按照顺序逐渐改变亮度。1.2 功能分析灯光在微电脑控制之下完成由亮到暗的绝剑变化,感觉就像是在呼吸。广泛应用与数码产品,起到装饰和指示工作效果。目前被广泛用于手机之上,并成为各大品牌新款手机的卖点之一。1.3 技术分析用C语言编程实现PWM(脉宽调制)

2、输出驱动LED,逐渐增加PWM的占空比从而实现LED模拟呼吸的过程,即渐亮再渐暗再渐亮再渐暗如此往复,再利用LED的余辉和人眼的暂留效应,看上去就和人的呼吸一样。2硬件根底与设计整个系统的搭建,由以下元器件组成:1、12MHz晶振一个;2、stc89c51单片机一个;3、30pf无极性电容2个;4,、按钮一个;5、10K电阻一个;6、10uf有极性电容一个;7、洞洞板一个;8、LED灯假设干。2.1基于51单片机的最小系统的设计STC89C51RC是采用8051核的ISPInSystemProgramming在系统可编程芯片,最高工作时钟频率为80MHz,片内含8KBytes的可反复擦写100

3、0次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚构造,芯片内集成了通用8位中央处理器和ISPFlash存储单元,具有在系统可编程ISP特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购置通用编程器,而且速度更快。STC89C51RC系列单片机是单时钟/机器周期(1T)的兼容8051内核单片机,是高速/低功耗的新一代8051单片机,全新的流水线/精简指令集构造,内部集成MAX810专用复位电路。组成局部包括:1、一个八位中央处理器CPU;2、一个片内震荡电路,时钟电路产生时钟信号,频率越高,速度越快;3、128B的RAM。51中共有256BR

4、AM单元,后面128B是存放器;4、 4KB的ROM;5、 2个16位定时器/计数器;6、 32条可编程的I/O线,4个8位并行I/O端口P0、P1、P2、P3;7、一个全双工串行口;8、 5个中断源,两个外部中断源、两个定时器/计数器、中断源、一个串行中断源。1.2 时钟电路系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。stc89C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是放大器的输入端和输出端。放大器与作为反响元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C3和C4构成并联谐振电路,接在放大器的反响回路中。对外

5、接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的上下、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30以F。1.3 复位电路复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5Pz由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式。1.4 电源电路STC89c51的工作电压为5v,本任务中采用USB转串口供电,方便。其中有两个引脚是数据通信的。1.5 呼吸灯采用普通蓝色雾状LED小灯泡,

6、电压范围2.7V4V之间。电流约为20mA。为保护LED灯,每个LED灯均串联了一个10K的电阻。1.6 程序下载电路用USB转串口线把电脑的USB口和单片机的串口连接;USB的rxd接单片机的txd,USB的txd接单片机的rxd。3 软件根底与设计3.1 KeiluVision4集成开发环境的认识2021年2月发布KeiluVision4,KeiluVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的外表对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM

7、芯片,还添加了一些其他新功能。2021年3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最新版本的KeiluVision4,其编译器、调试工具实现与ARM器件的最完美匹配。KeiluVision4的主要特点如下:最新的KeiluVision4IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。uVision4在Wision3IDE的根底上,增加了更多群众化的功能。 多显示器和灵活的窗口管理系统 系统浏览器窗口的显示设备外设存放器信息 调试复原视图创立弁保存多个调试窗口布

8、局 多工程工作区简化与众多的项3.2 KeiluVision4工程的创立与其他软件开发类似,在呼吸灯工程开发中,首先在KeiluVision4集成开发环境中创立一个工程。新建一个工程,选择对应的cup型号,本例程中选择AT89C51。然后在新建一个文件,保存格式为.c格式。如下列图:工程新建好以后可以编写相应的代码程序3.3 程序的编写3.3.1 延时函数呼吸灯的形成原理是呼吸灯开的时候,以非常快的速度开-关-开-关,并逐渐加大开的时间比率,减小关的时间比率。呼吸灯关的时候,以非常快的速度开-关-开-关,并逐渐加大关的时间比率,减小开的时间比率。涉及到开关的时间,就需要一个延时函数。S4:wh

9、ile(一一t);C:0x0S91EFMOVA,R7C:0k0392IFDECR77001JN2CiOSaSc:ooas5IEDECRe14工丸AORLkfRGC;OxOSSS70F7JN2Dela./(C:0391)551-voidDelay(unsignedintt)while(-t);主函数中传递一个值给延时函数,然后通过while循环,参数一直自减。cup一直在处理这个参数的值,从而形成一段延时。延时的长短取决于参数值的大小。每执行一次9uso3.3.2 逐渐变暗通过for循环控制LOW和CYCLE的值,逐渐增大低电平的延时时长,直到500,总耗时4.5*10A3usfor(PWM_L

10、OW=1;PWM_LOW<CYCLE;PWM_LOW+)PWM_LOW表示低P0=0x00;P1=0X00;P2=0X00;Delay(PWM_LOW);P0=0XFF;P1=0xff;P2=0XFF;Delay(CYCLE-PWM_LOW);3.3.3 逐渐变亮同逐渐变暗原理一样,逐渐减小变暗的时间即可实现。for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW-)P0=0x00;P1=0x00;P2=0x00;/点亮LEDDelay(PWM_LOW);P0=0XFF;P1=0xff;P2=0XFF;/熄灭LED4 代码#include<reg51.h&

11、gt;voidDelay(unsignedintt);/函数声明unsignedintz,y;voidmain(void)/主函数unsignedintCYCLE=500,PWM_LOW=0;/定义周期并赋值while(1)/主循环/*整排LED灯呼吸*/P0=0x00;P1=0x00;P2=0x00;Delay(200);/加延时,可以看到熄灭的过程下面程序同理for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW+)/PWM_LOW表示低P0=0x00;P1=0x00;P2=0x00;Delay(PWM_LOW);P0=0xff;P1=0xff;P2=0xff;Delay(CYCLE-PWM_LOW);P0=0xff;P1

温馨提示

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

评论

0/150

提交评论