笔段式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的理解(内含代码讲解)相关推荐

  1. STC8a8K单片机c语言驱动彩屏,用STC单片机驱动笔段式LCD屏

    #include//接口定义 //1602的数据接口为P0 sbit RSPIN = P2^0; sbit RWPIN = P2^1; sbit EPIN =  P2^2; unsigned char ...

  2. 笔段式LCD液晶显示屏工作原理

    简单的来说,笔段式LCD显示屏能显示的基本原理就是在两块平行板之间填充液晶材料,通过电压来改变液晶材料内部分子的排在列状况,以达到遮光和透光的目的来显示深浅不一,错落有致的图象,而且只要在两块平板间再 ...

  3. TM1722驱动笔段式液晶策略的一些理解

    最近在使用一款杭州航龙电子科技有限公司的一款笔段式液晶屏,使用TM1722来驱动液晶,对于液晶的驱动有些个人的理解.网上关于这款芯片的资料好像有些少,故将我理解的TM1722驱动液晶屏的策略与大家分享 ...

  4. 段码LCD研究 | 用HT1621B驱动段码LCD屏

    [本文发布地址https://blog.csdn.net/Stack_/article/details/117532877,未经许可不得转载,转载须注明出处] 一.探索 这是一个从乐心血压计上拆下来的 ...

  5. Generative Adversarial Nets论文理解和代码讲解

    Generative Adversarial Nets 论文 Abstract 提出了新的对抗生成网络,a generative model G that captures the data dist ...

  6. 【从0到1搭建LoRa物联网】7、国产LoRa终端ASR6505驱动段式LCD例程

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  7. 华大单片机HC32L136笔段式段码LCD显示

    目录 华大单片机LCD简介 LCD 主要特性 LCD 框图 LCD 驱动波形 LCD Bias 产生电路 内部电阻模式 外部电容模式 外部电阻模式 LCD三种驱动方式对比 LCD显示模式 LCD 显示 ...

  8. 单片机IO直接驱动段式LCD详细说明+代码

    常规原理说明可看其他博主,下面说一下调试过程遇到的问题点. 1.注意段式LCD的供电电压,选与供电电压接近的电压供电.驱动电压注意是是1/2偏压还是1/3偏压. 2.注意LCD的观察方向,12点方向还 ...

  9. 段码液晶屏笔段电压范围_一种笔段式液晶屏测试装置的制作方法

    本实用新型属于液晶屏测试技术领域,具体涉及一种笔段式液晶屏测试装置. 背景技术: 笔段式液晶屏,用以区别于点阵型液晶屏,是液晶产品中的一种,其又称为段码液晶.图案型液晶屏或单色液晶屏等.笔段式液晶屏叫 ...

最新文章

  1. Oracle Schema Objects(Schema Object Storage And Type)
  2. 设计模式:单例模式之懒汉式
  3. MongoDB自动删除过期数据--TTL索引
  4. 使用 SSH 免密码登录连接远程服务器
  5. Log4Net简单使用
  6. 【报告分享】2020年中国数据驱动型企业成长路径研究报告.pdf(附下载链接)...
  7. 在mysql中加载并执行sql文件
  8. 三维点云学习(2)五种算法比较
  9. python办公实例100例-Python 100例(上)
  10. 使用 openssl 生成证书
  11. java线程wait和notify详解
  12. html页面透明背景,css 背景透明 元素(标签)背景透明的css设计
  13. Vue基础知识总结 4:vue组件化开发
  14. 40163 php,【PHP】微信支付JsApi 40163错误
  15. 江苏计算机二级报名一年几次,江苏计算机二级每年考几次
  16. Excel怎么快速计算人数
  17. 华为手机怎么使用分屏_这是一份华为手机必备小技巧使用说明
  18. YOLO—V1细节分析
  19. 关于浏览器访问servlet404异常
  20. java date before,Java中的LocalDate isBefore()方法

热门文章

  1. 【Linux云计算架构:第四阶段-Linux虚拟化-私有云-docker】第12章—— 搭建 Kubernetes 的 web 管理界面和基于 k8s 搭建+redis 集群案例
  2. Python 将数字写入到一个文本文件
  3. Manjaro下Steam无法启动
  4. iOS学习资源汇总(开源项目、第三方库、技术博客等等)
  5. 让男人魅力四射的100个经典原则
  6. 【day26】w10联想输入法不显示候选字怎么办
  7. Java 注解和反射
  8. 行为树(Behavior Tree)实践(2)– 进一步的讨论
  9. 魅族手机root办法
  10. excel将筛选项的行全删掉