实验二十 128×64点阵型液晶显示实验

发布时间 2023-05-19 23:08:29作者: bujidao1128

实验二十 128×64点阵型液晶显示实验

实验目的

1、了解点阵型液晶显示器的工作原理。
2、了解点阵型液晶显示器控制方式。

实验说明

1、本实验箱采用内置控制器、不带字库的图形点阵液晶显示模块,点阵数为128×64。它主要由行驱动器/列驱动器及128×64 全点阵液晶显示器组成,可完成图形显示也可以显示8×4 个(16×16 点阵)汉字。
主要技术参数和性能:
1)电源VDD +5V 模块内自带-10V 负压用于LCD 的驱动电压
2)显示内容128(列) 64(行)点
3)全屏幕点阵
4)七种指令
5)与CPU 接口采用8 位数据总线并行输入输出和8 条控制线
6)占空比1/64
7)工作温度-10 +55 存储温度-20 +60

2、模块主要硬件构成说明(结构框图)

IC1、IC2 为列驱动器,IC1 控制模块的右半屏,IC2 控制模块的左半屏, IC3 为行驱动器。IC1、IC2、IC3 含有以下主要功能器件,了解如下器件有利于对LCD 模块的编程。
1)指令寄存器(IR)
IR 是用于寄存指令码,与数据寄存器数据相对应,当D/I=0 时在E 信号下降沿的作用下指令码写入IR
2)数据寄存器(DR)
DR 用于寄存数据,与指令寄存器寄存指令相对应,当D/I=1 时在下降沿作用下,图形显示数据写入DR,或在E 信号高电平作用下,由DR 读到DB7~DB0 数据总线,DR 和DDRAM 之间的数据传输是模块内部自动执行的。
3)忙标志BF
BF 标志提供内部工作情况,BF=1 表示模块在内部操作,此时模块不接受外部指令和数据;BF=0 时模块为准备状态,随时可接受外部指令和数据。利用STATUS READ 指令可以将BF 读到数据总线从而检验模块之工作状态。
4)显示控制触发器DFF
用于模块屏幕显示开和关的控制,DFF=1为开显示,DDRAM 的内容就显示在屏幕上;DFF=0为关显示。
DDF 的状态是指令DISPLAY ON/OFF 和RST 信号控制的。
5)XY 地址计数器
XY 地址计数器是一个9 位计数器高,3 位是X 地址计数器,低6 位为Y 地址计数器。XY 地址计数器实际上是作为DDRAM 的地址指针,X地址计数器为DDRAM 的页指针,Y地址计数器为DDRAM 的Y 地址指针。
X 地址计数器没有记数功能,只能用指令设置。
Y 地址计数器具有循环记数功能,各显示数据写入后 Y 地址自动加1, Y地址指针从0 到63。
6)显示数据RAM DDRAM
DDRAM是存储图形显示数据的,数据为1表示显示选择,数据为0表示显示非选择。
7)Z 地址计数器
Z 地址计数器是一个6 位计数器,此计数器具备循环记数功能,用于显示行扫描同步,当一行扫描完成此地址计数器自动加1,指向下一行扫描数据,RST 复位后Z 地址计数器为0。
Z 地址计数器可以用指令DISPLAY START LINE 预置,因此显示屏幕的起始行就由此指令控制,即DDRAM 的数据从哪一行开始显示在屏幕的第一行,此模块的DDRAM 共64 行,屏幕可以循环滚动显示64 行。

3、模块的外部接口
外部接口信号如下表所示
管脚号 管脚名称 LEVER 管脚功能描述
1 VSS 0 电源地
2 VDD 5.0V 电源电压
3 V0 5.0V -13V 液晶显示器驱动电压
4 D/I H/L D/I= H 表示DB7~DB0 为显示数据
D/I= L表示DB7~DB0 为显示指令数据
5 R/W H/L R/W= H E= H 数据被读到DB7~DB0
R/W= L E= H L 数据被写到IR 或DR
6 E H/L R/W= L E 信号下降沿锁存DB7~DB0
R/W= H E= H DDRAM 数据读到DB7~DB0
7 DB0 H/L 数据线
8 DB1 H/L 数据线
9 DB2 H/L 数据线
10 DB3 H/L 数据线
11 DB4 H/L 数据线
12 DB5 H/L 数据线
13 DB6 H/L 数据线
14 DB7 H/L 数据线
15 CS1 H/L H:选择芯片(右半屏)信号
16 CS2 H/L H:选择芯片(左半屏)信号
17 RET H/L 复位信号,低电平复位
18 VEE -10V LCD 驱动负电压
19 EL AC 背光板电源
20 EL AC 背光板电源

4、指令说明
指令表:

1)显示开关控制(DISPLAY ON/OFF)

代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 0 0 1 1 1 1 1 D

D=1:开显示(DISPLAY ON)意即显示器可以进行各种显示操作
D=0:关显示(DISPLAY OFF)意即不能对显示器可以进行各种显示操作

2)设置显示起始行

代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 1 1 A5 A4 A3 A2 A1 A0

显示起始行是由Z 地址计数器控制的,A5~A0 的6 位地址自动送入Z 地址计数器起始行的地址可以是0~63 的任意一行。
例如选择A5~A0 是62 则起始行与DDRAM 行的对应关系如下
DDRAM 行 62 63 0 1 2 3 …… 28 29
屏幕显示行 1 2 3 4 5 6 …… 31 32

3)设置页地址

代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 1 0 1 1 1 A2 A1 A0

所谓页地址就是DDRAM 的行地址,8 行为一页,模块共64 行即8 页, A2~A0 表示0~7 页读写数据对地址没有影响,页地址由本指令或RST 信号改变复位后页地址为0,页地址与DDRAM 的对应关系见DDRAM 地址表:

4)设置Y 地址(SET Y ADDRESS)

代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 0 1 A5 A4 A3 A2 A1 A0

此指令的作用是将A5~A0 送入Y 地址计数器,作为DDRAM 的Y 地址指针,在对DDRAM 进行读写操作后,Y地址指针自动加1,指向下一个DDRAM 单元。
DDRAM 地址表:

5)读状态(STATUS READ)

代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 BUSY 0 ON/OFF RET A3 A2 A1 A0

当R/W=1 D/I=0 时,在E信号为H 的作用下,状态分别输出到数据总线DB7~DB0的相应位。
ON/OFF 表示DFF 触发器的状态。
RST RST=1 表示内部正在初始化,此时组件不接受任何指令和数据。

6)写显示数据(WRITE DISPLAY DATE)

代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 1 D7 D6 D5 D4 D3 D2 D1 D0

D7~D0 为显示数据,此指令把D7~D0 写入相应的DDRAM单元,Y地指针自动加1。

7)读显示数据(READ DISPLAY DATE)

代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 1 1 D7 D6 D5 D4 D3 D2 D1 D0

此指令把DDRAM 的内容D7~D0读到数据总线DB7~DB0,Y地址指针自动加1。

5、显示代码说明
使用代码生成软件,可生成字符、图片及汉字,详见光盘。

实验内容及步骤

1、把液晶模块插到目标板中,单片机最小应用系统 P0口、P1口电阻上拉。单片机最小应用系统的 P0,P1口接液晶单元的P0,P1,J20的两个短路帽打在VCC处。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“LCD12864.asm”源程序,进行编译,直到编译无误。
4、全速运行程序,液晶显示一幅图片,延时几秒后显示汉字“浙江天煌科技实业有限公司”。
5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)

源程序

/***************************************************************************
1、把液晶模块插到目标板中,单片机最小应用系统 P0口、P1口电阻上拉。
单片机最小应用系统的 P0,P1口接液晶单元的P0,P1,J20的两个短路帽打在VCC处。 
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,
请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,
接着添加“LCD12864.asm”源程序,进行编译,直到编译无误。
4、全速运行程序,液晶显示一幅图片,延时几秒后显示汉字
“浙江天煌科技实业有限公司”。
5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录
到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)

/**************************************************************************/
XPOS    EQU     20H             ;列方向地址指针(用于LCDPOS子程序)
YPOS    EQU     21H             ;行方向地址指针(用于LCDPOS子程序)
ww      EQU     22H             ;数据个数 原来的 CODE 改成了WW  2005.11.07
RSPIN   EQU     P1.0            ;
RWPIN   EQU     P1.1            ;
EPIN    EQU     P1.2            ;
CS1PIN  EQU     P1.3            ;
CS2PIN  EQU     P1.4
        ORG     0000H
        LJMP    MAIN
MAIN:   MOV     SP,#60H
        LCALL   LCDRESET        ;控制器复位!
LOOP:   MOV     A,#00H
        LCALL   LCDFILL         ;控制器清屏!
        MOV     DPTR,#TU_TAB    ;128*64的图片数据
        LCALL   DIS_TU          ;显示
         LCALL   DELAY1S         ;延时7S
         LCALL   DELAY1S
         LCALL   DELAY1S
         LCALL   DELAY1S
         LCALL   DELAY1S
         LCALL   DELAY1S
        LCALL   DELAY1S
        LCALL   DELAY1S
        MOV     A,#00H
        LCALL   LCDFILL         ;清屏
        LCALL   DSPLAYS         ;显示浙江天煌
        LCALL   DELAY1S         ;延时8S
        LCALL   DELAY1S
        LCALL   DELAY1S
        LCALL   DELAY1S
        LCALL   DELAY1S
        LCALL   DELAY1S
        LCALL   DELAY1S
        LCALL   DELAY1S
        LJMP    LOOP               ;大循环
;========================================================================
DELAY1S:
        MOV     R0,#20            ;延时子程序(400MS)
DL4_PA: MOV     R1,#100
DL4_PB: MOV     R2,#100
        DJNZ    R2,$
        DJNZ    R1,DL4_PB
        DJNZ    R0,DL4_PA
        RET
;=========================================================================
DSPLAYS:  MOV  DPTR,#HZKDOT       ;汉字库首地址
          MOV   XPOS,#0
          MOV   YPOS,#2
          MOV   ww,#0
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS         ;第2个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS1        ;第3个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS2        ;第4个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS3        ;第5个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS4        ;第6个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS5        ;第7个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS6        ;第8个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS7        ;第9个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS8        ;第10个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS9        ;第11个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;
          MOV   DPTR,#BBS10       ;第12个汉字
          LCALL PUTCHARDOT        ;显示一个汉字
          LCALL PUTCHARDOT        ;

          RET




PUTCHARDOT:
	MOV	R7,#8
PAC_PA:
	MOV  	A,#0
	MOVC	A,@A+DPTR
	CALL	LCDWRITE
	INC	YPOS
	INC	DPTR
	CLR	A
	MOVC	A,@A+DPTR
	CALL	LCDWRITE
	DEC	YPOS
	INC	DPTR
	CALL	CUSORNEXT
	MOV	A,XPOS
	JNZ	PAC_LAX
	INC	YPOS
PAC_LAX:
	DJNZ	R7,PAC_PA
	RET
;=========================================================================
LCDFILL:                        ;LCD整屏显示A的内容
        MOV     R7,A
        MOV     YPOS,#0
LFL_PB: MOV     XPOS,#0
LFL_PA: MOV     A,R7
        LCALL   LCDWRITE        ;定位并写数据
        LCALL   CUSORNEXT       ;加行或者列
        MOV     A,XPOS;列
        JNZ     LFL_PA          ;XPOS<128则循环(128列)
        MOV     A,YPOS
        JNZ     LFL_PB;行         ;YPOS<8则循环(8页)
        RET
DIS_TU:  MOV     YPOS,#0        ;从0行开始
LFL_PB1: MOV     XPOS,#0        ;从0列开始
LFL_PA1: MOV     A,#00h
        movc    a,@a+dptr
        LCALL    LCDWRITE        ;定位并写数据
        LCALL    CUSORNEXT       ;行或者列加一
        INC      DPTR
        MOV      A,XPOS           ;
        JNZ     LFL_PA1          ;XPOS<128则循环(128列)
        MOV     A,YPOS
        JNZ     LFL_PB1          ;YPOS<8则循环(8页)
        RET
;======================================================================
LCDWRITE:                    ;定位并写数据子程序
        CALL    LCDPOS       ;内部写数指针定位
        CALL    LCDWD        ;写数据/分左右屏
        RET
;======================================================================
CUSORNEXT:
	ANL	YPOS,#7        ;页码
	INC	XPOS           ;列码
	MOV	A,XPOS
	JNB	ACC.7,CNT_LAX  ;小于128
	MOV	XPOS,#0        ;清列码
	INC	YPOS           ;加一行
	MOV	A,YPOS
	ANL	A,#0F8H        ;大于8则结束
	JZ	CNT_LAX
	MOV	YPOS,#0
CNT_LAX:
	RET
;======================================================================
LCDPOS:                        ;内部写数指针定位子程序
        PUSH    ACC            ;保存要写的数据
        MOV     A,XPOS         ;列数据
        JB      ACC.6,LPS_LAY  ;列大于64则跳转
        MOV     A,YPOS         ;XPOS列方向小于64则对CS1操作
        ANL     A,#07H         ;页码
        ADD     A,#0B8H        ;固定码,芯片要求的
        LCALL    LCDWC1       ;设页码,在第几行?
        MOV     A,XPOS
        ANL     A,#3FH        ;小于63
        ORL     A,#40H        ;固定码,见说明书
        CALL    LCDWC1        ;设列码
        JMP     LPS_LAX
LPS_LAY:MOV     A,YPOS        ;XPOS列方向大于等于64则对CS2操作
        ANL     A,#07H
        ADD     A,#0B8H
        CALL    LCDWC2        ;设页码
        MOV     A,XPOS
        ANL     A,#3FH
        ORL     A,#40H
        CALL    LCDWC2        ;设列码
LPS_LAX:POP     ACC
        RET
;========================================================================
LCDWD:                          ;送数据子程序
        MOV     B,A
        MOV     A,XPOS
        JB      ACC.6,LWD_LAY
        MOV     A,B             ;XPOS列方向小于64则对CS1操作
        CALL    LCDWD1
        JMP     LWD_LAX
LWD_LAY:MOV     A,B             ;XPOS列方向大于等于64则对CS2操作
        CALL    LCDWD2
LWD_LAX:
        RET
;==========================================
LCDRESET:                       ;LCD控制器复位
        MOV     A,#3FH          ;打开LCD显示
        CALL    LCDWC1
        CALL    LCDWC2
        MOV     A,#0C0H         ;设显示起始行
        CALL    LCDWC1
        CALL    LCDWC2
        RET
LCDWC1:                         ;送片1控制字子程序
        CALL    WAITIDLE1       ;判断液晶是否忙?
        MOV     P0,A
        CLR     RSPIN           ;RS=0 RW=0 CS1=1 E=高脉冲
        CLR     RWPIN
        SETB    CS1PIN
        SETB    EPIN
        NOP
        CLR     EPIN
        CLR     CS1PIN
        RET
LCDWC2:                         ;送片2控制字子程序
        CALL    WAITIDLE2
        MOV     P0,A
        CLR     RSPIN           ;RS=0 RW=0 CS2=1 E=高脉冲
        CLR     RWPIN
        SETB    CS2PIN
        SETB    EPIN
        NOP
        CLR     EPIN
        CLR     CS2PIN
        RET
LCDWD1:                         ;片1写数据子程序
        CALL    WAITIDLE1
        MOV     P0,A
        SETB    RSPIN           ;RS=1 RW=0 CS1=1 E=高脉冲
        CLR     RWPIN
        SETB    CS1PIN
        SETB    EPIN
        NOP
        CLR     EPIN
        CLR     CS1PIN
        RET
LCDWD2:                         ;片2写数据子程序
        CALL    WAITIDLE2
        MOV     P0,A
        SETB    RSPIN           ;RS=1 RW=0 CS2=1 E=高脉冲
        CLR     RWPIN
        SETB    CS2PIN
        SETB    EPIN
        NOP
        CLR     EPIN
        CLR     CS2PIN
        RET
LCDRD1:                         ;片1读数据子程序
        CALL    WAITIDLE1
        MOV     P0,#0FFH
        SETB    RSPIN           ;RS=1 RW=1 CS1=1 E=高电平
        SETB    RWPIN
        SETB    CS1PIN
        SETB    EPIN
        NOP
        MOV     A,P0
        CLR     EPIN
        CLR     CS1PIN
        RET
LCDRD2:                         ;片2读数据子程序
        CALL    WAITIDLE2
        MOV     P0,#0FFH
        SETB    RSPIN           ;RS=1 RW=1 CS1=2 E=高电平
        SETB    RWPIN
        SETB    CS2PIN
        SETB    EPIN
        NOP
        MOV     A,P0
        CLR     EPIN
        CLR     CS2PIN
        RET
WAITIDLE1:      ;
        MOV     P0,#0FFH
        CLR     RSPIN           ;RS=0 RW=1 CS1=1 E=高电平
        SETB    RWPIN
        SETB    CS1PIN
        SETB    EPIN
WT1_PA: NOP
        JB      P0.7,WT1_PA
        CLR     EPIN
        CLR     CS1PIN
        RET
WAITIDLE2:
        CLR     RSPIN           ;RS=0 RW=1 CS2=1 E=高电平
        SETB    RWPIN
        SETB    CS2PIN
        SETB    EPIN
WT2_PA: NOP
        JB      P0.7,WT2_PA
        CLR     EPIN
        CLR     CS2PIN
        RET
tu_tab:
;--  调入了一幅图像:C:\My Documents\sc12864a.bmp  --注意:把DB最后一行的  ,号去掉了 也把
;CODE  改成了 WW                                               2005 11.7
;- -  宽度x高度=128x64  --
DB  00h,00h,10h,12h,12h,12h,92h,0FEh,0FEh,92h,12h,13h,13h,12h,10h,00h
DB  38h,38h,0FFh,0FFh,98h,0BEh,0BEh,0ABh,0ABh,0AAh,0BEh,0BEh,80h,00h,10h,92h
DB  0D2h,0FEh,0FFh,0D1h,0B4h,6Ch,48h,0FFh,0FFh,80h,80h,00h,88h,0C8h,0FFh,0FFh
DB  28h,08h,0E8h,0E8h,3Fh,3Fh,0E8h,0E8h,08h,00h,00h,00h,00h,00h,00h,00h
DB  00h,00h,00h,00h,00h,88h,0C8h,0FFh,0FFh,28h,08h,0E8h,0E8h,3Fh,3Fh,0E8h
DB  0E8h,08h,00h,00h,08h,08h,88h,0C8h,68h,0FFh,0FFh,0CAh,8Eh,0Ch,08h,08h
DB  00h,40h,50h,5Eh,4Eh,0C8h,0C8h,7Fh,0FFh,0C8h,4Ch,4Ch,48h,40h,00h,58h
DB  5Fh,0F7h,0F4h,54h,7Ch,7Fh,0FFh,0EAh,5Eh,76h,62h,20h,00h,00h,00h,00h
DB  00h,00h,08h,08h,0Ch,06h,03h,01h,00h,01h,03h,06h,0Ch,08h,08h,00h
DB  08h,0Eh,07h,03h,0Eh,0Eh,0Ah,0Fh,0Fh,0Ah,0Ah,0Ah,08h,00h,01h,01h
DB  00h,0Fh,0Fh,01h,01h,01h,01h,0Fh,0Fh,00h,00h,00h,00h,08h,0Fh,0Fh
DB  08h,08h,08h,0Dh,07h,07h,0Dh,08h,08h,00h,00h,00h,00h,00h,00h,00h
DB  00h,00h,00h,00h,00h,00h,08h,0Fh,0Fh,08h,08h,08h,0Dh,07h,07h,0Dh
DB  08h,08h,00h,02h,02h,03h,01h,00h,00h,0Fh,0Fh,00h,01h,03h,02h,02h
DB  00h,08h,08h,0Ch,06h,03h,01h,00h,07h,0Fh,08h,08h,0Eh,0Eh,00h,00h
DB  00h,07h,07h,06h,05h,05h,0Fh,0Fh,05h,05h,05h,04h,00h,00h,00h,00h
DB  00h,00h,00h,00h,00h,00h,00h,00h,00h,0C0h,0F0h,0F8h,0F8h,0FCh,0FEh,0FEh
DB  0FEh,0FEh,0FEh,0FEh,0FEh,0FCh,0F8h,0F8h,0F0h,0C0h,00h,00h,00h,00h,00h,00h
DB  00h,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh
DB  0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh
DB  0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh
DB  0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh
DB  0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh,0FEh
DB  0FEh,0FEh,0FEh,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
DB  00h,00h,00h,00h,00h,00h,00h,00h,00h,03h,0Fh,1Fh,1Fh,3Fh,7Fh,7Fh
DB  7Fh,7Fh,7Fh,7Fh,7Fh,3Fh,1Fh,1Fh,0Fh,03h,00h,00h,00h,00h,00h,00h
DB  00h,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh
DB  7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh
DB  7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh
DB  7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh
DB  7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh,7Fh
DB  7Fh,7Fh,7Fh,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
DB  40h,0C0h,0C0h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
DB  00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,40h,0C0h,0C0h,00h
DB  00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,40h,40h,00h,00h
DB  00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
DB  00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,80h,0C0h,40h
DB  0C0h,0C0h,80h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
DB  00h,00h,40h,0C0h,0C0h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
DB  00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
DB  10h,1Fh,1Fh,1Fh,1Bh,11h,00h,0Ah,1Fh,15h,1Fh,1Eh,10h,00h,11h,1Fh
DB  1Fh,11h,1Fh,1Eh,10h,00h,3Fh,3Fh,37h,37h,31h,00h,10h,1Fh,1Fh,11h
DB  1Fh,1Eh,10h,0Ah,1Fh,15h,1Fh,1Eh,10h,00h,00h,11h,1Fh,1Fh,10h,00h
DB  00h,21h,33h,3Fh,0Fh,03h,01h,00h,0Eh,1Fh,11h,11h,1Fh,0Eh,00h,11h
DB  1Fh,1Fh,11h,1Fh,1Eh,10h,00h,3Fh,3Fh,37h,37h,31h,00h,0Fh,1Fh,17h
DB  17h,1Fh,0Fh,00h,00h,13h,17h,15h,1Dh,19h,00h,0Eh,1Fh,11h,11h,1Fh
DB  0Eh,00h,10h,1Fh,1Fh,11h,1Fh,1Eh,10h,01h,0Fh,1Fh,11h,1Fh,1Fh,10h
DB  00h,10h,00h,1Fh,11h,11h,00h,0Eh,11h,0Eh,00h,1Fh,02h,04h,02h,1Fh
DB  00h,60h,60h,0E0h,0E0h,60h,60h,00h,20h,0E0h,0E0h,20h,20h,60h,60h,00h
DB  20h,0E0h,0E0h,20h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
DB  00h,0C0h,0E0h,20h,20h,0E0h,0C0h,00h,00h,0E0h,0E0h,20h,20h,20h,20h,00h
DB  00h,60h,60h,20h,0E0h,0E0h,20h,00h,00h,00h,40h,0E0h,0E0h,00h,00h,00h
DB  00h,0C0h,0E0h,20h,20h,0E0h,0C0h,00h,00h,0E0h,0E0h,20h,20h,20h,20h,00h
DB  00h,0C0h,0E0h,20h,20h,0E0h,0C0h,00h,00h,0C0h,0E0h,20h,20h,0E0h,0C0h,00h
DB  00h,00h,40h,0E0h,0E0h,00h,00h,00h,00h,0C0h,0E0h,20h,20h,0E0h,0C0h,00h
DB  00h,80h,0C0h,60h,20h,60h,60h,00h,00h,0C0h,0E0h,20h,20h,0E0h,0C0h,00h
DB  00h,00h,20h,3Fh,3Fh,20h,00h,00h,20h,3Fh,3Fh,22h,27h,37h,30h,00h
DB  20h,3Fh,3Fh,20h,20h,30h,30h,00h,00h,00h,33h,33h,33h,00h,00h,00h
DB  00h,1Fh,3Fh,20h,20h,3Fh,1Fh,00h,00h,1Bh,3Bh,21h,21h,3Fh,1Eh,00h
DB  00h,00h,00h,3Eh,3Fh,01h,00h,00h,00h,00h,20h,3Fh,3Fh,20h,00h,00h
DB  00h,1Ch,3Fh,23h,23h,3Fh,1Ch,00h,00h,1Bh,3Bh,21h,21h,3Fh,1Eh,00h
DB  00h,30h,38h,2Ch,26h,23h,21h,00h,00h,30h,38h,2Ch,26h,23h,21h,00h
DB  00h,00h,20h,3Fh,3Fh,20h,00h,00h,00h,30h,38h,2Ch,26h,23h,21h,00h
DB  00h,1Fh,3Fh,23h,21h,3Fh,1Eh,00h,00h,30h,38h,2Ch,26h,23h,21h,00h
HZKDOT:
;浙
DB	 10H, 04H, 22H, 04H, 64H,0feH, 0cH, 01H
DB	 90H, 42H, 10H, 82H,0ffH, 7fH, 10H, 41H
DB	 90H, 20H,0fcH, 1fH, 44H, 00H, 44H, 00H
DB	0c2H,0ffH, 62H, 00H, 40H, 00H, 00H, 00H
BBS:
;江
DB	 10H, 04H, 21H, 04H, 62H,0feH, 06H, 01H
DB	 80H, 20H, 04H, 20H, 04H, 20H, 04H, 20H
DB	 04H, 20H,0fcH, 3fH, 04H, 20H, 04H, 20H
DB	 06H, 20H, 04H, 30H, 00H, 20H, 00H, 00H
BBS1:
;天
DB	 00H, 00H, 40H, 80H, 42H, 40H, 42H, 20H
DB	 42H, 10H, 42H, 08H, 42H, 06H,0feH, 01H
DB	 042H, 02H, 42H, 04H, 42H, 08H, 42H, 10H
DB	 42H, 30H, 42H,060H, 40H, 20H, 00H, 00H

BBS2:
;煌
DB	 80H, 40H, 70H, 20H, 00H, 10H,0ffH, 0fH
DB	 10H, 50H, 08H, 61H, 7cH, 49H, 54H, 49H
DB	 56H, 49H, 55H, 7fH, 54H, 49H, 54H, 4dH
DB	 7eH, 49H, 04H, 61H, 00H, 40H, 00H, 00H
BBS3:
;科
DB	 24H, 10H, 24H, 08H, 24H, 06H,0a4H, 01H
DB	0feH,0ffH,0a3H, 00H, 22H, 01H, 00H, 02H
DB	 24H, 02H, 48H, 02H, 00H, 02H,0ffH,0ffH
DB	 00H, 01H, 80H, 01H, 00H, 01H, 00H, 00H
BBS4:
;技
DB	 10H, 04H, 10H, 44H, 10H, 82H,0ffH, 7fH
DB	 10H, 01H, 10H, 80H, 88H, 81H, 88H, 46H
DB	 88H, 28H,0ffH, 10H, 88H, 28H, 88H, 26H
DB	 8cH, 41H, 08H,0c0H, 00H, 40H, 00H, 00H
BBS5:
;实
DB	 10H, 02H, 0cH, 82H, 04H, 82H, 44H, 42H
DB	 8cH, 42H, 94H, 23H, 35H, 12H, 06H, 0eH
DB	0f4H, 03H, 04H, 0aH, 04H, 12H, 04H, 22H
DB	 04H, 42H, 14H,0c3H, 0cH, 02H, 00H, 00H
bbs6:
;业
DB	 00H, 40H, 10H, 40H, 60H, 40H, 80H, 47H
DB	 00H, 40H,0ffH, 7fH, 00H, 40H, 00H, 40H
DB	 00H, 40H,0ffH, 7fH, 00H, 44H, 00H, 43H
DB	0c0H, 40H, 30H, 60H, 00H, 40H, 00H, 00H
bbs7:
;有
DB	 000H, 002H,004H,001H,084H,000H,044H,000H
DB       0E4H, 0FFH,034H,009H,02CH,009H,027H,009H
DB	 024H, 029H,024H,049H,024H,0C9H,0E4H,07FH
DB       004H, 000H,004H,000H,004H,000H,000H,000H
bbs8:
;限
DB	 00H, 00H,0feH,0ffH, 02H, 08H, 22H, 10H
DB	0daH, 08H, 06H, 07H, 00H, 00H,0feH,0ffH
DB	 92H, 42H, 92H, 24H, 92H, 08H, 92H, 14H
DB	0ffH, 22H, 02H, 61H, 00H, 20H, 00H, 00H
bbs9:
;公

DB     000H,000H,000H,001H,080H,020H,040H,070H
DB     030H,028H,00EH,024H,084H,023H,000H,031H
DB     000H,010H,00EH,010H,010H,014H,060H,078H
DB     0C0H,030H,080H,001H,080H,000H,000H,000H

bbs10:
;司
DB	 10H, 00H, 10H, 00H, 92H, 3fH, 92H, 10H
DB	 92H, 10H, 92H, 10H, 92H, 10H, 92H, 10H
DB	0d2H, 3fH, 9aH, 00H, 12H, 40H, 02H, 80H
DB	0ffH, 7fH, 02H, 00H, 00H, 00H, 00H, 00H

rst:    ret
        END