lcd.c
来自「基于MSP430的长度测量 包括16*2液晶程序」· C语言 代码 · 共 64 行
C
64 行
#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 + =
减小字号Ctrl + -
显示快捷键?