📄 firsts.asm
字号:
;OCM12864模块测试程序**************************
;完成时间2008.11.28
;制作人:hdzhangx
;**********************************************
D_I EQU P2.0 ;Data or Instrument Select,H:写数据,L:写指令
R_W EQU P2.1 ;Write or Read,H:read,L:write
E EQU P2.7 ;读写使能
CS1 EQU P2.2 ;CS1=H,选择左半屏
CS2 EQU P2.3
;CS2=H,选择右半屏
RESET EQU P2.4 ;Lcm reset,低有效
DISP_X EQU 30H
DISP_Y EQU 31H
DISP_Z EQU 32H
LONG EQU 33H
WIDE EQU 34H
DATA1_WR EQU 35H
DATA2_WR EQU 36H
COUNTER1 EQU 37H
COUNTER2 EQU 38H
COUNTER3 EQU 39H
;**********************************************
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SP,#70H
CLR RESET
NOP
NOP
NOP
SETB RESET
MOV DISP_Z,#0C0H
;*************参数名称*************************
SETB CS1
clr CS2
MOV DISP_X,#0B8H
MOV DISP_Y,#40H
MOV LONG,#30H
MOV WIDE,#02H
MOV DPTR,#para11
LCALL para_DISP
MOV DISP_X,#0BaH
MOV DPTR,#para21
LCALL para_DISP
MOV DISP_X,#0BcH
MOV DPTR,#para31
LCALL para_DISP
MOV DISP_X,#0BeH
MOV DPTR,#para41
LCALL para_DISP
;***********************参数值************
SETB CS2
clr CS1
MOV DISP_X,#0B8H
MOV DISP_Y,#40H
MOV LONG,#08H
MOV WIDE,#02H
lcall paraf
MOV DISP_X,#0BaH
MOV DISP_Y,#40H
lcall paras
MOV DISP_X,#0BcH
MOV DISP_Y,#40H
lcall parat
MOV DISP_X,#0BeH
MOV DISP_Y,#40H
lcall parafr
ljmp main
;*********************12-3********************
;***************第一行参数显示*****************
paraf: mov r7,#06h
mov r0,#50h
loopf: mov a,@r0
numf0: cjne a,#0,numf1
mov dptr,#numtab0
lcall para_disp
;*************************
lcall parazbf
;***********************
inc r0
djnz r7,loopf
ret
numf1: cjne a,#1,numf2
mov dptr,#numtab1
lcall para_disp
;*********************
lcall parazbf
;*********************
inc r0
djnz r7,loopf
ret
numf2: cjne a,#2,numf3
mov dptr,#numtab2
lcall para_disp
;*******************
lcall parazbf
;********************
inc r0
djnz r7,loopf
ret
numf3: cjne a,#3,numf4
mov dptr,#numtab3
lcall para_disp
;********************
lcall parazbf
;********************
inc r0
djnz r7,loopf
ret
numf4: cjne a,#4,numf5
mov dptr,#numtab4
lcall para_disp
;********************
lcall parazbf
;********************
inc r0
djnz r7,loopf1
ret
loopf1: ljmp loopf
numf5: cjne a,#5,numf6
mov dptr,#numtab5
lcall para_disp
;**********************
lcall parazbf
;******************
inc r0
djnz r7,loopf2
ret
loopf2: ljmp loopf
numf6: cjne a,#6,numf7
mov dptr,#numtab6
lcall para_disp
;*******************
lcall parazbf
;*****************
inc r0
djnz r7,loopf3
ret
loopf3: ljmp loopf
numf7: cjne a,#7,numf8
mov dptr,#numtab7
lcall para_disp
;**********************
lcall parazbf
;************************
inc r0
djnz r7,loopf4
ret
loopf4: ljmp loopf
numf8: cjne a,#8,numf9
mov dptr,#numtab8
lcall para_disp
;***********************
lcall parazbf
;**********************
inc r0
djnz r7,loopf5
ret
loopf5: ljmp loopf
numf9: cjne a,#9,loopf1
mov dptr,#numtab9
lcall para_disp
;*******************
lcall parazbf
;*********************
inc r0
djnz r7,loopf6
ret
loopf6: ljmp loopf
;****************第一行参数显示坐标计算***********
parazbf: mov disp_x,#0b8h
mov r2,a
mov a,disp_y
add a,#08h
mov disp_y,a
mov a,r2
ret
;***************第二行参数显示*****************
paras: mov r7,#06h
mov r0,#56h
loops: mov a,@r0
nums0: cjne a,#0,nums1
mov dptr,#numtab0
lcall para_disp
;*************************
lcall parazbs
;***********************
inc r0
djnz r7,loops
ret
nums1: cjne a,#1,nums2
mov dptr,#numtab1
lcall para_disp
;*********************
lcall parazbs
;*********************
inc r0
djnz r7,loops
ret
nums2: cjne a,#2,nums3
mov dptr,#numtab2
lcall para_disp
;*******************
lcall parazbs
;********************
inc r0
djnz r7,loops
ret
nums3: cjne a,#3,nums4
mov dptr,#numtab3
lcall para_disp
;********************
lcall parazbs
;********************
inc r0
djnz r7,loops
ret
nums4: cjne a,#4,nums5
mov dptr,#numtab4
lcall para_disp
;********************
lcall parazbs
;********************
inc r0
djnz r7,loops1
ret
loops1: ljmp loops
nums5: cjne a,#5,nums6
mov dptr,#numtab5
lcall para_disp
;**********************
lcall parazbs
;******************
inc r0
djnz r7,loops2
ret
loops2: ljmp loops
nums6: cjne a,#6,nums7
mov dptr,#numtab6
lcall para_disp
;*******************
lcall parazbs
;*****************
inc r0
djnz r7,loops3
ret
loops3: ljmp loops
nums7: cjne a,#7,nums8
mov dptr,#numtab7
lcall para_disp
;**********************
lcall parazbs
;************************
inc r0
djnz r7,loops4
ret
loops4: ljmp loops
nums8: cjne a,#8,nums9
mov dptr,#numtab8
lcall para_disp
;***********************
lcall parazbs
;**********************
inc r0
djnz r7,loops5
ret
loops5: ljmp loops
nums9: cjne a,#9,loops1
mov dptr,#numtab9
lcall para_disp
;*******************
lcall parazbs
;*********************
inc r0
djnz r7,loops6
ret
loops6: ljmp loops
;****************第二行参数显示坐标计算***********
parazbs: mov disp_x,#0BAh
mov r2,a
mov a,disp_y
add a,#08h
mov disp_y,a
mov a,r2
ret
;***************第三行参数显示*****************
parat: mov r7,#06h
mov r0,#5ch
loopt: mov a,@r0
numt0: cjne a,#0,numt1
mov dptr,#numtab0
lcall para_disp
;*************************
lcall parazbt
;***********************
inc r0
djnz r7,loopt
ret
numt1: cjne a,#1,numt2
mov dptr,#numtab1
lcall para_disp
;*********************
lcall parazbt
;*********************
inc r0
djnz r7,loopt
ret
numt2: cjne a,#2,numt3
mov dptr,#numtab2
lcall para_disp
;*******************
lcall parazbt
;********************
inc r0
djnz r7,loopt
ret
numt3: cjne a,#3,numt4
mov dptr,#numtab3
lcall para_disp
;********************
lcall parazbt
;********************
inc r0
djnz r7,loopt
ret
numt4: cjne a,#4,numt5
mov dptr,#numtab4
lcall para_disp
;********************
lcall parazbt
;********************
inc r0
djnz r7,loopt1
ret
loopt1: ljmp loopt
numt5: cjne a,#5,numt6
mov dptr,#numtab5
lcall para_disp
;**********************
lcall parazbt
;******************
inc r0
djnz r7,loopt2
ret
loopt2: ljmp loopt
numt6: cjne a,#6,numt7
mov dptr,#numtab6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -