以前很少接触过51单片机的汇编编程,因为感觉用C语言编写起来方便直观。直到最近有遇到一个客户是专注汇编的,说需要开发一个OLED模块的汇编显示范例程序,才开始一步一步接触到汇编,一边看书、网上搜索51汇编指令,一边对照着C语言的程序开始着手编写。就这样持续了几天的时间,终于调试成功显示了。就这样慢慢地开始对51汇编也有了一定的了解,学会用汇编写一些子程序,慢慢地欣赏到了汇编编写程序的精妙之处。有人问我,汇编和C语言有什么区别,我说其实就有点像AltiumDesigner的人工布线和自动布线一样.......
汇编编写OLED显示程序最重要的就是底层数据命令传输的函数,底层写好了,要显示什么就方便了,后面的程序就是怎么写让显示得更方便。这里底层函数是用IO口模拟SPI操作时序,方便显示写了一个显示Ascll码的程序,不过有一个问题还没有解决,那就是显示字符串的程序还没有写出来,因为最近在忙一个项目就把程序放一边了,所以这个问题一直没有解决到,有写出来了的朋友或者有想法的朋友希望可以留言下您的方法或者想法,谢谢
下面附上程序:(需要工程文件的可以到这里下载:http://download.csdn.net/detail/u011392666/8611749)
</pre><pre name="code" class="plain">
;/*****************OLED屏汇编驱动显示*****************/
;/*****************迷梦数码科技***********************/
;/**********xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx***********/
;/**********程序编写:7426笨蛋************************/
;/**********编写日期:2015年4月***********************/
SCLK EQU P3.2
RST EQU P3.4
SDAT EQU P3.3
DC EQU P3.5
TMP1 EQU 30H ;定义一些位置存放数据,方便程序编写模块化
PAGETMP EQU 31H
PAGEIN EQU 32H ;Y坐标
WR_NUM EQU 33H
TMP_DPL EQU 34H
TMP_DPH EQU 35H
CHANGEX EQU 36H ;X坐标
;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 000H
LJMP MAIN
ORG 100H
;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN:
CALL OLEDINIT ;OLED初始化
CALL OLEDCLS ;OLED清屏
MOV CHANGEX,#000H ;设置初始坐标为0,0
MOV PAGEIN,#000H
CALL C_XY ;设置要显示的位置坐标子程序
;CALL DISPLAY_CHAR ;显示字符
CALL DISPLAY_MM ;OLED显示MM Digital “略麻烦,待修改”
AJMP $
OLEDINIT:
SETB SCLK ;初始化IO口
SETB SDAT
SETB RST
NOP
NOP
NOP
NOP
NOP
CLR RST ;RST脚低电平复位OLED,需要持续一定时间
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
SETB RST ;复位完成后拉高RST脚
MOV A,#0AEH ;--turn off oled panel"关闭led面板
LCALL COMMAND
MOV A,#00H ;--set low column address设置低列地址
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#010H ;--set high column address设置高列地址
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#040H ;--set start line address设置起始地址线
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#081H ;--set contrast control register设置对比度控制寄存器/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0CFH ;Set SEG Output Current Brightness设置亮度控制寄存器
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A1H ;--Set SEG/Column Mapping 0xa0左右反置 0xa1正常
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0C8H ;Set COM/Row Scan Direction 0xc0上下反置 0xc8正常
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A6H ;--set normal display
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A8H ;set multiplex ratio(1 to 64)设置多路复用
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#03FH ;--1/64 duty
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D3H ;-set display offset Shift Mapping RAM Counter设置显示的偏移映射内存计数器 (0x00~0x3F)
LCALL COMMAND
MOV A,#000H ;-not offset取消偏移补偿
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D5H ;--set display clock divide ratio/oscillator frequency设置显示时钟分频比/振荡器频率
LCALL COMMAND
MOV A,#080H ;--set divide ratio, Set Clock as 100 Frames/Sec设置分离比例,时钟设置为100帧/秒
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D9H ;--set pre-charge period预充电时间
LCALL COMMAND
MOV A,#0F1H ;Set Pre-Charge as 15 Clocks & Discharge as 1 Clock预充电15钟及放电1时钟
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0DAH ;--set com pins hardware configurationCOM引脚设置硬件配置
LCALL COMMAND
MOV A,#012H
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0DBH ;--set vcomh设置VCOM电平
LCALL COMMAND
MOV A,#040H ;Set VCOM Deselect Level取消设置VCOM电平
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#020H ;//-Set Page Addressing Mode (0x00/0x01/0x02)设置页面寻址模式(0x00 /头/ 0x02)
LCALL COMMAND
MOV A,#002H
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#08DH ;--set Charge Pump enable/disable设置电荷泵启用/禁用
LCALL COMMAND
MOV A,#014H ;--set(0x10) 设为0x10失能
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A4H ;Disable Entire Display On (0xa4/0xa5)禁用整个显示
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A6H ;Disable Inverse Display On (0xa6/a7) 禁用反显示
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0AFH ;;--turn on oled panel打开led面板
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RET
COMMAND:
CLR DC ;DC=LOW 发送命令
CALL SENDDB ;调用串行发送子程序
RET
SENDDATA:
SETB DC
CALL SENDDB
;MOV A,#0E3H /*NOP COMMAND*/
;CALL COMMAND
RET
SENDDB:
MOV TMP1,#008H ;LOOP循环次数
;CLR SCLK ;预先拉低
LOOP8: ;串行发送子程序
RLC A ;A循环左移
MOV SDAT,C ;根据A循环左移产生进位是否来决定SDA脚的高低电平达到发送数据的目的
CLR SCLK ;SCLK上升沿读取数据
NOP
NOP
NOP
NOP
NOP
SETB SCLK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ TMP1,LOOP8 ;循环8次按高位发送
RET
OLEDCLS:
MOV PAGETMP,#0B7H ;PAGE 7
PAGELOOP:
MOV A,PAGETMP
CALL COMMAND
MOV A,#001H
CALL COMMAND
MOV A,#010H
CALL COMMAND
MOV R0,#80H ;内循环次数,128次
CLSLOOP:MOV A,#000H ;写数据0;
CALL SENDDATA
DJNZ R0,CLSLOOP ;内循环按列写数据
DEC PAGETMP ;页(行)数自减
MOV A,PAGETMP
CJNE A,#0AFH,PAGELOOP ;外循环,写第6.5.4.3.2.1.0行
RET
C_XY: ;设置显示位置坐标子程序
MOV A,PAGEIN ;写设置Y坐标命令
ADD A,#0B0H ;加Y坐标原始命令
CALL COMMAND
MOV A,CHANGEX ;写设置X坐标命令
SWAP A ;高四位和第四位调换
ANL A,#00FH ;&0x0f取出之前变换到低位的高四位数据
ADD A,#010H ;加上X坐标原始命令
CALL COMMAND
MOV A,CHANGEX ;发送位置坐标低四位
ANL A,#00FH
CALL COMMAND
RET
WRDB: ;写数据表的数据来显示子程序
MOV R0,WR_NUM
LOOP_WRDB:
CLR A
MOVC A,@A+DPTR
CALL SENDDATA
INC DPTR ;
DJNZ R0,LOOP_WRDB
RET
DISPLAY_CHAR: ;OLED显示8*16的字符
MOV CHANGEX,#00
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*20 ;20代表显示第几个字符
MOV WR_NUM,#8 ;显示前8个数据
CALL WRDB
MOV PAGEIN,#3 ;Y坐标加1
CALL C_XY
MOV DPTR,#ASCLL+8+16*20 ;继续显示后8个数据
MOV WR_NUM,#8
CALL WRDB
RET
DISPLAY_MM: ;OLED显示MM Digital “略麻烦,待修改”
MOV CHANGEX,#00
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*45
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*45
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#08
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*45
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*45
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#16
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*0
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*0
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#24
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*36
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*36
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#32
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*73
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*73
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#40
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*71
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*71
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#48
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*73
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*73
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#56
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*84
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*84
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#64
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*65
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*65
MOV WR_NUM,#8
CALL WRDB
MOV CHANGEX,#72
MOV PAGEIN,#2
CALL C_XY
MOV DPTR,#ASCLL+16*76
MOV WR_NUM,#8
CALL WRDB
MOV PAGEIN,#3
CALL C_XY
MOV DPTR,#ASCLL+8+16*76
MOV WR_NUM,#8
CALL WRDB
RET
ASCLL: ;取模方式:列行式,阴码,逆向
;注意取模格式,数据前缀应加“,0”取完后可以用记事本的替换工具去掉DB后面的“,”
;替换方法,把取到的字模复制到Windows的记事本,按Ctrl+H,把“DB ,”替换成“DB ”
DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H;" ",0
DB 000H ,000H ,000H ,0F8H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,033H ,030H ,000H ,000H ,000H;"!",1
DB 000H ,010H ,00CH ,006H ,010H ,00CH ,006H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H;""",2
DB 040H ,0C0H ,078H ,040H ,0C0H ,078H ,040H ,000H ,004H ,03FH ,004H ,004H ,03FH ,004H ,004H ,000H;"#",3
DB 000H ,070H ,088H ,0FCH ,008H ,030H ,000H ,000H ,000H ,018H ,020H ,0FFH ,021H ,01EH ,000H ,000H;"$",4
DB 0F0H ,008H ,0F0H ,000H ,0E0H ,018H ,000H ,000H ,000H ,021H ,01CH ,003H ,01EH ,021H ,01EH ,000H;"%",5
DB 000H ,0F0H ,008H ,088H ,070H ,000H ,000H ,000H ,01EH ,021H ,023H ,024H ,019H ,027H ,021H ,010H;"&",6
DB 010H ,016H ,00EH ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H;"'",7
DB 000H ,000H ,000H ,0E0H ,018H ,004H ,002H ,000H ,000H ,000H ,000H ,007H ,018H ,020H ,040H ,000H;"(",8
DB 000H ,002H ,004H ,018H ,0E0H ,000H ,000H ,000H ,000H ,040H ,020H ,018H ,007H ,000H ,000H ,000H;")",9
DB 040H ,040H ,080H ,0F0H ,080H ,040H ,040H ,000H ,002H ,002H ,001H ,00FH ,001H ,002H ,002H ,000H;"*",10
DB 000H ,000H ,000H ,0F0H ,000H ,000H ,000H ,000H ,001H ,001H ,001H ,01FH ,001H ,001H ,001H ,000H;"+",11
DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,080H ,0B0H ,070H ,000H ,000H ,000H ,000H ,000H;",",12
DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,001H ,001H ,001H ,001H ,001H ,001H ,001H;"-",13
DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,030H ,030H ,000H ,000H ,000H ,000H ,000H;".",14
DB 000H ,000H ,000H ,000H ,080H ,060H ,018H ,004H ,000H ,060H ,018H ,006H ,001H ,000H ,000H ,000H;"/",15
DB 000H ,0E0H ,010H ,008H ,008H ,010H ,0E0H ,000H ,000H ,00FH ,010H ,020H ,020H ,010H ,00FH ,000H;"0",16
DB 000H ,010H ,010H ,0F8H ,000H ,000H ,000H ,000H ,000H ,020H ,020H ,03FH ,020H ,020H ,000H ,000H;"1",17
DB 000H ,070H ,008H ,008H ,008H ,088H ,070H ,000H ,000H ,030H ,028H ,024H ,022H ,021H ,030H ,000H;"2",18
DB 000H ,030H ,008H ,088H ,088H ,048H ,030H ,000H ,000H ,018H ,020H ,020H ,020H ,011H ,00EH ,000H;"3",19
DB 000H ,000H ,0C0H ,020H ,010H ,0F8H ,000H ,000H ,000H ,007H ,004H ,024H ,024H ,03FH ,024H ,000H;"4",20
DB 000H ,0F8H ,008H ,088H ,088H ,008H ,008H ,000H ,000H ,019H ,021H ,020H ,020H ,011H ,00EH ,000H;"5",21
DB 000H ,0E0H ,010H ,088H ,088H ,018H ,000H ,000H ,000H ,00FH ,011H ,020H ,020H ,011H ,00EH ,000H;"6",22
DB 000H ,038H ,008H ,008H ,0C8H ,038H ,008H ,000H ,000H ,000H ,000H ,03FH ,000H ,000H ,000H ,000H;"7",23
DB 000H ,070H ,088H ,008H ,008H ,088H ,070H ,000H ,000H ,01CH ,022H ,021H ,021H ,022H ,01CH ,000H;"8",24
DB 000H ,0E0H ,010H ,008H ,008H ,010H ,0E0H ,000H ,000H ,000H ,031H ,022H ,022H ,011H ,00FH ,000H;"9",25
DB 000H ,000H ,000H ,0C0H ,0C0H ,000H ,000H ,000H ,000H ,000H ,000H ,030H ,030H ,000H ,000H ,000H;":",26
DB 000H ,000H ,000H ,080H ,000H ,000H ,000H ,000H ,000H ,000H ,080H ,060H ,000H ,000H ,000H ,000H;";",27
DB 000H ,000H ,080H ,040H ,020H ,010H ,008H ,000H ,000H ,001H ,002H ,004H ,008H ,010H ,020H ,000H;"<",28
DB 040H ,040H ,040H ,040H ,040H ,040H ,040H ,000H ,004H ,004H ,004H ,004H ,004H ,004H ,004H ,000H;"=",29
DB 000H ,008H ,010H ,020H ,040H ,080H ,000H ,000H ,000H ,020H ,010H ,008H ,004H ,002H ,001H ,000H;">",30
DB 000H ,070H ,048H ,008H ,008H ,008H ,0F0H ,000H ,000H ,000H ,000H ,030H ,036H ,001H ,000H ,000H;"?",31
DB 0C0H ,030H ,0C8H ,028H ,0E8H ,010H ,0E0H ,000H ,007H ,018H ,027H ,024H ,023H ,014H ,00BH ,000H;"@",32
DB 000H ,000H ,0C0H ,038H ,0E0H ,000H ,000H ,000H ,020H ,03CH ,023H ,002H ,002H ,027H ,038H ,020H;"A",33
DB 008H ,0F8H ,088H ,088H ,088H ,070H ,000H ,000H ,020H ,03FH ,020H ,020H ,020H ,011H ,00EH ,000H;"B",34
DB 0C0H ,030H ,008H ,008H ,008H ,008H ,038H ,000H ,007H ,018H ,020H ,020H ,020H ,010H ,008H ,000H;"C",35
DB 008H ,0F8H ,008H ,008H ,008H ,010H ,0E0H ,000H ,020H ,03FH ,020H ,020H ,020H ,010H ,00FH ,000H;"D",36
DB 008H ,0F8H ,088H ,088H ,0E8H ,008H ,010H ,000H ,020H ,03FH ,020H ,020H ,023H ,020H ,018H ,000H;"E",37
DB 008H ,0F8H ,088H ,088H ,0E8H ,008H ,010H ,000H ,020H ,03FH ,020H ,000H ,003H ,000H ,000H ,000H;"F",38
DB 0C0H ,030H ,008H ,008H ,008H ,038H ,000H ,000H ,007H ,018H ,020H ,020H ,022H ,01EH ,002H ,000H;"G",39
DB 008H ,0F8H ,008H ,000H ,000H ,008H ,0F8H ,008H ,020H ,03FH ,021H ,001H ,001H ,021H ,03FH ,020H;"H",40
DB 000H ,008H ,008H ,0F8H ,008H ,008H ,000H ,000H ,000H ,020H ,020H ,03FH ,020H ,020H ,000H ,000H;"I",41
DB 000H ,000H ,008H ,008H ,0F8H ,008H ,008H ,000H ,0C0H ,080H ,080H ,080H ,07FH ,000H ,000H ,000H;"J",42
DB 008H ,0F8H ,088H ,0C0H ,028H ,018H ,008H ,000H ,020H ,03FH ,020H ,001H ,026H ,038H ,020H ,000H;"K",43
DB 008H ,0F8H ,008H ,000H ,000H ,000H ,000H ,000H ,020H ,03FH ,020H ,020H ,020H ,020H ,030H ,000H;"L",44
DB 008H ,0F8H ,0F8H ,000H ,0F8H ,0F8H ,008H ,000H ,020H ,03FH ,000H ,03FH ,000H ,03FH ,020H ,000H;"M",45
DB 008H ,0F8H ,030H ,0C0H ,000H ,008H ,0F8H ,008H ,020H ,03FH ,020H ,000H ,007H ,018H ,03FH ,000H;"N",46
DB 0E0H ,010H ,008H ,008H ,008H ,010H ,0E0H ,000H ,00FH ,010H ,020H ,020H ,020H ,010H ,00FH ,000H;"O",47
DB 008H ,0F8H ,008H ,008H ,008H ,008H ,0F0H ,000H ,020H ,03FH ,021H ,001H ,001H ,001H ,000H ,000H;"P",48
DB 0E0H ,010H ,008H ,008H ,008H ,010H ,0E0H ,000H ,00FH ,018H ,024H ,024H ,038H ,050H ,04FH ,000H;"Q",49
DB 008H ,0F8H ,088H ,088H ,088H ,088H ,070H ,000H ,020H ,03FH ,020H ,000H ,003H ,00CH ,030H ,020H;"R",50
DB 000H ,070H ,088H ,008H ,008H ,008H ,038H ,000H ,000H ,038H ,020H ,021H ,021H ,022H ,01CH ,000H;"S",51
DB 018H ,008H ,008H ,0F8H ,008H ,008H ,018H ,000H ,000H ,000H ,020H ,03FH ,020H ,000H ,000H ,000H;"T",52
DB 008H ,0F8H ,008H ,000H ,000H ,008H ,0F8H ,008H ,000H ,01FH ,020H ,020H ,020H ,020H ,01FH ,000H;"U",53
DB 008H ,078H ,088H ,000H ,000H ,0C8H ,038H ,008H ,000H ,000H ,007H ,038H ,00EH ,001H ,000H ,000H;"V",54
DB 0F8H ,008H ,000H ,0F8H ,000H ,008H ,0F8H ,000H ,003H ,03CH ,007H ,000H ,007H ,03CH ,003H ,000H;"W",55
DB 008H ,018H ,068H ,080H ,080H ,068H ,018H ,008H ,020H ,030H ,02CH ,003H ,003H ,02CH ,030H ,020H;"X",56
DB 008H ,038H ,0C8H ,000H ,0C8H ,038H ,008H ,000H ,000H ,000H ,020H ,03FH ,020H ,000H ,000H ,000H;"Y",57
DB 010H ,008H ,008H ,008H ,0C8H ,038H ,008H ,000H ,020H ,038H ,026H ,021H ,020H ,020H ,018H ,000H;"Z",58
DB 000H ,000H ,000H ,0FEH ,002H ,002H ,002H ,000H ,000H ,000H ,000H ,07FH ,040H ,040H ,040H ,000H;"[",59
DB 000H ,00CH ,030H ,0C0H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,001H ,006H ,038H ,0C0H ,000H;"\",60
DB 000H ,002H ,002H ,002H ,0FEH ,000H ,000H ,000H ,000H ,040H ,040H ,040H ,07FH ,000H ,000H ,000H;"]",61
DB 000H ,000H ,004H ,002H ,002H ,002H ,004H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H;"^",62
DB 000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,080H ,080H ,080H ,080H ,080H ,080H ,080H ,080H;"_",63
DB 000H ,002H ,002H ,004H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H;"`",64
DB 000H ,000H ,080H ,080H ,080H ,080H ,000H ,000H ,000H ,019H ,024H ,022H ,022H ,022H ,03FH ,020H;"a",65
DB 008H ,0F8H ,000H ,080H ,080H ,000H ,000H ,000H ,000H ,03FH ,011H ,020H ,020H ,011H ,00EH ,000H;"b",66
DB 000H ,000H ,000H ,080H ,080H ,080H ,000H ,000H ,000H ,00EH ,011H ,020H ,020H ,020H ,011H ,000H;"c",67
DB 000H ,000H ,000H ,080H ,080H ,088H ,0F8H ,000H ,000H ,00EH ,011H ,020H ,020H ,010H ,03FH ,020H;"d",68
DB 000H ,000H ,080H ,080H ,080H ,080H ,000H ,000H ,000H ,01FH ,022H ,022H ,022H ,022H ,013H ,000H;"e",69
DB 000H ,080H ,080H ,0F0H ,088H ,088H ,088H ,018H ,000H ,020H ,020H ,03FH ,020H ,020H ,000H ,000H;"f",70
DB 000H ,000H ,080H ,080H ,080H ,080H ,080H ,000H ,000H ,06BH ,094H ,094H ,094H ,093H ,060H ,000H;"g",71
DB 008H ,0F8H ,000H ,080H ,080H ,080H ,000H ,000H ,020H ,03FH ,021H ,000H ,000H ,020H ,03FH ,020H;"h",72
DB 000H ,080H ,098H ,098H ,000H ,000H ,000H ,000H ,000H ,020H ,020H ,03FH ,020H ,020H ,000H ,000H;"i",73
DB 000H ,000H ,000H ,080H ,098H ,098H ,000H ,000H ,000H ,0C0H ,080H ,080H ,080H ,07FH ,000H ,000H;"j",74
DB 008H ,0F8H ,000H ,000H ,080H ,080H ,080H ,000H ,020H ,03FH ,024H ,002H ,02DH ,030H ,020H ,000H;"k",75
DB 000H ,008H ,008H ,0F8H ,000H ,000H ,000H ,000H ,000H ,020H ,020H ,03FH ,020H ,020H ,000H ,000H;"l",76
DB 080H ,080H ,080H ,080H ,080H ,080H ,080H ,000H ,020H ,03FH ,020H ,000H ,03FH ,020H ,000H ,03FH;"m",77
DB 080H ,080H ,000H ,080H ,080H ,080H ,000H ,000H ,020H ,03FH ,021H ,000H ,000H ,020H ,03FH ,020H;"n",78
DB 000H ,000H ,080H ,080H ,080H ,080H ,000H ,000H ,000H ,01FH ,020H ,020H ,020H ,020H ,01FH ,000H;"o",79
DB 080H ,080H ,000H ,080H ,080H ,000H ,000H ,000H ,080H ,0FFH ,0A1H ,020H ,020H ,011H ,00EH ,000H;"p",80
DB 000H ,000H ,000H ,080H ,080H ,080H ,080H ,000H ,000H ,00EH ,011H ,020H ,020H ,0A0H ,0FFH ,080H;"q",81
DB 080H ,080H ,080H ,000H ,080H ,080H ,080H ,000H ,020H ,020H ,03FH ,021H ,020H ,000H ,001H ,000H;"r",82
DB 000H ,000H ,080H ,080H ,080H ,080H ,080H ,000H ,000H ,033H ,024H ,024H ,024H ,024H ,019H ,000H;"s",83
DB 000H ,080H ,080H ,0E0H ,080H ,080H ,000H ,000H ,000H ,000H ,000H ,01FH ,020H ,020H ,000H ,000H;"t",84
DB 080H ,080H ,000H ,000H ,000H ,080H ,080H ,000H ,000H ,01FH ,020H ,020H ,020H ,010H ,03FH ,020H;"u",85
DB 080H ,080H ,080H ,000H ,000H ,080H ,080H ,080H ,000H ,001H ,00EH ,030H ,008H ,006H ,001H ,000H;"v",86
DB 080H ,080H ,000H ,080H ,000H ,080H ,080H ,080H ,00FH ,030H ,00CH ,003H ,00CH ,030H ,00FH ,000H;"w",87
DB 000H ,080H ,080H ,000H ,080H ,080H ,080H ,000H ,000H ,020H ,031H ,02EH ,00EH ,031H ,020H ,000H;"x",88
DB 080H ,080H ,080H ,000H ,000H ,080H ,080H ,080H ,080H ,081H ,08EH ,070H ,018H ,006H ,001H ,000H;"y",89
DB 000H ,080H ,080H ,080H ,080H ,080H ,080H ,000H ,000H ,021H ,030H ,02CH ,022H ,021H ,030H ,000H;"z",90
DB 000H ,000H ,000H ,000H ,080H ,07CH ,002H ,002H ,000H ,000H ,000H ,000H ,000H ,03FH ,040H ,040H;"{",91
DB 000H ,000H ,000H ,000H ,0FFH ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,0FFH ,000H ,000H ,000H;"|",92
DB 000H ,002H ,002H ,07CH ,080H ,000H ,000H ,000H ,000H ,040H ,040H ,03FH ,000H ,000H ,000H ,000H;"}",93
DB 000H ,006H ,001H ,001H ,002H ,002H ,004H ,004H ,000H ,000H ,000H ,000H ,000H ,000H ,000H ,000H;"~",94
END