lcd1602.c

来自「8563实时时钟」· C语言 代码 · 共 75 行

C
75
字号
#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 + =
减小字号Ctrl + -
显示快捷键?