久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8475|回復: 14
收起左側

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

[復制鏈接]
ID:182903 發表于 2017-5-17 09:05 | 顯示全部樓層 |閱讀模式
100黑幣
我做了16*16的led點陣顯示,用的74hc595和74hc138做驅動,怎么添加可以調節led點陣的亮度啊,最好有原理圖和c程序,,謝謝謝謝謝了

回復

使用道具 舉報

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.
回復

使用道具 舉報

ID:182903 發表于 2017-5-18 12:01 | 顯示全部樓層

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

使用道具 舉報

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

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

使用道具 舉報

ID:157662 發表于 2017-5-18 19:19 | 顯示全部樓層
你只需要加一個電位器就可以了
回復

使用道具 舉報

ID:182903 發表于 2017-5-19 09:16 | 顯示全部樓層
1130555300 發表于 2017-5-18 19:19
你只需要加一個電位器就可以了

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

使用道具 舉報

ID:157662 發表于 2017-5-19 15:43 | 顯示全部樓層
咕嚕咕嚕 發表于 2017-5-19 09:16
你好  請問電位器接在哪里呢  謝謝了

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

使用道具 舉報

ID:11676 發表于 2018-5-30 13:50 | 顯示全部樓層
1130555300 發表于 2017-5-18 19:19
你只需要加一個電位器就可以了

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

使用道具 舉報

ID:11676 發表于 2018-5-30 13:52 | 顯示全部樓層
占空比應該是軟件實現的。
回復

使用道具 舉報

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

使用道具 舉報

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上拉電阻
}
回復

使用道具 舉報

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上拉電阻 }
回復

使用道具 舉報

ID:341441 發表于 2018-5-30 15:43 | 顯示全部樓層
占空比也可以,或者用其他的方案也行
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 韩国久久| 精品久久香蕉国产线看观看亚洲 | 完全免费av在线 | 蜜臀久久99精品久久久久久宅男 | 天堂网中文 | 国产成人精品一区二区三区视频 | 在线欧美一区二区 | 黄色激情毛片 | 日韩电影中文字幕在线观看 | 91毛片在线看 | 91青娱乐在线 | 日韩视频一区二区在线 | 亚洲综合日韩精品欧美综合区 | 日韩精品一区二区三区老鸭窝 | 国产在线观看一区二区三区 | 99九九久久 | 精品久久久久久久久亚洲 | 午夜电影在线播放 | 亚洲天堂中文字幕 | 黄色永久免费 | 亚洲人成在线观看 | 综合久久av | 欧美午夜一区 | 日韩综合在线 | 粉嫩av久久一区二区三区 | 欧美另类视频在线 | 欧美日韩久久久 | 国产激情一区二区三区 | 国产高清精品在线 | 精品国产一区二区三区久久 | 久久精品中文 | 国产成人区| 欧州一区| 国产 欧美 日韩 一区 | 国产视频一区在线观看 | 欧美日韩一区不卡 | 一区二区三区精品在线视频 | 欧美成人影院 | 超碰国产在线 | 日韩精品一区中文字幕 | 国产真实精品久久二三区 |