#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit rs=P3^5; //1602的數據,指令選擇線
sbit rw=P3^6; //1602的讀寫控制線
sbit en=P3^7; //1602的使能控制線
uchar code table[]="LCD1602 check ok";
uchar code table1[]="study up";
void delay(uint n)
{
uint x,y;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
void lcd_wcom(uchar com) //1602的寫命令涵數
{
rs=0; //選擇指令寄存器
rw=0; //選擇寫
P2=com; //把命令送入P2
delay(5);
en=1; //使能線電平變化,命令寫入1602的8位數據口
en=0;
}
void lcd_wdat(uchar dat)
{
rs=1;
rw=0;
P2=dat;
en=1;
en=0;
}
void lcd_init() //1602初始化涵數
{
lcd_wcom(0x38); //8位數據,雙列,5*7字形
lcd_wcom(0x0c); //開啟顯示屏,關光標
lcd_wcom(0x06); //顯示地址遞,寫一數據后,顯示位置后移一位
lcd_wcom(0x01); //清屏
}
void main() //主涵數
{
uchar n,m=0;
lcd_init(); //液晶初始化
lcd_wcom(0x08);
for(m=0;m<16;m++) //將tabe[]中的數據依次寫入1602中
{
lcd_wdat(table[m]);
delay(20);
}
lcd_wcom(0x80+0x44); //重新設定顯示地址為0xc4,下排第5位
for(n=0;n<8;n++) //將tabe1[]中的數據依次寫入1602中
{
lcd_wdat(table1[n]);
delay(20);
}
while(1);
}
怎 屏幕顯示不出來呢?大家幫看下——
|