📄 lcd.c
字号:
#include"LCD.h"
void soft_nop(){;}
char lcd_checkbusy()/*检查LCD忙*/
{ char lcdstate=0x00;
RS_LOW(); /*dc=1为数据,=0为命令.*/
RW_HIGH(); /*rw=1为读,=0为写.*/
CS_HIGH(); /*cs=1选通.*/
soft_nop();
P2DIR&=0x00;
lcdstate|=P2IN;
CS_LOW();
return((lcdstate&0x80));
}
void lcd_wrcmd(unsigned char lcdcmd) /*写LCD命令*/
{ //lcdusing1=1;
while(lcd_checkbusy()==0x80);
P2DIR|=0xff;
P2OUT=lcdcmd;
RS_LOW(); /*dc=1为数据,=0为命令.*/
RW_LOW(); /*rw=1为读,=0为写.*/
CS_HIGH(); /*cs=1选通.*/
soft_nop();
CS_LOW();
P2OUT=0xff;
//lcdusing1=0;
}
void lcd_init()/*初始化*/
{ lcd_wrcmd(0x38); /*设置8位格式,2行,5*7*/
lcd_wrcmd(0x0c); /*整体显示,关光标,不闪烁*/
lcd_wrcmd(0x06); /*设定输入方式,增量,不移位*/
lcd_wrcmd(0x01); /*清除显示*/
//lcdcounter=0;
}
void lcd_moveto(char position)
{ char cmd=0x80;
//lcdcounter=position;
if (position > 19)position += 0x2c;
cmd=cmd|position;
lcd_wrcmd(cmd);
}
void lcd_wrdata(char lcddata)
{
while(lcd_checkbusy());
P2DIR|=0xff;
P2OUT=lcddata;
RS_HIGH();
RW_LOW();
CS_HIGH();
soft_nop();
CS_LOW();
P2OUT=0xff;
}
void lcd_string(char *strpoint)
{ char i=0;
while(strpoint[i]!=0){
lcd_wrdata(strpoint[i]);
i++;
}
}
void lcd_clr()
{
lcd_wrcmd(0x01); /*清除显示*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -