单片机处理后的数据整型数转化成字符型数组LCD1602初始化和清屏即字符串的方式进行输出显示。流程图如图4.7所示。
徐州工程学院毕业设计(论文)
图4.6 LCD1602与51单片机的具体连接图
图4.7 LCD1602显示模块流程图
本设计的LCD1602液晶显示模块主要是利用比较经典的LCD显示方法来进行设计的,
XVI
是以字符串方式输出设定光标显示位置显示完成输出结束否
徐州工程学院毕业设计(论文)
首先,将MCS-51单片机处理所得的最终数据送入uchar * int2str(uint d)函数,此函数的功能是将接收到的整型数d的每个位的数字取出,放到一个字符型的数组str[]中,以便LCD1602输出显示,具体程序如下:
uchar * int2str(uint d) //整型数转化成字符型数组函数 { }
其次,对LCD1602进行初始化和清屏,使用8位数据,显示两行,使用5*7的字型;显示器打开,关闭光标闪烁;输出方式为字符不动,光标自动右移一格。具体程序如下: void init_LCD(void) // 初始化lcd
{ LCD_w_com(0x38); // lcd为两行显示8位数据线有效 LCD_w_com(0x0e); // 显示字符 关闭光标
LCD_w_com(0x06); // 输入方式设置 光标向右移动一位 ac-1 }
void clear_LCD()
//清屏
{ LCD_w_com(0x01); //清屏指令
LCD_w_com(0x02); // 光标归位 即光标置于左上位置 }
最后,是向LCD1602液晶显示器写命令函数void LCD_w_com(unsigned com)和写数据函数void LCD_w_dat(uchar dat)以及字符串输出函数void display_LCD_string(uchar *p)、光标定位函数void gotoxy(unsigned x,unsigned y)。写命令函数的功能是向LCD1602中写入相应的命令指令,比如清屏命令LCD_w_com(0x01),实现LCD1602清屏功能。写数据函数和字符串输出函数的功能是向LCD1602写入要输出的数据,字符串输出函数中定义的指针P指向前面的字符型数组str[],一位一位的输出。光标定位函数的功能是告诉LCD1602要输出的数据的显示位置。具体程序如下: void LCD_w_com(unsigned com) { RW=0; RS=0; E=1; P0=com; delay1ms(10); E=0; RW=1; }
void LCD_w_dat(uchar dat) // 写数据 函数, 写要显示的数据 { RW=0; RS=1; E=1; P0=dat; delay1ms(10); E=0; RW=1; }
XVII
str[0]='0'+d/100; str[1]='0'+d0/10; str[2]='0'+d; return str;
//写命令函数,com为 要写的指令
徐州工程学院毕业设计(论文)
void display_LCD_string(uchar *p)//字符串输出函数 { while(*p)
{ LCD_w_dat(*p); p++; delay1ms(10); }}
void gotoxy(unsigned x,unsigned y) //定位 ,x为行,y为列 { if(x==1) LCD_w_com(0x80+y); else LCD_w_com(0xC0+y); }
XVIII