欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
求助 單片機控制UCS1903芯片程序
[打印本頁]
作者:
hjwanan1
時間:
2018-7-11 08:45
標題:
求助 單片機控制UCS1903芯片程序
控制 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)//延時函數1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void DIN_bit_0()//發送0碼函數
{
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--)//發送8位碼
{
if (dat & 0x80)
{
DIN_bit_1();
}
else //否則傳輸位 0
{
DIN_bit_0();
}
dat = dat << 1;
}
}
void main(void)//主函數,控制紅光的亮滅
{
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);//藍光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)//延時函數1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void DIN_bit_0()//發送0碼函數
{
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--)//發送8位碼
{
if (dat & 0x80) // 傳輸位1 dat與 1000000為1的話 傳送1碼
{
DIN_bit_1();
}
else //否則傳輸位 0
{
DIN_bit_0();
}
dat = dat << 1;//一位一位傳
}
}
void main(void)//主函數,控制紅光的亮滅
{
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);//藍光8位碼
}
reset();//發完24位碼 發 reset碼
delay(3000);//延時3秒,紅光慢慢亮 慢慢滅
}
}
}
作者:
hjwanan1
時間:
2018-7-11 08:47
看了別人也是52單片機 加的24M晶振 可以控制,自己做,程序方面還是不懂,新手問題不知道出在哪
作者:
hjwanan1
時間:
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
注:當為高速模式時,以上時間僅需一半(Reset碼時間不變)。
5)24bit的數據結構
R7 R6 R5 R4 R3 R2 R1 R0 G7 G6 G5 G4 G3 G2 G1 G0 B7 B6 B5 B4 B3 B2 B1 B0
注:高位先發,按照RGB的順序發送數據
作者:
hjwanan1
時間:
2018-7-11 09:42
WS2811規格書_百度文庫
https://wenku.baidu.com/view/df5 ... &sxts=1531274572725
作者:
hjwanan1
時間:
2018-7-12 08:21
有高手 指點下嗎?我調了下1 碼 0碼的時間,SM16703的芯片可以控制 WS2811怎么都控制不了
作者:
水泡泡洗澡澡
時間:
2019-8-28 10:01
應該是你的晶振頻率不對,keil有debug功能,能夠通過debug查看輸出的pwm波形,查看一下你輸出的波形是否符合芯片要求的時序
111111.jpg
(185.33 KB, 下載次數: 66)
下載附件
2019-8-28 10:00 上傳
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1