这是菜鸟我自己写的12864初始化程序RS=P5.5; RW=P5.6;LCDE=P5.7;D7~D0=P4口
程序写的有问题啊 初始化不了。请问大神们问题在哪??
#include
#define uc unsigned char
void delay(uc x)
{
uc a;
int b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void shuju(uc a)
{
P5OUT|=0X20;
P5OUT&=0Xbf;
P5OUT&=0X7F;
P4OUT=a;
delay(20);
P5OUT|=~0X7f;
delay(20);
P5OUT&=0X7F;
delay(20);
}
void zhiling(uc a)
{
P5OUT&=0Xdf;
P5OUT&=0Xbf;
P5OUT&=0X7F;
P4OUT=a;
delay(20);
P5OUT|=~0X7f;
delay(20);
P5OUT&=0X7F;
delay(20);
}
void chushihua()
{
zhiling(0x01);
zhiling(0x02);
zhiling(0x0f);
delay(20);
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P5SEL=0X00;
P4SEL=0X00;
P5DIR=0XFF;
P4DIR=0XFF;
chushihua();
while(1);
}
建议:
1、写代码的时候加上注释啊
2.LCD12864的时序并不难,自己不想写的话,你可以上网搜一下51的LCD12864,拿过来改一下,你写的这个我是在看着晕
看你这个代码写得确实是有点不规范,你应该用的8位数据总线模式,那样初始化的指令为:0x30,0x30,0x0c,0x06,0x01,这是一般的初始化指令流程,其中0x0c和0x06是可以更改的,以实现相应的功能,具体的你可以看12864的资料