📄 lcd1602.h
字号:
#include <at89x51.h>
#include <absacc.h>
#define uchar unsigned char
#define A XBYTE[0x7efc]
#define B XBYTE[0x7efd]
#define C XBYTE[0x7efe]
#define Com XBYTE[0x7eff]
void LCD_INIT( )
{ int i;
Com=0x81;
C=0xfb; //P1口输出信号状态
C=0xfa;
for(i=0;i<100;i++); //延迟
//LcdEn=0;
//P1=DBPort;
Com=0x80; //写入命令 8位数据端口,2行显示,5*10点阵
C=0xf8;
B=0x3c;
C=0xf9;
for(i=0;i<100;i++); //延迟
C=0xf8;
//P1=DBPort; //P1口输出信号状态
Com=0x80;
C=0xf8;
B=0x0f;
C=0xf9;
for(i=0;i<100;i++); //延迟
C=0xf8;
//P1=DBPort; //P1口输出信号状态
//写入命令 光标移动,字符不动
Com=0x80;
C=0xf8;
B=0x06;
C=0xf9;
for(i=0;i<100;i++); //延迟
C=0xf8;
//P1=DBPort; //P1口输出信号状态
}
void LCD_CLR() //写入命令 清屏
{ int i;
Com=0x80;
C=0xf8;
B=0x01;
C=0xf9;
for(i=0;i<100;i++); //延迟
C=0xf8;
//P1=DBPort; //P1口输出信号状态
}
void Gotoxy(int x,int y)
{
int i;
Com=0x80;
if(y==0) //写入命令 光标移动,字符不动
{
C=0xf8;
B=0x80|x; // 不能改变第一行字符显示位置
C=0xf9;
for(i=0;i<100;i++); //延迟
C=0xf8;
//P1=DBPort; //P1口输出信号状态
}
if(y==1) //写入命令 光标移动,字符不动
{
C=0xf8;
B=0x80|(x+0x40);
//DBPort=0x80|x;
C=0xf9;
for(i=0;i<100;i++); //延迟
C=0xf8;
//P1=DBPort; //P1口输出信号状态
}
}
void writedata(uchar dat)
{
int i;
Com=0x80;
C=0xfc;
B=dat;
C=0xfd;
for(i=0;i<100;i++); //延迟
C=0xfc;
}
void Print(unsigned char *str)
{
while(*str!='\0')
{
int i=0;
Com=0x80;
C=0xfc;
B=*str;
C=0xfd;
for(i=0;i<100;i++); //延迟
C=0xfc;
str++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -