📄 lcd1602.h
字号:
#ifndef LCD_CHAR_1602_2008_5_9
#define LCD_CHAR_1602_2008_5_9
#include <intrins.h>
sbit LcdRs = P2^0;
sbit LcdRw = P2^1;
sbit LcdEn = P2^2;
sfr DBPort = 0x80;
#define LCD_AC_UP 0x02
#define LCD_AC_DOWN 0x00
#define LCD_MOVE 0x01
#define LCD_NO_MOVE 0x00
#define LCD_SHOW 0x04
#define LCD_HIDE 0x00
#define LCD_CURSOR 0x02
#define LCD_NO_CURSOR 0x00
#define LCD_FLASH 0x01
#define LCD_NO_FLASH 0x00
#define LCD_COMMAND 0
#define LCD_DATA 1
#define LCD_CLEAR_SCREEN 0x01
#define LCD_HOMING 0x02
unsigned char LCD_Wait(void)
{
LcdRs=0;
LcdRw=1; _nop_();
LcdEn=1; _nop_();
LcdEn=0;
return DBPort;
}
void LCD_Write(bit style, unsigned char input)
{
LcdEn=0;
LcdRs=style;
LcdRw=0; _nop_();
DBPort=input; _nop_();
LcdEn=1; _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_Initial()
{
LcdEn=0;
LCD_Write(LCD_COMMAND,0x38);
LCD_Write(LCD_COMMAND,0x38);
LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);
}
void Gotoxy(unsigned char x, unsigned char y)
{
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++;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -