128X128LCD S6B0741 点亮了。。庆贺一下。。
本帖最后由 XUEPENGBIN 于 2014-6-9 14:43 编辑如题:
demo的代码有点问题。。看了手册写了新代码。。终于点亮了。。庆贺一下。。模拟的spi。。
void send_byte (unsigned char temp)
{
unsigned char i;
for (i=0;i<8;i++)
{
CLR_CLK;
if (temp & 0x80) SET_DATA;
else CLR_DATA;
temp <<= 1;
SET_CLK;
}
}
void lcd_send_command (unsigned char command)
{
CLR_CS;
CLR_RS;
send_byte (command);
SET_CS;
}
void lcd_send_data (unsigned char data)
{
CLR_CS;
SET_RS;
send_byte (data);
SET_CS;
}
void lcd_set_xy (unsigned char page,unsigned char column)
{
CLR_RS;
CLR_CS;
send_byte (0xb0 | page);
send_byte (0x10 | (column>>4));
send_byte (0x0f & column);
SET_RS;
}
void lcd_clr_page(unsigned char page)
{
unsigned char j=0, i = 0;
lcd_set_xy(page,0);
SET_RS;
send_byte (0xe8); //源代码里边你没有这两个。发现是串口的时候才要。
send_byte (0xff); //这是下边要写入的数据长度
for (i= 0;i<129;i++)
{
send_byte (0x00);
send_byte (0x00);
}
SET_CS;
}
void lcd_clr_all(void)
{
unsigned char i,j;
for (i=0;i<16;i++)
{
lcd_clr_page(i);
}
}
void lcd_init (void)
{
LCD_IO_INIT();
CLR_RST;
DelayMs (50);
SET_RST;
lcd_send_command (0xe2);
DelayMs (250);
lcd_send_command (0x48); //set display duty
lcd_send_command (0x00);
lcd_send_command (0xa1); //set ADC
lcd_send_command (0xc0); //set SHL
lcd_send_command (0x44); //set COM0
lcd_send_command (0x00);
lcd_send_command (0x40); //set start line
lcd_send_command (0x00);
lcd_send_command (0xab); //start oscillator
lcd_send_command (0x66); //DC-DC boost 5 times
lcd_send_command (0x27); //set regulator resistor
lcd_send_command (0x81); //set EV
lcd_send_command (0x20);
lcd_send_command (0x54); //set LCD bias resistor
lcd_send_command (0x94); //setFRC PWM
/**********************************************/
lcd_send_command (0x88); //set white gray
lcd_send_command (0x00);
lcd_send_command (0x89);
lcd_send_command (0x00);
lcd_send_command (0x8a); //set light gray
lcd_send_command (0x09);
lcd_send_command (0x8b);
lcd_send_command (0x00);
lcd_send_command (0x8C); //set dark gray
lcd_send_command (0x99);
lcd_send_command (0x8d);
lcd_send_command (0x00);
lcd_send_command (0x8e); //set black gray
lcd_send_command (0x99);
lcd_send_command (0x8f);
lcd_send_command (0x09);
lcd_send_command (0x10);
lcd_send_command (0x01);
lcd_send_command (0xd0);
/**********************************************/
lcd_send_command (0x2c); //power control, open VC
DelayMs (2);
lcd_send_command (0x2e); //open VR
DelayMs (2);
lcd_send_command (0x2f); //open VF
DelayMs (2);
lcd_send_command (0xaf); //display ON
DelayMs (2);
lcd_clr_all();
}
void lcd_put_char (unsigned char y,unsigned char x,unsigned char asc ,unsigned char size)
{
unsigned char i,dat;
lcd_set_xy(y,x);
asc -= 0x20;
SET_RS;
if(size==0)
{
send_byte (0xe8);
send_byte (0x12);
for (i=0;i<6;i++)
{
dat = font6x8;
send_byte (0X00);
send_byte (dat);
}
SET_CS;
}
else
{
send_byte (0xe8);
send_byte (0x16);
for (i=0;i<8;i++)
{
dat = font8x16;
send_byte (dat);
send_byte (0x00);
}
SET_CS;
lcd_set_xy(y+1,x);
send_byte (0xe8);
send_byte (0x16);
for (i=8;i<16;i++)
{
dat = font8x16;
send_byte (dat);
send_byte (0x00);
}
SET_CS;
}
}
void lcd_put_str (unsigned char page,unsigned char column,unsigned char *str,unsigned char size)
{
while ( *str )
{
lcd_put_char (page,column,*str++,size);
if(size==0)column+=7;
else column+=9;
}
}
编辑原因 增加说明。。
说明:屏默认的是并口的。。要割2个线。飞一条线。。才能。。 http://www.amobbs.com/thread-5582809-1-1.html 这个贴子里的屏幕。。 恭喜一下 恭喜一下 恭喜恭喜。。 恭喜恭喜呀。。。{:lol:} 恭喜。。。。
本帖最后由 887799 于 2014-7-26 15:52 编辑
XUEPENGBIN 发表于 2014-6-9 19:40
请问这里红线是什么意思?我也买了这个屏,没有点亮。
第一张图的红线是划断的意思?
第二张图黑线是划断?长红线是跳线?短红线是什么意思? 改模式,并行改串行。 laotui 发表于 2014-7-27 16:53
改模式,并行改串行。
谢谢您的帮助
send_byte (0xe8); //源代码里边你没有这两个。发现是串口的时候才要。
send_byte (0xff); //这是下边要写入的数据长度
上面的为什么要增加这两句话?看控制芯片S6B0741里没有提到相关的信息. 您还是请教楼主吧,这个屏我有的不太明白。 用手机上的,不加这个显示不正常。。你可以看下手册里。。原来的程序没有的。后来我加的。你可以把程序那句屏蔽掉测试下。。 XUEPENGBIN 发表于 2014-7-27 19:08
用手机上的,不加这个显示不正常。。你可以看下手册里。。原来的程序没有的。后来我加的。你可以把程序那句 ...
删除了,确实是无法正常显示,您那里有这个屏幕的资料吗?可以传上来吗?我看的资料 是三星的驱动芯片资料,如附件。里面没有提到要加入那两个语句。
谢谢您,我看了这个是三线SPI下采用的, 四线SPI通信模式,需要用到这个指令吗?或许您的代码就是三线SPI. XUEPENGBIN 发表于 2014-7-27 21:06
已经确认是3线spi模式,好奇的是您是怎样确认 要割断哪条线?有什么好的方法确认呢? 割线是卖液晶的老板提供的。。
用3线单向驱动。。不读状态和数据。 XUEPENGBIN 发表于 2014-7-27 22:16
割线是卖液晶的老板提供的。。
用3线单向驱动。。不读状态和数据。
谢谢您,终于不纠结了,今天可以睡个好觉 了。 楼主,这条指令我没查到,不知是何作用?
lcd_send_command (0xd0);
1101开头的指令没有啊 johnlj 发表于 2014-12-19 16:00
楼主,这条指令我没查到,不知是何作用?
lcd_send_command (0xd0);
SHL SELECT XUEPENGBIN 发表于 2014-12-19 20:40
SHL SELECT
谢谢回复,不过SHL SELECT,在手册上是0xC啊
1100 XUEPENGBIN 发表于 2014-12-19 20:40
SHL SELECT
再请问下楼主,红圈中的短红线是那个过孔和铺地相连的意思吗?谢谢 >这个贴子里的屏幕。
The link is not valid anymore. funnynypd 发表于 2014-12-19 21:10
>这个贴子里的屏幕。
The link is not valid anymore.
好像移入广告区了 >好像移入广告区了
So no picture? 看着好古老的屏幕了
页:
[1]