⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 2407嵌入式系统程序(c语言)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	D:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx main.c D:\DOCUME~1\lifeng\LOCALS~1\Temp\main.if 
;	dspopt NOT RUN
;	D:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o D:\DOCUME~1\lifeng\LOCALS~1\Temp\main.if D:\DOCUME~1\lifeng\LOCALS~1\Temp\main.asm D:\DOCUME~1\lifeng\LOCALS~1\Temp\main.tmp 
	.port
	.file	"main.c"
	.file	"f2407_c.h"
	.globl	_portFF0F
	.globl	_portFFFF
	.globl	_port8003
	.globl	_port8000
	.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	"key.h"
	.globl	_KEY_SCAN
	.globl	_KEY_HANDLE
	.globl	_KEY_SUBMEAU2
	.globl	_KEY_SUBMEAU3
	.globl	_KEY_SUBMEAU4
	.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	"main.c"
	.text

	.sym	_initial,_initial,36,2,0
	.globl	_initial

	.func	8
;>>>> 	int initial(void)
******************************************************
* FUNCTION DEF : _initial
******************************************************
_initial:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		asm(" SETC INTM"); /*Interrupt Mask; */
 SETC INTM
	.line	4
;>>>> 		WSGR=0x0000;        /*Disable all wait-state;*/
	LACK	0
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0ffffh
	.line	5
;>>>> 		asm(" CLRC SXM");  
 CLRC SXM
	.line	6
;>>>> 		asm(" CLRC OVM");
 CLRC OVM
	.line	7
;>>>> 		asm(" CLRC CNF");  /*B0 is configured for Data*/
 CLRC CNF
	.line	8
;>>>> 		*SCSR1=0x83FE;   /*CLKIN=10M CLKOUT=20M and enable spi module clock*/
	LARK	AR3,28696
	MAR	* ,AR3
	SPLK	#33790,* ,AR4
	.line	10
;>>>> 		*IFR=0xFFFF;
	LARK	AR4,6
	SPLK	#65535,* 
	.line	11
;>>>> 		*WDCR=0x0E8;    /*diable watch dog*/
	ADRK	226
	MAR	* ,AR3
	ADRK	17
	SAR	AR4,* 
	.line	12
;>>>> 		*MCRA=0x0000;
	ADRK	103
	SACL	* 
	.line	13
;>>>> 		*MCRC=0x8000;
	ADRK	4
	SPLK	#32768,* ,AR4
	.line	14
;>>>> 		CON8255=0x0080;         /*8255 control word initilize*/ 	
	SBRK	104
	MAR	* ,AR0
	SAR	AR4,*
	OUT	* ,08003h,AR4
	.line	15
;>>>> 	    WORD8255=0xAA;
	ADRK	42
	MAR	* ,AR0
	SAR	AR4,*
	OUT	* ,08000h,AR1
	.line	16
;>>>> 		Delay1S();
	CALL	_Delay1S
	.line	17
;>>>> 		WORD8255=0x55;
	LACK	85
	MAR	* ,AR0
	SACL	* 
	OUT	* ,08000h,AR1
	.line	18
;>>>> 		Delay1S();
	CALL	_Delay1S
EPI0_1:
	.line	19
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	26,000000000H,1

	.sym	_ret_submeau2,_ret_submeau2,32,2,0
	.globl	_ret_submeau2

	.func	28
;>>>> 	void ret_submeau2(void)  	/*return to submeau2*/
******************************************************
* FUNCTION DEF : _ret_submeau2
******************************************************
_ret_submeau2:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		LCD_CLEAR();
	CALL	_LCD_CLEAR
	.line	4
;>>>> 		LCD_SUBMEAU2('2');
	LACK	50
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	5
;>>>> 		LCD_SUBMEAU2('3');
	LACK	51
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	6
;>>>> 		LCD_SUBMEAU2('5'); 
	LACK	53
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	7
;>>>> 		LCD_SUBMEAU2('7');
	LACK	55
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	8
;>>>> 		LCD_SUBMEAU2('9');
	LACK	57
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	9
;>>>> 		SUBBAR2('1');
	LACK	49
	SACL	*+
	CALL	_SUBBAR2
	MAR	*-
	.line	10
;>>>> 		SUBMEAU2FLAG=0x0001;
	LACK	1
	LDPK	_SUBMEAU2FLAG
	SACL	_SUBMEAU2FLAG
EPI0_2:
	.line	11
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	38,000000000H,1

	.sym	_ret_submeau3,_ret_submeau3,32,2,0
	.globl	_ret_submeau3

	.func	39
;>>>> 	void ret_submeau3(void)   	/*return to submeau3*/
******************************************************
* FUNCTION DEF : _ret_submeau3
******************************************************
_ret_submeau3:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		LCD_CLEAR();
	CALL	_LCD_CLEAR
	.line	4
;>>>> 		LCD_SUBMEAU3('2');
	LACK	50
	SACL	*+
	CALL	_LCD_SUBMEAU3
	MAR	*-
	.line	5
;>>>> 		LCD_SUBMEAU3('3');
	LACK	51
	SACL	*+
	CALL	_LCD_SUBMEAU3
	MAR	*-
	.line	6
;>>>> 		LCD_SUBMEAU3('5');
	LACK	53
	SACL	*+
	CALL	_LCD_SUBMEAU3
	MAR	*-
	.line	7
;>>>> 		SUBBAR3('1');
	LACK	49
	SACL	*+
	CALL	_SUBBAR3
	MAR	*-
	.line	8
;>>>> 		SUBMEAU3FLAG=0x0001;
	LACK	1
	LDPK	_SUBMEAU3FLAG
	SACL	_SUBMEAU3FLAG
EPI0_3:
	.line	9
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	47,000000000H,1

	.sym	_ret_submeau4,_ret_submeau4,32,2,0
	.globl	_ret_submeau4

	.func	48
;>>>> 	void ret_submeau4(void)     /*return to submeau4*/
******************************************************
* FUNCTION DEF : _ret_submeau4
******************************************************
_ret_submeau4:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		LCD_CLEAR();
	CALL	_LCD_CLEAR
	.line	4
;>>>> 		LCD_SUBMEAU4('2');
	LACK	50
	SACL	*+
	CALL	_LCD_SUBMEAU4
	MAR	*-
	.line	5
;>>>> 		LCD_SUBMEAU4('3');
	LACK	51
	SACL	*+
	CALL	_LCD_SUBMEAU4
	MAR	*-
	.line	6
;>>>> 		LCD_SUBMEAU4('5');
	LACK	53
	SACL	*+
	CALL	_LCD_SUBMEAU4
	MAR	*-
	.line	7
;>>>> 		LCD_SUBMEAU4('7');
	LACK	55
	SACL	*+
	CALL	_LCD_SUBMEAU4
	MAR	*-
	.line	8
;>>>> 		SUBBAR4('1');
	LACK	49
	SACL	*+
	CALL	_SUBBAR4
	MAR	*-
	.line	9
;>>>> 		SUBMEAU4FLAG=0x0001;
	LACK	1
	LDPK	_SUBMEAU4FLAG
	SACL	_SUBMEAU4FLAG
EPI0_4:
	.line	10
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	57,000000000H,1

	.sym	_ret_mainmeau,_ret_mainmeau,32,2,0
	.globl	_ret_mainmeau

	.func	58
;>>>> 	void ret_mainmeau(void)
******************************************************
* FUNCTION DEF : _ret_mainmeau
******************************************************
_ret_mainmeau:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		LCD_CLEAR();
	CALL	_LCD_CLEAR
	.line	4
;>>>> 		LCD_STARTMEAU('1');
	LACK	49
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	5
;>>>> 		LCD_STARTMEAU('4');
	LACK	52
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	6
;>>>> 		LCD_STARTMEAU('5');
	LACK	53
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	7
;>>>> 		LCD_STARTMEAU('7');
	LACK	55
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	8
;>>>> 		LCD_STARTMEAU('9');
	LACK	57
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	9
;>>>> 		MAINBAR('2');
	LACK	50
	SACL	*+
	CALL	_MAINBAR
	MAR	*-
EPI0_5:
	.line	10
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	67,000000000H,1

	.sym	_motor_startup,_motor_startup,32,2,0
	.globl	_motor_startup

	.func	68
;>>>> 	void motor_startup(argument1,argument2)
******************************************************
* FUNCTION DEF : _motor_startup
******************************************************
_motor_startup:

LF6	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR3

	.sym	_argument1,-3+LF6,4,9,16
	.sym	_argument2,-4+LF6,4,9,16
	.line	2
	.line	3
;>>>> 		*SCITXBUF=0x01;
	LARK	AR3,28761
	LACK	1
	SACL	* ,AR0
	.line	4
;>>>> 		WORD8255=0x0f;
	LACK	15
	SACL	* 
	OUT	* ,08000h,AR1
	.line	5
;>>>> 		Delay1S();
	CALL	_Delay1S
	.line	6
;>>>> 		*SCITXBUF=motor_data;
	LARK	AR3,28761
	MAR	* ,AR3
	BLKD	#_motor_data,* ,AR0
	.line	7
;>>>> 		WORD8255=0xf0;
	LACK	240
	SACL	* 
	OUT	* ,08000h,AR1
EPI0_6:
	.line	8
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	75,000000000H,1

	.sym	_motor_speedup,_motor_speedup,32,2,0
	.globl	_motor_speedup

	.func	76
;>>>> 	void motor_speedup(argument1,argument2)
******************************************************
* FUNCTION DEF : _motor_speedup
******************************************************
_motor_speedup:

LF7	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.sym	_argument1,-3+LF7,4,9,16
	.sym	_argument2,-4+LF7,4,9,16
	.line	2
	.line	3
;>>>> 		if(motor_num<11)
	SSXM
	LDPK	_motor_num
	LAC	_motor_num
	SUBK	11
	BGEZ	L1
	.line	4
;>>>> 			{motor_data++;
	LDPK	_motor_data
	LAC	_motor_data
	ADDK	1
	SACL	_motor_data
	.line	5
;>>>> 			motor_num++;}
;>>>> 		else
	LDPK	_motor_num
	LAC	_motor_num
	ADDK	1
	SACL	_motor_num
	B	L2
L1:
	.line	7
;>>>> 			{motor_data=0x04;
	LACK	4
	LDPK	_motor_data
	SACL	_motor_data
	.line	8
;>>>> 			motor_num=0;}
	LACK	0
	LDPK	_motor_num
	SACL	_motor_num
L2:
	.line	9
;>>>> 			*SCITXBUF=motor_data;
	LARK	AR3,28761
	MAR	* ,AR3
	BLKD	#_motor_data,* ,AR1
	.line	10
;>>>> 			Delay1S();
	CALL	_Delay1S
EPI0_7:
	.line	11
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	86,000000000H,1

	.sym	_electronic,_electronic,32,2,0
	.globl	_electronic

	.func	87
;>>>> 	void electronic(argument1,argument2)
******************************************************
* FUNCTION DEF : _electronic
******************************************************
_electronic:

LF8	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.sym	_argument1,-3+LF8,4,9,16
	.sym	_argument2,-4+LF8,4,9,16
	.line	2
	.line	3
;>>>> 		if(num_8255<7)
	SSXM
	LDPK	_num_8255
	LAC	_num_8255
	SUBK	7
	BGEZ	L3
	.line	4
;>>>> 			{data_8255=data_8255*2;
	LDPK	_data_8255
	LAC	_data_8255,1
	SACL	_data_8255
	.line	5
;>>>> 			num_8255++;}
;>>>> 		else
	LDPK	_num_8255
	LAC	_num_8255
	ADDK	1
	SACL	_num_8255
	B	L4
L3:
	.line	7
;>>>> 			{data_8255=0x01;
	LACK	1
	LDPK	_data_8255
	SACL	_data_8255
	.line	8
;>>>> 			num_8255=0;}
	LACK	0
	LDPK	_num_8255
	SACL	_num_8255
L4:
	.line	9
;>>>> 			WORD8255=data_8255;
	LDPK	_data_8255
	OUT	_data_8255,08000h
	.line	10
;>>>> 			Delay1S();
	CALL	_Delay1S
EPI0_8:
	.line	11
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	97,000000000H,1

	.sym	_WAIT_KEY,_WAIT_KEY,32,2,0
	.globl	_WAIT_KEY

	.func	98
;>>>> 	void WAIT_KEY(int i)
******************************************************
* FUNCTION DEF : _WAIT_KEY
******************************************************
_WAIT_KEY:

LF9	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR2

	.sym	_i,-3+LF9,4,9,16
	.line	2
	.line	3
;>>>> 		i=0;
	LACK	0
	LARK	AR2,-3+LF9
	MAR	*0+
	SACL	* 
	.line	4
;>>>> 		while(!i)
	LAC	* 
	BNZ	EPI0_9
	MAR	* ,AR1
L5:
	.line	5
;>>>> 		i=KEY_SCAN();
	CALL	_KEY_SCAN,AR1
	MAR	* ,AR2
	LARK	AR2,-3+LF9
	MAR	*0+
	SACL	* 
	.line	4
	LAC	* ,AR1
	BZ	L5
	.line	6
;>>>> 		return;
EPI0_9:
	.line	7
	MAR	* ,AR1
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	104,000000000H,1

	.sym	_PIN_SET,_PIN_SET,32,2,0
	.globl	_PIN_SET

	.func	105
;>>>> 	void PIN_SET(argument1,argument2,argument3,argument4,i)
******************************************************
* FUNCTION DEF : _PIN_SET
******************************************************
_PIN_SET:

LF10	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR2

	.sym	_argument1,-3+LF10,4,9,16
	.sym	_argument2,-4+LF10,4,9,16
	.sym	_argument3,-5+LF10,4,9,16
	.sym	_argument4,-6+LF10,4,9,16
	.sym	_i,-7+LF10,4,9,16
	.line	2
	.line	3
;>>>> 		WAIT_KEY(i);
	LARK	AR2,-7+LF10
	MAR	*0+
	LAC	* ,AR1
	SACL	*+
	CALL	_WAIT_KEY
	MAR	*-
	.line	4
;>>>> 		Delay1S();
	CALL	_Delay1S
	.line	5
;>>>> 		if(KEY_RIGHT==1)
	LDPK	_KEY_RIGHT
	LAC	_KEY_RIGHT
	SUBK	1
	BNZ	L7
	.line	7
;>>>> 				hand_num=hand_num+1;
	LDPK	_hand_num
	LAC	_hand_num
	ADDK	1
	SACL	_hand_num
	.line	8
;>>>> 				if(hand_num==9)
	LAC	_hand_num
	SUBK	9
	BNZ	L8
	.line	9
;>>>> 					hand_num=1;
	LACK	1
	SACL	_hand_num
L8:
	.line	10
;>>>> 					HAND_SHOW(hand_num);
	BLKD	_hand_num+0,*+
	CALL	_HAND_SHOW
	MAR	*-
L7:
	.line	12

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -