#include <reg51.h>
sbit LCD1602_E=P2^7;
sbit LCD1602_RW=P2^5;
sbit LCD1602_RS=P2^6;
#ifndef _LCD_H_
#define _LCD_H_
#define LCD1602_4PINS
#include <reg51.h>
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
#define LCD1602_DATAPINS P0
void L_D(uint c);//延时函数
void LWC(uchar com);//为读入一个字符de命令
void LWD(uchar dat);//为写入一个字符de数据
void LI();//初始化,在扫描录入之前
#endif
#ifndef LCD1602_4PINS
void LWC(uchar com){
LCD1602_E=0;
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_DATAPINS=com;
L_D(1);
LCD1602_E=1;
L_D(5);
LCD1602_E=0;
}
#else
void LWC(uchar com){
LCD1602_E=0;
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_DATAPINS=com;
L_D(1);
LCD1602_E=1;
L_D(5);
LCD1602_E=0;
L_D(1);
LCD1602_DATAPINS=com << 4;
L_D(1);
LCD1602_E=1;
L_D(5);
LCD1602_E=0;
}
#endif
#ifndef LCD1602_4PINS
void LWD(uchar dat){
LCD1602_E=0;
LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_DATAPINS=dat;
L_D(1);
LCD1602_E=1;
L_D(5);
LCD1602_E=0;
}
#else
void LWD(uchar dat){
LCD1602_E=0;
LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_DATAPINS= dat;
L_D(1);
LCD1602_E=1;
L_D(5);
LCD1602_E=0;
LCD1602_DATAPINS=dat << 4;
L_D(1);
LCD1602_E=1;
L_D(5);
LCD1602_E=0;}
#endif
#ifndef LCD1602_4PINS
void LI(){
LWC(0x38);
LWC(0x0c);
LWC(0x06);
LWC(0x01);
LWC(0x80);
}
#else
void LI(){
LWC(0x32);
LWC(0x28);
LWC(0x0c);
LWC(0x06);
LWC(0x01);
LWC(0x80);
}
#endif
//延时函数
void L_D(uint c){
uchar a,b;
for(;c>0;c--){
for (b=199;b>0;b--){
for (a=1;a>0;a--);
}
}
}
|