单片机炫彩灯实训报告_51单片机呼吸灯实验报告.doc

本文是一份51单片机呼吸灯实验报告,详细介绍了呼吸灯的实现原理,通过PWM脉宽调制控制LED亮度,达到模拟呼吸效果。硬件部分涉及51单片机、晶振、LED灯等组件,软件部分使用KEIL UVISION4进行编程。报告还涵盖了单片机最小系统设计、时钟电路、复位电路、电源电路和程序设计,包括延时函数与LED亮度控制的C语言实现。
摘要由CSDN通过智能技术生成

51单片机呼吸灯实验报告.doc

呼吸灯1功能与技术分析呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。可以展示出各种酷炫的图像。11呼吸灯的实现效果使用调制的方法,灯在高速闪烁时人眼是看不出来的,每个循环给闪烁的熄灭时间加1,灯就会慢慢变暗,在设置熄灭时间加到一定程度就开始减一,就会渐渐变亮了。使得LED灯按照顺序逐渐改变亮度。12功能分析灯光在微电脑控制之下完成由亮到暗的绝剑变化,感觉就像是在呼吸。广泛应用与数码产品,起到装饰和指示工作效果。目前被广泛用于手机之上,并成为各大品牌新款手机的卖点之一。13技术分析用C语言编程实现PWM脉宽调制输出驱动LED,逐渐增加PWM的占空比从而实现LED模拟呼吸的过程,即渐亮再渐暗再渐亮再渐暗如此往复,再利用LED的余辉和人眼的暂留效应,看上去就和人的呼吸一样。2硬件基础与设计整个系统的搭建,由以下元器件组成1、12MHZ晶振一个;2、STC89C51单片机一个;3、30PF无极性电容2个;4,、按钮一个;5、10K电阻一个;6、10UF有极性电容一个;7、洞洞板一个;8、LED灯若干。21基于51单片机的最小系统的设计STC89C51RC是采用8051核的ISP(INSYSTEMPROGRAMMING)在系统可编程芯片,最高工作时钟频率为80MHZ,片内含8KBYTES的可反复擦写1000次的FLASH只读程序存储器,器件兼容标准MCS51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFLASH存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C51RC系列单片机是单时钟/机器周期1T的兼容8051内核单片机,是高速/低功耗的新一代8051单片机,全新的流水线/精简指令集结构,内部集成MAX810专用复位电路。组成部分包括1、一个八位中央处理器CPU;2、一个片内震荡电路,时钟电路产生时钟信号,频率越高,速度越快;3、128B的RAM。51中共有256BRAM单元,后面128B是寄存器;4、4KB的ROM;5、2个16位定时器/计数器;6、32条可编程的I/O线,4个8位并行I/O端口P0、P1、P2、P3;7、一个全双工串行口;8、5个中断源,两个外部中断源、两个定时器/计数器、中断源、一个串行中断源。22时钟电路系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。STC89C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是放大器的输入端和输出端。放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C3和C4构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHZ,电容应尽可能的选择陶瓷电容,电容值约为30ΜF。23复位电路复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式。24电源电路STC89C51的工作电压为5V,本任务中采用USB转串口供电,方便。其中有两个引脚是数据通信的。25呼吸灯采用普通蓝色雾状LED小灯泡,电压范围27V4V之间。电流约为20MA。为保护LED灯,每个LED灯均串联了一个10K的电阻。26程序下载电路用USB转串口线把电脑的USB口和单片机的串口连接USB的RXD接单片机的TXD,USB的TXD接单片机的RXD。3软件基础与设计31KEILUVISION4集成开发环境的认识2009年2月发布KEILUVISION4,KEILUVISION4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境REALVIEWMDK开发工具中集成了最新版本的KEILUVISION4,其编译器、调试工具实现与ARM器件的最完美匹配。KEILUVISION4的主要特点如下最新的KEILUVISION4IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。UVISION4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。UVISION4在ΜVISION3IDE的基础上,增加了更多大众化的功能。多显示器和灵活的窗口管理系统系统浏览器窗口的显示设备外设寄存器信息调试还原视图创建并保存多个调试窗口布局多项目工作区简化与众多的项32KEILUVISION4项目的创建与其他软件开发类似,在呼吸灯项目开发中,首先在KEILUVISION4集成开发环境中创建一个项目。新建一个项目,选择对应的CUP型号,本例程中选择AT89C51。然后在新建一个文件,保存格式为C格式。如图所示项目新建好以后可以编写相应的代码程序。33程序的编写331延时函数呼吸灯的形成原理是呼吸灯开的时候,以非常快的速度开关开关,并逐渐加大开的时间比率,减小关的时间比率。呼吸灯关的时候,以非常快的速度开关开关,并逐渐加大关的时间比率,减小开的时间比率。涉及到开关的时间,就需要一个延时函数。VOIDDELAYUNSIGNEDINTT{WHILET}主函数中传递一个值给延时函数,然后通过WHILE循环,参数一直自减。CUP一直在处理这个参数的值,从而形成一段延时。延时的长短取决于参数值的大小。每执行一次9US。332逐渐变暗通过FOR循环控制LOW和CYCLE的值,逐渐增大低电平的延时时长,直到500,总耗时45103US。FORPWM_LOW1PWM_LOW0PWM_LOW{P00X00P10X00P20X00//点亮LEDDELAYPWM_LOWP00XFFP10XFFP20XFF//熄灭LEDDELAYCYCLEPWM_LOW//主循环中添加其他需要一直工作的程序,延时长度,600次循环中从599减至14代码INCLUDEVOIDDELAYUNSIGNEDINTT//函数声明UNSIGNEDINTZ,YVOIDMAINVOID//主函数{UNSIGNEDINTCYCLE500,PWM_LOW0//定义周期并赋值WHILE1//主循环{/整排LED灯呼吸/P00X00P10X00P20X00DELAY200//加延时,可以看到熄灭的过程(下面程序同理)FORPWM_LOW1PWM_LOW0PWM_LOW//与逐渐变亮相反的过程{P00X00P10X00P20X00//点亮LEDDELAYPWM_LOWP00XFFP10XFFP20XFF//熄灭LEDDELAYCYCLEPWM_LOW//主循环中添加其他需要一直工作的程序,延时长度,600次循环中从599减至1}}}VO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值