摘要:文中实现了文字电话通信前等待界面和通信中信息的液晶显示。使用Microchip公司生产的dsPIC33F数字信号控制器与16位开发板,以MPLAB为开发平台,使用C语言编程并通过C30进行编译完成对数字信号控制器的控制,从而实现控制器驱动液晶显示模块实现显示。利用点阵型液晶显示模块TSB1G7000的命令字实现显示界面的小图标设计和滚屏设计,并且实现了通信过程中双方通信数据的显示。实践表明,使用dsPIC33F数字信号控制器与液晶显示模块构成的显示系统可以满足文字电话的显示要求。
关键词:dsPIC233F;TSB1G7000;MPLAB;液晶显示
当今社会,通信设备的迅速发展和广泛应用使得人与人之间的信息交流变得十分方便,给人们的生活带来了极大的便利。然而,对于聋哑人来说,在某些特定场合中现有的通信设备并不能满足他们的需求,比如在火灾或者盗窃案件发生时需要报警的情况下,普通电话就不能胜任了,所以在某些机关部门使用文字电话就可以解决这些难题。这里所说的文字电话是指带有全键盘的电话机,文字信息通过普通电话线
进行传输,在文字电话的显示屏上既可以看到自己传出的文字信息,也能够看到对方传出的文字信息。所以对于文字电话来说,显示部分就显得尤为重要,考虑到成本问题,一个既能完成显示任务又价格便宜的显示模块用在文字电话上就十分合适。
1 硬件设计
1.1 dsPIC33F数字信号控制器
在文字电话中,控制液晶显示模块的控制器使用Microchip公司生产的dsPIC33F系列数字信号控制器,dsPIC33F是Microchip公司生产的高性能16位数字信号控制器,它的性能好、集成度高。而且dsPIC系列单片机具有数字信号处理能力,即具有内置的DSP运算核和DSP指令。ds PIC33F的运行速度可达40 MIPS,工作电压最高3.6 V,工作温度范围到。在文字电话中,完成显示任务只是其中的一项任务,更重要的工作是完成语音与数据的共同传输,用普通的单片机虽然可完成显示任务,但是在发送数据和接受数据时要完成数据的处理就显得比较困难,dsP IC33F数字信号控制器强大的数据处理功能可以有效的处理数据,同时又可以完成显示任务。
1.2 液晶显示模块
文字电话的液晶显示屏使用Microchip公司16位开发板上自带的1602液晶显示屏TSB1G7000,它是由TRULYSEMICONDUCTION公司生产的FSTN封装的液晶显示模块,显示控制器使用NT7603,输入电压3.3 V。最多可以显示两行字符,每行16个字符,也可以显示32个字符,显示一行。可以与4位或者8位的单片机接口相连接。可以实现的显示功能有清屏,光标归位,开关显示,开关光标,光标闪烁,光标移位和显示移位。指令集简单又能满足显示效果的要求。NT7603的DDRAM为80x8位,即一次最多可以显示80个字符,内置的CGROM包含256个字模,NT7603也包含CGRAM,用户在运行时可以存储8个字模,这些存储特点使得字符的显示灵活多变。NT7603采用CMOS工艺,可以满足低功耗的需求。
1.3 硬件连接
在16位的开发板上使用的液晶显示模块型号为TSB1G7000,它内置有NT7603液晶显示控制器,此液晶显示模块与dsPIC33F的内部连接图如图1所示,可以看到,数字信号控制器的引脚RD4与液晶控制器的使能信号端E脚相连接,RD5与读写控制引脚R/W相连接,RB15与命令数据选择端RS相连接,RE0-RE7分别与液晶显示模块的DB0-DB7相连接。单片机的13脚与30脚ADD接+5 V直流电源,31脚ASS接地。液晶显示模块的电源电路由16位开发板提供,这样就完成了数字信号控制器与LCM构成显示系统的最小连接。
2 软件设计
文字电话使用MPLAB IDE集成开发环境,编译器使用MPLAB C30,用户使用C30开发dsPIC33F系列单片机,这种结构化语言提高了嵌入式软件开发的灵活性、可移植性和可维护性。C30编译器优秀的代码效率来源于以下一些事实:全新的指令集;灵活多样的寻址方式;采用软件堆栈;支持多种指针、多个指针,方便C语言操作;DO、REPEAT等指令的底层支持;更加自然的支持高级语言;拥有双累加器和长累加器;支持桶形移位寄存器;允许快速直接的多位移位操作和数据转换操作;先进的优化方式。
2.1 初始化与等待界面设计
初始化流程图如图2所示,在系统上电后程序开始运行,进行液晶显示模块的初始化,针对dsPIC33F数字控制器和NT7603液晶控制器,初始化程序主要包括对相关引脚的分配,引脚的输入输出设置,液晶模块的功能设置,开关显示和光标控制,输入方式设置。设置液晶输入输出为8位,两行同时显示,显示字符为5x8点阵;开显示,关光标与光标闪烁;每次读写操作后,AC自动加一,关移位显示。这些完成之后就可以进行显示界面的设计。
由于NT7603自带字库为英文字库,所以要显示汉字需要自建字库,汉字的字模可以自己设计,也可以使用字模提取软件。用户也可以根据自己的需要设计一些小图标,图标的点阵数据也要通过CGRAM地址设置指令保存到CGRAM中,调用时直接向DDRAM中写入图标地址即可,图3为一种设计的等待界面。为了使显示界面更加生动,利用NT7603的移位显示指令可以实现等待界面的滚屏设计。以图3的显示内容为例,把代表第一行中“文字电话”的数组的显示地址设置成0x87和0x9b,把第二行心形图标的显示地址分别设置成0xc1、0xce、0xd5和0xe2,第二行字符数组的显示地址设置成0xc4和0xd8,再调用移位显示指令就可以实现等间隔的移位显示。
2.2 通信中液晶显示程序设计
文字电话所要实现的是双方通信,所以在显示屏的显示设计上设定为显示屏的上一行显示的是作为发送方所发送的字符,在显示屏的下一行显示的是作为接收方接收到的字符,数据显示的流程图如图4所示。在初始化程序中已经设定好液晶模块的输入模式为每接收到一位数据后光标自动右移一位,当光标到达一行的最末时,利用设定DDRAM地址指令重新在行首开始显示新一轮的数据。与以往的显示方式不同,文字电话通信时所要显示的内容并不是预先设定好的,而是一个实时显示的过程,需要用到dsPIC33F的缓冲器来临时存储所要显示的字符数据,由于文字电话的通信是在电话线上进行的,所以所要显示的数据在显示之前还需要进行调制和解调。对于通信的任意一方来说,自己发送出去的数据一方面不需要调制,直接在液晶屏的第一行进行显示,同样这组数据也要送到调制缓冲器中进行调制,以便于送到由话线去讲行传输。
2.3 小图标显示设计
NT7603为点阵型的液晶显示模块,可以通过控制像素点的亮暗来显示一些图标,NT7603的显示方式为5x8点阵显示,扫描方式为先行后列,每行为一个字节,由于每行的显示像素为5个,所以行字节的前三位始终置零,后五位根据像素的亮暗情况置一或者置零。例如,图3中心形图案对应的显示数据为0x0c.0x1e,0x1f,0x1f,0x0f,0x07,0x03,0x01,0x06,0x0f,0x1f,0x1f,0x1e,0x1c,0x18,0x10,这里用到了两个5x8的点阵来显示一个心形图案。同样的,图3中的“文字电话”这几个字也可以用这种方法进行显示设计。
2.4 文字电话的显示实现
文字电话实现使用Microchip公司生产的dsPIC33F数字信号控制器,16位开发板与音频子板,调试烧写器使用MPLAB ICD3,使用超级终端模拟文字电话的全键盘,通信双方之间用音频线连接。编写好程序后利用MPLAB IDE开发环境与C30编译器进行编译与调试,成功后可以用在线编译器把程序烧写到单片机中,这样通信双方的开发板通电后即可完成文字电话的显示。经过试验验证,利用dsPIC33F数字信号控制器与16位开发板可以成功实现文字电话的显示。
3 结束语
基于dsPIC33F数字信号控制器与TSB1G7000液晶显示模块的特点,设计了一种低成本的文字电话显示方案,此液晶显示方案可以实现双方通信,实现方式简单,又可以设计一些个性化的小图标,同时可以充分利用Microchip公司的开发环境与调试烧写器,大大简化了开发过程。此方案不需要对液晶显示原理进行深入的学习和了解,也不需要担心单片机速度与液晶匹配的问题,只需要了解液晶显示控制器的控制字就可以进行编程完成显示任务。