为什么我的液晶屏显示不了?程序如下:
#include <compiler_defs.h>
#include <
c8051f912_defs.h>
sbit lcd_rs=P1^2;
sbit lcd_en=P1^0;
sbit lcd_rw=P1^1;
#define uint unsigned int
#define uchar unsigned char
void SYSCLK_Init (void);
void PORT_Init (void);
void delay_lcd(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcd_rs=0;
lcd_rw=0;
P0=com;
delay_lcd(10);
lcd_en=1;
delay_lcd(10);
lcd_en=0;
}
void write_data(uchar dat)
{
lcd_rs=1;
lcd_rw=0;
P0=dat;
delay_lcd(10);
lcd_en=1;
delay_lcd(10);
lcd_en=0;
}
void init()
{
lcd_en=0;
delay_lcd(40);
write_com(0x38);
delay_lcd(5);
write_com(0x38);
delay_lcd(5);
write_com(0x38);
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0e);
}
void main()
{
PCA0MD &= ~0x40;
SYSCLK_Init ();
PORT_Init ();
init();
write_com(0x80+0x01);
delay_lcd(20);
write_data('A');
while(1);
}
void SYSCLK_Init (void)
{
OSCICN |= 0x80;
RSTSRC = 0x06;
CLKSEL = 0x00;
}
void PORT_Init (void)
{
P0MDIN |= 0xFF;
P0MDOUT |= 0xFF;
P1MDIN |= 0x07;
P1MDOUT |= 0x07;
XBR2 = 0x40;
}