📄 lcd.h
字号:
#include <INTRINS.H>
sbit LCD_RW=P2^6;
sbit LCD_RS=P2^5;
sbit LCD_E=P2^7;
#define LCD_DATA P0
void delayus(unsigned int num) //us级延时函数
{while( num-- );}
bit LCD_Busy(void) //LCD忙碌状态检测
{
bit result;
LCD_RS = 0;
LCD_RW = 1;
LCD_E =1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (bit)(P0 & 0x80);
LCD_E =0;
return result;
}
void LCD_WriteCommand(unsigned char cmd) //写指令数据到LCD
{
while(LCD_Busy());
LCD_RS = 0;
LCD_RW = 0;
LCD_E =0;
_nop_();_nop_();
LCD_DATA = cmd;
_nop_();_nop_();_nop_();_nop_();
LCD_E =1;
_nop_();_nop_();_nop_();_nop_();
LCD_E =0;
}
void LCD_WriteDate(unsigned char dat)//写字符显示数据到LCD
{
while(LCD_Busy());
LCD_RS = 1;
LCD_RW = 0;
LCD_E =0;
LCD_DATA = dat;
_nop_();_nop_();_nop_(); _nop_();
LCD_E =1;
_nop_();_nop_();_nop_();_nop_();
LCD_E =0;
}
void LCD_Init(void)
{
LCD_WriteCommand(0x38);//5×7字型
delayus(5);
LCD_WriteCommand(0x0c);//显示开,不显示光标,光标不闪
delayus(5);
LCD_WriteCommand(0x06);//输入模式,地址增量,显示不移动
delayus(5);
}
void LCD_DisplayOneChar(unsigned char X,unsigned char Y,unsigned char Z)
{
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
if(Y == 0)
{LCD_WriteCommand(X|0X80);
LCD_WriteDate(Z);
}
if(Y == 1)
{LCD_WriteCommand((X|0x40)|0X80);
LCD_WriteDate(Z);
}
}
void LCD_DisplayOneString(unsigned char X,unsigned char Y,unsigned char a[])
{
unsigned char m;
Y &= 0x1;
X &= 0xF;
m = 0 ;
while(a[m] != '\0')
{LCD_DisplayOneChar(X,Y,a[m]);m++ ;X++;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -