ADSP2181与液晶显示模块SMC1602B的接口设计

时间:2023-07-24

  摘 要: 本文介绍了字符式液晶显示模块SMC1602B的工作原理及其应用,重点对ADSP2181与SMC1602B的软硬件接口进行了设计,较好地解决了两者速度匹配问题,实现了液晶显示。


  引言
  常用液晶显示模块的种类有笔段式、字符式和图形式等,可方便地用于各种嵌入式系统的液晶显示。字符式液晶显示模块SMC1602B是长沙太阳人电子有限公司的8位并行接口、内藏控制器HD44780的背光式两行液晶显示模块。


  本文使用的DSP是AD公司的一种低价格、高性能的16位定点运算DSP—ADSP2181。它集成度高,在ADSP21XX基础上,把24x16KB的程序存储器,16x16KB的数据存储器,两路串行接口和两路DMA都集成在一个芯片上,运行速度快,指令周期可达25ns。它具有2048个存储单元的I/O口,支持并行的外围设备以及相应的可编程等待状态发生器,适合与不同速度的外设接口,可扩展性强。


  SMC1602B的原理
  字符式液晶显示模块SMC1602B由一块5x7点阵液晶屏和控制芯片HD44780及其辅助电路组成。它可以显示字母、数字、符号等,显示容量为16x2个字符,芯片工作电压为4.5~5.5V,工作电流为2mA(5V),模块工作电压为5V,字符尺寸为4.95x7.95(W×H)mm。


  接口信号说明
  SMC1602B液晶显示模块具有16条接口信号线,包括8条三态数据线,使能信号线E,读写选择信号线R/W,命令/数据选择信号线RS等,其详细的接口信号说明如表1所示。
  其中,VL为液晶屏的参考电源,外接可调电阻可用来调节液晶屏的对比度。R/W为读写选择信号,R/W=1为读状态,R/W=0为写状态。RS为寄存器选择信号,RS=1为指令寄存器,RS=0为数据寄存器。E为使能信号,读状态在高电平有效,写状态在高脉冲下降沿有效。这三条控制线用于主控CPU访问模块内部控制器HD44780使用。


  读写操作时序
  SMC1602B模块接口控制时序适合M6800系列MPU,具有较宽的适应能力,其具体读、写操作时序。
  模块SMC1602B内部的控制器是日立公司的HD44780,它是专用于字符显示的液晶显示控制驱动集成电路,集驱动器与控制器于一体,内藏有显示缓冲区DDRAM和用户自定义的字符发生器CGRAM。其中,显示缓冲区DDRAM是用来存储显示字符代码的,共有80x8位(80个字节),CPU可对DDRAM进行读、写操作,读、写单元的地址由内部地址计数器AC提供。DDRAM各个单元均对应着显示屏上的各个字符位,他们的对应关系。即使显示屏没有这么大,但他们的对应关系依然存在,由HD44780内定的,是不可更改的。因此,当需要在屏幕上某行某列显示某个字符时,CPU只需将字符对应的数据写入显示DDRAM相应的地址处即可,该模块会自动将显示DDRAM内容送往液晶屏,完成相应的显示。可见,SMC1602B模块能根据主控CPU写入到该模块的各种命令字及显示RAM数据,自行对液晶屏进行一系列操作,而不再需要主控CPU的参与。


  指令说明
  液晶模块SMC1602B具有特定的指令,指令格式非常简单,主控CPU只需通过接口将指令写入到液晶模块就可设置工作方式,或者控制液晶模块实现某种功能。


  状态字说明
  液晶显示模块SMC1602B内有一个忙标志位STA7,它反映了控制器HD44780内部运行时序状态。当STA7=1时,表示内部操作正在运行,不能接受外部数据;当STA7=0时,表示已准备好接收,可以随时接收CPU发来的数据和命令,这是SMC1602B向CPU发出的联络信号。CPU对模块的读操作(RS=0,R/W=1),读出来的状态字是忙标志位与7位当前数据地址指针值的组合,其格式如表3所示。因此,对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0。


  ADSP2181与SMC1602B硬件接口设计
  一般地,主控CPU与SMC1602B液晶模块的硬件接口有总线方式和模拟口线方式两种,这里,我们以ADSP2181作为主控CPU,使用总线接口方式。通过数据总线与控制总线,直接采用I/O设备访问形式控制该液晶显示模块。


  根据液晶模块的读写时序要求,使能信号E由适合的逻辑器件组合控制,同时也可增加适当的硬件延时。由于液晶显示模块SMC1602B是8位μP接口的,故只须将ADSP2181的低8位数据总线与之相连即可。工作时,地址线A9为低电平,同时,地址线A1和A0分别控制模块的读写选择信号R/W与命令数据选择信号RS,相应的操作即可直接对DSP的I/O存储器空间进行。根据接口电路设计,相应的I/O操作口地址有四种:写指令为IO(0X000),写数据为IO(0X001),读状态为IO(0X010),读数据为IO(0X011)。


  ADSP2181与SMC1602B软件接口设计
  相对快速的DSP而言,SMC1602B是一慢速的外设,但ADSP2181内置有可编程等待状态产生器,等状态控制寄存器映射于数据存储区DM(0X3FFE)。在CPU读写I/O端口时,通过增加0~7个等待状态,可以加长CPU等待外部I/O口响应的时间,完全满足SMC1602B的时序要求。另外,在连续向液晶模块写数据时,为了解决LCD反应太慢的问题,在连续写之间调用了延时5ms子程序。在系统DSP程序中,液晶显示模块子程序流程,其中,对LCD读写位于I/O存储器地址0X000~0X003。


  结语
  本文以ADSP2181为主控CPU,实现了与液晶模块SMC1602B的接口,较好地解决了两者之间的速度匹配问题,类似地,51系列、96系列、M6800系列等单片机以及其他系列的DSP器件都可以实现液晶显示。以液晶模块SMC1602B作为某测控系统的显示部分,具有工作电压低,显示清晰可靠,受干扰小等优点,同时也要注意到其反应较慢的缺陷。


上一篇:直接序列扩频LD9002DX2的原理及应用
下一篇:用87LPC764实现遥控信号的解码

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料