请输入您要查询的百科知识:

 

词条 LPD1109
释义

LPD1109使用手册

一、发同步帧

1:将Din线置低电平。

2:连续从CLKin记脚给出32个脉冲。

二、发送数据

1:LPD1109一个IC可以控制9路LED,每一路LED是通过一个字节的数据来控制它的亮度的(即一路LED有256种亮度,它是通过PWM的形式来控制的)

2:每发3个字节的数据之前先得发一个高电平的起始位

3: 在时钟线为低电平时放好数据,在时钟上升沿发出数据(芯片是在时钟上升沿采样数据的)

4:每一次发同步帧都是新一轮数据的开始

三、结连

1:若有n个芯片结连,同步帧后的前9字节数送入第一个芯片,第二个9字节数送入第二个芯片,第三个9字节数送入第三个芯片等等,依此类推第n个9字节数送入第n个芯片。

2:若要在第n个芯片上显示你要显示的数据;你需先送完同步帧,再送n个9字节数的内容(不需改变显示的IC的9字节数不要变,维持原数即可),最后再送一字节的任意数即可。

四、发同步帧

1:将Din 线置低电平

2:连续从CLKin 记脚给出32 个脉冲

32个0起始位,注意事项起始位必须是32位的0,多了少了都出错

五、发送数据

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

六、结连

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<PUB_Flage;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<len;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<len;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;

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/16 22:01:54