找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1802|回復(fù): 8
收起左側(cè)

哪位大神指點(diǎn)一下,網(wǎng)上的程序燒錄進(jìn)單片機(jī)沒反應(yīng),也不知道哪里錯(cuò)了

[復(fù)制鏈接]
ID:1009425 發(fā)表于 2023-12-6 13:47 | 顯示全部樓層 |閱讀模式
sfr P3              = 0xB0;
sfr LEDWTML         = 0xce;
sfr LEDWTMH         = 0xcf;
sfr LEDAT1          = 0xc7;
sfr PWMEN           = 0x90;
sfr PWM2DIVL        = 0xad;
sfr PWM2DIVH        = 0xae;
sfr PWM2DUTL        = 0x9f;
sfr PWM2DUTH        = 0x91;
sfr PWM2CKD         = 0xb3;
sfr PWM2CON         = 0xbb;
sfr LEFLG           = 0xbf;
#define CKCON (*(unsigned char volatile xdata *)0x8030)
#define P34F  (*(unsigned char volatile xdata *)0x801C)
#define LEDUTL (*(unsigned char volatile xdata *)0x8060)
#define LEDUTH (*(unsigned char volatile xdata *)0x8061)
#define PWMIE(N) (N<<7) //N=0-1
#define PWMTOG(N) (N<<6) //N=0-1
#define PWMMOD(N) (N<<3) //N=0-7
#define PWMPOL(N) (N<<2) //N=0-1
#define PWMCKS_SYS 0
#define PWMCKS_IL 1
#define PWMCKS_IH 2     //LEFLG
#define LEF1 (1<<3)
#define LEBSY1 (1<<2)
#define IHCKE (1<<7)
void PWM_init(void)
{
P3   =16;
P34F = 5; //設(shè)置 P34 為 PWM 引腳功能
CKCON |= IHCKE; //打開 IRCH 時(shí)鐘
PWM2DIVH = 0; //設(shè)置位周期時(shí)間
PWM2DIVL = 20;
PWM2DUTH = 0; //設(shè)置位碼 0 時(shí)間
PWM2DUTL = 6;
LEDUTH = 0; //設(shè)置位碼 1 時(shí)間
LEDUTL = 13;
PWM2CON = PWMIE(0) | PWMTOG(0) | PWMMOD(3) | PWMPOL(0) | PWMCKS_IH; //設(shè)置IRCH 為PWM時(shí)鐘源,發(fā)送 3 個(gè)字節(jié)后插入暫停時(shí)間
PWM2CKD = 0; //設(shè)置預(yù)分頻系數(shù),設(shè)置為 0 表示不分頻
LEDWTMH = 0; //設(shè)置暫停時(shí)間
LEDWTML = 50;
PWMEN |= (2<<2); //PWM2 使能
}
code unsigned char LED_DAT[][3] = //LED 數(shù)據(jù)表
{
{0xff,0x00,0x00},
{0xff,0xff,0x00},
{0x00,0xff,0x00},
{0x00,0xff,0xff},
{0x00,0x00,0xff},
{0xff,0x00,0xff},
};
void main(void)
{
unsigned char i;
unsigned char color_index=0;
PWM_init();
while(1)
{
for(i=0;i<24;i++) //每級 RGB LED 為 3 個(gè)字節(jié)數(shù)據(jù),8 級為 24 字節(jié)
{
while(LEFLG & LEBSY1); //等待數(shù)據(jù)全部發(fā)送
LEDAT1 = LED_DAT[color_index][i%3]; //寫入 LED 數(shù)據(jù)到 LEDAT 寄存器
}
color_index ++; //循環(huán)變色
if(color_index> 6) color_index =0;
}
  }

回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2023-12-7 09:36 | 顯示全部樓層
啥芯片?
預(yù)期反應(yīng)是啥?
沒反應(yīng)又是啥?
回復(fù)

使用道具 舉報(bào)

ID:1009425 發(fā)表于 2023-12-12 14:49 | 顯示全部樓層
1.“PWMEN |= (2<<2); //PWM2 使能” 改為 “PWMEN |= (1<<2); //PWM2 使能”
2.需要復(fù)位280us以上
回復(fù)

使用道具 舉報(bào)

ID:1009425 發(fā)表于 2024-1-20 12:47 | 顯示全部樓層
//航順8位單片機(jī),錦銳CA51F551S1,只可調(diào)光,調(diào)速,調(diào)燈組數(shù),不會(huì)跑馬。程序調(diào)試OK
sfr P3              = 0xb0;
sbit EA                         = 0xAF;
sfr LEDWTML         = 0xce;
sfr LEDWTMH         = 0xcf;
sfr LEDAT1             = 0xc7;
sfr PWMEN           = 0x90;
sfr PWM2DIVL        = 0xad;
sfr PWM2DIVH        = 0xae;
sfr PWM2DUTL        = 0x9f;
sfr PWM2DUTH        = 0x91;
sfr PWM2CKD         = 0xb3;
sfr PWM2CON         = 0xbb;
sfr LEFLG           = 0xbf;
#define CKCON (*(unsigned char volatile xdata *)0x8030)
#define P34F  (*(unsigned char volatile xdata *)0x801C)
#define LEDUTL (*(unsigned char volatile xdata *)0x8060)
#define LEDUTH (*(unsigned char volatile xdata *)0x8061)
#define PWMIE(N) (N<<7) //N=0-1
#define PWMTOG(N) (N<<6) //N=0-1
#define PWMMOD(N) (N<<3) //N=0-7
#define PWMPOL(N) (N<<2) //N=0-1
#define PWMCKS_SYS   0
#define PWMCKS_IL    1
#define PWMCKS_IH    2     //LEFLG
#define LEF1 (1<<3)
#define LEBSY1 (1<<6)
#define IHCKE (1<<7)

void main(void)
{               
                EA = 1;       
                CKCON =(1<<7);                                                        //打開IRCH時(shí)鐘
    P34F  =5;
        PWM2CON = PWMIE(0) | PWMTOG(0) | PWMMOD(3) | PWMPOL(0) | PWMCKS_IH;                //設(shè)置PWM時(shí)鐘源為IRCH
        PWM2CKD = 0;                                                                                                                                                                       
       
        //設(shè)置PWMDIV、PWMDUT
        PWM2DIVH = 0;                       
        PWM2DIVL = 30;               

       
        PWM2DUTH = 0;               
        PWM2DUTL = 7;       
       
        LEDUTH        = 0;               
        LEDUTL        = 14;               
       
        LEDWTMH        = 0;
        LEDWTML        = 50;       
       
                                                                //開全局中斷
        PWMEN |= (1<<2); //PWM2 使能

        while(1)
        {
        unsigned int j,k;//定義一個(gè)16位無符號整形變量
        unsigned char i;
                static unsigned char color_index = 0;
                code unsigned char LED_DAT[][3] =
                {
            {0x00,0x2F,0x00},         //綠,紅,藍(lán)
                        {0x2F,0x00,0x00},
                        {0x00,0x00,0x2F},
                        {0x00,0x2F,0x2F},
            {0x2F,0x2F,0x00},
                        {0x2F,0x00,0x2F},
                        {0x2F,0x2F,0x2F},
                };               
                for(i=0;i<24;i++)              //LED個(gè)數(shù)i*3
                {
                        while(LEFLG & LEBSY1);
                        LEDAT1 = LED_DAT[color_index][i%3];
                }
                color_index ++;
                if(color_index> 6) color_index =0;    //LED數(shù)據(jù)組數(shù)N-1
      for(j=0;j<1500;j++)  //延時(shí)0.2s
        {
            for(k=1000;k>0;k--);
        }
        }
}
回復(fù)

使用道具 舉報(bào)

ID:1009425 發(fā)表于 2024-1-20 15:49 | 顯示全部樓層
8位2812點(diǎn)亮圖片

8位2812

8位2812

WS2812.rar

1.52 KB, 下載次數(shù): 1

回復(fù)

使用道具 舉報(bào)

ID:1009425 發(fā)表于 2024-1-20 15:53 | 顯示全部樓層
lkc8210 發(fā)表于 2023-12-7 09:36
啥芯片?
預(yù)期反應(yīng)是啥?
沒反應(yīng)又是啥?

D:\123.JPG
回復(fù)

使用道具 舉報(bào)

ID:1009425 發(fā)表于 2024-1-20 19:45 | 顯示全部樓層
錦銳CA51F551S1芯片手冊

航順-CA51F551S1.pdf

2.37 MB, 下載次數(shù): 0

規(guī)格書與例程

回復(fù)

使用道具 舉報(bào)

ID:1009425 發(fā)表于 2024-1-20 19:47 | 顯示全部樓層
lkc8210 發(fā)表于 2023-12-7 09:36
啥芯片?
預(yù)期反應(yīng)是啥?
沒反應(yīng)又是啥?

錦銳CA51F551S1,自帶WS2812硬件驅(qū)動(dòng)
回復(fù)

使用道具 舉報(bào)

ID:382454 發(fā)表于 2024-1-22 16:20 | 顯示全部樓層
照抄也要抄的對啊。。。。。。。人才。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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