LPD1109

编辑:见识网互动百科 时间:2019-11-24 19:41:25
编辑 锁定
本词条缺少概述名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
中文名
LPD1109
发同步帧
将Din线置低电平。
程序C代码
//#define     
发送数据
控制9路LED,

LPD1109使用手册

编辑

LPD1109发同步帧

1:将Din线置低电平。
2:连续从CLKin记脚给出32个脉冲。

LPD1109发送数据

1:LPD1109一个IC可以控制9路LED,每一路LED是通过一个字节的数据来控制它的亮度的(即一路LED有256种亮度,它是通过PWM的形式来控制的)
2:每发3个字节的数据之前先得发一个高电平的起始位
3: 在时钟线为低电平时放好数据,在时钟上升沿发出数据(芯片是在时钟上升沿采样数据的)
4:每一次发同步帧都是新一轮数据的开始

LPD1109结连

1:若有n个芯片结连,同步帧后的前9字节数送入第一个芯片,第二个9字节数送入第二个芯片,第三个9字节数送入第三个芯片等等,依此类推第n个9字节数送入第n个芯片。
2:若要在第n个芯片上显示你要显示的数据;你需先送完同步帧,再送n个9字节数的内容(不需改变显示的IC的9字节数不要变,维持原数即可),最后再送一字节的任意数即可。

LPD1109发同步帧

1:将Din 线置低电平
2:连续从CLKin 记脚给出32 个脉冲
32个0起始位,注意事项起始位必须是32位的0,多了少了都出错

LPD1109发送数据

1:LPD1109 一个IC 可以控制9 路LED,每一路LED 是通过一个字节的数据来控制它的亮度的(即一路
LED256 种亮度,它是通过PWM 的形式来控制的)
2:每发3 个字节的数据之前先得发一个高电平的起始位
3:在时钟线为低电平时放好数据,在时钟上升沿发出数据(芯片是在时钟上升沿采样数据的)
4:每一次发同步帧都是新一轮数据的开始发了起始位后,后面数据就是"1" + 8BIT RED + 8BITGREEN + 8BIT BLUE +"1" + 8BIT RED + 8BITGREEN + 8BIT BLUE + "1"+ 8BIT RED + 8BITGREEN+ 8BITBLUE (1个IC的数据到此发完)+ 下一个IC的3个点的RGB数据......全部点传完后,最好在最后一个点后面再追加一个IC的数据(就是3个点的RGB数据),是要把前面的数据挤出去而追加的这个数据,这个数据是3个点的RGB数据就是了,而最后一个IC的数据就是3个25BIT,可以最好全是1

LPD1109结连方式

编辑
1:若有n 个芯片结连,同步帧后的前9 字节数送入第一个芯片,第二个9 字节数送入
第二个芯片,第三个9 字节数送入第三个芯片等等,依此类推第n 个9 字节数送入第
n 个芯片。
2:若要在第n 个芯片上显示你要显示的数据;你需先送完同步帧,再送n 个9 字节数
的内容(不需改变显示的IC 的9 字节数不要变,维持原数即可),最后再送一字节的
任意数即可。
参考程序C代码:
//#define Data_in P1_0
//#define Data_clk P1_1
void DELAY_xus(uchar dd)
{
while(dd--);
}
void Send_Begin(void)// 发同步帧
{
uchar i;
Data_clk = 0;
Data_in = 1;
////////////////////////////
DELAY_xus(1);
Data_clk = 1;
Data_clk = 0;
//////////////////////////////////
Data_in = 0; //将Din线置低电平
for(i=0;i
{
Data_clk = 0;
///////////////////////////////////
Data_clk = 1;
/////////////////////////////////
}
Data_in = 0;
Data_clk = 0;
}
void Send_start_Bit(void)//发一个高电平的起始位
{
Data_clk = 0;
Data_in = 1;
/////////////////////////////////
DELAY_xus(1);
Data_clk = 1;
Data_clk = 0;
///////////////
//DELAY_xus(1);///////////////
}
void Send_Data(uchar *dd,uchar len)// 带同步帧发数据
{
uchar i,j;
Send_Begin();//起始帧
//////////////////////////////////////
////////////////////////////////////////
for(j=0;j<>
{
if((j%3) == 0)Send_start_Bit();
for(i=0;i<8;i++)
{
Data_clk = 0;
if(dd[j] & 0x80)Data_in = 1;
else Data_in = 0;
DELAY_xus(1);///
Data_clk = 1;
dd[j] = dd[j] << 1;
}
}
Data_in = 0;
Data_clk = 0;
}
void Send_Buff(uchar *dd,uchar len)//// 不带同步帧发数据
{
uchar i,j;
uchar cc;
//////////////////////////////////////
////////////////////////////////////////
for(j=0;j<>
{
if((j%3) == 0)Send_start_Bit();
cc = dd[j];
for(i=0;i<8;i++)
{
Data_clk = 0;
if(cc & 0x80)Data_in = 1;
else Data_in = 0;
DELAY_xus(1);////////////////
Data_clk = 1;
cc = cc << 1;
}
}
Data_in = 0;
Data_clk = 0;
}
词条标签:
计算机学