📄 lcdsub.asm
字号:
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 9
;>>>> LCD_HANZI('A',hanzi);
MAR * ,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LACK 65
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 10
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF5
MAR *0+
LAC *
SUBK 1
SACL *
.line 11
;>>>> LCD_ORDER('A',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 12
;>>>> LCD_ORDER('A',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF5
MAR *0+
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 13
;>>>> LCD_HANZI('A',hanzi+8);
MAR * ,AR3
LARK AR3,9
MAR *0+,AR1
SAR AR3,*+
LACK 65
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 14
;>>>> break;
;>>>> case'B':
B L27
L28:
.line 16
;>>>> LCD_ORDER('B',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF5
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 17
;>>>> LCD_ORDER('B',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF5
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 18
;>>>> LCD_HANZI('B',hanzi);
MAR * ,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LACK 66
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 19
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF5
MAR *0+
LAC *
SUBK 1
SACL *
.line 20
;>>>> LCD_ORDER('B',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 21
;>>>> LCD_ORDER('B',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF5
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 22
;>>>> LCD_HANZI('B',hanzi+8);
MAR * ,AR3
LARK AR3,9
MAR *0+,AR1
SAR AR3,*+
LACK 66
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 23
;>>>> break;
;>>>> case'C':
B L27
L29:
.line 25
;>>>> LCD_ORDER('C',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF5
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 26
;>>>> LCD_ORDER('C',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF5
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 27
;>>>> LCD_HANZI('C',hanzi);
MAR * ,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LACK 67
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 28
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF5
MAR *0+
LAC *
SUBK 1
SACL *
.line 29
;>>>> LCD_ORDER('C',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 30
;>>>> LCD_ORDER('C',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF5
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 31
;>>>> LCD_HANZI('C',hanzi+8);
MAR * ,AR3
LARK AR3,9
MAR *0+,AR1
SAR AR3,*+
LACK 67
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 32
;>>>> break;
B L27
.line 33
;>>>> default:break;
L25:
.line 5
SSXM
MAR * ,AR2
LARK AR2,-3+LF5
MAR *0+
LAC *
SUBK 65
BZ L26
SUBK 1
BZ L28
SUBK 1
BZ L29
L27:
EPI0_5:
.line 35
MAR * ,AR1
SBRK 18
LAR AR0,*-
PSHD *
RET
.endfunc 181,000000000H,17
.sym _LCD_1616CON,_LCD_1616CON,32,2,0
.globl _LCD_1616CON
.func 182
;>>>> void LCD_1616CON(char LCD_PART,const int *HANZI_START,int LCD_PAGE,int LCD_COLUMN)
******************************************************
* FUNCTION DEF : _LCD_1616CON
******************************************************
_LCD_1616CON:
LF6 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.sym _LCD_PART,-3+LF6,2,9,16
.sym _HANZI_START,-4+LF6,20,9,16
.sym _LCD_PAGE,-5+LF6,4,9,16
.sym _LCD_COLUMN,-6+LF6,4,9,16
.line 2
;>>>> switch(LCD_PART)
;>>>> { case'A':
B L31
L32:
.line 5
;>>>> LCD_ORDER('A',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 6
;>>>> LCD_ORDER('A',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 7
;>>>> LCD_HANZI('A',HANZI_START);
MAR * ,AR2
LARK AR2,-4+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 8
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF6
MAR *0+
LAC *
SUBK 1
SACL *
.line 9
;>>>> LCD_ORDER('A',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 10
;>>>> LCD_ORDER('A',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 11
;>>>> LCD_HANZI('A',HANZI_START+8);
MAR * ,AR2
LARK AR2,-4+LF6
MAR *0+
LAC * ,AR1
ADDK 8
SACL *+
LACK 65
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 12
;>>>> break;
;>>>> case'B':
B L33
L34:
.line 14
;>>>> LCD_ORDER('B',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 15
;>>>> LCD_ORDER('B',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 16
;>>>> LCD_HANZI('B',HANZI_START);
MAR * ,AR2
LARK AR2,-4+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 17
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF6
MAR *0+
LAC *
SUBK 1
SACL *
.line 18
;>>>> LCD_ORDER('B',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 19
;>>>> LCD_ORDER('B',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 20
;>>>> LCD_HANZI('B',HANZI_START+8);
MAR * ,AR2
LARK AR2,-4+LF6
MAR *0+
LAC * ,AR1
ADDK 8
SACL *+
LACK 66
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 21
;>>>> break;
;>>>> case'C':
B L33
L35:
.line 23
;>>>> LCD_ORDER('C',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 24
;>>>> LCD_ORDER('C',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 25
;>>>> LCD_HANZI('C',HANZI_START);
MAR * ,AR2
LARK AR2,-4+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 26
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF6
MAR *0+
LAC *
SUBK 1
SACL *
.line 27
;>>>> LCD_ORDER('C',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 28
;>>>> LCD_ORDER('C',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF6
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 29
;>>>> LCD_HANZI('C',HANZI_START+8);
MAR * ,AR2
LARK AR2,-4+LF6
MAR *0+
LAC * ,AR1
ADDK 8
SACL *+
LACK 67
SACL *+
CALL _LCD_HANZI
SBRK 2
.line 30
;>>>> break;
B L33
.line 31
;>>>> default:break;
L31:
.line 3
SSXM
MAR * ,AR2
LARK AR2,-3+LF6
MAR *0+
LAC *
SUBK 65
BZ L32
SUBK 1
BZ L34
SUBK 1
BZ L35
L33:
EPI0_6:
.line 33
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 214,000000000H,1
.sym _LCD_NUM88,_LCD_NUM88,32,2,0
.globl _LCD_NUM88
.func 215
;>>>> void LCD_NUM88(char LCD_PART,const int *HANZI_START,int LCD_PAGE,int LCD_COLUMN)
******************************************************
* FUNCTION DEF : _LCD_NUM88
******************************************************
_LCD_NUM88:
LF7 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,9
LAR AR0,*0+
.sym _LCD_PART,-3+LF7,2,9,16
.sym _HANZI_START,-4+LF7,20,9,16
.sym _LCD_PAGE,-5+LF7,4,9,16
.sym _LCD_COLUMN,-6+LF7,4,9,16
.sym _hanzi,1,52,1,128,,8
.line 2
;>>>> int hanzi[8];
.line 4
;>>>> pdmemcpy((void *)hanzi, (void *)HANZI_START, 8);
;>>>> switch(LCD_PART)
;>>>> { case'A':
LACK 8
SACL *+,AR2
LARK AR2,-4+LF7
MAR *0+
LAC * ,AR1
SACL *+,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
CALL _pdmemcpy
SBRK 3
B L37
L38:
.line 7
;>>>> LCD_ORDER('A',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 8
;>>>> LCD_ORDER('A',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 9
;>>>> LCD_NUMHANZI('A',hanzi);
MAR * ,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LACK 65
SACL *+
CALL _LCD_NUMHANZI
SBRK 2
.line 10
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF7
MAR *0+
LAC *
SUBK 1
SACL *
.line 11
;>>>> LCD_ORDER('A',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 12
;>>>> LCD_ORDER('A',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 13
;>>>> LCD_NUMHANZI('A',hanzi+4);
MAR * ,AR3
LARK AR3,5
MAR *0+,AR1
SAR AR3,*+
LACK 65
SACL *+
CALL _LCD_NUMHANZI
SBRK 2
.line 14
;>>>> break;
;>>>> case'B':
B L39
L40:
.line 16
;>>>> LCD_ORDER('B',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 17
;>>>> LCD_ORDER('B',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 18
;>>>> LCD_NUMHANZI('B',hanzi);
MAR * ,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LACK 66
SACL *+
CALL _LCD_NUMHANZI
SBRK 2
.line 19
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF7
MAR *0+
LAC *
SUBK 1
SACL *
.line 20
;>>>> LCD_ORDER('B',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 21
;>>>> LCD_ORDER('B',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 22
;>>>> LCD_NUMHANZI('B',hanzi+4);
MAR * ,AR3
LARK AR3,5
MAR *0+,AR1
SAR AR3,*+
LACK 66
SACL *+
CALL _LCD_NUMHANZI
SBRK 2
.line 23
;>>>> break;
;>>>> case'C':
B L39
L41:
.line 25
;>>>> LCD_ORDER('C',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 26
;>>>> LCD_ORDER('C',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 27
;>>>> LCD_NUMHANZI('C',hanzi);
MAR * ,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LACK 67
SACL *+
CALL _LCD_NUMHANZI
SBRK 2
.line 28
;>>>> LCD_PAGE=LCD_PAGE-1;
MAR * ,AR2
LARK AR2,-5+LF7
MAR *0+
LAC *
SUBK 1
SACL *
.line 29
;>>>> LCD_ORDER('C',LCD_PAGE);
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 30
;>>>> LCD_ORDER('C',LCD_COLUMN);
MAR * ,AR2
LARK AR2,-6+LF7
MAR *0+
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 31
;>>>> LCD_NUMHANZI('C',hanzi+4);
MAR * ,AR3
LARK AR3,5
MAR *0+,AR1
SAR AR3,*+
LACK 67
SACL *+
CALL _LCD_NUMHANZI
SBRK 2
.line 32
;>>>> break;
B L39
.line 33
;>>>> default:break;
L37:
.line 5
SSXM
MAR * ,AR2
LARK AR2,-3+LF7
MAR *0+
LAC *
SUBK 65
BZ L38
SUBK 1
BZ L40
SUBK 1
BZ L41
L39:
EPI0_7:
.line 35
MAR * ,AR1
SBRK 10
LAR AR0,*-
PSHD *
RET
.endfunc 249,000000000H,9
.sym _HAND_PINNUM,_HAND_PINNUM,32,2,0
.globl _HAND_PINNUM
.func 250
;>>>> void HAND_PINNUM(int pin_num) /******************/
******************************************************
* FUNCTION DEF : _HAND_PINNUM
******************************************************
_HAND_PINNUM:
LF8 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
.sym _pin_num,-3+LF8,4,9,16
.sym _one_pin,1,4,1,16
.sym _ten_pin,2,4,1,16
.sym _hundred_pin,3,4,1,16
.line 2
;>>>> { int one_pin,ten_pin,hundred_pin;
.line 3
;>>>> hundred_pin=pin_num/100;
LACK 100
SACL *+,AR2
SSXM
LARK AR2,-3+LF8
MAR *0+
LAC * ,AR1
CALL I$$DIV
MAR * ,AR2
ADRK 6-LF8
SACL * ,AR1
.line 4
;>>>> ten_pin=(pin_num-100*hundred_pin)/10;
LACK 10
SACL *+,AR2
LT *
MPYK 100
SSXM
SBRK 6-LF8
LAC * ,AR1
SPAC
CALL I$$DIV
MAR * ,AR2
ADRK 5-LF8
SACL * ,AR1
.line 5
;>>>> one_pin=pin_num%10;
LACK 10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -