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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助 單片機(jī)控制UCS1903芯片程序

[復(fù)制鏈接]
ID:369177 發(fā)表于 2018-7-11 08:45 | 顯示全部樓層 |閱讀模式
控制 1903 或 WS2811 芯片,我參照別人的寫的,怎么都控制不了燈,晶振 12M 24M都試過了,新手搞不明白怎么回事
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int
sbit DIN=P1^2;//輸出信號端口
void Delay50us()        //@11.0592MHz
{
    unsigned char i, j;
    _nop_();
    i = 1;
    j = 134;
    do
    {
        while (--j);
    } while (--i);
}
void delay (uint z)//延時函數(shù)1ms
{
  uint x,y;
  for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void DIN_bit_0()//發(fā)送0碼函數(shù)
{        
        DIN=1;
        _nop_();_nop_();
    DIN=0;
        _nop_();_nop_();_nop_();
}
void DIN_bit_1()//1碼
{
        DIN=1;
        _nop_();_nop_();_nop_();
    DIN = 0;
        _nop_();_nop_();
}
/*************reset碼*******************/
void reset()//reset碼  低電平時間要大于30us
{   
DIN=0;   
Delay50us();//延時50us     
}  
void write_data(unsigned long dat)//寫碼
{
                uchar i;
                for (i = 8; i>0;i--)//發(fā)送8位碼
                {
                                if (dat & 0x80)
                                {
                                                DIN_bit_1();                                       
                                }
                                else              //否則傳輸位 0
                                {
                                DIN_bit_0();        
                                }
                                dat = dat << 1;
                }
}
void main(void)//主函數(shù),控制紅光的亮滅
{
        uchar i,n;
                while (1)
                {
                for(i=0;i<255;i++)//255是光的灰度,0-255,255時最亮
                {
                 for(n = 20;n>0;n--)//20顆燈
                 {
                  write_data(i);//紅光8位碼
                  write_data(0);//綠光8位碼
                  write_data(0);//藍(lán)光8位碼
                 }
                 reset();
                delay(3000);
                }                                       
        }               
                }
#include<reg52.h>//頭文件
#include <intrins.h>//頭文件
#define uchar unsigned char
#define uint  unsigned int
sbit DIN=P1^2;//輸出信號端口
void Delay50us()        //@11.0592MHz
{
    unsigned char i, j;
    _nop_();
    i = 1;
    j = 134;
    do
    {
        while (--j);
    } while (--i);
}
void delay (uint z)//延時函數(shù)1ms
{
  uint x,y;
  for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void DIN_bit_0()//發(fā)送0碼函數(shù)
{        
        DIN=1;//0碼高電平
        _nop_();_nop_();//0碼高電平時間空指令 0.5us
    DIN=0;//0碼低電平
        _nop_();_nop_();_nop_();//0碼低電平時間空指令 1us
}
void DIN_bit_1()//1碼
{
        DIN=1;//1碼高電平
        _nop_();_nop_();_nop_();//1碼高電平時間空指令 1us
    DIN = 0;//1碼低電平
        _nop_();_nop_();//0碼低電平時間空指令 0.5us
}
/*************reset碼*******************/
void reset()//reset碼  低電平時間要大于30us
{   
DIN=0;   
Delay50us();//延時50us     
}  
void write_data(unsigned long dat)//寫8位 控制碼
{
                uchar i;
                for (i = 8; i>0;i--)//發(fā)送8位碼
                {
                                if (dat & 0x80) // 傳輸位1 dat與 1000000為1的話 傳送1碼
                                {
                                                DIN_bit_1();                                       
                                }
                                else              //否則傳輸位 0
                                {
                                DIN_bit_0();        
                                }
                                dat = dat << 1;//一位一位傳
                }
}
void main(void)//主函數(shù),控制紅光的亮滅
{
        uchar i,n;
                while (1)
                {
                for(i=0;i<255;i++)//255是光的灰度,0-255,255時最亮
                {
                 for(n = 20;n>0;n--)//20顆燈
                 {
                  write_data(i);//紅光8位碼
                  write_data(0);//綠光8位碼
                  write_data(0);//藍(lán)光8位碼
                 }
                 reset();//發(fā)完24位碼 發(fā) reset碼
                delay(3000);//延時3秒,紅光慢慢亮 慢慢滅
                }                                       
        }               
                }
回復(fù)

使用道具 舉報

ID:369177 發(fā)表于 2018-7-11 08:47 | 顯示全部樓層
看了別人也是52單片機(jī) 加的24M晶振 可以控制,自己做,程序方面還是不懂,新手問題不知道出在哪
回復(fù)

使用道具 舉報

ID:369177 發(fā)表于 2018-7-11 09:40 | 顯示全部樓層


2)低速模式時間
名稱        描  述        典型值        容許誤差
T0H        0碼,高電平時間        0.5μs        ±150ns
T1H        1碼,高電平時間        2.0μs        ±150ns
T0L        0碼,低電平時間        2.0μs        ±150ns
T1L        1碼,低電平時間        0.5μs        ±150ns
注:當(dāng)為高速模式時,以上時間僅需一半(Reset碼時間不變)。

5)24bit的數(shù)據(jù)結(jié)構(gòu)
R7        R6        R5        R4        R3        R2        R1        R0        G7        G6        G5        G4        G3        G2        G1        G0        B7        B6        B5        B4        B3        B2        B1        B0
注:高位先發(fā),按照RGB的順序發(fā)送數(shù)據(jù)




回復(fù)

使用道具 舉報

ID:369177 發(fā)表于 2018-7-11 09:42 | 顯示全部樓層
回復(fù)

使用道具 舉報

ID:369177 發(fā)表于 2018-7-12 08:21 | 顯示全部樓層
有高手 指點下嗎?我調(diào)了下1 碼  0碼的時間,SM16703的芯片可以控制  WS2811怎么都控制不了
回復(fù)

使用道具 舉報

ID:221468 發(fā)表于 2019-8-28 10:01 | 顯示全部樓層
應(yīng)該是你的晶振頻率不對,keil有debug功能,能夠通過debug查看輸出的pwm波形,查看一下你輸出的波形是否符合芯片要求的時序
111111.jpg
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩免费av| 亚洲精品乱码久久久久久按摩观 | 国产91九色 | 欧美一区二区三区在线观看 | 巨大荫蒂视频欧美另类大 | 黑人中文字幕一区二区三区 | 成人免费看片网 | 中文字幕一区二区三区精彩视频 | 高清免费在线 | 久操伊人 | 日本亚洲欧美 | 精品成人免费一区二区在线播放 | se婷婷| 欧美一卡二卡在线观看 | 中文字幕一区二区三区在线观看 | 亚洲精品一区在线 | 成人性生交大片免费看中文带字幕 | 午夜激情在线视频 | 成人网av | 中文字幕乱码一区二区三区 | 日日干日日操 | 国产在视频一区二区三区吞精 | jdav视频在线观看免费 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 91网视频 | 国产一区精品在线 | 福利一区二区在线 | 91精品在线看| 欧美一级片黄色 | 亚洲人成人一区二区在线观看 | 国家一级黄色片 | 久久9999久久 | www.日韩av.com| 黄视频免费观看 | 婷婷在线免费 | 日日噜噜噜夜夜爽爽狠狠视频97 | 精品国产乱码 | 中文字幕亚洲免费 | 91视频亚洲| 精品久久久久久红码专区 | 亚洲国产成人精品女人久久久 |