HT1621驱动段码液晶屏.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HT1621驱动段码液晶屏

第十七节:液晶屏第三大类定律—任意位置显示一个点(HT1621驱动段码液晶屏) (1)? ?? ???开场白: 段码液晶屏往往应用在出货量比较大的家用消费类电子,比如空调遥控器,小时候带的电子手表等,都是段码屏。段码屏是非标屏,都是客户定做的,第一次开模费大概一两千元,厂家一般都会有起订量的要求,除此之外,它的单位成本相对要比点阵屏要便宜,而且我个人认为显示的效果要比点阵屏漂亮。 段码屏的驱动程序跟数码管的静态驱动程序一样,只要我们弄懂了怎样显示一个基本单位,根据此基本单位编写一个字库表,然后用与()和或(|)这两种位运算符就可以随心所欲编写我们要显示的数字或者形状。有两种常用的驱动方案: 第一种:如果单片机内部集成了seg和com引脚的液晶驱动模块,直接用单片机驱动。 第二种:单片机用3个IO口跟HT1621进行通讯,用 HT1621驱动段码屏。 这节我重点介绍第二种。HT1621有4个COM,分别是com3,com2,com1,com0。有32个SEG,分别是SEG0,SEG1….SEG31。 什么是COM,什么是SEG?用鸿哥的思路来解释,COM就是横向上的X坐标,SEG就是纵向上的Y坐标。X坐标与Y坐标组合成一张表格,每格代表一个显示点。比如HT1621,有4个COM,32个SEG,组成一个32行,每行装4个点的表格,一共有128个点,也就是最多可以显示128个点,用数码管的思路,最多可以显示128个LED灯。因为纵向上有32行,因此Y轴的地址范围是0到31。每一行X轴上的4个点,我们用一个字节来表示。一个字节有8位,高4位分别代表这个4个点,低4位为空。比如第一行(SEG0行)的第1个(COM3)要显示,第2个(COM2)要显示,第3个(COM1)不要显示,第4个(COM0)不要显示,那么用一个字节来表示就是十六进制的0xc0.要把这两个点点亮,只要把X轴的数据设置成0xc0,Y轴的数据设置成0x00,然后放到鸿哥精心研制的seg_display(unsigned char col, unsigned char pag)驱动程序里就可以了. (2)功能需求: ? ?? ?? ?? ? 在COM和SEG组成的4X32表格中,显示第二行的第3和第4两个点。 (3)? ?? ???硬件原理: 用单片机的3个IO口分别跟HT1621的CS,WR,DATA连接。 (4)源码适合的单片机:STC11F04E,晶振为11.0592MHz。 (5)源代码讲解如下: #include REG52.H #include absacc.h #include intrins.h? #include stdio.h #define? ???BIAS? ?? ?? ?0X52? ?//此处千万小心,鸿哥在上个月的一个项目中就是在这里被卡了7天。 ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//必须跟硬件电路的COM匹配。1个或者2个COM:0x42。3个COM:0x4A。4个COM:0x52 #define? ???RC256? ?? ???0X30? ?? ?? ?? ? #define? ???SYSTEN? ?? ? 0X02? ?? ?? ?? ?? #define? ???SYSDIS? ?? ? 0X00? ?? ?? ?? ?? #define? ???LCDON? ?? ???0X06? ?? ?? ?? ? void SendBitToHT1621(unsigned char nbit,unsigned char n);//发送一个字节中的N位到HT1621里,驱动程序的最底层部分? ? void write_com(unsigned char cmdcode);??//写命令到LCD void init_lcd();??//--初始化LCD屏 void seg_display(unsigned char col, unsigned char pag); //显示基本单位点? ?? ?? ?? ?? ?? ? void screen_clear ();??//清空屏幕的内容 //补充说明:吴坚鸿程序风格是这样的,凡是输出IO后缀都是_dr,凡是输入的//IO后缀都//是_sr sbit ht162x_data_dr=P3^1; sbit ht162x_cs_dr=P3^6; sbit ht162x_wr_dr=P3^0; main() ??{ ? ?init_lcd();? ?//初始化液晶屏 ? ?screen_clear ();//清空整屏显示内容 ? ?seg_display(0x30,1);? ?//在COM和SEG组成的4X32表格中,显示第二行的第3和第4两

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档