RA8835驱动程序不显示,看看问题出在那里?
帮看看问题出在那里,就是不显示.#include <mega16.h>
#include <delay.h>
#include <spi.h>
#define LCD_BUSPORTC
#define _WR PORTB.0
#define _RD PORTB.1
#define _CS PORTB.2
#define AO PORTB.3
#define _RES PORTB.4
unsigned char CTAB1={
0x53,0x75,0x50,0x50,0x6f,0x72,0x74,0x20,0x54,0x45,0x4c,0x3a,
0x30,0x35,0x37,0x31,0x2d,0x38,0x35,0x31,0x32,0x31,0x37,0x34,0x32};
//--------------写指令代码------------------------------
void Cmdwrite(unsigned char cmdcode)
{
_CS=0;
AO =1;
LCD_BUS=cmdcode;
_RD=1;
_WR=0;
_WR=1;
_CS=0;
}
//--------------写数据或参数-----------------------------
void Datawrite(unsigned char wrdata)
{
_CS=0;
AO =0;
LCD_BUS=wrdata;
_RD=1;
_WR=0;
_WR=1;
_CS=0;
}
//---------------写入数据-------------------------------
void Printstr(void)
{
unsigned char i;
Cmdwrite(0x42);
for(i=0;i<25;i++)
{
Datawrite(CTAB1);//写入数据
}
}
//-------------写入字符串--------------------------------
/*void Printstr( unsigned char*pstr)
{
Cmdwrite(0x42);
while(*pstr>0)
{
Datawrite(*pstr);
pstr++;
}
}*/
//--------------整屏幕写入数据---------------------------
void Fullscreenfill(unsigned char low,unsigned char high, unsigned char fill_data)
{
unsigned char i,j;
Cmdwrite(0x46);
Datawrite(low);
Datawrite(high);
Cmdwrite(0x42);
for(i=0;i<240;j++)
for(j=0;j<40;j++)
Datawrite(fill_data);
}
//--------------模块初始化-------------------------------
void LCD_Initial()
{
_RES=0;
delay_ms(100);
_RES=1;
delay_ms(100);
Cmdwrite(0x40);
Datawrite(0x32);
Datawrite(0x87);
Datawrite(0x07);
Datawrite(0x27);
Datawrite(0x2b);
Datawrite(0xef);
Datawrite(0x28);
Datawrite(0x00);
Cmdwrite(0x44);
Datawrite(0x00);
Datawrite(0x00);
Datawrite(0x77);
Datawrite(0x00);
Datawrite(0x28);
Datawrite(0xef);
Datawrite(0x00);
Datawrite(0x50);
Cmdwrite(0x58);
Datawrite(0x55);
Cmdwrite(0x5b);
Datawrite(0x00);
Cmdwrite(0x5c);
Datawrite(0x00);
Datawrite(0x78);
Cmdwrite(0x5d);
Datawrite(0x07);
Datawrite(0x07);
Cmdwrite(0x4c);
Fullscreenfill(0x00,0x00,0x00);
Fullscreenfill(0x00,0x28,0x00);
Fullscreenfill(0x00,0x50,0x00);
Cmdwrite(0x59);
}
//================================================================
void main()
{
DDRB=0xff;
PORTB = 0xff;
DDRC=0xff;
PORTC = 0x00;
_RD=1;
_WR=1;
_CS=1;
AO =1;
LCD_BUS=0xff;
LCD_Initial();
Cmdwrite(0x46);
Datawrite(0x3d);
Datawrite(0x02);
Printstr();
Cmdwrite(0x46);
Datawrite(0x0a);
Datawrite(0x50);
Printstr();
delay_ms(200);
while(1)
{}
} 问题解决了,太粗心了,看看这个错误 for(i=0;i<240;j++) .所以一直在清屏(废了我一晚上). 恭喜
谢谢
目前用这个液晶的人可能还比较少
先把你的代码收藏了~ 我想学习一下RA8835如何硬件连接单片机和LCD屏,我用240X160,能否共享硬件图,谢谢。 RA8835 这个就是1335的替代
我们公司的一个产品用这个.不怎么成熟啊,I/O模拟的行,总线驱动的悬了,要么是没显示要么是花屏
注意后缀为RA8835AP的改良版可能好些了 有液晶模块方面问题或需求相关资料可联系我
QQ 172948918 记号 收藏 mark MARK一下 楼主能不能留个QQ什么的,小弟也在做RA8835驱动程序,怎么搞也没显示,换成你上面的程序把你错误的那个地方改过来了,也没显示,希望大哥能指导指导,谢谢!我的QQ82131137 mark 现在发现液晶的驱动太难了,我现在弄ra8803,整了两天了,都没看到啥,问题纠结啊,ra8835,看来也是不太好弄啊 mark
页:
[1]