当前位置:首页 » 《随便一记》 » 正文

LCD1602液晶显示屏

19 人参与  2023年05月05日 12:04  分类 : 《随便一记》  评论

点击全文阅读


介绍: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         确定显示的首位置   *   @param          Line,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           显示一个字符   *   @param          Line,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       显示一个数字   *   @param     Line,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   ->      3                345/10%10    ->      4                345/1%10     ->      5                                                                  */}

代码:

/**   *   @brief    显示一个有符号的数字   *   @param      Line,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   ->      3                345/10%10    ->      4                345/1%10     ->      5                                                                  */}

代码:

/**   *   @brief    显示一个十六进制的数   *   @param     Line,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   ->     1                345/16%16    ->      5                345/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   ->      101                345/2%2     ->      011                345/1%2     ->      001                                                                  */ }}


点击全文阅读


本文链接:http://zhangshiyu.com/post/60869.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 给你的第三封信是遗言沈佳芮顾温言结局+番外全书+后续+结局(顾温言沈佳芮)列表_给你的第三封信是遗言沈佳芮顾温言结局+番外(顾温言沈佳芮)给你的第三封信是遗言沈佳芮顾温言结局+番外全书+后续+结局在线
  • 佛心不渡红尘劫结局+番外(云狸越渊)全书云狸越渊结局_云狸越渊+结局列表_笔趣阁(佛心不渡红尘劫结局+番外)云狸越渊彩蛋(佛心不渡红尘劫结局+番外)附加+结局(云狸越渊)全文速览
  • (余烬下的思念全书+后续+结局)分享(沈夏里顾禾州)_(余烬下的思念全书+后续+结局)列表_笔趣阁(沈夏里顾禾州)
  • 全文上岸后被闺蜜背刺,重生我杀疯了(乔知微)列表_全文上岸后被闺蜜背刺,重生我杀疯了
  • 「九转金身炸裂异界!反派竟是我分身?」小说节选免费试读_「方叶」限时免费完整章节
  • 小透明逆袭误撩后被大佬宠上天/大佬出门记得装不熟(许惟昭方肃礼)_小透明逆袭误撩后被大佬宠上天/大佬出门记得装不熟许惟昭方肃礼
  • 顾砚廷,慕晚夏_顾砚廷,慕晚夏列表
  • 阴阳车番外特辑限免解锁_[王成]小说后续在线免费阅读
  • 且看离人绾青丝全书+后续(温绾萧奕北)免费_且看离人绾青丝全书+后续精彩(温绾萧奕北)
  • (番外)+(全书)阮雾梨闻砚辞(许是曾经有相思全书+后续+结局)_(阮雾梨闻砚辞)列表_笔趣阁(许是曾经有相思全书+后续+结局)
  • 日暮青山绿渐隐实力派全书许星森纪冰雪在线
  • 陆依霜轩辕翊(陆依霜轩辕翊+结局+番外)_(陆依霜轩辕翊)列表_笔趣阁(陆依霜轩辕翊+结局+番外)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1