📄 display.h
字号:
#define uchar unsigned char
/////液晶显示部分定义
const uchar ds[10]={'0','1','2','3','4','5','6','7','8','9'};
#define setE P1OUT|=BIT7//把E拉高
#define clrE P1OUT&=~BIT7//把E拉低
#define setRW P1OUT|=BIT6//把R/W拉高
#define clrRW P1OUT&=~BIT6//把R/W拉低
#define clrRS P1OUT&=~BIT5//把RS拉低,读写指令
#define setRS P1OUT|=BIT5//把RS拉高,写数据
/***********显示程序开始**********************/
void yjwrite_byte(uchar wdata)//向液晶写一个字节
{P2DIR=0xff;//把P2口作为液晶显示的8位数据口,定义为输出方式
clrRW;//把R/W拉低
setE;//把E拉高
P2OUT=wdata;//输出数据
clrE;//把E拉低
}
uchar yjread_byte()//从液晶读一字节
{uchar rdata;
P2DIR=0x00;//把P2口作为液晶显示的8位数据口,定义为输入方式
setRW;//把R/W拉高
setE;//把E拉高
rdata=P2IN;//把数据读入rdata
clrE;//把E拉低
return rdata;
}
void yjwrite_addr(uchar addr)//写命令或地址程序
{uchar busy;
clrRS;//把RS拉低,读写指令
busy=yjread_byte();//读忙指令
while(busy&0x80)//判忙
{busy=yjread_byte();}
yjwrite_byte(addr);//写入命令或地址
}
void yjwrite_data(uchar sdata)//写入数据
{uchar busy;
clrRS;//把RS拉低,读写指令
busy=yjread_byte();//读忙指令
while(busy&0x80)//判忙
{busy=yjread_byte();}
setRS;//把RS拉高,写数据
yjwrite_byte(sdata);//写入数据
}
void yjwrite_addrdata(uchar addr,uchar sdata1,uchar sdata2)//向某一地址写数据
{uchar sdata11,sdata12;
if(sdata1=='/'||sdata1==':'||sdata1==' ')
{sdata11=sdata1;}
else
{sdata11=ds[sdata1];}
if(sdata2=='/'||sdata2==':'||sdata2==' ')
{sdata12=sdata2;}
else
{sdata12=ds[sdata2];}
yjwrite_addr(addr);
yjwrite_data(sdata11);
yjwrite_data(sdata12);
}
void yjwrite_addrhan(uchar addr,uchar sdata1,uchar sdata2)//向某一地址写汉字或字符
{
yjwrite_addr(addr);
yjwrite_data(sdata1);
yjwrite_data(sdata2);
}
void yjdisplay_init()//液晶显示初始化
{P1DIR|=BIT7+BIT6+BIT5;//把P1口的高三位作为显示的E(7),R/W(6),RS(5),定义为输出
yjwrite_addr(0x30);//使用基本指令集
yjwrite_addr(0x01);//向液晶写入清屏指令
yjwrite_addr(0x02);//写入地址归位指令
yjwrite_addr(0x0c);//写入整体显示和''关闭''光标显示指令
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -