📄 lcdsub.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; D:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx lcdsub.c D:\DOCUME~1\lifeng\LOCALS~1\Temp\lcdsub.if
; dspopt NOT RUN
; D:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o D:\DOCUME~1\lifeng\LOCALS~1\Temp\lcdsub.if D:\DOCUME~1\lifeng\LOCALS~1\Temp\lcdsub.asm D:\DOCUME~1\lifeng\LOCALS~1\Temp\lcdsub.tmp
.port
.file "lcdsub.c"
.file "f2407_c.h"
.globl _portFF0F
.globl _portFFFF
.globl _port8003
.globl _port8000
.file "Delay.h"
.globl _Delay50mS
.globl _Delay25mS
.globl _Delay4mS
.globl _Delay50uS
.globl _Delay8uS
.globl _Delay12uS
.globl _Delay24uS
.globl _Delay1S
.file "zimo.h"
.globl _LCD_INITIALWORD
.globl _HANZIZIKU
.globl _HANZI_GONGZUO
.globl _HANZI_KAISHI
.globl _HANZI_CANSHU
.globl _HANZI_GONGJU
.globl _HANZI_CESHI
.globl _HANZI_XITONG
.globl _HANZI_XINXI
.globl _HANZI_BANBEN
.globl _HANZI_SHOUTAO
.globl _HANZI_BIANZHI
.globl _HANZI_SHEZHI
.globl _HANZI_SHURU
.globl _HANZI_CHU
.globl _HANZI_QIXIANG
.globl _HANZI_BIANPIN
.globl _HANZI_DIANCITIE
.globl _HANZI_XIANSHI
.globl _HANZI_BIAOZHUN
.globl _HANZI_HENGLIE
.globl _HANZI_HUIFU
.globl _HANZI_MIMA
.globl _HANZI_SEXIAN
.globl _HANZI_SHEDING
.globl _HANZI_SONGJIN
.globl _HANZI_SUDU
.globl _HANZI_XINHAO
.globl _HANZI_XIUGAI
.globl _HANZI_ZHENSHU
.globl _HANZI_ZHISHU
.globl _HANZI_TINGZHI
.globl _HANZI_SHIFANG
.globl _HANZI_ZHUANSU
.globl _HANZI_SHIJI
.globl _HANZI_XIHE
.globl _HANZI_BILI
.globl _HANZI_BUWEI
.globl _HANZI_DANGQIAN
.globl _HANZI_DAO
.globl _HANZI_MUZHI
.globl _HANZI_WUMING
.globl _HANZI_LUOWEN
.globl _HANZI_ZHONGSHI
.globl _HANZI_QISHI
.globl _HANZI_SHUJU
.globl _HANZI_XIAO
.globl _HANZI_YINZI
.globl _HANZI_ZHILING
.globl _HANZI_ZHIZHANG
.globl _HANZI_ZHONGNIAO
.globl _HANZI_XINGHAO
.globl _HANZI_GAODI
.globl _HANZI_JIQI
.globl _HANZI_LEIXING
.globl _HANZI_PINGZHEN
.globl _HANZI_XIANSU
.globl _HANZI_ZUIGAO
.globl _HANZI_ZHENDE
.globl _HANZI_YAO
.globl _HANZI_MA
.globl _HANZI_WENHAO
.globl _HANZI_QING
.globl _HANZI_YUAN
.globl _HANZI_XIN
.globl _HANZI_QUEREN
.globl _HANZI_NUMBER
.globl _HANZI_ZUO
.globl _HANZI_SUO
.file "global.h"
.globl _KEY_LEFT
.globl _KEY_RIGHT
.globl _KEY_UP
.globl _KEY_DOWN
.globl _MAINMEAUFLAG
.globl _KEY_SURE
.globl _SUBMEAU2FLAG
.globl _SUBMEAU3FLAG
.globl _SUBMEAU4FLAG
.globl _hand_num
.globl _pin_num1
.globl _pin_num2
.globl _pin_num3
.globl _caidan
.globl _pin_num4
.globl _num_8255
.globl _data_8255
.globl _motor_data
.globl _motor_num
.file "lcdsub.h"
.globl _LCD_INITIAL
.globl _LCD_BUSY
.globl _LCD_ORDER
.globl _LCD_WRITE
.globl _LCD_1616
.globl _LCD_1616CON
.globl _LCD_NUM88
.globl _HAND_PINNUM
.globl _LCD_GLOVETYPE
.globl _LCD_HANZI
.globl _LCD_NUMHANZI
.globl _LCD_HANZIHALF
.globl _LCD_HANZIHALFCON
.globl _LCD_CLEAR
.globl _CLEAR_BAR
.globl _LCD_INITIALIZE
.globl _LCD_STARTMEAU
.globl _MAINBAR
.globl _LCD_SUBMEAU3
.globl _SURESUBMEAU3
.globl _SUBBAR3
.globl _LCD_SUBMEAU2
.globl _NOW_SHEDING
.globl _SUBBAR2
.globl _TIGHT_BILI
.globl _SPEED_SEXIAN
.globl _SUDU
.globl _SHUJUHAO
.globl _DAOZHILING
.globl _LCD_NUM
.globl _SURESUBMEAU2
.globl _LCD_SUBMEAU4
.globl _SUBBAR4
.globl _JIQI
.globl _SURESUBMEAU4
.file "memcpy.h"
.globl _pdmemcpy
.file "lcdsub.c"
.text
.sym _LCD_INITIAL,_LCD_INITIAL,32,2,0
.globl _LCD_INITIAL
.func 7
;>>>> void LCD_INITIAL(void)
******************************************************
* FUNCTION DEF : _LCD_INITIAL
******************************************************
_LCD_INITIAL:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 2
;>>>> { SUBMEAU2FLAG=0x0000;/*the second submeau2 flag*/
LACK 0
LDPK _SUBMEAU2FLAG
SACL _SUBMEAU2FLAG
.line 3
;>>>> SUBMEAU3FLAG=0x0000;
LDPK _SUBMEAU3FLAG
SACL _SUBMEAU3FLAG
.line 4
;>>>> SUBMEAU4FLAG=0x0000;
LDPK _SUBMEAU4FLAG
SACL _SUBMEAU4FLAG
.line 5
;>>>> MAINMEAUFLAG=0x0000;
LDPK _MAINMEAUFLAG
SACL _MAINMEAUFLAG
.line 6
;>>>> LCD_ORDER('A',0xFF3F);
LACK -193
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 7
;>>>> LCD_ORDER('B',0xFF3F);
LACK -193
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 8
;>>>> LCD_ORDER('C',0xFF3F);
LACK -193
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
EPI0_1:
.line 9
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 15,000000000H,1
.sym _LCD_BUSY,_LCD_BUSY,32,2,0
.globl _LCD_BUSY
.func 16
;>>>> void LCD_BUSY(char LCD_PART)
******************************************************
* FUNCTION DEF : _LCD_BUSY
******************************************************
_LCD_BUSY:
LF2 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _LCD_PART,-3+LF2,2,9,16
.sym _i,1,4,1,16
.line 2
;>>>> { int i=1;
;>>>> switch(LCD_PART)
LACK 1
LARK AR2,1
MAR *0+
SACL *
B L1
L2:
.line 4
;>>>> { case'A':*PBDATDIR=*PBDATDIR&0x0FF;
LARK AR3,28826
LACK 255
MAR * ,AR3
AND *
SACL *
.line 5
;>>>> *PADATDIR=0xFF18;
SBRK 2
SPLK #65304,* ,AR2
.line 6
;>>>> while(i)
LARK AR2,1
MAR *0+
LAC *
BZ L4
MAR * ,AR1
L3:
.line 7
;>>>> { Delay24uS();
CALL _Delay24uS,AR1
.line 8
;>>>> i=*PBDATDIR&0x0080;
LARK AR3,28826
LACK 128
MAR * ,AR3
AND * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 6
LAC * ,AR1
BNZ L3
L4:
.line 10
;>>>> *PADATDIR=0xFF00;
LARK AR3,28824
MAR * ,AR3
SPLK #65280,* ,AR1
.line 11
;>>>> Delay12uS();
CALL _Delay12uS
.line 12
;>>>> break;
;>>>> case'B':
B L5
L6:
.line 14
;>>>> *PBDATDIR=*PBDATDIR&0x0FF;
LARK AR3,28826
LACK 255
MAR * ,AR3
AND *
SACL *
.line 15
;>>>> *PADATDIR=0xFF98;
SBRK 2
SPLK #65432,* ,AR2
.line 16
;>>>> while(i)
LARK AR2,1
MAR *0+
LAC *
BZ L8
MAR * ,AR1
L7:
.line 17
;>>>> { Delay24uS();
CALL _Delay24uS,AR1
.line 18
;>>>> i=*PBDATDIR&0x0080;
LARK AR3,28826
LACK 128
MAR * ,AR3
AND * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 16
LAC * ,AR1
BNZ L7
L8:
.line 20
;>>>> *PADATDIR=0xFF00;
LARK AR3,28824
MAR * ,AR3
SPLK #65280,* ,AR1
.line 21
;>>>> Delay12uS();
CALL _Delay12uS
.line 23
;>>>> break;
;>>>> case'C':
B L5
L9:
.line 26
;>>>> *PBDATDIR=*PBDATDIR&0x0FF;
LARK AR3,28826
LACK 255
MAR * ,AR3
AND *
SACL *
.line 27
;>>>> *PADATDIR=0xFF58;
SBRK 2
SPLK #65368,* ,AR2
.line 28
;>>>> while(i)
LARK AR2,1
MAR *0+
LAC *
BZ L11
MAR * ,AR1
L10:
.line 29
;>>>> { Delay24uS();
CALL _Delay24uS,AR1
.line 30
;>>>> i=*PBDATDIR&0x0080;
LARK AR3,28826
LACK 128
MAR * ,AR3
AND * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 28
LAC * ,AR1
BNZ L10
L11:
.line 32
;>>>> *PADATDIR=0xFF00;
LARK AR3,28824
MAR * ,AR3
SPLK #65280,* ,AR1
.line 33
;>>>> Delay12uS();
CALL _Delay12uS
.line 35
;>>>> break;
B L5
.line 37
;>>>> default:break;
L1:
.line 3
SSXM
SBRK 4-LF2
LAC *
SUBK 65
BZ L2
SUBK 1
BZ L6
SUBK 1
BZ L9
L5:
EPI0_2:
.line 39
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 54,000000000H,2
.sym _LCD_ORDER,_LCD_ORDER,32,2,0
.globl _LCD_ORDER
.func 57
;>>>> void LCD_ORDER(char LCD_PART,int command)
******************************************************
* FUNCTION DEF : _LCD_ORDER
******************************************************
_LCD_ORDER:
LF3 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _LCD_PART,-3+LF3,2,9,16
.sym _command,-4+LF3,4,9,16
.sym _i,1,4,1,16
.line 2
;>>>> { int i=command;
;>>>> switch(LCD_PART)
;>>>> { case'A':
LARK AR2,-4+LF3
MAR *0+
LAC *
ADRK 5-LF3
SACL *
B L13
L14:
.line 5
;>>>> *PADATDIR=0xFF08;
LARK AR3,28824
MAR * ,AR3
SPLK #65288,* ,AR1
.line 6
;>>>> Delay24uS();
CALL _Delay24uS
.line 7
;>>>> *PBDATDIR=i;
LARK AR3,28826
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR3
SACL * ,AR1
.line 8
;>>>> Delay24uS();
CALL _Delay24uS
.line 9
;>>>> *PADATDIR=0xFF00;
LARK AR3,28824
MAR * ,AR3
SPLK #65280,* ,AR1
.line 10
;>>>> Delay24uS();
CALL _Delay24uS
.line 11
;>>>> LCD_BUSY('A');
LACK 65
SACL *+
CALL _LCD_BUSY
MAR *-
.line 13
;>>>> break;
;>>>> case'B':
B L15
L16:
.line 16
;>>>> *PADATDIR=0xFF88;
LARK AR3,28824
MAR * ,AR3
SPLK #65416,* ,AR1
.line 17
;>>>> Delay24uS();
CALL _Delay24uS
.line 18
;>>>> *PBDATDIR=i;
LARK AR3,28826
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR3
SACL * ,AR1
.line 19
;>>>> Delay24uS();
CALL _Delay24uS
.line 20
;>>>> *PADATDIR=0xFF80;
LARK AR3,28824
MAR * ,AR3
SPLK #65408,* ,AR1
.line 21
;>>>> Delay24uS();
CALL _Delay24uS
.line 22
;>>>> LCD_BUSY('B');
LACK 66
SACL *+
CALL _LCD_BUSY
MAR *-
.line 24
;>>>> break;
;>>>> case'C':
B L15
L17:
.line 27
;>>>> *PADATDIR=0xFF48;
LARK AR3,28824
MAR * ,AR3
SPLK #65352,* ,AR1
.line 28
;>>>> Delay24uS();
CALL _Delay24uS
.line 29
;>>>> *PBDATDIR=i;
LARK AR3,28826
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR3
SACL * ,AR1
.line 30
;>>>> Delay24uS();
CALL _Delay24uS
.line 31
;>>>> *PADATDIR=0xFF40;
LARK AR3,28824
MAR * ,AR3
SPLK #65344,* ,AR1
.line 32
;>>>> Delay24uS();
CALL _Delay24uS
.line 33
;>>>> LCD_BUSY('C');
LACK 67
SACL *+
CALL _LCD_BUSY
MAR *-
.line 35
;>>>> break;
B L15
.line 37
;>>>> default:break;
L13:
.line 3
SSXM
SBRK 4-LF3
LAC *
SUBK 65
BZ L14
SUBK 1
BZ L16
SUBK 1
BZ L17
L15:
EPI0_3:
.line 39
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 95,000000000H,2
.sym _LCD_WRITE,_LCD_WRITE,32,2,0
.globl _LCD_WRITE
.func 97
;>>>> void LCD_WRITE(char LCD_PART,int LCD_WORD)
******************************************************
* FUNCTION DEF : _LCD_WRITE
******************************************************
_LCD_WRITE:
LF4 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _LCD_PART,-3+LF4,2,9,16
.sym _LCD_WORD,-4+LF4,4,9,16
.sym _i,1,4,1,16
.line 2
;>>>> { int i=LCD_WORD;
;>>>> switch(LCD_PART)
;>>>> { case 'A':
LARK AR2,-4+LF4
MAR *0+
LAC *
ADRK 5-LF4
SACL *
B L19
L20:
.line 5
;>>>> *PADATDIR=0xFF28;
LARK AR3,28824
MAR * ,AR3
SPLK #65320,* ,AR1
.line 6
;>>>> Delay12uS();
CALL _Delay12uS
.line 7
;>>>> *PBDATDIR=i;
LARK AR3,28826
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR3
SACL * ,AR1
.line 8
;>>>> Delay24uS();
CALL _Delay24uS
.line 9
;>>>> Delay24uS();
CALL _Delay24uS
.line 10
;>>>> *PADATDIR=0xFF20;
LARK AR3,28824
MAR * ,AR3
SPLK #65312,* ,AR1
.line 11
;>>>> Delay24uS();
CALL _Delay24uS
.line 12
;>>>> Delay24uS();
CALL _Delay24uS
.line 13
;>>>> LCD_BUSY('A');
LACK 65
SACL *+
CALL _LCD_BUSY
MAR *-
.line 14
;>>>> LCD_ORDER('A',0xFF3F);
LACK -193
SACL *+
LACK 65
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 16
;>>>> break;
;>>>> case 'B':
B L21
L22:
.line 19
;>>>> *PADATDIR=0xFFA8;
LARK AR3,28824
MAR * ,AR3
SPLK #65448,* ,AR1
.line 20
;>>>> Delay12uS();
CALL _Delay12uS
.line 21
;>>>> *PBDATDIR=i;
LARK AR3,28826
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR3
SACL * ,AR1
.line 22
;>>>> Delay24uS();
CALL _Delay24uS
.line 23
;>>>> Delay24uS();
CALL _Delay24uS
.line 24
;>>>> *PADATDIR=0xFFA0;
LARK AR3,28824
MAR * ,AR3
SPLK #65440,* ,AR1
.line 25
;>>>> Delay24uS();
CALL _Delay24uS
.line 26
;>>>> Delay24uS();
CALL _Delay24uS
.line 27
;>>>> LCD_BUSY('B');
LACK 66
SACL *+
CALL _LCD_BUSY
MAR *-
.line 28
;>>>> LCD_ORDER('B',0xFF3F);
LACK -193
SACL *+
LACK 66
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 30
;>>>> break;
;>>>> case 'C':
B L21
L23:
.line 33
;>>>> *PADATDIR=0xFF68;
LARK AR3,28824
MAR * ,AR3
SPLK #65384,* ,AR1
.line 34
;>>>> Delay12uS();
CALL _Delay12uS
.line 35
;>>>> *PBDATDIR=i;
LARK AR3,28826
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,AR3
SACL * ,AR1
.line 36
;>>>> Delay24uS();
CALL _Delay24uS
.line 37
;>>>> Delay24uS();
CALL _Delay24uS
.line 38
;>>>> *PADATDIR=0xFF60;
LARK AR3,28824
MAR * ,AR3
SPLK #65376,* ,AR1
.line 39
;>>>> Delay24uS();
CALL _Delay24uS
.line 40
;>>>> Delay24uS();
CALL _Delay24uS
.line 41
;>>>> LCD_BUSY('C');
LACK 67
SACL *+
CALL _LCD_BUSY
MAR *-
.line 42
;>>>> LCD_ORDER('C',0xFF3F);
LACK -193
SACL *+
LACK 67
SACL *+
CALL _LCD_ORDER
SBRK 2
.line 44
;>>>> break;
B L21
.line 46
;>>>> default: break;
L19:
.line 3
SSXM
SBRK 4-LF4
LAC *
SUBK 65
BZ L20
SUBK 1
BZ L22
SUBK 1
BZ L23
L21:
EPI0_4:
.line 48
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 144,000000000H,2
.sym _LCD_1616,_LCD_1616,32,2,0
.globl _LCD_1616
.func 147
;>>>> void LCD_1616(char LCD_PART,const int *HANZI_START,int LCD_PAGE,int LCD_COLUMN)
******************************************************
* FUNCTION DEF : _LCD_1616
******************************************************
_LCD_1616:
LF5 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,17
LAR AR0,*0+
.sym _LCD_PART,-3+LF5,2,9,16
.sym _HANZI_START,-4+LF5,20,9,16
.sym _LCD_PAGE,-5+LF5,4,9,16
.sym _LCD_COLUMN,-6+LF5,4,9,16
.sym _hanzi,1,52,1,256,,16
.line 2
;>>>> int hanzi[16];
.line 4
;>>>> pdmemcpy((void *)hanzi, (void *)HANZI_START, 16);
;>>>> switch(LCD_PART)
;>>>> { case'A':
LACK 16
SACL *+,AR2
LARK AR2,-4+LF5
MAR *0+
LAC * ,AR1
SACL *+,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
CALL _pdmemcpy
SBRK 3
B L25
L26:
.line 7
;>>>> LCD_ORDER('A',LCD_PAGE);
MAR * ,AR2
LARK AR2,-5+LF5
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+LF5
MAR *0+
LAC * ,AR1
SACL *+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -