欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9016|回復: 14
打印 上一主題 下一主題
收起左側

基于單片機的pwm控制16*16led點陣亮度調節怎么做啊,

[復制鏈接]
跳轉到指定樓層
樓主
ID:182903 發表于 2017-5-17 09:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
100黑幣
我做了16*16的led點陣顯示,用的74hc595和74hc138做驅動,怎么添加可以調節led點陣的亮度啊,最好有原理圖和c程序,,謝謝謝謝謝了

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:201851 發表于 2017-5-17 16:42 | 只看該作者
調PWM的占空比呀
回復

使用道具 舉報

板凳
ID:201854 發表于 2017-5-17 17:38 | 只看該作者
如果是所有LED的亮度一致地調的話,只需要在LED的供電電源處加一MOS管,MOS管的G極拉到單片機PWM控制就可以了。
回復

使用道具 舉報

地板
ID:111634 發表于 2017-5-17 20:41 | 只看該作者
調節led的亮度就是調節流過它的電流,一般可減小它的限流電阻,注意最大電流不要超過40mA.
回復

使用道具 舉報

5#
ID:182903 發表于 2017-5-18 12:01 | 只看該作者

具體怎么操作啊  ,有電路圖嗎
回復

使用道具 舉報

6#
ID:182903 發表于 2017-5-18 12:07 | 只看該作者
liangzz 發表于 2017-5-17 17:38
如果是所有LED的亮度一致地調的話,只需要在LED的供電電源處加一MOS管,MOS管的G極拉到單片機PWM控制就可以 ...

程序怎么編呢,基本不會
回復

使用道具 舉報

7#
ID:157662 發表于 2017-5-18 19:19 | 只看該作者
你只需要加一個電位器就可以了
回復

使用道具 舉報

8#
ID:182903 發表于 2017-5-19 09:16 | 只看該作者
1130555300 發表于 2017-5-18 19:19
你只需要加一個電位器就可以了

你好  請問電位器接在哪里呢  謝謝了
回復

使用道具 舉報

9#
ID:157662 發表于 2017-5-19 15:43 | 只看該作者
咕嚕咕嚕 發表于 2017-5-19 09:16
你好  請問電位器接在哪里呢  謝謝了

你把電路圖發上來看看也
回復

使用道具 舉報

10#
ID:11676 發表于 2018-5-30 13:50 | 只看該作者
1130555300 發表于 2017-5-18 19:19
你只需要加一個電位器就可以了

不要忽悠人家,加個電位器手工調整亮度么?
回復

使用道具 舉報

11#
ID:11676 發表于 2018-5-30 13:52 | 只看該作者
占空比應該是軟件實現的。
回復

使用道具 舉報

12#
ID:149389 發表于 2018-5-30 15:08 | 只看該作者
16掃,1ms掃一行的話,刷新頻率1000/(16x1ms)=62.5Hz
1ms分拆,比如0.5顯示0.5不顯示屏幕亮度就會弱了。
回復

使用道具 舉報

13#
ID:341406 發表于 2018-5-30 15:14 | 只看該作者

#include <ioCC2530.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

#define uint  unsigned int
#define uchar unsigned char

//定義控制燈的端口
#define LED1 P1_0   //定義LED1為P10口控制
#define KEY1 P0_0      //KEY1為P00口控制

//函數聲明
void Delay(unsigned int t); //函數聲明
void InitIO(void);      //初始化LED控制IO口函數
void InitKey();

/*------------------------------------------------
                    主函數
------------------------------------------------*/
void main (void)
{                  
  unsigned int CYCLE=1000,PWM_LOW=0;//定義周期并賦值
  InitIO();
  InitKey();
  while (1)         //主循環
  {

    if(KEY1==0)
    {
      //S1按下,一直按著哦。
      PWM_LOW++;
      if(PWM_LOW>CYCLE)
      {
        PWM_LOW=CYCLE-1;
      }
    }
    else
    {
      PWM_LOW--;
      if(PWM_LOW<1)
      {
        PWM_LOW=1;
      }
    }

    if(PWM_LOW==1)
    {
      LED1=0;
    }
    else if(PWM_LOW==CYCLE)
    {
      LED1=1;
    }
    else if(CYCLE>PWM_LOW)
    {
      LED1=1;
      Delay(PWM_LOW);
      LED1=0;
      Delay(CYCLE-PWM_LOW);
    }
  }

}
/*------------------------------------------------
延時函數,含有輸入參數 unsigned int t,無返回值
unsigned int 是定義無符號整形變量,其值的范圍是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(t)
{
   t--;
   t++;
   t--;
}
}

/****************************
//初始化IO口程序
*****************************/
void InitIO(void)
{
    P1DIR |= 0x01;  //P10定義為輸出
}


/****************************
     按鍵初始化函數
*****************************/
void InitKey()
{
  P0SEL &= ~0x01; //設置P0.0為普通IO口
  P0DIR &= ~0X01; //按鍵接在P00口上,設P00為輸入模式
  P0INP &= ~0x01; //打開P00上拉電阻
}
回復

使用道具 舉報

14#
ID:341406 發表于 2018-5-30 15:19 | 只看該作者
#include <ioCC2530.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義  #define uint  unsigned int #define uchar unsigned char   //定義控制燈的端口 #define LED1 P1_0   //定義LED1為P10口控制 #define KEY1 P0_0      //KEY1為P00口控制  //函數聲明 void Delay(unsigned int t); //函數聲明 void InitIO(void);      //初始化LED控制IO口函數 void InitKey();  /*------------------------------------------------                     主函數 ------------------------------------------------*/ void main (void) {                     unsigned int CYCLE=1000,PWM_LOW=0;//定義周期并賦值   InitIO();   InitKey();   while (1)         //主循環   {      if(KEY1==0)     {       //S1按下,一直按著哦。       PWM_LOW++;       if(PWM_LOW>CYCLE)       {         PWM_LOW=CYCLE-1;       }     }     else     {       PWM_LOW--;       if(PWM_LOW<1)       {         PWM_LOW=1;       }     }      if(PWM_LOW==1)     {       LED1=0;     }     else if(PWM_LOW==CYCLE)     {       LED1=1;     }     else if(CYCLE>PWM_LOW)     {       LED1=1;       Delay(PWM_LOW);       LED1=0;       Delay(CYCLE-PWM_LOW);     }   }  } /*------------------------------------------------  延時函數,含有輸入參數 unsigned int t,無返回值  unsigned int 是定義無符號整形變量,其值的范圍是  0~65535 ------------------------------------------------*/ void Delay(unsigned int t) {  while(t)  {    t--;    t++;    t--;  } }  /**************************** //初始化IO口程序 *****************************/ void InitIO(void) {     P1DIR |= 0x01;  //P10定義為輸出 }   /****************************      按鍵初始化函數 *****************************/ void InitKey() {   P0SEL &= ~0x01; //設置P0.0為普通IO口   P0DIR &= ~0X01; //按鍵接在P00口上,設P00為輸入模式   P0INP &= ~0x01; //打開P00上拉電阻 }
回復

使用道具 舉報

15#
ID:341441 發表于 2018-5-30 15:43 | 只看該作者
占空比也可以,或者用其他的方案也行
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表