冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 614|回覆: 0
打印 上一主題 下一主題

[討論] EM78P153 LM2596S實現LED顏色和時序控制

[複製鏈接]

2609

主題

0

好友

1009

積分

金牌會員

Rank: 6Rank: 6

UID
373967
帖子
9033
主題
2609
精華
0
積分
1009
楓幣
0
威望
986
存款
36015
贊助金額
0
推廣
0
GP
1205
閱讀權限
70
在線時間
461 小時
註冊時間
2023-1-12
最後登入
2024-12-26

2023端午節紀念勳章 2023中秋節紀念勳章 2023聖誕節紀念勳章

跳轉到指定樓層
1
發表於 2023-4-11 06:43:12 |只看該作者 |倒序瀏覽
EM78P153單片機
LM2596S DC-DC Buck變換器
RGB LED
杜邦線
麵包板
連接圖:


           +----------+
           |          |
    VCC ---|VCC   GND|--- GND
           |          |
  GPIO.0 ---|P01   P00|--- GPIO.1
           |          |
  GPIO.2 ---|P03   P02|--- GPIO.3
           |          |
  GPIO.4 ---|P05   P04|--- GPIO.5
           |          |
  GPIO.6 ---|P07   P06|--- GPIO.7
           |          |
           +----------+
               LM2596S
代碼如下:


#include <EM78P153.h>

// 定義IO口
#define R GPIO.0
#define G GPIO.1
#define B GPIO.2

void delay_us(unsigned int us)
{
    unsigned int i,j;
    for(i=0;i<us;i++)
        for(j=0;j<4;j++);
}

void delay_ms(unsigned int ms)
{
    unsigned int i,j;
    for(i=0;i<ms;i++)
        for(j=0;j<4000;j++);
}

void set_color(unsigned char r, unsigned char g, unsigned char b)
{
    // 調節LM2596S的輸出電壓
    ADCON1 = 0x87;      // AIN6 -> VREF, AIN7 -> GND
    DACON = b;          // 設置DAC輸出電壓為b
    delay_us(10);
    DACON = g;          // 設置DAC輸出電壓為g
    delay_us(10);
    DACON = r;          // 設置DAC輸出電壓為r
    delay_us(10);
}

void main()
{
    // 設置GPIO口為輸出
    GP0CON = 0x01;
    GP1CON = 0x01;
    GP2CON = 0x01;
    // 設置DAC輸出口為輸出
    DACCON = 0x10;

    while(1)
    {
        // 紅
        set_color(0xFF, 0x00, 0x00);
        delay_ms(1000);
        // 綠
        set_color(0x00, 0xFF, 0x00);
        delay_ms(1000);
        // 藍
        set_color(0x00, 0x00, 0xFF);
        delay_ms(1000);
        // 黃
        set_color(0xFF, 0xFF, 0x00);
        delay_ms(1000);
        // 紫
        set_color(0xFF, 0x00, 0xFF);
        delay_ms(1000);
        // 青
        set_color(0x00, 0xFF, 0xFF);
        delay_ms(1000);
        // 白
        set_color(0xFF, 0xFF, 0xFF);
        delay_ms(1000);
    }
}
由於LM2596S的輸出電壓受DAC控制,因此可以通過調節DAC輸出電壓來控制RGB LED的顏色。
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1鑰匙
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-12-27 04:52

回頂部