#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);
}
怎 屏幕显示不出来呢?大家帮看下——
|