ocm12864液晶显示源程序汇编程序.docx
《ocm12864液晶显示源程序汇编程序.docx》由会员分享,可在线阅读,更多相关《ocm12864液晶显示源程序汇编程序.docx(24页珍藏版)》请在冰豆网上搜索。
ocm12864液晶显示源程序汇编程序
12864液晶显示源程序汇编程序
;12864液晶显示源程序全部程序如下:
;============================
COMEQU20H
LINEEQU31H
DATEQU21H
COLUMNEQU30H
PAGE0EQU31H
CODE0EQU32H
COUNTEQU33H
CSAEQUP3.2;15
CSBEQUP3.4;16
D_IEQUP3.7;4
R_WEQUP3.6;5
EEQUP3.5;6
;=================================================
;中文演示程序段
ORG0000H
AJMPMAIN
ORG20H
MAIN:
MOVSP,#60H
ACALLINT;初始化子程序
ACALLDELAY;延时子程序
ACALLCLEAR;清屏子程序
;==============================================
;第一页第一行第1~2汉字显示
;==================
MOVR1,#50H;x坐标
MOVR2,#0;计数器初始化(汉字数)
YS_1:
MOVPAGE0,#02H;y坐标
MOVCOLUMN,R1
MOVCODE0,R2
ACALLCCW_PR;中文字符写入子程序
ACALLDELAY;延时程序
ACALLDELAY;延时程序
MOVA,R1
ADDA,#10H;两汉字间间隔距离(16象素点)
MOVR1,A
INCR2
CJNER2,#3,YS_1;屏蔽后将让第2字不显示
CALLDELAY;延时程序
CALLDELAY;延时程序
;=========================================
;第一页第一行第3~5汉字显示
;=============
MOVR1,#80H
MOVR2,#3
YS_2:
MOVPAGE0,#02H
MOVCOLUMN,R1
MOVCODE0,R2
ACALLCCW_PR
ACALLDELAY
ACALLDELAY
MOVA,R1
ADDA,#10H
MOVR1,A
INCR2
CJNER2,#05,YS_2;屏蔽后让4~5字不显示
;=========================================
;第一页第二行汉字显示
;===============
MOVR1,#50H
MOVR2,#5
YS_3:
MOVPAGE0,#04H
MOVCOLUMN,R1
MOVCODE0,R2
ACALLCCW_PR
ACALLDELAY
ACALLDELAY
MOVA,R1
ADDA,#10H
MOVR1,A
INCR2
CJNER2,#11,YS_3
;ACALLDELAY10
;============================================
;第一页第三行显示
;====================
MOVR1,#50H
MOVR2,#11
YS_4:
MOVPAGE0,#06H
MOVCOLUMN,R1
MOVCODE0,R2
ACALLCCW_PR
ACALLDELAY
ACALLDELAY
MOVA,R1
ADDA,#10H
MOVR1,A
INCR2
CJNER2,#15,YS_4
ACALLDELAY10
ACALLDELAY10
ACALLDELAY10
ACALLDELAY10
ACALLCLEAR
;==============================================
;第二页第一行显示
;==================
MOVR1,#60H
MOVR2,#15
YS_5:
MOVPAGE0,#02H
MOVCOLUMN,R1
MOVCODE0,R2
ACALLCCW_PR
ACALLDELAY
ACALLDELAY
MOVA,R1
ADDA,#10H
MOVR1,A
INCR2
CJNER2,#19,YS_5
;=============================================
;第二页第二行显示
;=====================
MOVR1,#50H
MOVR2,#19
YS_6:
MOVPAGE0,#04H
MOVCOLUMN,R1
MOVCODE0,R2
ACALLCCW_PR
ACALLDELAY
ACALLDELAY
MOVA,R1
ADDA,#10H
MOVR1,A
INCR2
CJNER2,#25,YS_6
;==============================================
ACALLDELAY10
ACALLDELAY10
ACALLDELAY10
ACALLDELAY10
ACALLCLEAR
ACALLDELAY10
;=============================================
;第三页显示
;====================
MOVR1,#50H
MOVR2,#25
YS_7:
MOVPAGE0,#02H
MOVCOLUMN,R1
MOVCODE0,R2
ACALLCCW_PR
ACALLDELAY
ACALLDELAY
MOVA,R1
ADDA,#10H
MOVR1,A
INCR2
CJNER2,#31,YS_7
;==============================================
ACALLDELAY10
ACALLDELAY10
ACALLDELAY10
ACALLDELAY10
ACALLCLEAR
ACALLDELAY10
AJMPMAIN
;===============================================
;延时子程序
DELAY:
PUSH00
PUSH01
MOVR0,#0FFH
DELAY1:
MOVR1,#0FFH
DELAY2:
DJNZR1,DELAY2
DJNZR0,DELAY1
POP01
POP00
RET
DELAY10:
MOVR4,#06H
DELAY11:
ACALLDELAY
DJNZR4,DELAY11
RET
;==============================================
;中文字符写入子程序
CCW_PR:
NOP
MOVDPTR,#CCTAB;表地址写入
MOVA,CODE0;计数器初始化(汉字数)
MOVB,#20H;32
MULAB
ADDA,DPL
MOVDPL,A
MOVA,B
ADDCA,DPH
MOVDPH,A
PUSHCOLUMN
PUSHCOLUMN
MOVCODE0,#00H
CCW_1:
MOVCOUNT,#10H;16
MOVA,PAGE0
ANLA,#07H
ORLA,#0B8H
MOVCOM,A
ACALLPRM0;写指令代码子程序(左)
ACALLPRR0;写指令代码子程序(右)
POPCOLUMN
MOVA,COLUMN
CLRC
SUBBA,#40H
JCCCW_2
MOVCOLUMN,A
SUBBA,#40H
JCCCW_11
MOVCOLUMN,A
MOVA,PAGE0
SETBACC.5
MOVPAGE0,A
LJMPCCW_2
CCW_11:
MOVA,PAGE0
SETBACC.4
MOVPAGE0,A
CCW_2:
MOVCOM,COLUMN
ORLCOM,#40H
MOVA,PAGE0
ANLA,#30H
CJNEA,#10H,CCW_31
ACALLPRM0;写指令代码子程序(左)
LJMPCCW_4
CCW_31:
CJNEA,#20H,CCW_32
ACALLPRR0;写指令代码子程序(右)
LJMPCCW_4
CCW_32:
NOP
CCW_4:
MOVA,CODE0
MOVCA,@A+DPTR
MOVDAT,A
MOVA,PAGE0
ANLA,#30H
CJNEA,#10H,CCW_41
ACALLPRM1
LJMPCCW_5
CCW_41:
CJNEA,#20H,CCW_42
ACALLPRR1
LJMPCCW_5
CCW_42:
NOP
CCW_5:
INCCODE0
INCCOLUMN
MOVA,COLUMN
CJNEA,#40H,CCW_6
CCW_6:
JCCCW_7
MOVCOLUMN,#00H
MOVA,PAGE0
JBACC.5,CCW_09
JBACC.4,CCW_61
SETBACC.4
MOVPAGE0,A
MOVCOM,#40H
ACALLPRM0;写指令代码子程序(左)
LJMPCCW_7
CCW_61:
SETBACC.5
CLRACC.4
MOVPAGE0,A
MOVCOM,#40H
ACALLPRR0;写指令代码子程序(右)
CCW_7:
DJNZCOUNT,CCW_4
CCW_09:
MOVA,PAGE0
JBACC.7,CCW_9
INCA
SETBACC.7
ANLA,#0CFH
MOVPAGE0,A
MOVCODE0,#10H
LJMPCCW_1
CCW_9:
RET
;=================================================
PRL0:
NOP
RET
PRL1:
NOP
RET
PRL2:
NOP
RET
;=============================
;写指令代码子程序(左)
PRM0:
CLRCSA
SETBCSB
CLRD_I
SETBR_W
PRM01:
MOVP0,#0FFH
SETBE
MOVA,P0
CLRE
JBACC.7,PRM01
CLRR_W
MOVP0,COM
SETBE
CLRE
RET
;===============================
;写显示数据子程序(左)
PRM1:
CLRCSA
SETBCSB
CLRD_I
SETBR_W
PRM11:
MOVP1,#0FFH
SETBE
MOVA,P0
CLRE
JBACC.7,PRM11
SETBD_I
CLRR_W
MOVP0,DAT
SETBE
CLRE
RET
;=============================
;写指令代码子程序(右)
PRR0:
CLRCSB
SETBCSA
CLRD_I
SETBR_W
PRR01:
MOVP1,#0FFH
SETBE
MOVA,P0
CLRE
JBACC.7,PRR01
CLRR_W
MOVP0,COM
SETBE
CLRE
RET
;===============================
;写显示数据子程序(右)
PRR1:
CLRCSB
SETBCSA
CLRD_I
SETBR_W
PRR11:
MOVP1,#0FFH
SETBE
MOVA,P0
CLRE
JBACC.7,PRR11
SETBD_I
CLRR_W
MOVP0,DAT
SETBE
CLRE
RET
;=============================
;================================
;初始化子程序
INT:
MOVCOM,#0C0H;设置显示起始行为第一行
ACALLPRM0
ACALLPRR0
MOVCOM,#3FH;开显示设置
ACALLPRM0
ACALLPRR0
RET
;================================
;清屏子程序
CLEAR:
MOVR4,#00H
CLEAR1:
MOVA,R4
ORLA,#0B8H
MOVCOM,A
ACALLPRM0
ACALLPRR0
MOVCOM,#40H
ACALLPRM0
ACALLPRR0
MOVR3,#40H
CLEAR2:
MOVDAT,#00H
ACALLPRM1
ACALLPRR1
DJNZR3,CLEAR2
INCR4
CJNER4,#08H,CLEAR1
RET
;=================================
CCTAB:
;0
;--文字:
重--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB08H,08H,0AH,0EAH,0AAH,0AAH,0AAH,0FFH,0A9H,0A9H,0A9H,0E9H,08H,08H,08H,00H
DB40H,40H,48H,4BH,4AH,4AH,4AH,7FH,4AH,4AH,4AH,4BH,48H,40H,40H,00H
;--宋体12;此字体下对应的点阵为:
宽x高=8x16--
;1
;--文字:
庆--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,00H,0FCH,44H,44H,44H,44H,0C5H,7EH,0C4H,44H,44H,44H,44H,44H,00H
DB40H,30H,0FH,40H,20H,10H,0CH,03H,00H,01H,06H,18H,30H,60H,20H,00H
;2
;--文字:
市--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB04H,04H,04H,0E4H,24H,24H,25H,0FEH,24H,24H,24H,24H,0E4H,04H,04H,00H
DB00H,00H,00H,3FH,00H,00H,00H,0FFH,00H,00H,10H,20H,1FH,00H,00H,00H
;3
;--文字:
黔--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB0BEH,0AAH,0B2H,0FEH,0B2H,0AAH,0BEH,20H,10H,48H,87H,08H,10H,20H,20H,00H
DB44H,34H,0CH,33H,0AH,32H,0AH,30H,02H,02H,43H,32H,0EH,02H,00H,00H
;--文字:
江--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB10H,60H,01H,0C6H,30H,00H,04H,04H,04H,0FCH,04H,04H,04H,04H,00H,00H
DB04H,04H,7EH,01H,20H,20H,20H,20H,20H,3FH,20H,20H,20H,20H,20H,00H
;--文字:
乌--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,00H,00H,0FEH,04H,04H,06H,05H,44H,84H,7EH,04H,00H,00H,00H,00H
DB00H,08H,08H,09H,09H,09H,09H,09H,09H,09H,29H,49H,81H,7FH,00H,00H
;--文字:
江--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB10H,60H,01H,0C6H,30H,00H,04H,04H,04H,0FCH,04H,04H,04H,04H,00H,00H
DB04H,04H,7EH,01H,20H,20H,20H,20H,20H,3FH,20H,20H,20H,20H,20H,00H
;--文字:
电--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,00H,0F8H,48H,48H,48H,48H,0FFH,48H,48H,48H,48H,0F8H,00H,00H,00H
DB00H,00H,0FH,04H,04H,04H,04H,3FH,44H,44H,44H,44H,4FH,40H,70H,00H
;--文字:
力--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,10H,10H,10H,10H,10H,10H,0FFH,10H,10H,10H,10H,10H,0F0H,00H,00H
DB00H,00H,80H,40H,20H,18H,06H,01H,00H,00H,40H,80H,40H,3FH,00H,00H
;--文字:
集--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,10H,08H,0FCH,57H,54H,54H,54H,0FDH,56H,54H,54H,54H,00H,00H,00H
DB00H,44H,44H,25H,25H,15H,0DH,0FFH,05H,0DH,15H,25H,65H,25H,04H,00H
;--文字:
团--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,0FEH,02H,12H,12H,12H,92H,72H,0FEH,12H,12H,12H,02H,0FEH,00H,00H
DB00H,0FFH,48H,44H,42H,41H,50H,60H,5FH,40H,40H,40H,40H,0FFH,00H,00H
;--文字:
调--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB20H,21H,0EEH,04H,00H,00H,0FFH,29H,0A9H,0BFH,0A9H,0A9H,01H,0FFH,00H,00H
DB00H,00H,1FH,88H,44H,30H,0FH,00H,0FH,04H,04H,4FH,80H,7FH,00H,00H
;--文字:
度--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,00H,0FCH,04H,24H,24H,0FCH,0A5H,0A6H,0A4H,0FCH,24H,24H,24H,04H,00H
DB80H,60H,1FH,80H,80H,42H,46H,2AH,12H,12H,2AH,26H,42H,0C0H,40H,00H
;--文字:
中--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,00H,0FCH,08H,08H,08H,08H,0FFH,08H,08H,08H,08H,0FCH,08H,00H,00H
DB00H,00H,07H,02H,02H,02H,02H,0FFH,02H,02H,02H,02H,07H,00H,00H,00H
;--文字:
心--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,80H,00H,00H,0F0H,00H,01H,02H,1CH,08H,00H,40H,80H,00H,00H,00H
DB04H,03H,00H,00H,3FH,40H,40H,40H,40H,40H,40H,78H,00H,07H,02H,00H
;--文字:
通--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB40H,41H,0C6H,00H,00H,0F2H,52H,52H,56H,0FAH,5AH,56H,0F2H,00H,00H,00H
DB40H,20H,1FH,20H,40H,5FH,42H,42H,42H,5FH,4AH,52H,4FH,40H,40H,00H
;--文字:
讯--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB20H,21H,2EH,0E4H,00H,42H,42H,0FEH,42H,42H,42H,02H,0FEH,00H,00H,00H
DB00H,00H,00H,7FH,20H,10H,00H,7FH,00H,00H,00H,00H,3FH,40H,38H,00H
;--文字:
自--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,00H,00H,0F8H,48H,48H,4CH,4BH,4AH,48H,48H,48H,0F8H,00H,00H,00H
DB00H,00H,00H,0FFH,44H,44H,44H,44H,44H,44H,44H,44H,0FFH,00H,00H,00H
;--文字:
动--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB20H,24H,24H,0E4H,24H,24H,24H,20H,10H,10H,0FFH,10H,10H,0F0H,00H,00H
DB08H,1CH,0BH,08H,0CH,05H,4EH,24H,10H,0CH,03H,20H,40H,3FH,00H,00H
;--文字:
化--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB80H,40H,20H,0F8H,07H,02H,00H,00H,0FFH,0C0H,60H,30H,1CH,08H,00H,00H
DB00H,00H,00H,7FH,00H,04H,02H,01H,3FH,40H,40H,40H,40H,78H,00H,00H
;--文字:
单--
;--宋体12;此字体下对应的点阵为:
宽x高=16x16--
DB00H,00H,0F8H,28H,29H,2EH,2AH,0F8H,28H,2CH