分享 收藏 返回

单片机/MCU论坛

[讨论] LCD1602液晶屏显示问题

2012-8-23 14:40

为什么我的液晶屏显示不了?程序如下:



#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;
}

回帖(2)

张三

2012-8-23 17:01:52
注意硬件连接,以及port口输出是否正确

于文东

2012-8-24 10:47:25
硬件连接不正确;硬件正确的话,看延时、清屏及初始化函数是否正确?

更多回帖