2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > LCD1602液晶显示屏

LCD1602液晶显示屏

时间:2019-09-01 16:39:11

相关推荐

LCD1602液晶显示屏

介绍:LCD1602液晶显示屏是一种字符型液晶显示模块,可以显示ASCll码的标准字符和其他一些内置的特殊字符,还可以内置8个自定义字符。

显示容量:16✖2个字符,每个字符为5*7点阵或5*10点阵

一、引脚介绍:

VO:对比度调节电压

RS:数据 / 指令选择,1为数组,0为指令

RW:读 / 写选择,1为读,0为写

E:数据使能,下降沿执行命令

D0~D7:数据的输入 / 输出

A:背光灯电源正极

K:背光灯电源负极

二、存储器结构:D2RAM(数据显示区)和G2RAM、G2ROM(内置字模库)

D2RAM(数据显示区)

G2RAM、G2ROM(内置字模库)

三、LCD1602显示指令集

四、时序结构:

写指令/数据

读指令/数据

五、模块函数化集成使用:

代码:

void LCD_WriteCommand(unsigned char Command) //写指令{LCD_RS=0;LCD_RW=0;// 指令 写LCD_DataPort=Command; //并口:可以直接发送8位LCD_E=1;LCD_Delay1ms();LCD_E=0;LCD_Delay1ms();}

代码:

void LCD_WriteData(unsigned char Data) //写数据{LCD_RS=1;LCD_RW=0;//数据 写LCD_DataPort=Data; //并口:直接发送8位LCD_E=1;LCD_Delay1ms();LCD_E=0;LCD_Delay1ms();}

代码:

/*** @brief LCD1602初始化* @param 无* @retval 无**/void LCD_Init(){LCD_WriteCommand(0x01); //清屏LCD_WriteCommand(0x0C); //显示开,光标关,闪烁开LCD_WriteCommand(0x06); //数据读,写操作后,AC自动+1,画面不动LCD_WriteCommand(0x38); //八位数据接口,两行显示,5✖7点阵}

代码:

/*** @brief 确定显示的首位置* @paramLine,Column* @retval 无**/void LCD_Cursor(unsigned char Line,Column) //位置函数{if(Line==1) //根据数据显示区的地址可以得出 行和列 的关系{LCD_WriteCommand(0x80|(Column-1));}else{LCD_WriteCommand(0x80|(Column-1)+0x40);}}

代码:

/*** @brief 显示一个字符* @paramLine,Column,Char* @retval 无**/void LCD_ShowChar(unsigned char Line,Column,char Char){LCD_Cursor(Line,Column); //确定位置LCD_WriteData(Char);//发送字符}

代码:

/*** @brief 显示一个字符串* @param Line,Column,*String* @retval 无**/void LCD_ShowString(unsigned char Line,Column,char *String){char Strlen=strlen(String),i; //确定字符串长度LCD_Cursor(Line,Column);//确定首位置for(i=0;i<Strlen;i++){LCD_WriteData(String[i]);}}

代码:

/*** @brief 显示一个数字* @paramLine,Column,Num,lenth* @retval 无**/void LCD_ShwoNum(unsigned char Line,Column,unsigned int Num,lenth){char i;LCD_Cursor(Line,Column);for(i=lenth;i>0;i--){LCD_WriteData(Num/(int)pow(10,i-1)%10+'0'); }/*345/100%10 ->3345/10%10 ->4345/1%10->5*/}

代码:

/*** @brief 显示一个有符号的数字* @paramLine,Column,Num,lenth * @retval 无**/void LCD_ShowSignedNum(unsigned char Line,Column,int Num,unsigned int lenth){char i;if(Num>=0){LCD_ShowChar(Line,Column,'+');}else{LCD_ShowChar(Line,Column,'-');Num=-Num;}for(i=lenth;i>0;i--){LCD_WriteData(Num/(int)pow(10,i-1)%10+'0');}/*345/100%10 ->3345/10%10 ->4345/1%10->5*/}

代码:

/*** @brief 显示一个十六进制的数* @paramLine,Column,Num,lenth * @retval 无**/void LCD_ShowHexnum(unsigned char Line,Column,unsigned int Num,lenth){unsigned char i;unsigned char SingleNum;LCD_Cursor(Line,Column);for(i=lenth;i>0;i--){SingleNum=((Num/(int)pow(16,i-1)%16));/*345/16^2%16 ->1345/16%16 ->5345/1%16->9*/ if(SingleNum<10) //根据ASCll码进行补码{LCD_WriteData('0'+SingleNum);}else{LCD_WriteData('A'+SingleNum-10);}}}

代码:

/*** @brief 显示一个二进制数字* @param Line,Column,Num,lenth * @retval 无**/void LCD_BinNum(unsigned char Line,Column,unsigned int Num,lenth){unsigned char i;LCD_Cursor(Line,Column);for(i=lenth;i>0;i--){LCD_WriteData((Num/(int)pow(2,i-1)%2)+'0');/*345/2^2%2 ->101345/2%2->011345/1%2->001*/ }}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。