/* 使用函数声明
void lcd_write_data(char dat);
void lcd_write_add(char h,char add);
void lcd_write_string(char str[]);
void lcd_clear();
void mouse_off();
void mouse_on();
void lcd_init();
*/
#include <REGX52.H>
sbit Rs=P2^7;
sbit Rw=P2^6;
sbit E=P2^5;
/*延时函数*/
void delay(char x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<10;j++);
}
/*指令函数*/
void lcd_write_cmd(char com)
{
Rs=0; //允许写指令
Rw=0; //允许写
P0=com; //写指令
delay(3);
E=1; //把指令传出去
delay(10);
E=0;
}
/*写数据函数*/
void lcd_write_data(char dat)
{
Rs=1; //允许写数据
Rw=0;
P0=dat; //写数据
delay(3);
E=1;
delay(14);
E=0;
}
//写字符串函数
void lcd_write_string(char str[])
{
while(*str!='\0')
lcd_write_data(*str++);
}
void lcd_write_add(char h,char add) //h为行选择(1,2)add为地址选择(1-16)
{
if(h==1)
lcd_write_cmd(0x80+add-1);
else
lcd_write_cmd(0x80+0x40+add-1);
}
void lcd_clear()
{
lcd_write_cmd(0x01);
}
void mouse_on()
{
lcd_write_cmd(0x0f);
}
void mouse_off()
{
lcd_write_cmd(0x0c);
}
void lcd_init()
{
lcd_write_cmd(0x38); //选择显示方式
lcd_write_cmd(0x0C); //光标显示控制
lcd_write_cmd(0x06); //光标向下移
lcd_write_cmd(0x01); //清屏
lcd_write_cmd(0x80); //数据指针设
}