这几天在写ht1621b显示LCD的程序,主芯片是Stm32f10的芯片。对于stm32和ht1621b的运用和操作本人是新手,属于赶鸭子上架,通过查看datasheet等资料和网上查看前人写的程序终于完成了LCD的显示,在此做个记录以备不时之需,并希望像能帮助想我一样的新人少走点弯路和共同学习。

  1. 接口脚和显示内存。
      ht1621b的接口脚主要有4个,分别是CS脚,DATA脚,WR脚,RD脚。我们只对LCD进行显示的话可以不用考虑RD脚。CS脚用于初始化串行接口电路和结束主控制器与HT1621之间的通讯。CS脚设置为1 时主控制器和HT1621之间的数据和命令无效并初始化。在产生模式命令或模式转换之前必须用一个高电平脉冲初始化HT1621的串行接口。DATA脚是串行数据输入/输出管脚,读/写数据和写命令通过管脚DATA进行。RD脚是读时钟输入管脚。在RD信号的下降沿时数据输出管脚DATA上。在RD信号上升沿和下一个下降沿之间,主控制器应读取相应的数据。WR脚是写时钟输入管脚,在WR信号上升沿时,管脚DATA上的数据、地址和命令被写入HT1621。可选的管脚IRQ可用作主控制器和HT1621之间的接口,IRQ可用软件设置作为定时器输出或WDT溢出标志输出。主控制器与HT1621的IRQ脚相连接后,可以实现时基或WDT 功能。
      ht1621b的显示内存是以32X4位的格式储存所显示的数据,RAM的数据直接映象到LCD 驱动器,可以使用读写命令访问。
    当初本人也是不理解“RAM的数据直接映象到LCD 驱动器,可以使用读写命令访问”,这句话的含义,网上也看到很多人对这句话不解。我们可以看一下ht1621b的RAM映象图和LCD映象图不难发现他们的关系。
    STM32驱动ht1621b显示LCD-LMLPHP从映象图中可以看出,每个ht1621b的地址都都对应LCD,而对ht1621b的地址4位操作都对应LCD的一个“灯管”。地址的每一位0代表“”
  2. 时序图。
    只有按照ht1621b的时序读写数据才能完成一个数据的读写。下面我们来看看读模式的时序图,
    STM32驱动ht1621b显示LCD-LMLPHP可以看出在读写模式之前先拉低管脚cs,再把管脚WR拉低等待数据的写入,管脚DATA写入101表示为写模式,每次写完一位后拉高管脚WR完成写入,再拉低管脚WR再次等待写入。写入模式要写6位表示地址的数据,程序中实现就是拉高拉低6次,后面的表示数据。当CS的上升沿到达时表示一数据写入完成。更多的时序请看ht1621b的datasheet。
    以下是驱动代码,仅供参考,写的不好希望大神指正。
    下载
    转载请注明出处:http://www.cnblogs.com/fyluyg/p/5880584.html
05-08 08:45