📄 led1602.h
字号:
#ifndef __led1602_h
#define __led1602_h
#define uchar unsigned char
#define uint unsigned int
//定义接口
#define LCD_dat P0
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
void LcdWriteCommand( uchar CMD,uchar AttribC );
void delay(uchar j)
{
uchar n;
for(j;j>0;j--)
{for(n=248;n>0;n--){} //delay500us
}
}
void delay5ms()
{
unsigned int i;
for (i=0;i<1000;i++)
;
}
/*delay1() //按键防止连续显示
{
int i,j,k;
for(i=0;i<20;i++)
for(j=0;j<20;j++)
for(k=0;k<100;k++);
} */
/*void delay_nms(unsigned int n)
{
unsigned int i=0,j=0;
for (i=n;i>0;i--)
for (j=0;j<1140;j++);
} */
//发送命令
void writecommand(char command)
{
RS=0;//选择命令寄存器
RW=0;//选择写
E=1;//读写禁止
delay(2);
P0=command;
delay5ms();
E=0;//读写允许
}
//发送数据
void writedata(char dat)
{
RS=1;//择数据寄存器
RW=0;//选择写
E=1;//允许读写操作
delay(2);
P0=dat;
delay5ms();
E=0;//不允许读写操作
}
//设置显示的坐标成功
void setXY(char x,char y) //发送一个地址
{
char address;
if(y==0)
address=0x80+x;//选择第 0 行
if(y==1)
address=0xc0+x;//选择第 1 行
writecommand(address);
}
//显示一个数据成功
/*void writechar(char x,char y,char dat)
{
setXY(x,y); ///在某一个地址写
writedata(dat); //写一个数
} */
//显示一个字符串 已成功
void writestring(char x,char y,char *string) //用指针写一个字符串
{
setXY(x,y);
while(*string)
{
P0=*string;
writedata(*string);
string++;
}
}
//初始化
void init(void)
{
delay(20);
writecommand(0x38);//8位数据,2行显示
writecommand(0x08);//关闭显示
writecommand(0x01);//清屏 清屏和光标归位需要较长的时间
delay5ms();
writecommand(0x06); //光标移动设置既光标右移一格地址计数器AC加1
writecommand(0x0f);//设置光标闪 0x0c是设置光标不闪 0x0f为光标闪
}
/* void LocateXY( char posx,char posy)
{
uchar temp;
temp = posx & 0xf;
posy &= 0x1;
if ( posy )temp |= 0x40;
temp |= 0x80;
LcdWriteCommand(temp,0);
} */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -