📄 lcd1602.c
字号:
#include <INIF.h>
uchar qq;
bit flag=0;
void delay3(uchar dat)
{
while(dat--);
}
void busy(void)
{
PORT_A=0xff;
rs=0;
rw=1;
en=1;
PORT=0x00; //把8155A口由输出状态转为输入状态
while(PORT_A & 0x80);
PORT=0x03; //把8155A口由输入状态转为输出状态
}
void wri(uchar dat)//写指令
{
busy();
rs=0;
rw=0;
en=1;
PORT_A=dat;
en=0;
}
void wrd(uchar dat)//写数据
{
busy();
rs=1;
rw=0;
en=1;
PORT_A=dat;
en=0;
}
void lcd1602init( )
{
wri(0x01);/*清除显示*/
wri(0x38);/*设置8位格式,2行,5*7*/
wri(0x06);/*设定输入方式,增量不移位*/
wri(0x0c);/*整体显示,关光标,不闪烁*/
}
void lcd_clear()
{
wri( 0x01 );
}
//=========================
//显示
//函数:显示数据首地址,显示行数
//=========================
void lcd_string( uchar *p, uchar flag )
{
if( flag == 1 )
{
qq = 0x80;
while( *p != '\0' )
{
wri( qq ); qq++;
wrd( *p ); p++;
delay3( 100 );
}
}
if( flag == 2 )
{
qq = 0xc0;
while( *p != '\0' )
{
wri( qq ); qq++;
wrd( *p ); p++;
delay3( 100 );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -