📄 lcddrive.c
字号:
//Port Definitions**********************************************************
sbit LcdRs = P1^0;
sbit LcdRw = P1^1;
sbit LcdEn = P1^2;
sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
sbit LcdLight = DBPort^4;
/***************************************************************************/
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
//内部等待函数**************************************************************************
unsigned char LCD_Wait(void)
{
LcdRs=0;
LcdRw=1; _nop_();
LcdEn=1; _nop_();
while(DBPort&0x80); //或do{ACC=DBPort;} while(ACC_7==1); 忙信号??为1忙
LcdEn=0;
Delay1ms(1);
return ACC;
}
void LCD_Write(unsigned char style, unsigned char input)
{
LcdRs=style;
LcdRw=0; _nop_();
LcdEn=1; _nop_();
DBPort=input; _nop_();
LcdEn=0; _nop_();
LCD_Wait();
}
void LCD_SetDisplay(unsigned char DisplayMode)
{
LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
}
void LCD_SetInput(unsigned char InputMode)
{
LCD_Write(LCD_COMMAND, 0x04|InputMode);
}
void LCD_Move(unsigned char object, unsigned char direction)
{
if(object==LCD_CURSOR)
LCD_Write(LCD_COMMAND,0x10|direction);
if(object==LCD_SCREEN)
LCD_Write(LCD_COMMAND,0x18|direction);
}
//初始化LCD************************************************************
void LCD_Initial()
{
LcdEn=0;
Delay1ms(80);
LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵
Delay1ms(10);
LCD_Write(LCD_COMMAND,0x38);
Delay1ms(10);
LCD_SetDisplay(LCD_SHOW|LCD_CURSOR); //开启显示, 无光标
//LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动
}
//************************************************************************
void GotoXY(unsigned char x, unsigned char y)//y是行 ,x是列
{
if(y==0)
LCD_Write(LCD_COMMAND,0x80|x);
if(y==1)
LCD_Write(LCD_COMMAND,0x80|(x-0x40));
}
void Print(unsigned char *str)
{
while(*str!='\0')
{
LCD_Write(LCD_DATA,*str);
str++;
}
}
void LCD_LoadChar(unsigned char user[8], unsigned char place)
{
unsigned char i;
LCD_Write(LCD_COMMAND,0x40|(place*8));
for(i=0; i<8; i++)
LCD_Write(LCD_DATA,user[i]);
}
//************************************************************************
/*main()
{
//unsigned char str1[17];
unsigned char str[]=" Six Boys ";
unsigned char strlc[]=" Good Luck! ";
LCD_Initial();
while(1)
{
GotoXY(0, 0);
Print(str);
if(strlen(str)>16)
Print(str+16);
GotoXY(0, 1);
Print(strlc);
if(strlen(strlc)>16)
Print(strlc+16);
//LCD_LoadChar(str, 0);
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -