为什么我的液晶屏显示不了?程序如下:
#include
#include
***it lcd_rs=P1^2;
***it lcd_en=P1^0;
***it 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;
}
2012-8-24 10:47:25
硬件连接不正确;硬件正确的话,看延时、清屏及初始化函数是否正确?
硬件连接不正确;硬件正确的话,看延时、清屏及初始化函数是否正确?
举报