伍儒彬,许萍萍,蔡 琼*
(武汉工程大学计算机科学与工程学院,湖北 武汉 430074)
STC单片机的液晶显示方案设计与实现
伍儒彬,许萍萍,蔡 琼*
(武汉工程大学计算机科学与工程学院,湖北 武汉 430074)
基于STC12LE5408AD单片机和HTG9626C01型号液晶的特点,设计一种低成本的液晶显示方案.通过STC单片机与外围周边电路的硬件平台建立,利用星研软件5.10版本提供的开发环境进行实现,辅以汉字和英文字符的显示验证了方案的可行性.该方案可应用于车载电子标签(OBU)等需要显示少量 字符的设备中.
STC12LE5408AD;HTG9626C01;液晶显示
电子技术的发展,使液晶显示在实际应用中不尽相同,产生如文献[1]中提出的解决仪器仪表的液晶显示方案以及文献[2]中的倒车雷达液晶显示方案,也有如文献[3]中提出的基于MSP430和内置T6963C的液晶显示方案.基于显示方案的不同需求,设计一种微控制器和HTG9626C01液晶的显示方案,用以解决生产生活中的应用需求.
1.1 STC12LE5408AD单片机特点
STC12LE5408AD单片机由宏晶公司生产,是高速且低功耗的新一代8051单片机,指令代码完全兼容传统8051;其工作电压为3 V(依据系列的不同其工作电压也有5 V可选);工作频率范围0~35 MHz;用户应用程序空间为8 K字节;工作温度范围工业级的是-40~+85℃,商业级的则是0~75℃[4].
1.2 HTG9626C01型号液晶
HTG9626C01型号液晶由洪泰公司设计和生产,其控制液晶显示的控制器(LCM)采用的是ST7549.ST7549是驱动和控制图形点阵液晶显示系统的一种逻辑器件.它包含102段极与68公共极的驱动电路,芯片可直接连接到微处理器,接受3线或4线串行外设接口(SPI),或8位并行接口.其显示数据可以在一个片上显示存储数据的RAM为68×102位,且在显示数据RAM的读/写操作,无需外部时钟操作,可最大限度地减少功率消耗[5].
HTG9626C01型号液晶是将ST7549封装于玻璃上(COB),并有电源供给电路,驱动器,以及液晶显示存储器组成.其点阵数为96@26,显示效果为白底黑字或蓝底白字,而工作电压受ST7549的影响为2.4~3.3 V(一般设计为3 V).
1.3 硬件电路设计
根据液晶和单片机的特点,电路图连接如图1,单片机的P2.1位连接液晶显示模块的Resb,P2.0位连接液晶显示模块的A0,P1.7位连接液晶显示模块的D0,P1.5位连接液晶显示模块的D1,P1.4位连接液晶显示模块的CSB.
本次设计中液晶和单片机的工作电压都是3 V,不需要额外的电压转换电路.硬件功能的整体设计目标是:当按下开关K时,两个LED灯分别点亮和熄灭,液晶屏出现程序中设定好的字符(包含汉字和英文字母)同时蜂鸣器发出短暂的声音.
在图1中,VT1和VT2可选用S9013或C8050的NPN管,VT3可选用S9015或C8550的PNP管;C1与C2的理论设计值则应小于33 PF,而外部晶振可选用6 MHz(在单片机工作范围内,当晶体振荡器丫的信号输入到STC单片机内的时钟发生器上,而时钟发生器一般都具有分频功能,将所输入的信号分解成CPU所需的时钟信号.这样,单片机所需的工作频率就初步具备了);电阻R1、R3、R5、R8可采用100Ω的电阻,R2、R4、R6选用10 kΩ 的电 阻,R7则 选用4.7 MΩ的电阻;蜂鸣器(BL)可采用市场常用的JHT1700.
图1 硬件电路图Fig.1 Hardware circuit
基于STC12LE5408AD单片机与51单片有相同的指令系统,且实现的功能相对简单,软件设计部分采用汇编语言实现,软件开发环境采用星研集成环境软件5.10版本.(该软件有如下优点:a.功能强大的项目管理功能.b.简洁清晰的软件操作界面.c.支持多种文件格式.c.丰富的调试信息.d.提供软件模拟仿真.)
2.1 主程序流程设计
主程序流程如图2所示,当手动按下开关K时程序开始运行,进行初始化,初始化主要包括对各寄存器的状态和液晶进行初始化,针对ST7549驱动的液晶,其初始化内容一般需要设定以下参数:系统偏差(System Bias)、显示格局(Display configuration)、设 定 VOP值 (Set VOPvalue)、设定VLCD范围(Set VLCDrange)、设定起始显示线(Set Start line)以及显示控制(Display Control).其中显示格局依靠设置DO来实现,当DO等于1时,数据位纵向显示时MSB(最高有效位)在上面,横向显示时MSB在左边;当DO等于0时,数据位纵向显示时MSB在下面,横向显示时MSB在右边(也可表述为:数据位纵向显示时LSB(最低有效位)在上面,横向显示时LSB在左边).而VOP值的设定值决定VLCD的大小,其计算公式是:
式中b的值为0.03 V,a值的大小则由VLCD 范围来确定,当PRS等于1时,a的值为6.75 V;当PRS等于0时,a的值为2.94 V.一般情况下显示控制设置为“正常显示(Normal Display)”即可.
图2 主程序流程图Fig.2 Flow diagram of main program
初始化完成后通过清零或拉高来控制LED灯的亮灭,再调用液晶显示程序来显示需要显示的字符,最后调用蜂鸣器发声程序.至此,程序完成并结束.
2.2 液晶显示程序设计
在液晶显示时,需要前期的初始化,还需要在显示在过程中进行一些设置和选择,液晶显示的流程图如图3所示.
图3 液晶显示流程图Fig.3 Flow diagram of LCD display
用SPI接口向液晶写入控制信息,获取对液晶的显示控制,在第一次显示时,液晶未准备好,需要对显示的内容进行分类,如显示的内容是数字或者英文或者是汉字.确定需要显示内容的类别后,作相应的显示前准备,再调用液晶显示的控制端口,本次设计采用串口传输数据的方式实现数据的传输,数据传输后即可按设定好的格局显示在液晶屏上,显示计数器主要起两个作用,需要显示的字符个数是否显示完成,第二个是是否需要换页.换页与否由程序设定的计数器来决定,而需要显示的字符个数则是在程序编写过程赋值的.当两个判断都为真的时候表示液晶显示完成并结束程序.
需要注意的是液晶显示过程,也是单片机端口向液晶模块传输数据的过程,采用DPTR来定位需要显示字符的表或者库,也就是一个查表的过程,其常用的命令是:MOVC A,@A+DPTR此时,DPTR作为基址寄存器,将DPTR的内容与累加器A的内容相加得到变址地址,从而找到存放显示字符的表或库.
2.3 汉字字体显示设计
鉴于本次设计实现的功能较简单,采用自定义的字模库.参考图4,一个汉字占用16@16个点,数字则占用16@8个点,英文字符占用8@8个点(参考图5).HTG9626C01是96@26的点阵液晶屏,按前所述,可显示6个汉字的同时显示12个英文字符;或者同时显示12个数字和12个英文字符.以汉字“你”为例,字模的输出格式约定为从左到右,从上到下;取模方式为纵向8点上高位.其最终的32字节字模表如下:
图4 汉字字模Fig.4 Chinese character font
图5 数字与英文字母字模Fig.5 Digital and english alphabet fonts
2.4 实验验证
按前面所述的流程和字模库、用汇编语言编程实现,在开发环境中进行编辑和装载,若编译完成后无错误提示或发生,可将编译器生成的*.HEX文件通过烧录器烧录到单片机中,按硬件电路连接好电子器件.按下开关K,验证液晶屏显示是否正常(如图6所示),其它功能是否正常.经过测试验证,预期设计目标均已达到.
图6 显示效果图Fig.6 Effect diagram of display
2.5 系统的扩展性
可将该显示方案应用于手持终端设备上,具体方法如下:a.将单片机中未使用的引脚作为手持设备的按键,通过电源连接必要的上拉(或下拉)电阻.b.添加程序中对应的单片机位操作代码,同时添加必要的字库,再修改程序中按键所需要的代码,如有需求,可修改声音部分的程序代码.
也可将该显示方案应用于车载终端上用以记录货物运输的基本信息.但对信息量要求较多的需求则有一定的局限性.
另外,亦可将方案进行简单的器件更换,对程序进行适当的修改,使产品具有防拆卸功能.具体如下:将总个方案形成某个具体的产品,并将开关K固定好,一旦将产品强行脱离原来固定的位置,程序跳转到报警程序(亦可启动保护模式程序)或使产品失效(无法正常工作).
基于STC12LE5408AD单片机与HTG9626C01液晶的特点,设计和实现了一种简单的液晶显示方案,此方案可应用于一些简单(主要在显示字符数量上要求不多)的设备上,例如车载电子标签,物流手持终端设备.与现有的成熟方案相比:其实现的成本相对低廉,同时此方案不需要像文献[6]中对LCD显示原理进行深入学习和了解,也不需要担心文献[7]中提到的单片机速度与液晶显示的匹配问题,适合初学者学习液晶显示部分的一些基本知识.但是,方案也有不可忽略的局限性.限于单片机的容量,可容纳的数据与代码有限.另外,采用汇编语言编写,使其在通用性上不具备优势.因此,在采用该显示方案形成最终产品时,可将单片机进行适当的升级并采用C/C++语言进行编程实现.
[1]余华芳,刘健.单片机与液晶显示模块的软硬件接口技术[J].液晶与显示,2003,18(2):125-129.
[2]杨帆,陈雯,陆煊,等.基于EASYARM2103倒车雷达的设计[J].武汉工程大学学报,2011,33(1):96-99.
[3]宋俊杰,原冬梅,金海龙,等.基于 MSP430的内置T6963C液晶显示模块控制技术[J].液晶与显示,2010,25(1):110-113.
[4]宏晶科技.STC12C5410AD系列单片机器件手册[R].东莞:宏晶科技,2006:2.
[5]矽创电子.ST7549_v1.3[R].台湾:矽创电子,2004:1-1.
[6]郑强.Linux驱动开发入门与实践[M].北京:清华大学出版社,2011:279-283.
[7]刘金星,李洪文.基于高速单片机的液晶显示模块控制[J].液晶与显示,2011,26(1):88-91.
Scheme for liquid crystal display design and implement based on STC microcontroller
WU Ru-bin,XU Ping-ping,CAI Qiong
(School of Computer Science and Engineering Wuhan Institute of Technology,Wuhan 430074,China)
Based on the features of STC12LE5408AD microcontroller and HTG9626C01 LCD,a scheme was designed for displaying LCD economically.The feasibility of the scheme was verified by establishing the hardware platform between STC microcontroller and peripheral circuit,implementing program under XINGYAN5.10 software and displaying Chinese and English characters.The scheme could be applied to some devices displaying a few characters such as OBU.
STC12LE5408AD;HTG9626C01;LCD
陈小平
TP368.1
A
10.3969/j.issn.1674-2869.2011.11.021
1674-2869(2011)11-0083-04
2011-10-08
伍儒彬(1982-),男,湖北武穴人,硕士研究生.研究方向:嵌入式系统及应用.
指导老师:蔡 琼,女,硕士,副教授,硕士研究生导师.研究方向:计算机技术及应用.*通信联系人