📄 1602.h
字号:
/*****************************************************************************
lcd1602
*****************************************************************************/
#include<myc51.h>
sbit Rs = P2^5; //寄存器选择, “1” 数据;“0” 指令
sbit Rw = P2^6; //读写选择 “1”读;“0” 写
sbit En = P2^7; //使能 给个下降沿时执行命令
sfr DBPort = 0xb0; //数据端口 在此选P3
void delay(uchar z) //延时程序
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//向LCD写入命令或数据*********************************************************
void write(bit style, uchar input)
{
Rs=style;
DBPort=input;
delay(4);
En=1; //注意顺序
delay(4);
En=0;
}
//初始化LCD***************************************************************
void start1602()
{
Rw=0;
En=0;
//DBPort=0xff;
//delay(4);
write(0,0x01); //8位数据端口,2行显示,5*7点阵
write(0,0x02);
write(0,0x06);
write(0,0x0c);
write(0,0x3C); //?
}
//显示定位*******************************************************************
void goto_xy(uchar x, uchar y)
{
if(y==0)
write(0,0x80|x);
if(y==1)
write(0,0x80|(x-0x40)); //?
}
//显示字符******************************************************************
void printf(uchar *str)
{
while(*str!='\0')
{
write(1,*str);
str++;
}
}
//显示数据******************************************************************
void printd (sint x)
{
sint y[10];
uchar i=0,j;
if(x<0) //如果显示的值为负数
{
write(1,0x2d); //显示"-"号
x=-x;
}
y[0]=x%10;
while(x/10!=0)
{ i++;
x=x/10;
y[i]=x%10 ;
}
j=i+1;
for(j;j>0;i--,j--)
{
write(1,y[i]+48) ;
}
}
//**********************************************************************
void printdf(float x)
{
uchar y[10];
uint t;
uchar i=0,j;
if(x<1)
{
write(1,48);
}
x=x*1000;
t=(sint)x;
y[0]=t%10;
while(t/10!=0)
{ i++;
t=t/10;
y[i]=t%10;
}
j=i+1;
for(j;j>0;i--,j--)
{
if(i==2)
{write(1,0x2e);}
write(1,y[i]+48) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -