HT1621B驱动笔段式LCD的理解(内含代码讲解)
笔段式LCD因功耗极低,所以经常用低功耗产品上,是低功耗显示中必用的显示设备。本文讲解的思路是从代码入手,去讲解HT1621B如何驱动笔段式LCD的;
1》。写数据到RAM命令格式为:101+6位RAM地址+4位数据,其中RAM地址为SEG序号。(4位数据为com1~com4类似于数码管的段选,SEG序列号为位选,其中SEG序列号是0表示第一个数码管,1表示第二个数码管,以此类推)
>由上图可知,可以从图一推出HT1621B和笔段式LCD的连接方式,LCD的第5个管脚连接的是SEG0,SEG0代表的是第一个数码管的前4段数据(A F E P段),SEG1代表的是第一个数码管的后4段数据(B G C D段);
void HT1621_Display_DATA(unsigned int Temp) //显示数据
{unsigned char Temp_Data;Temp_Data = Temp / 1000;Write1DataHT1621(HT1621_segtab[0], LCD_RAM_Tab[Temp_Data]>>4); //这时发送的 是地址为0,1,2,3,4,5,6,7也就是六位地址位;后面是4位COM数据,即COM1,COM2,COM3,COM4Write1DataHT1621(HT1621_segtab[1], LCD_RAM_Tab[Temp_Data]>>0); //发送两组数据表示一个数码管。Temp_Data = Temp % 1000 / 100;Write1DataHT1621(HT1621_segtab[2], (LCD_RAM_Tab[Temp_Data]>>4)|0x08);Write1DataHT1621(HT1621_segtab[3], LCD_RAM_Tab[Temp_Data]>>0);Temp_Data = Temp % 1000 % 100 / 10;Write1DataHT1621(HT1621_segtab[4], LCD_RAM_Tab[Temp_Data]>>4);Write1DataHT1621(HT1621_segtab[5], LCD_RAM_Tab[Temp_Data]>>0);Temp_Data = Temp % 1000 % 100 % 10;Write1DataHT1621(HT1621_segtab[6], LCD_RAM_Tab[Temp_Data]>>4);Write1DataHT1621(HT1621_segtab[7], LCD_RAM_Tab[Temp_Data]>>0);
}
void Write1DataHT1621(unsigned char Addr,unsigned char Dat)
{unsigned char i; unsigned char Shift;HT1621_CS_L(); //CS 片选开HT1621_Delay_us(HT1621_CLK);HT1621_DATA_H(); //101WriteClockHT1621();HT1621_DATA_L();WriteClockHT1621();HT1621_DATA_H();WriteClockHT1621();Shift = 0x20; //屏蔽高3位 只用5位for( i = 0; i < HT1621_addrbit; i++) {if(Addr & Shift)HT1621_DATA_H();elseHT1621_DATA_L();WriteClockHT1621();Shift = Shift >> 1;}Shift = 0x01;for (i = 0; i < 4; i++){if( Dat & Shift) HT1621_DATA_H();elseHT1621_DATA_L();WriteClockHT1621();Shift = Shift << 1;} HT1621_CS_H(); //CS 片选关HT1621_Delay_us(HT1621_CLK);HT1621_DATA_H();
}
>由以上两张图可知,6位RAM地址由高位到低位输入到H1621B内,4位数据先COM1~COM4
2》比较重要是代码如何适用于各种LCD显示屏,以下是正常数码管的段转换成LCD的段码次序 ,正常数码管段的次序:P G F E D C B A 转化后为 P E F A D C G B正好和需要的LCD段码顺序(A F E P B G C D)第一张图的表格是对应 ;
先低位后高位,每四位一组正好和表格一致;
void HT1621_num_init(void)//是把正常的数码管的段的次序转换成LCD的段码次序,需要根据液晶图纸顺序做修改;
{unsigned char num,LCD_data;for(num=0; num<sizeof(LED_Tab); num++){LCD_data = 0;LCD_data = LCD_data | ((unsigned char)((LED_Tab[num] & LCD_P)>>7) << 7);LCD_data = LCD_data | ((unsigned char)((LED_Tab[num] & LCD_E)>>4) << 6);LCD_data = LCD_data | ((unsigned char)((LED_Tab[num] & LCD_F)>>5) << 5);LCD_data = LCD_data | ((unsigned char)((LED_Tab[num] & LCD_A)) << 4);LCD_data = LCD_data | ((unsigned char)((LED_Tab[num] & LCD_D)>>3) << 3);LCD_data = LCD_data | ((unsigned char)((LED_Tab[num] & LCD_C)>>2) << 2);LCD_data = LCD_data | ((unsigned char)((LED_Tab[num] & LCD_G)>>6) << 1);LCD_data = LCD_data | ((unsigned char)((LED_Tab[num] & LCD_B)>>1) << 0);LCD_RAM_Tab[num] = LCD_data;}
}
完整的程序可在我的资源上传中下载到;
HT1621B驱动笔段式LCD的理解(内含代码讲解)相关推荐
- STC8a8K单片机c语言驱动彩屏,用STC单片机驱动笔段式LCD屏
#include//接口定义 //1602的数据接口为P0 sbit RSPIN = P2^0; sbit RWPIN = P2^1; sbit EPIN = P2^2; unsigned char ...
- 笔段式LCD液晶显示屏工作原理
简单的来说,笔段式LCD显示屏能显示的基本原理就是在两块平行板之间填充液晶材料,通过电压来改变液晶材料内部分子的排在列状况,以达到遮光和透光的目的来显示深浅不一,错落有致的图象,而且只要在两块平板间再 ...
- TM1722驱动笔段式液晶策略的一些理解
最近在使用一款杭州航龙电子科技有限公司的一款笔段式液晶屏,使用TM1722来驱动液晶,对于液晶的驱动有些个人的理解.网上关于这款芯片的资料好像有些少,故将我理解的TM1722驱动液晶屏的策略与大家分享 ...
- 段码LCD研究 | 用HT1621B驱动段码LCD屏
[本文发布地址https://blog.csdn.net/Stack_/article/details/117532877,未经许可不得转载,转载须注明出处] 一.探索 这是一个从乐心血压计上拆下来的 ...
- Generative Adversarial Nets论文理解和代码讲解
Generative Adversarial Nets 论文 Abstract 提出了新的对抗生成网络,a generative model G that captures the data dist ...
- 【从0到1搭建LoRa物联网】7、国产LoRa终端ASR6505驱动段式LCD例程
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 华大单片机HC32L136笔段式段码LCD显示
目录 华大单片机LCD简介 LCD 主要特性 LCD 框图 LCD 驱动波形 LCD Bias 产生电路 内部电阻模式 外部电容模式 外部电阻模式 LCD三种驱动方式对比 LCD显示模式 LCD 显示 ...
- 单片机IO直接驱动段式LCD详细说明+代码
常规原理说明可看其他博主,下面说一下调试过程遇到的问题点. 1.注意段式LCD的供电电压,选与供电电压接近的电压供电.驱动电压注意是是1/2偏压还是1/3偏压. 2.注意LCD的观察方向,12点方向还 ...
- 段码液晶屏笔段电压范围_一种笔段式液晶屏测试装置的制作方法
本实用新型属于液晶屏测试技术领域,具体涉及一种笔段式液晶屏测试装置. 背景技术: 笔段式液晶屏,用以区别于点阵型液晶屏,是液晶产品中的一种,其又称为段码液晶.图案型液晶屏或单色液晶屏等.笔段式液晶屏叫 ...
最新文章
- Oracle Schema Objects(Schema Object Storage And Type)
- 设计模式:单例模式之懒汉式
- MongoDB自动删除过期数据--TTL索引
- 使用 SSH 免密码登录连接远程服务器
- Log4Net简单使用
- 【报告分享】2020年中国数据驱动型企业成长路径研究报告.pdf(附下载链接)...
- 在mysql中加载并执行sql文件
- 三维点云学习(2)五种算法比较
- python办公实例100例-Python 100例(上)
- 使用 openssl 生成证书
- java线程wait和notify详解
- html页面透明背景,css 背景透明 元素(标签)背景透明的css设计
- Vue基础知识总结 4:vue组件化开发
- 40163 php,【PHP】微信支付JsApi 40163错误
- 江苏计算机二级报名一年几次,江苏计算机二级每年考几次
- Excel怎么快速计算人数
- 华为手机怎么使用分屏_这是一份华为手机必备小技巧使用说明
- YOLO—V1细节分析
- 关于浏览器访问servlet404异常
- java date before,Java中的LocalDate isBefore()方法