LCD1602的11条指令详解
- FAQ:LCD1602液晶屏的第二行不显示
- 初始化的时候,写38写两次并且不判忙
- /****************************************************************
- LCD1602 初始化函数 LCD1602_INIT();
- 无形参和返回值
- ****************************************************************/
- void Init_LCD1602(void)
- {
- LCD_EN = 0;
- LCD_BG = 0; // 背光灯 开;
- LCD_RW = 0; // 配置LCD1602为写入模式
- LCD1602_Write(0x38, 0); // 显示模式设定: 配置16*2显示,5*7点阵,8位数据接口
- LCD1602_Write(0x0C, 0); // 设置开显示,不显示光标 开关显示、光标有无设置、光标闪烁设置
- LCD1602_Write(0x06, 0); // 写字符后地址自动加1 写一个字符后指针加一
- LCD1602_Write(0x01, 0); // 显示清0,数据指针清0
- LCD1602_Write(0x38, 0); // 显示模式设定: 配置16*2显示,5*7点阵,8位数据接口
- }
- 在LCD 1602 的字符显示中,如需进行数字转换 需 + 48;
- 相当是 10进制数 + 48后,转换成 对应的 ‘0’ 字符 ASCII 码,方可显示在 LCD 屏上;
- /*********************************************************
- 函数:Lcd1602_Print_Num(uchar num)
- 输入:有;数值;
- 输出:无;
- 说明:液晶输出数字
- u8 -> 256
- u16 -> 65535
- *********************************************************/
- void LCD1602_Write_Num(u16 num)
- {
- if(num >= 1000) // 4位
- {
- LCD1602_Write(num/1000 + 48, 1); // 千位
- LCD1602_Write(num / 100 % 10 + 48, 1); // 百位
- LCD1602_Write(num / 10 % 10 + 48, 1); // 十位
- LCD1602_Write(num % 10 + 48, 1); // 个位
- }
- else if(num >= 100) // 3位数;
- {
- LCD1602_Write(num/100 + 48, 1); // 百位
- LCD1602_Write(num % 100 / 10 + 48, 1); // 十位
- LCD1602_Write(num % 10 + 48, 1); // 个位
- }
- else if( num >= 10)
- {
- LCD1602_Write(0 + 48, 1); // 补 0缺;
- LCD1602_Write(num/10 + 48, 1); // 十位
- LCD1602_Write(num%10 + 48, 1); // 个位
- }
- else if( num >= 0)
- {
- LCD1602_Write(0 + 48, 1); // 补 0缺;
- LCD1602_Write(0 + 48, 1); // 补 0缺;
- LCD1602_Write(num%10 + 48, 1); // 个位
- }
- }
复制代码
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|