原标题: LCD1602程序显示字符串
接线图连接法:
| db0---p 0.0|db4---- p 0.4|rw---- p 2.0 |
| db1---p 0.1|db5---- p 0.5|RS---- p 2.1 |
| DB2---p 0.2|db6---- p 0.6|e---- p 2.2 |
|DB3-----P0.3 | DB7-----P0.7 | VLCD连接1K电阻|
显示第一行显示欢迎屏幕! 第二行显示了赫尔洛世界!
(1) lcd_busy ) )繁忙状态函数
(2) lcd_command ) )向指令寄存器IR函数发送数据
)3) lcd_write ) )写入数据(显示) ) )。
(4) lcd_pos ) )显示位置函数的设定
)5)液晶屏_ init ) )液晶屏初始化
#包含
#包含
unsignedcharcodedis1[ ]={ ' welcome!' (;
unsignedcharcodedis2[ ]={ ' hello world!' (;
sbit rs=P2^0; //
sbit rw=P2^1;
sbit ep=P2^2;
不一致通道//延迟子程序
{
无符号char I;
while (毫秒----)
{
for(I=0; i 250; I )
{
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
}
}
}
bit lcd_busy忙状态
{
比特时间;
rs=0;
rw=1;
ep=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
TEMP=(bit ) ) P00x80;
ep=0;
返回时间;
}
向void LCD _ command (unsignedchardat )//指令寄存器IR发送数据
{
wile(LCD_busy ) );
rs=0;
rw=0;
ep=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
P0=dat;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
ep=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
ep=0;
}
voidLCD_write(unsignedchardat ) /写入数据
{
wile(LCD_busy ) );
rs=1;
rw=0;
ep=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
P0=dat;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
ep=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
ep=0;
}
-----------------
//x为列,y为行
-----------------
voidLCD_pos(unsignedcharx,unsigned char y )//设置显示位置
{
if(y==0) x |=0x80;
else x |=0xc0;
液晶屏_命令(x;
}
voidLCD_init(/LCD初始化
{
LCD_command(0x38; //设定功能: DL=1、N=1、f=0(8位数据、5*8点、两行显示) )。
dlay(1;
LCD_command(0x0c; //显示打开/关闭控制: D=1、C=0、B=0(打开显示、光标隐藏) )。
dlay(1;
LCD_command(0x06; //设置输入模式: I/D=1,s=0(交流地址递增1,不移位) )。
dlay(1;
LCD_command(0x01; //清除显示
dlay(1;
//LCD_command(0x0e; //显示打开/关闭控制: D=1、C=1、B=0(打开显示、光标显示) ) )。
}
语音主(语音) )。
{
无符号char I;
lcd_init (;
LCD _ pos (5,0;
i=0;
wile(dis1[I]!=' ' )
{
液晶屏_ write (dis1[ I ]; I;
}
LCD _ pos (3,1;
i=0;
wile(dis2[I]!=' ' )
{
LCD_write(dis2[I]; I;
}
wile(1;
}
责任编辑: