ST7920与MSP430汉字显示的方法与技巧.docx

上传人:李医生 文档编号:8941337 上传时间:2021-01-26 格式:DOCX 页数:7 大小:111.46KB
返回 下载 相关 举报
ST7920与MSP430汉字显示的方法与技巧.docx_第1页
第1页 / 共7页
ST7920与MSP430汉字显示的方法与技巧.docx_第2页
第2页 / 共7页
ST7920与MSP430汉字显示的方法与技巧.docx_第3页
第3页 / 共7页
ST7920与MSP430汉字显示的方法与技巧.docx_第4页
第4页 / 共7页
ST7920与MSP430汉字显示的方法与技巧.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《ST7920与MSP430汉字显示的方法与技巧.docx》由会员分享,可在线阅读,更多相关《ST7920与MSP430汉字显示的方法与技巧.docx(7页珍藏版)》请在三一文库上搜索。

1、第 24卷第 1期山东建筑大学学报V o.l 24N o. 12009年2月JOURNA L OF SHANDONG JIAN ZHU UN IV ERS ITYF eb.2009文章编号: 1673- 7644( 2009) 01- 0059- 05ST7920与 M SP430汉字显示的方法与技巧魏建平1, 司文慧2, 宫淑兰3( 1. 山东建筑大学热能工程学院, 山东济南 250101; 2. 山东交通学院工程机械系, 山东济南 250023; 3. 山东建筑大学信息与电气工程学院, 山东济南 250101)摘要: 介绍了以 ST 7920为驱动控制器的液晶模块 HS12864 15B,

2、 以及该模块在使用时需要注意的问题, 给出了其与 M SP430的接口电路。进而以 M SP430单片机为基础, 讲述了控制液晶显示汉字的 C程序设计方法, 探讨了该液晶模块使用中的技巧。最后重点解决了一屏多行汉字显示的实现方法和翻页显示函数的实现问题, 即通过定义一个行列与 DDRAM 地址对应的数组, 大大简化了一屏多行显示函数的实现; 通过显示页数计算公式将多页显示分为首页、中间页和末页, 使得翻页显示函数简单易行。关键词: ST7920; M SP 430; 汉字显示; 翻页显示中图分类号: T P311. 1;TP334. 4文献标识码: ATechnique and m ethod

3、 of display of Chinese charactersw ith ST7920 and MSP430W E I Jian p ing1,SIW en hu 2i,GONG Shu lan3( 1. School of T he rma l Ene rgy Eng ineer ing, Shandong Jianzhu U n iversity, chanical Eng inee ring, Shandong Communications Co llege, Jinan 250023, cal Eng ineering, Shandong Jianzhu U n iversity,

4、 Jinan 250101, Ch ina)J inan 250101, Ch ina; 2. Departm ent ofM e Ch ina; 3. Schoo l of Inform ation and E lectriA bstract: This paper introduces LCD m odu le H S12864 15B driven by ST7920 controller, d iscusses the problem s in deta il that deserve m ore attention in the use of the m odu le and dea

5、 lsw ith the in terface circu it w ith M SP430MCU. And then the paperm akes study o fC programm ing m ethod and som e sk illsin using the LCD w ith M SP430.Fina lly, th is paper focuses on a m ulti linescreen display of Chinesecharacters and the mpilem entation o f the Ch inese scro lling d isp lay,

6、tha t is,definesan array co rresponding w ith DDRAMaddress.Th is m ethod g reatly sim plifies thedisplayfunctions.The techn iqued iv idesm u lti page into hom e page, m iddle page and the end page througha formu la fo r calculatingthe num ber of pages, K ey words: ST7920;wh ich m akes the scro lling

7、 d isp lay function sim ple and feasib le.M SP430; Ch inese d isp lay;scro lling disp lay部分的硬件设计和软件编程, 但 ST7920在实际使用1 概述中, 仍然存在一些问题, 影响了其使用的便利性。H S12864 15B 是深圳汉昇实业有限公司生产的以目前, 市场上有很多以 ST7920为驱动控制器的ST7920为驱动控制器的液晶模块, 具有 8位、4位和液晶模块, 这些模块大大简化了单片机系统中显示串行接口可选, 提供了 2M 8192个 16 16点阵中文收稿日期: 2008- 10 - 30作者简

8、介: 魏建平 ( 1977 - ), 男, 山东潍坊人, 山东建筑大学热能工程学院, 硕士, 主要从事复杂系统的控制研究.60山东建筑大学学报2009年汉字字库, 其显示 RAM ( DDRAM ) 最多 16字符 4 行, LCD 显示范围为 16 2行, 用 2个字节来提供编码选择。本文以 H S12864 15B和 M SP430单片机构成的系统为例, 讲述 ST7920在汉字显示时需要注意的一些问题, 重点讲述一屏多行和翻页显示函数的实现问题, 并给出其 C 语言实现代码。2 液晶模块的结构H S12864 15B是以 ST7920为控制器的液晶模块。 ST7920是台湾矽创电子公司生

9、产的带中文字库的中文图形液晶驱动器和控制器, 它提供 33 路 COM 和 64 路 SEG 输出, 配合段驱动器 ST7921, 最多可驱动 256 32点阵的液晶。ST7920通过 RS、R /W 和 E 的时序配合, 实现对其内部数据寄存器 DR 和指令寄存器 IR 的读写操作, 通过对数据寄存器 DR 的访问, 可以存取DDRAM、CGRAM、CGROM 和 IRAM 的值。将要显示的字型码写入到 DDRAM 上, ST7920将自动地按照编码从 CGROM 中将要显示的字型显示到屏幕上 1, 2 。H S12864 15B模块的电源为 + 3. 3V, 但需注意其背光的工作电压为 4

10、. 1V, 不能与 M SP430单片机兼容。模块出厂时, 默认 PSB 端为并口, 通过电路板背面的跳线 s!和 p!来选择, 使用时若不需要由单片机选择工作方式, 可直接通过该跳线设置, 并注意不要将 PSB 管脚与单片机连接, 防止意外烧毁液晶模块。若需单片机控制工作方式, 需将跳线去掉。H S12864 15B 内置对比度调节电路, 可通过电路板背面的电位器调整对比度, 其 V0 和 Vou t管脚浮空。也可以外接电位器来调节对比度, 此时须通过模块背面的电位器 VR 将对比度调至最深, 外接电位器电路如图 1和图 2。图 1外接电位器调节对比图 2外接电位器调节对度电路 1比度电路

11、2H S12864 15B 为 4行 8 列的液晶, 最多可以显示 32个汉字, 其 DDRAM 地址与行列的对应关系如表 1所示。表 1 屏幕与 DDRAM 地址的对应关系第 1 字 第 2 字第 7字 第 8字第一行80H81H86H87H第二行90H91H96H97H第三行88H89H8EH8FH第四行98H99H9EH9FH显示汉字时, 只需要将字型编码写入到行列对应的 DDRAM 地址 ( 如第一行第一列显示汉字, 需将该汉字编码写入到 80H DDRAM 中 ) 就可以显示了。3 M CU 接口电路H S12864 15B 与 M SP430的接口 3 如图 3。图 3 H S12

12、864 15B与 M SP430的接口ST7920的 8位并口读写时序和指令说明请参见 ST7920说明书, 本文不再赘述。4 基本汉字显示函数的实现( 1) 首先宏定义各管脚与 ST7920的对应关系。# defin e LCD _DataInP4D IR= 0x00 / /数据口方向设置为输入# defin e LCD _DataOu t P4DIR = 0xff/ /数据口方向设置为输出# defin e LCD2M CU _Data P4 IN/ /ST7920到 M CU 的数据寄存器# defineM CU2LCD _Data P4OUT/ / M CU 到 ST7920的数据寄存

13、器# defin e LCD _CM DOu t P3DIR | = 0x07/ /P3 口的第三位设置为输出# defin e LCD _RS_HP3OUT | = BIT0/ /P3. 0 = 1# defin e LCD _RS_LP3OUT& = BIT0/ /P3. 0= 0# defin e LCD _RW _HP3OUT | = B IT1/ /P3. 1 = 1第 1期魏建平等: ST 7920与 M SP430汉字显示的方法与技巧61# define LCD _RW _LP3OUT& = B IT1 / /P3. 1= 0# define LCD _EN _HP3OUT |

14、= B IT2/ /P3. 2= 1# define LCD _EN _LP3OUT& = B IT2/ /P3. 2= 0( 2)向 ST7920写入控制命令函数的实现/* * * * * * * * * * * * * * * * * * * * *函数名称: W rite_Cm d功能: 向液晶中写入控制命令参数: cmd - 控制命令返回值: 无* * * * * * * * * * * * * * * * * * * * * / void W rite_Cm d( u char cmd )u char lcdtem p =0;LCD _RS_L;LCD _RW _H;LCD _Dat

15、aIn;do/ /判忙 LCD _EN _H; _NOP( );lcdtem p = LCD2M CU _Data;LCD _EN _L;w h ile( lcdtem p & 0x80);LCD _DataOu t;LCD _RW _L;M CU2LCD _Data =cmd;LCD _EN _H;_NOP( );LCD _EN _L;( 3)向 ST7920写入显示数据函数的实现/* * * * * * * * * * * * * * * * * * * * * * * * * * * * 函数名称: W rite_Data功能: 向液晶中写入显示数据参数: data- 显示数据返回值:

16、无* * * * * * * * * * * * * * * * * * * * * * * * * * * * / void W rite_Data( u char data)u char lcdtem p =0;LCD _RS_L;LCD _RW _H;LCD _DataIn;do/ /判忙 LCD _EN _H; _NOP( );lcdtemp = LCD2M CU _Data;LCD _EN _L;w h ile( lcdtem p & 0x80);LCD _DataOut;LCD _RS _H;LCD _RW _L;M CU2LCD _Data =data;LCD _EN _H;_N

17、OP( );LCD _EN _L;( 4) 显示一个汉字/* * * * * * * * * * * * * * * * * * * * * * * * * * * *函数名称 D isp_1HZ功能: 控制液晶显示一个汉字参数: add r- 汉字显示位置的 DDRAM 地址pt- 指向显示汉字地址的指针返回值: 无* * * * * * * * * * * * * * * * * * * * * * * * * * * * / void D isp_1H Z( u char addr, const uchar* p t) uchar ;iW rite_Cmd ( addr);for( i

18、=0; i ( 62 - 16*x- 2*y) )/ /当满屏不能显示全部汉字时,屏幕显示 ERROR!Disp_H Z( 0x90, err, 3);使用该函数显示汉字时, 需要注意:( 1) 若要显示 ASC 码字符, 必须保证字符数量为偶数, 不足可以用空格补足, 这样每个 ASC 字符占据半个汉字的位置, 一共可以显示 64个字符。( 2) 还可以将中文输入法改为 全角!状态, 这种情况下, 显示的数字、字母等占据一个汉字的位置。6 翻页显示函数的实现当一屏无法显示全部汉字时, 需要分屏显示, 这就要设计翻页显示。首先需要计算显示所需要的页数。设从 (x, y )开始显示 num 个汉

19、字, H S12864 15B 一屏可以显示 32个汉字, 留出两个汉字的位置作为上下翻页提示符的显示位置, 则一屏最多显示 30个汉字, 则总显示页数计算公式为:page = num + 8x - y + 130根据所要显示的页面不同, 把页面显示分为三个模块, 分别是: 首页显示模块, 代表第一页汉字内elsefor( i= 0; i num; i+ = 2 ) D isp_1HZ( d isp_addr d isp_addr_num , p t); p t+ = 2;d isp _addr_num + + ;表 1容 ; 中间页显示模块, 代表非第一页和非最后一页的其他所有的页面; 末页

20、显示模块, 代表最后一页汉字内容。这样就可以建立首页、中间页和末页分别显示多少汉字和汉字显示位置在 addr 的起始值对应关系 ( 表 1)不同页面显示汉字字数与位置的对应关系首页中间页末页每页显示的汉字数8( 3 - x ) + 7 - y- 230num - 30( pag e- 2) - ( 8( 3- x ) + 7- y - 2 )addr 中的位置addr 8x + y add r 0 addr 0/* * * * * * * * * * * * * * * * * * * * * * * * * * * *u char p _num = 1;函数名称 D isp _H Znif(

21、 getk ey( ) = =0) p_num = 1;功能: 控制液晶显示多行汉字else p_num = getk ey( );参数: x, y显示汉字的屏幕其实位置 ( x: 0 3, y: 0 7)if( p_num = 1)/ /显示首页pt指向显示汉字地址的指针 for( i= 0;i ( 64 - 16*x- 2*y) ) / /一屏不能显示全部汉字for( i= 2*( 30* ( page- 2) +8* ( 3 - x ) + 7 - y- 2 ); i page= ( num + 16*x+ 2* y) /60 + 1;num; i+ = 2)第 1期魏建平等: ST 7

22、920与 M SP430汉字显示的方法与技巧63 D isp_1H Z( disp_addr d isp_add r_num , p t); p t+ = 2;d isp _addr_num + + ;Disp_1H Z( 0x9 f, );if( 1 p _num& p_num page) / /显示中间页 W rite_Cmd( 0x01);d isp _addr_num = 0;for( i= 0; i 60; i+ = 2 ) D isp_1H Z( disp_addr d isp_add r_num , p t); p t+ = 2;d isp _addr_num + + ;Disp

23、_1H Z( 0x9 e, );Disp_1H Z( 0x9 ,f# );Delay_Nm s( 5000);else / /一屏可以显示全部汉字for( i= 0; i num; i+ = 2 ) D isp_1HZ( disp_addr d isp_addr_num , p t); p t+ = 2;d isp _addr_num + + ;7 结论以 ST7920为控制器的液晶模块 H S12864 15B,硬件和软件设计都比较简便, 但因为其 DDRAM 结构的原因, 使得同时显示多个汉字比较麻烦, 本文介绍的方法, 简单易行, 实现了多屏翻页显示, 同时, 文中介绍的一些 ST792

24、0控制和显示的技巧, 能快速的用 ST7920实现系统的设计。参考文献: 1 舒鑫, 郭其一. ST7920 点阵式液晶显示模块的应用研究和编程 J . 液晶与显示, 2007, 22 ( 2): 192 - 196. 2 刘进军, 高美珍. 基于单片机的汉字输入法的实现 J . 国外电子元器件, 2006( 12): 25- 29. 3 杨应平, 石城. 图形点阵液晶显示模块与 51系列单片机的接口设计 J . 现代显示, 2006( 5 ): 41- 45.( 上接第 58页 )5 结束语从现场调试结果看, 软件的设计是成功的, 能够完成部颁规程规定的技术要求, 程序运行稳定、可靠。基于

25、ARM 7 和嵌入式操作系统的通信管理机的设计, 实现了通信功能, 大大提高了现有装置的整体性能。设计采用了模块化和层次化的设计思想,解决了多种通信规约的兼容问题。通信管理机的多种优势满足变电站的操作要求, 实现了顺序控制功能, 简化了流程, 提高了可靠性。参考文献: 1 路小俊, 王在军. 基于 ARM 平台及嵌入式实时操作系统的通信管理机 J . 电力自动化设备, 2005, 25( 5 ): 46- 49. 2 张建周, 柏嵩. 嵌入式高可靠性通信管理机的设计 J. 电力系统自动化, 2007, 31 ( 16): 94 - 98. 3Lab rosse J .J 嵌入式实时操作系统 C /OS- IIM . 第二版. 邵贝贝, 译. 北京: 北京航空航天大学出版社, 2006. 4 金丹. 应用新型嵌入式系统设计电力通信管理机 J . 电力自动化设备 2006, 26 ( 10): 85 - 87. 5 周立功. ARM 与嵌入式系统基础教程 M . 广东: 广州周立功单片机发展有限公司出版

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1