基于32位微处理器的液晶显示系统设计
SED1353 初始化程序:
INCLUDE SED1353. ASM
INIT MOVE. B # $00 ,AUX00 ;设置为正常工作模式
MOVE. B # $44 ,AUX01 ;设置关显示,双屏结构,不屏蔽XSCL ,8 位LCD 数据, 16 位显存结构
MOVE. B # $27 ,AUX02 ;设置显示域宽度LBCB8:0=1×640/ 16-1=39 (十进制)
MOVE. B # $04 ,AUX03 ;设置正常运行方式,单色无灰度显示,1位/像素
MOVE. B # $EF ,AUX04 ;设置扫描行数, TDLC7:0=480/ 2-1=239(十进制)
MOVE. B # $00 ,AUX05 ;使用默认值,每帧WF 翻转一次
MOVE. B # $00 , AUX06 ; 设置上半屏显示首址为$220000
MOVE. B # $00 ,AUX07
MOVE. B # $80 ,AUX08 ;设置下半屏显示首址为$224B00 (使用连续地址)
MOVE. B # $25 ,AUX09
MOVE. B # $00 ,AUX0C ;使用默认非显示周期
MOVE. B # $00 ,AUX0D ;不使用虚拟屏
ORI.B # $90 ,AUX01 ;开显示和LCDE 使能不需要设置的寄存器会被自动旁路
4.2 汉字显示程序的设计
在对系统进行完正确的初始化后将ROM 中的字模数据送到SED1353显示存储器,就可以使液晶显示屏显示出汉字。显示汉字需要指定其坐标位置,坐标对应该汉字模入口地址。在显示汉字界面前, 首先清屏。由于本文中显示存储器结构为16 位,所以X 方向以字为单位(偶数地址对齐) 。故规定显示区左上角坐标为(0 ,0) ,右下角坐标为(39 ,479) 。每个汉字都有唯一的代码,所以在调用字模数据前需要对汉字的代码进行解码,对坐标进行解析。
字模入口地址=Y坐标×80 + X 坐标×2 ;字模首地址=汉字代码×32 + 字库首地址以在坐标(30 ,148) 处显示代码为24 的16×16汉字为例,程序如下:
(1) 清屏子程序
MOVE. L # $220000 ,A4; 赋当前显示首址
BRA CLRLCD ;调用清屏子程序
CLRLCD CLR. LD3
CLR. LD4
MOVE. W # 480 ,D3;需要清480 行
LOOP1 MOVE. W # 40 ,D4;每行40个字
LOOP2 MOVE. W # $0000 , (A4) + ;清零
SUB. W # 1,D4
BNE LOOP2
SUB. W # 1,D3
BNE LOOP1
RTS
(2) 汉字显示子程序
MOVE. L # 0 ,A1 ;清A1 ,A2
MOVE. L # 0 ,A2
CLR. L D1 ;清D1~D4
CLR. L D2
CLR. L D3
CLR. L D4
MOVE. B # 30,D2; 赋坐标值
MOVE. W # 148,D3
BSR ALXY; 调坐标解析子程序
MOVE. LD3 ,A1 ;坐标的绝对地址送出
MOVE. W # 24, D4 ;赋代码值
BSR DECODE;调解码子程序
MOVE. L D4,A2;字模首址送出
LOOP MOVE. W (A2) + , (A1)
ADD. L # $50,A1 ;字模数据写入换行
SUB. B # 1 ,D1
BNE LOOP
END
DECODE MULU # 32,D4
ADD. W # TAB16,D4
MOVE. B # 16,D1 ;循环16 次
RTS
... .
ALXY MULU # $50 ,D3
MULU # $2 ,D2
ADD. W D2 ,D3
ADD. L # $220000 ,D3
RTS
TAB16 ......
******设“马”汉字代码为24 ******
DC. W $0020 , $3FF0 , $0020 , $0820 ;马
DC. W $0820 , $0820 , $0820 , $0824
DC. W $0FFE , $0004 , $0024 , $FFF4
DC. W $0004 , $0004 , $0028 , $0010
...
5 结束语
32 位嵌入式处理器的软件开发以C语言为主,通常情况下用汇编语言编写与硬件有关的程序,高级语言C编写主程序实现某些复杂算法,若再配上实时多任务任务操作系统更是如虎添翼。本文所述方法可移植性强,稍作修改可应用于摩托罗拉MC68K系列嵌入式系统;选用的SED1353具有直接管理128K大容量显示缓冲区的能力,编程简单、显示速度快和执行效率高;可支持多种单色/ 彩色液晶显示屏,可以实现数据显示、绘制图表以及翻转等功能,具有良好的显示界面,提高了系统的可操作性,值得在智能化仪器仪表中推广。
- 基于单片机的HT1621液晶显示系统设计方法(02-16)
- C8051F021和RA8835设计的液晶显示系统(09-27)
- 以MC68332平台为基础的ISP方案设计(08-01)
- 基于MC68332平台的ISP设计方案(10-09)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)