基于单片机控制的led灯亮化设计内容摘要:
(1)其中,VREF=,为设置输出电流的基准电压,RXFB为R/G/BFB脚上所连接的电流反馈电阻,例如,如果驱动LED所需的电流为20mA,则RXFB=30Ω。 为了保证恒定电流驱动器的正常工作,R/G/BOUT pin的电压在正常工作时应该设置在1~,这样可以保持在整个工作范围内都能够输出一个高精度的驱动电流。 如果R/G/BOUT 的电压过低,会导致内部驱动电路工作不正常,不能够输出驱动所需要的电流,如果R/G/BOUT的电压过高,会导致有过多的功率消耗在WS2801芯片上,使电路工作的稳定性降低。 (3)恒定电压驱动模式介绍。 WS2801可以利用外接的开关,在恒定电压驱动模式下驱动高亮LED,同时实现高亮LED的256级灰度控制。 该模式主要应用于高输入电压,高LED驱动电流(ILED300mA),其工作原理是利用外接的NPN晶体管开关来实现对LED的PWM灰度控制,流过LED的电流可由外接的限流电阻RL来控制,RL可由下面的方程 推算得到, (2)其中,ILED为驱动该大功率LED所需要的电流,VLED为LED工作时的正向导通压降,NPN管工作于饱和区,VCE是NPN的饱和压降,大致为VCE=~,具体数值可由该晶体管的规格书查得,基极电阻RB=2~5K[18]。 当POL=“LOW”时候,WS2801的输出极性反转,此时WS2801工作如同一个PWM控制器,其产生的PWM控制信号可用于控制外部的大功率LED恒流驱动器或者NPN BJT开关晶体管以驱动LED,如下图:图15 利用外接的开关实现对高亮LED的恒定电压驱动Fig 15 Use external switch to achieve the constant voltage driver highlight LED(4)灰度数据字介绍。 在数据的传输过程中,首先被读入到芯片的是数据帧信号位,然后是ROUT通道的MSB,最后读取的数据是BOUT通道的LSB。 WS2801在输入时钟的上升沿采样由SDI pin输入的灰度控制数据,并将这些采样到的数据存储到内部的移位寄存器当中,当第25个时钟到来的时,WS2801会检查读入到移位寄存器中的第一位,如果该bit位为1或“HIGH”,存储在移位寄存器中的数据会被读取到内部的数据锁存器当中,以等待灰度控制器的读取;如果该位为0或“LOW”,WS2801则不会对移位寄存器中的数据做任何操作,只是将其从串行数据输出端输出[19]。 该灰度控制数据帧由1位帧开始信号和3个灰度数据字构成,每个数据字由8bit灰度数据位组成,总共25bit。 8bit的灰度数据可以很轻松的实现256级的LED灰度控制。 (5)WS2801接力连接与应用。 为了能够将数据和时钟能够长距离传送以满足级联应用的需要,WS2801集成了具有强驱动能力的推挽(pushpull)输出级,该输出级具有低EMI特性。 测试中,WS2801能够在2MHz频率下,将数据时钟传送到7米以上的距离。 为了防止信号的反射,有必要在信号输入端串接一个电阻以实现控制的阻抗匹配,减少信号的反射,其阻值与传输线的高频阻抗应该相等。 本次设计就是采用以下典型电路:图16 典型应用电路Fig 16 typical application circuit3 系统软件设计 基本思路通电运行后,CPU自动扫描按键,无按键时根据各按键运行对应亮法模式自动运行模式,各种亮法循环。 若有按键按下,则根据各按键对应亮法模式运行。 在软件中的流程图大致如图17所示。 系统程序开发软件介绍本系统的软件设计采用了Keil C51这种单片机C语言,Keil C51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编,和C语言的程序设计,界面友好,易学易用[20]。 采用Keil C51开发C8051单片机应用程序一般需要以下步骤:首先,在u Vision3集成开发环境中创建一个新项目(Project),并为该项目选定合适的单片机CPU器件,本系统选择AT89C52芯片。 利用u Vision3的文件编辑器编写C语言源程序文件,并将文件添加到项目中去。 一个项目可以包含多个文件,除源程序文件外还可以由库文件或文本说明文件。 然后,通过u Vision3的各种选项,配置Cx51编辑器,Ax51宏编辑器,BL51/Lx51连接定位器以及Debug调试期的功能。 利用u Vision3的构造(Build)功能对项目中的源程序文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源程序中的错误后重新构造整个项目。 最后,将没有错误的绝对目标代码装入u Vision3调试器进行仿真调试,调试成功后,将HEX文件写入到单片机应用系统的EPROM中。 通电开始按键扫描自动运行模式各种亮法循环据各按键运行对应亮法模式有键按下数否是图17 系统流程图Fig 17 system flow chart 系统主程序的设计系统软件部分设计采用模块化设计的方法,把实现系统全部功能的大程序分解为几个功能相对独立的比较小的程序模块,对实现各个功能的程序模块分别进行设计、编程和调试,最后把各个调试好的程序模块联成一个完整的程序。 模块化程序设计的优点是单个功能明确,设计和调试比较方便、容易完成。 一个模块可以为多个程序所共享[21]。 在本系统单片机部分程序设计中,模块化编程的具体体现是把各个功能相对独立的模块作为子函数,即把程序设计成一个初始化子程序和一个大循环。 程序初始化完成之后,在大循环里面实现单片机软件功能。 主程序是一个不断循环检测结构。 按键扫描子程序设计本设计中采用的独立式键盘,按键的闭合与否直接反应在口线的电平上,把按键电平值经AD转换后送到CPU,通过判断AD值的范围确定是哪个按键按下。 因此可以通过口线的电平值检测,来确认按键是否按下。 但如果在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误的认为是多次操作,为克服按键点机械抖动所致的检测错误,确保CPU对一次按键动作只确认一次按键,必须采取去抖动的措施。 软件中去抖动的措施即在第一次检测到有键按下时,执行一段延时10ms的子程序,然后再次检测该键的电平状态,如果该键电平仍保持闭合状态电平,则确认为真正有键按下。 流程图如下:图18 按键扫描流程图Fig18 Key scan flow chart一般把按键扫描程序设计成子程序,以便其他程序调用。 程序如下:void ADC0_ISR (void) interrupt 10 using 2{ AD0INT = 0。 // clear ADC0 TR2=0。 if( ( accumulator=0) amp。 amp。 (accumulator300) ) { type=7。 } //S4 else if( ( accumulator=300) amp。 amp。 (accumulator580) ) {type=6。 }//S3 else if( ( accumulator=580) amp。 amp。 (accumulator720) ) {type=5。 }//S2else if( ( accumulator=720) amp。 amp。 (accumulator785) ){ if(type3) type=0。 type++。 yanshi(300)。 } //S1 TR2= 1。 } LED流水灯效果程序设计LED流水效果是采用串口传送数据,每个LED灯颜色由红绿蓝三基色控制,红绿蓝色度由数据0x000xff控制,0x00为最浅,0xff为最深。 那么当三基色数据为0xff、0x00、0x00时则LED灯为深红色,同理三基色数据为0x00、0xff、0x00时LED为深绿色,三基色数据为0x00、0x00、0xff时LED为深蓝色。 数据传送是利用WS2801自带的移位功能,将每个数据一位一位传给LED控制口,因为每种基色有8为二进制数据,每个LED灯又由红绿蓝三种基色控制,所以要点亮一个LED灯就需要传送24个二进制数,这是颜色控制和数据传送的整个过程[22]。 设计流水灯流程图如下:图19 流水灯效果流程图Fig 19 Effect of water flow chart设计流水灯程序如下:void huayang6() { if(type!=date)break。 for(s=0。 s10。 s++) //点亮前面s个灯 { if(type!=date)break。 for(i=0。 is。 i++) { j=d[jj*3]。 j1=d[jj*3+1]。 j2=d[jj*3+2]。 for(i1=0。 i18。 i1++) { cki=0。 sdi=jamp。 0x80。 _nop_()。 cki=1。 j=j1。 } for(i1=0。 i18。 i1++) { cki=0。 sdi=j1amp。 0x80。 _nop_()。 cki=1。 j1=j11。 } for(i1=0。 i18。 i1++) { cki=0。 sdi=j2amp。 0x80。 _nop_()。 cki=1。 j2=j21。 } } delay(60)。 } }} 延时程序设计延时程序一般是通过一层或多层循环实现,整个过程延时的时间是程序执行的指令总条数乘以执行每条指令所用的时间。 由于该系统的晶振选用的是12M,所以执行每条指令所所用时间为2us,共有两个延时程序,程序执行如下:void delay(int count){ int ii。 while (count 0) { if(type!=date)break。 for (ii=0。 iisudu。 ii++)。 count。 }}void yanshi(int count){ int ii,jj。 for (ii=0。 iicount。 ii++) ////count for(jj=0。 jj318。 jj++)。 ///318 } 系统硬件调试及问题分析硬件电路设计完成后的工作是通过软件编程来实现系统的主要功能,也就是进行软件开发。 对于电子系统,软件设计建立在具体硬件电路基础之上,系统功能的实现以及工作的可靠性不仅需要合理的硬件设计,很大程度上取决于功能完善、算法先进的软件设计。 一个合理的软件设计能够充分发挥微控制器的运算和逻辑控制功能,可靠地实现系统的各种功能。 系统硬件设计制作完成之后,首先应该测试硬件电路。 首先检查系统电源是否接入硬件电路,各个元件管脚是否有虚焊,特别是发光二极管和极性电容的管脚是否正负极反接。 经过用万用表检查之后,发现在电路设计的时候,电源开关被短路,在电路中没有任何作用。 经过初步检查之后,就可以向系统接入电源,对系统硬件进一步进行调试。 电路连接好之后,我们可以向系统中下载硬件电路测试程序,经过实验,系统串口通信模块完全可以向单片机中下载程序,说明串口通信模块符合要求。 下载完系统硬件测试程序后,就可以检测系统LED光源亮度调节驱动电路。 简易控制器WS2801简易控制器是针对恒流驱动LED芯片WS2801设计的一款简易控制器,其操作简单,接线方便,可实现多种亮法,既可作为测试灯串用,又可以作为固定的灯串控制器。 接线该简易控制器有4条引线,其中红色代表电源线,白色代表数据线,绿色代表时钟线,蓝色代表接地线。 将简易控制器的4条引线与灯串的4条引线分别对应接好,一般为简易控制器的红、绿、蓝、白与灯串的红、绿、蓝、白对应相接。 然后将红色线与外部+5V直流电源的正极相接,将蓝色线与外部+5V直流电源的负极相接,即外部+5V直流电源既给简易控制器供电又给灯串供电。 使用说明 该简易控制器有4个按键,使用时先接通电源不按键时: 依次为红绿蓝白4种亮法无限交替循环。 按S1键时:红绿蓝白4种亮法交替变换,每按一次键变换一种颜色。 按S2键时:为七彩闪烁花样。 按S3键时:为七彩跑马花样。 按S4键时:为七彩流水花样。 4 结 论本课题是设计一种基于单片机控制的LED灯,实现城市亮化模拟,达到节能减排,推动城市亮化的发展。 LED灯是低电压驱动,稳定性好,适应性强,直流驱动,超低功耗。 有很大的实用价值。 本课题的研究内容主要集中在以下几个方面:论述LED发展趋势和前景;对LED驱动方式的探究;与单片机通信方式的比较与研究;实现多种LED亮化模式的尝试;组装几种LED光源样品并测试、评价其性能。基于单片机控制的led灯亮化设计
相关推荐
信号分别由引脚INT0()和INT1()引入。 外部中断请求有两种信号方式,即电平方式和脉冲方式,可通过有关控制位进行定义。 2. 定时中断 定时中断是为满足定时或计数的需要而设置的。 3. 串行中断 串行中断是为串行数据传送的需要而设置的。 4. 中断控制 这里所说的中断控制是指提供给用户使用的中断控制手段,实际上就是一些专用寄存器。 在MCS51单片机中,用于此目的的控制寄存器共有四个
C 电源 )产值达到 855 亿元, 2020 年达 931 亿元,增长 %。 2020 年达到 1027亿元,增长 %。 按开关电源应用领域细分,占据全行业产出份额第一的是工业类开关电源, 2020 年达到全行业产值的比重为 56%,居第二位的是消费类开关电源,占 32%,通信开关电源占 6%,个人电脑开关电源占 3%。 本文研究主要内容 ( 1)设计、制作开关电源; (
AT89C52 单片机的内部结构如图 31 所示。 可分为四大部分:内核 CPU 部分、存储器部分、 I/O 接口部分和特殊功能部分(如定时器 /计数器、外中断控制模块等)。 ( 1) AT89C52 单片机的 CPU AT89C52 单片机的 CPU 是 8 位字长,主要包括运算器和控制器两部分。 运算器的功能是进行算术逻辑运算、位处理操作和数据的传送,主要包括: 算术 /逻辑运算单元(
Y411Y510Y69Y77V C C16G N D8I C 47 4 L S 1 3 8 _ D I P 1 62 222 132 342 05D I S6V E E7V C C16G15F14E13D12C11B10A9ST1V S S8I C 3C D 4 0 5 6 _ D I P 1 6显示部分 复位电路部分: 复位电路虽然简单,但其作用非常重要。 一个单片机系统能复正常运行
一相的正弦波都使用三相的电压波形,通过两组晶闸管变流电路,调制出近似正弦波的输出。 从原理上分析,该电路的变频功能只能由基频向下变,即频率只能变低。 因为中间环节少,所以它的效率高。 同步电动机的调速方法 同步电机的调频只有两种方式:调节定子和转子的极对数比例;变频。 调极提速的平滑性不好而交 交变频调速的调速范围有限。 PWM 变频调速 对于 PWM 变频调速,以上缺点均被一一克服。 与交
表 32 LCD1602 管脚功能表 ( 2)基本操作时序: LCD1602 读写操作时序是直接记忆和总结读写时电平高低和变化,下面就基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 10页 列出典型读写的时序要求,以方便编写程序 [13]。 读状态 输入: RS=L, R/W=H, E=H 输出: D0D7=状态字 写指令 输入: RS=L, R/W=L, D0D7=指令码,