找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6124|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

用ws2812b燈珠制作32位搖搖棒

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:885138 發(fā)表于 2021-2-28 18:50 來(lái)自手機(jī) | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
用了一片hc89s003,32個(gè)ws2812b燈珠(5050),8只104電容一個(gè)滾珠開(kāi)關(guān),一個(gè)帶保護(hù)板的鋰電池(160mAh),一個(gè)電源開(kāi)關(guān),一個(gè)USB口,簡(jiǎn)易充電電路,導(dǎo)線及0歐貼片電阻若干,還有30cm長(zhǎng)的pvc線槽。
制作小技巧:
一、ws2812燈珠旋轉(zhuǎn)個(gè)小角度,直接手拉手串接,電路簡(jiǎn)潔(圖三,燈串兩側(cè)+-電源,第一燈外接輸入);
二、滾珠開(kāi)關(guān)斜向上45度左右安裝;
三、usb口可用于充電,同時(shí)借用usb的D+/D-改為串口txd/rxd,接自制一條假u(mài)sb真串口線時(shí)又可下載固件,很方便。下方串口下載四針仍保留;
四、電路除單片機(jī)(ssop20封裝,圖中轉(zhuǎn)接板背面)和usb接口用了pcb板,其余均用導(dǎo)線加熱熔膠方式,適合單件DIY;
五、軟件參照論壇搜到的普通led燈搖搖棒程序,最低層改用了ws2812b驅(qū)動(dòng),延時(shí)參數(shù)邊試邊調(diào)整。
上加工后的實(shí)物圖(搖時(shí)的閃爍圖肉眼可見(jiàn)連續(xù)效果,手機(jī)拍不了)

IMG_20210228_180827.jpg (927.33 KB, 下載次數(shù): 182)

IMG_20210228_180827.jpg

IMG_20210228_181042.jpg (740.6 KB, 下載次數(shù): 196)

IMG_20210228_181042.jpg

IMG_20210228_181129.jpg (737.48 KB, 下載次數(shù): 180)

IMG_20210228_181129.jpg

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2021-2-28 23:44 | 只看該作者
干的漂亮,能分享下程序嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:885138 發(fā)表于 2021-3-1 07:31 來(lái)自手機(jī) | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-2-28 23:44
干的漂亮,能分享下程序嗎?


/*
*32只WS2812+滾珠開(kāi)關(guān)制作的搖搖棒*
*演示在上方16個(gè)LED上顯示“你真棒”三個(gè)漢字
*CPU:HC89S003F4 16K bytes flash ROM, 256+256 bytes data RAM
*WS2812 接P22(推挽驅(qū)動(dòng)) ,滾珠開(kāi)關(guān)接P00(下降沿中斷方式)
*晶振頻率:32MHz,F(xiàn)osc 16MHz
*程序版本:V1.00
*硬件平臺(tái):003F4 V1.00

*編寫(xiě)軟件:Keil uVision4
*編寫(xiě):xxd0708

*聲明:本程序只供學(xué)習(xí)使用,未經(jīng)作者許可,不得用于其它任何用途
*/

#define ALLOCATE_EXTERN
#include "HC89S003F4.h"
#include <intrins.h>






/**********************************************************
程序名稱:LED搖搖棒顯示64*16像素
簡(jiǎn)要說(shuō)明:外部中斷方式INT0顯示;取模方式:縱向取模、字節(jié)倒序
(取點(diǎn)方式:縱向8點(diǎn)上高位,字節(jié)排列:上到下左到右)
**********************************************************/

sbit WS2812_IO = P2^2        ;


u8 KY;       //防止重影的控制變量     
u8 cont_rock=0;         
u8 cont_col=0;
u8 col_r,col_g,col_b;


// 你(0) 真(1) 棒(2)
code u8 dat_word1[]=
{
0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x00,0x02,0x08,0x04,0x30,0x18,0xC0,
0xF0,0x02,0x10,0x01,0x13,0xFE,0x10,0x00,0x10,0x80,0x14,0x60,0x18,0x18,0x00,0x00,/*"你",3*/
0x00,0x08,0x20,0x08,0x20,0x09,0x2F,0xFA,0x2A,0xAC,0x2A,0xA8,0x2A,0xA8,0xFA,0xA8,
0x2A,0xA8,0x2A,0xA8,0x2A,0xAC,0x2F,0xFA,0x20,0x09,0x20,0x08,0x00,0x08,0x00,0x00,/*"真",4*/
0x08,0x20,0x08,0xC0,0x0B,0x00,0xFF,0xFF,0x09,0x00,0x08,0x80,0x22,0x48,0x2A,0x88,
0x2B,0x28,0x2E,0x28,0xFA,0xFF,0x2A,0x28,0x2B,0x28,0x2A,0x88,0x22,0x48,0x00,0x00,/*"棒",5*/
};



//延時(shí)子函數(shù)-16Mhz 1ms延時(shí)
void delayMs_16Mhz(u16 ms)
{
        u16 j;
        for(; ms>0; ms--)
                for(j=1596; j>0; j--);
}

//延時(shí)函數(shù)-16Mhz 1us延時(shí)
void delayUs_16Mhz(u8 us)
{
        for(; us>0; us--)
        {
                _nop_();
                _nop_();
                _nop_();
        }       
}


void ws2812_rst(void)
{       

        WS2812_IO = 0;
        delayUs_16Mhz(80);
}

void ws2812_write_byte( u8 dat)
{       
        u8 i = 8;
        dat <<= 1;         //最高位進(jìn)入CY
        while(i)
        {
                 //高電平時(shí)間小于0.45uS為邏輯0,大于時(shí)為邏輯1
                WS2812_IO = 1;
                //如果主頻較高可在此處適當(dāng)增加_nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                WS2812_IO = CY;
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                //如果主頻較高可在此處適當(dāng)增加_nop_();
                WS2812_IO = 0;        //位發(fā)送完保持低電平,時(shí)間不大于50us。否則復(fù)位
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                dat <<= 1;         //最高位進(jìn)入CY
                i--;                       
        }

}

/*顯示關(guān)閉*/
void display_off(void)
{
        uchar i;
        i=0;
        while( i< 32 )
        {
                ws2812_write_byte( 0x00);
                ws2812_write_byte( 0x00);
                ws2812_write_byte( 0x00);
                i++;
        }
        ws2812_rst();
}
  
/*顯示子程序 在上方16個(gè)LED上顯示三個(gè)漢字*/
void display_3word(void)
{
        uchar i,j,temp;
        //ws2812_rst();
        i=0;
        j=0;

        while(j<96)         //3個(gè)漢字3*16*2個(gè)字節(jié)
        {
                i=0;
                while( i< 16 )         //下16不顯示 可修改
                {
                        //與普通LED主要更改點(diǎn),有顯示時(shí)發(fā)三個(gè)分量數(shù)據(jù),否則發(fā)三個(gè)0
                        ws2812_write_byte( 0x00);
                        ws2812_write_byte( 0x00);
                        ws2812_write_byte( 0x00);
                        i++;
                }               
                temp = dat_word1[j+1];//上方16位先送第二字節(jié)(依取模方式而定)
                i=0;
                while( i< 8 )
                {
                        if(temp&0x01)           //從低到高送顯示位(依取模方式而定)
                        {
                                //與普通LED主要更改點(diǎn),有顯示時(shí)發(fā)三個(gè)分量數(shù)據(jù),否則發(fā)三個(gè)0
                                ws2812_write_byte( col_g);
                                ws2812_write_byte( col_r);
                                ws2812_write_byte( col_b);
                        }
                        else
                        {
                                //與普通LED主要更改點(diǎn),有顯示時(shí)發(fā)三個(gè)分量數(shù)據(jù),否則發(fā)三個(gè)0
                                ws2812_write_byte( 0x00);
                                ws2812_write_byte( 0x00);
                                ws2812_write_byte( 0x00);
                        }
                        i++;
                        temp = temp >>1;        //下一位
                }
                temp = dat_word1[j]; //上方16位再送第一字節(jié)(依取模方式而定)
                while( i< 16 )
                {
                        if(temp&0x01)         //從低到高送顯示位(依取模方式而定)
                        {
                                //與普通LED主要更改點(diǎn),有顯示時(shí)發(fā)三個(gè)分量數(shù)據(jù),否則發(fā)三個(gè)0
                                ws2812_write_byte( col_g);
                                ws2812_write_byte( col_r);
                                ws2812_write_byte( col_b);
                        }
                        else
                        {
                                //與普通LED主要更改點(diǎn),有顯示時(shí)發(fā)三個(gè)分量數(shù)據(jù),否則發(fā)三個(gè)0
                                ws2812_write_byte( 0x00);
                                ws2812_write_byte( 0x00);
                                ws2812_write_byte( 0x00);
                        }
                        temp = temp >>1;   //下一位
                        i++;
                }
          
           delayUs_16Mhz(200);  //延時(shí)量自行調(diào)整,當(dāng)搖的速度一定時(shí),延時(shí)越大,字越寬但能顯示字?jǐn)?shù)減少
                j +=2;        //漢字下一列
        }

        //發(fā)送完三個(gè)漢字后清屏       
        display_off();

}


/*中斷服務(wù)程序*/
void intersvr0(void) interrupt 0 using 1
{

        //當(dāng)從右向左搖時(shí),產(chǎn)生中斷,KY取反變?yōu)?,此時(shí)不顯示,不運(yùn)行下面的語(yǔ)句
        delayMs_16Mhz(10);
        if(~P0^0)//10mS消抖
        {
                cont_rock ++;          //判斷中斷次數(shù)
                if(cont_rock >= 20)
                   cont_rock = 20;
      //每個(gè)搖動(dòng)來(lái)回滾珠開(kāi)關(guān)會(huì)在擺幅兩端分別產(chǎn)生下降沿中斷,只提取其中一次
                   delayMs_16Mhz(30);                //延時(shí)量改變首字顯示位置,越大越靠后
                if((cont_rock&0x01) == 0) //偶數(shù)時(shí)顯示(或奇數(shù)次,依初值和開(kāi)關(guān)方向而定)
                {
                  display_3word();   
                }
                else
                {
                        display_off();
                }
        }
    PINTF0 &= 0xFE;//  HC89S003需軟件清標(biāo)志位INT0F
}



/**************************************************************************************
  * @實(shí)現(xiàn)效果        將Fosc設(shè)置為16MHz,F(xiàn)cpu設(shè)置為16MHz
**************************************************************************************/
void main()
{

/************************************系統(tǒng)初始化****************************************/
        WDTCCR = 0x00;                                                //關(guān)閉看門(mén)狗
                                                //本例程為方便測(cè)試關(guān)閉看門(mén)狗,實(shí)際使用中,建議客戶打開(kāi)看門(mén)狗,詳見(jiàn)WDT復(fù)位例程
        CLKSWR = 0x51;                                                //選擇內(nèi)部高頻RC為系統(tǒng)時(shí)鐘,內(nèi)部高頻RC 2分頻,F(xiàn)osc=16MHz
        CLKDIV = 0x01;                                                //Fosc 1分頻得到Fcpu,F(xiàn)cpu=Fosc

/**********************************相關(guān)配置初始化**************************************/

        P2M1 = P2M1&0xF0|0x08;                                //WS2812信號(hào) P22設(shè)置為推挽輸出
        P0M0 = P0M0&0xF0|0x06;                        //滾珠開(kāi)關(guān)P00設(shè)置為帶施密特上拉輸入        (作為外部中斷)
        P00DBC = 0xFF;                              //滾珠開(kāi)關(guān)P00端口消抖,約250uS

        PITS0 = PITS0&0xFC|0x01;          //外部中斷0下降沿中斷
        EX0=1;                                                           //開(kāi)外部中斷
        EA=1;                                                        //開(kāi)總中斷

        cont_col = 0;  //顏色索引初值
        display_off();

        while(1)     //主程序中只檢測(cè)按鍵
        {
                cont_rock = 0;
                delayMs_16Mhz(1000);
                if(cont_rock == 0) //檢測(cè)1秒內(nèi)搖擺次數(shù),如無(wú)則顏色回初值
                {
                        cont_col = 0;
                }
                else
                {
                        //顏色索引每秒加一改變一次顏色
                        if(cont_col >=5)                          //暫用6種顏色
                        {
                           cont_col = 0;
                         }
                         else
                         {
                                 cont_col ++;        //改變顏色
                         }
                         //按索引賦顯示顏色分量值
                        col_r = 0;
                        col_g = 0;
                        col_b = 0;
                        switch(cont_col)
                        {
                           case 0: col_r = 0x20;break;
                           case 1: col_g = 0x20;break;
                           case 2: col_b = 0x20;break;
                           case 3: col_r = 0x20;col_g = 0x20;break;
                           case 4: col_g = 0x20;col_b = 0x20;break;
                           case 5: col_b = 0x20;col_r = 0x20;break;
                           default: cont_col=0; col_r = 0x20;break;
                        }
                }               

        }

}


評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:57657 發(fā)表于 2021-3-1 11:38 | 只看該作者
ws2812b 并不適合制作搖搖棒(最多只能顯示出幾種顏色),因?yàn)閮?nèi)部RGB芯片是通過(guò)PWM驅(qū)動(dòng)的LED,只有線性驅(qū)動(dòng)才可以搖出1600萬(wàn)種顏色。
回復(fù)

使用道具 舉報(bào)

5#
ID:885138 發(fā)表于 2021-3-1 12:33 來(lái)自手機(jī) | 只看該作者
npn 發(fā)表于 2021-3-1 11:38
ws2812b 并不適合制作搖搖棒(最多只能顯示出幾種顏色),因?yàn)閮?nèi)部RGB芯片是通過(guò)PWM驅(qū)動(dòng)的LED,只有線性驅(qū)動(dòng) ...

是的,所以只能玩玩。程序里僅設(shè)了6種顏色,比單色或雙色稍強(qiáng)一點(diǎn)。不過(guò)線路的確比沒(méi)芯片的LED簡(jiǎn)單些

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:885138 發(fā)表于 2021-3-1 13:41 | 只看該作者
一手拿手機(jī)另一只手搖,視頻有點(diǎn)晃眼哈

VID_20210301_132547.zip

18.04 MB, 下載次數(shù): 31, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

7#
ID:63570 發(fā)表于 2021-3-1 16:08 | 只看該作者
npn 發(fā)表于 2021-3-1 11:38
ws2812b 并不適合制作搖搖棒(最多只能顯示出幾種顏色),因?yàn)閮?nèi)部RGB芯片是通過(guò)PWM驅(qū)動(dòng)的LED,只有線性驅(qū)動(dòng) ...

請(qǐng)教,為什么PWM的只能顯示幾種顏色,而線性的可以真彩,是什么原理呢?謝謝。
回復(fù)

使用道具 舉報(bào)

8#
ID:885138 發(fā)表于 2021-3-1 20:42 來(lái)自手機(jī) | 只看該作者
yanhengbo 發(fā)表于 2021-3-1 16:08
請(qǐng)教,為什么PWM的只能顯示幾種顏色,而線性的可以真彩,是什么原理呢?謝謝。

pwm是脈寬調(diào)制,即調(diào)節(jié)亮與滅的時(shí)間,亮?xí)r100%亮度,滅時(shí)0%亮度,理論上需要25%亮度時(shí)就讓亮的時(shí)長(zhǎng)占一個(gè)周期的25%,當(dāng)時(shí)周期不能太大否則會(huì)感覺(jué)到閃爍。
現(xiàn)在看三色燈,如需RGB分量大小之比為3:2:1,pwm模式下其實(shí)是三色的時(shí)長(zhǎng)為3:2:1,在燈珠靜止時(shí),那看起來(lái)是亮度之比(混色成某種橙黃色);而搖搖棒是動(dòng)態(tài)的,所以看起來(lái)是擺動(dòng)寬度之比,即此比例下實(shí)際一個(gè)周期有三段顏色,第一段RGB都亮(白色),第二段為R+G(黃色),第三段為R(紅色),而不是合成色。
所以ws2812之類(lèi)的彩燈如用于搖搖棒,實(shí)際只能顯示8種顏色的點(diǎn)陣(R,G,B,R+G,R+B,G+B,R+G+B和0,即紅綠藍(lán)黃橙青白黑),數(shù)值的大小可改變8色之1的點(diǎn)陣掃過(guò)的寬度,但不能產(chǎn)生新的顏色。
綜上,用ws2812燈時(shí),靜的時(shí)候可以混色,但不能產(chǎn)生平面效果;搖的時(shí)候可以產(chǎn)生平面效果,但只有8色。8色顯字或簡(jiǎn)單圖案,玩玩是夠了,但真彩還是別想了。
一不小心在手機(jī)上輸了這么多字 :-P

評(píng)分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

9#
ID:143767 發(fā)表于 2021-3-2 11:32 | 只看該作者
WS2812比較適合Arduino驅(qū)動(dòng),WS2812要求的頻率要高一點(diǎn)
回復(fù)

使用道具 舉報(bào)

10#
ID:58937 發(fā)表于 2021-3-2 17:07 | 只看該作者
好作品 謝謝分享
回復(fù)

使用道具 舉報(bào)

11#
ID:390416 發(fā)表于 2021-3-2 22:05 | 只看該作者
dj3365191 發(fā)表于 2021-3-2 11:32
WS2812比較適合Arduino驅(qū)動(dòng),WS2812要求的頻率要高一點(diǎn)

89單片機(jī)也可以驅(qū)動(dòng)的,89C52驅(qū)動(dòng)WS2812 http://www.torrancerestoration.com/bbs/dpj-170855-1.html
回復(fù)

使用道具 舉報(bào)

12#
ID:390416 發(fā)表于 2021-3-2 22:07 | 只看該作者
xxd0708 發(fā)表于 2021-3-1 13:41
一手拿手機(jī)另一只手搖,視頻有點(diǎn)晃眼哈

你需要DIY一個(gè)手機(jī)支架,推薦使用80mm的PVC排水管,榮耀10手機(jī) 插進(jìn)去剛剛好
回復(fù)

使用道具 舉報(bào)

13#
ID:390416 發(fā)表于 2021-3-2 22:11 | 只看該作者
npn 發(fā)表于 2021-3-1 11:38
ws2812b 并不適合制作搖搖棒(最多只能顯示出幾種顏色),因?yàn)閮?nèi)部RGB芯片是通過(guò)PWM驅(qū)動(dòng)的LED,只有線性驅(qū)動(dòng) ...

關(guān)鍵是 PWM合成的顏色 也足夠了,真要搞出1600萬(wàn)色,你眼睛能分辨出來(lái)?
回復(fù)

使用道具 舉報(bào)

14#
ID:63570 發(fā)表于 2021-3-3 09:52 | 只看該作者
xxd0708 發(fā)表于 2021-3-1 20:42
pwm是脈寬調(diào)制,即調(diào)節(jié)亮與滅的時(shí)間,亮?xí)r100%亮度,滅時(shí)0%亮度,理論上需要25%亮度時(shí)就讓亮的時(shí)長(zhǎng)占一個(gè) ...

這么說(shuō),WS2812燈里面的驅(qū)動(dòng)是三顆R,G,B燈共用的一個(gè)PWM?分不同時(shí)段驅(qū)動(dòng)3顆燈嗎?我理解是3個(gè)PWM同時(shí)驅(qū)動(dòng)的R,G,B,如果是3個(gè)PWM同時(shí)驅(qū)動(dòng),應(yīng)該就是真彩了吧?
回復(fù)

使用道具 舉報(bào)

15#
ID:885138 發(fā)表于 2021-3-3 13:19 來(lái)自手機(jī) | 只看該作者
yanhengbo 發(fā)表于 2021-3-3 09:52
這么說(shuō),WS2812燈里面的驅(qū)動(dòng)是三顆R,G,B燈共用的一個(gè)PWM?分不同時(shí)段驅(qū)動(dòng)3顆燈嗎?我理解是3個(gè)PWM同時(shí)驅(qū) ...

ws2812b有三路獨(dú)立的8位pwm,如果燈珠靜止,占空比就表現(xiàn)為該靜止點(diǎn)的三路燈的亮度,理論可顯24位真彩。
但ws2812b的pwm周期為2.5mS(400Hz),未考慮到快速運(yùn)動(dòng)場(chǎng)景。故燈珠快速運(yùn)動(dòng)時(shí)(平移與旋轉(zhuǎn)),占空比就表現(xiàn)為一個(gè)周期內(nèi)運(yùn)動(dòng)幅度中亮燈狀態(tài)運(yùn)動(dòng)長(zhǎng)度的大小,而不能表現(xiàn)為某個(gè)單點(diǎn)的亮度,即在某個(gè)具體點(diǎn)三路燈各有亮或暗兩種狀態(tài),共2的3次冪=8種組合,也就是只有8色之一。
所以我前文所指出的,靜可顯真彩但做不了搖搖棒或旋轉(zhuǎn)屏,動(dòng)可做搖搖棒或旋轉(zhuǎn)屏但只有8色。
回復(fù)

使用道具 舉報(bào)

16#
ID:63570 發(fā)表于 2021-3-3 14:04 | 只看該作者
xxd0708 發(fā)表于 2021-3-3 13:19
ws2812b有三路獨(dú)立的8位pwm,如果燈珠靜止,占空比就表現(xiàn)為該靜止點(diǎn)的三路燈的亮度,理論可顯24位真彩。
...

那是否可以理解為:低于400HZ可以顯示真彩,高于400HZ,就是8位色?
回復(fù)

使用道具 舉報(bào)

17#
ID:885138 發(fā)表于 2021-3-3 14:16 來(lái)自手機(jī) | 只看該作者
yanhengbo 發(fā)表于 2021-3-3 14:04
那是否可以理解為:低于400HZ可以顯示真彩,高于400HZ,就是8位色?

應(yīng)該是指2.5mS周期內(nèi)燈珠基本不動(dòng)時(shí)可顯真彩,與運(yùn)動(dòng)速度有關(guān)
回復(fù)

使用道具 舉報(bào)

18#
ID:69115 發(fā)表于 2021-3-10 01:41 | 只看該作者
樓主說(shuō)的很好 PWM 亮度,在運(yùn)動(dòng)中顯示,就變成光點(diǎn)的運(yùn)動(dòng)長(zhǎng)度了.
回復(fù)

使用道具 舉報(bào)

19#
ID:698161 發(fā)表于 2023-3-27 14:31 | 只看該作者
沙發(fā)備用
回復(fù)

使用道具 舉報(bào)

20#
ID:1112801 發(fā)表于 2024-3-12 18:51 | 只看該作者
npn 發(fā)表于 2021-3-1 11:38
ws2812b 并不適合制作搖搖棒(最多只能顯示出幾種顏色),因?yàn)閮?nèi)部RGB芯片是通過(guò)PWM驅(qū)動(dòng)的LED,只有線性驅(qū)動(dòng) ...

線性驅(qū)動(dòng)用什么LED
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表