📄 1602.c
字号:
#include <reg51.h>
#include "1602.h"
void Delay( void )
{
unsigned int i=5552;
while(i--);
}
//读状态
unsigned char Read( void )
{
LCD_Data=0xff;
RS=0;
RW=1;
E=0;
E=0;
E=1;
while(LCD_Data&Busy);
return(LCD_Data);
}
//写指令
void Write_cmd(unsigned char x,unsigned char B)
{
if(B)
Read();
LCD_Data=x;
RS=0;
RW=0;
E=0;
E=0;
E=1;
}
//写数据
void Write_dat( unsigned char x)
{
Read();
LCD_Data=x;
RS=1;
RW=0;
E=0;
E=0;
E=1;
}
//读数据
unsigned char Read_dat( void )
{
RS=1;
RW=1;
E=0;
E=0;
E=1;
return( LCD_Data );
}
void init( void )
{
LCD_Data=0x00;
Write_cmd( 0x38,0 );
Delay();
Write_cmd( 0x38,0 );
Delay();
Write_cmd( 0x38,0 );
Delay();
Write_cmd( 0x38,1 );
Write_cmd( 0x08,1 );
Write_cmd( 0x01,1 );
Write_cmd( 0x06,1 );
Write_cmd( 0x0C,1 );
}
//显示字符
void show_zifu( unsigned char X,unsigned char Y,unsigned char D)
{
Y&=0x01;
X&=0x0f;
if(Y)
X|=0x40;
X|=0x80;
Write_cmd(X,0);
Write_dat(D);
}
void show_list( unsigned char X,unsigned char Y,unsigned char *s)
{
unsigned char length;
length=0;
Y&=0x01;
X&=0x0f;
while(s[length]!=0)
{
show_zifu(X,Y,s[length]);
length++;
X++;
if(X>16)
Y=0x01;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -