位置:51电子网 » 技术资料 » 集成电路

控制原理LED

发布时间:2013/11/16 15:15:56 访问次数:735

    为什么6个I/O能控制12个LED呢?它们之间会不会相互影响呢?其实,这样的连接方式不仅能控制每个LED灯,还能控制其亮度呢j之所以能这样连接,是因为AVR单片机的每个l/0都是3态输出。BUX98A如果用普通51单片机,这样连接是不行的。
    那么又是如何控制LED灯的亮度呢?控制亮度的关键是ATtiny13的两路PWM,它们可以分别设置连接到PBO和PB1引脚上。在ATtiny13使用内部振荡器的情况下,PWM的最高频率可设置为47.5kHz。而且PWM的极性可以通过设置寄存器而改变,这使得12个LED灯亮度的控制更加简单了。
    先谈谈如何控制每个LED灯单独的亮和灭。ATtiny13的每个I/。都有4种状态,即输出O状态、输出1状态、高阻态(悬空态)、带上拉电阻的高阻态。要使LED亮必须要让LED中流过正向的电流,如果要让最左边的LED亮,PB1输出1、PB2输出O即可。但是,其他不相关的引脚需要设置成高阻态。否则,如果PEg0此时也为1的话,第2个LED灯也会亮。总之,为了保证其他LED不受到影响,在设置某个灯亮时,必须先把所有l/。设置成不带上拉的高阻态。
    能控制亮和灭有什么了不起?呵呵,萁实还能控制每个LED单独的渐变,就是渐渐变亮,渐渐变暗。我举个例子吧,如果要最左边的LED渐渐变亮,就先设置PB2引脚为0电平,PB1引脚设置为高电平驱动的F:WM波。然后,程序逐渐控制Pf31的PWM状态,通过调整PWM高电平的脉宽长度来实现亮度控制。当PWM高电平的时间长时,LED就变亮了。反之.LED就变暗了。
    那么电路原理图中第7个反过来接的LED怎么实现亮度控制呢?原理还是一样,只是PB2将刚才的0电平设置成1电平,原来PB1为高电平脉冲驱动的PWM爱上制作波设置成低电平脉)中驱动的PWM波即可。同样,要控制第7个LED的亮度,就控制PWM低电平的脉宽长度,当低电平的脉宽长度长时,LED就变亮了。反之,LED就变暗了。
    那么能实现所有的LED同时发光吗?制作过程中,这个功能的实现倒是困扰了我一会儿。后来,我想到了动态扫描。什么是动态扫描?老式电视机不就是这个原理吗?电视机通过磁场让射线高速地扫描屏幕,从而产生一幅画面。那么,让每个灯分别亮Ims左右,然后像电视机一样不断地扫描,看上去就都亮了。在此基础上,再控制每个灯的亮度数值,就能实现整体亮度控制了。如果LED足够多,单片机引卿也足够多,还可能显示一副灰度画面呢!
    为什么6个I/O能控制12个LED呢?它们之间会不会相互影响呢?其实,这样的连接方式不仅能控制每个LED灯,还能控制其亮度呢j之所以能这样连接,是因为AVR单片机的每个l/0都是3态输出。BUX98A如果用普通51单片机,这样连接是不行的。
    那么又是如何控制LED灯的亮度呢?控制亮度的关键是ATtiny13的两路PWM,它们可以分别设置连接到PBO和PB1引脚上。在ATtiny13使用内部振荡器的情况下,PWM的最高频率可设置为47.5kHz。而且PWM的极性可以通过设置寄存器而改变,这使得12个LED灯亮度的控制更加简单了。
    先谈谈如何控制每个LED灯单独的亮和灭。ATtiny13的每个I/。都有4种状态,即输出O状态、输出1状态、高阻态(悬空态)、带上拉电阻的高阻态。要使LED亮必须要让LED中流过正向的电流,如果要让最左边的LED亮,PB1输出1、PB2输出O即可。但是,其他不相关的引脚需要设置成高阻态。否则,如果PEg0此时也为1的话,第2个LED灯也会亮。总之,为了保证其他LED不受到影响,在设置某个灯亮时,必须先把所有l/。设置成不带上拉的高阻态。
    能控制亮和灭有什么了不起?呵呵,萁实还能控制每个LED单独的渐变,就是渐渐变亮,渐渐变暗。我举个例子吧,如果要最左边的LED渐渐变亮,就先设置PB2引脚为0电平,PB1引脚设置为高电平驱动的F:WM波。然后,程序逐渐控制Pf31的PWM状态,通过调整PWM高电平的脉宽长度来实现亮度控制。当PWM高电平的时间长时,LED就变亮了。反之.LED就变暗了。
    那么电路原理图中第7个反过来接的LED怎么实现亮度控制呢?原理还是一样,只是PB2将刚才的0电平设置成1电平,原来PB1为高电平脉冲驱动的PWM爱上制作波设置成低电平脉)中驱动的PWM波即可。同样,要控制第7个LED的亮度,就控制PWM低电平的脉宽长度,当低电平的脉宽长度长时,LED就变亮了。反之,LED就变暗了。
    那么能实现所有的LED同时发光吗?制作过程中,这个功能的实现倒是困扰了我一会儿。后来,我想到了动态扫描。什么是动态扫描?老式电视机不就是这个原理吗?电视机通过磁场让射线高速地扫描屏幕,从而产生一幅画面。那么,让每个灯分别亮Ims左右,然后像电视机一样不断地扫描,看上去就都亮了。在此基础上,再控制每个灯的亮度数值,就能实现整体亮度控制了。如果LED足够多,单片机引卿也足够多,还可能显示一副灰度画面呢!
相关技术资料
11-16控制原理LED

热门点击

 

推荐技术资料

DS2202型示波器试用
    说起数字示波器,普源算是国内的老牌子了,FQP8N60... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!