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

📄 key.asm

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

	.sym	_KEY_SCAN,_KEY_SCAN,36,2,0
	.globl	_KEY_SCAN

	.func	5
;>>>> 	int KEY_SCAN(void)
******************************************************
* FUNCTION DEF : _KEY_SCAN
******************************************************
_KEY_SCAN:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,2
	LAR	AR0,*0+,AR2

	.sym	_key_value,1,4,1,16
	.line	2
;>>>> 	{	int key_value=0x0000;
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	* ,AR3
	.line	3
;>>>> 		KEY_UP=0x0000;
	LDPK	_KEY_UP
	SACL	_KEY_UP
	.line	4
;>>>> 		KEY_DOWN=0x0000;
	LDPK	_KEY_DOWN
	SACL	_KEY_DOWN
	.line	5
;>>>> 		KEY_LEFT=0x0000;
	LDPK	_KEY_LEFT
	SACL	_KEY_LEFT
	.line	6
;>>>> 		KEY_RIGHT=0x0000;
	LDPK	_KEY_RIGHT
	SACL	_KEY_RIGHT
	.line	7
;>>>> 		KEY_SURE=0x0000;
	LDPK	_KEY_SURE
	SACL	_KEY_SURE
	.line	8
;>>>> 		key_value=(*PEDATDIR)&0x0002;
	LARK	AR3,28821
	LACK	2
	AND	* ,AR2
	SACL	* 
	.line	9
;>>>> 		if(key_value!=0)
	LAC	* 
	BZ	L1
	.line	10
;>>>> 			{	Delay50uS();
	CALL	_Delay50uS,AR1
	.line	11
;>>>> 				Delay50uS();
	CALL	_Delay50uS
	.line	12
;>>>> 				key_value=*PEDATDIR&0x0002;
	LARK	AR3,28821
	LACK	2
	MAR	* ,AR3
	AND	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	13
;>>>> 				if(key_value!=0)
	LAC	* 
	BZ	L1
	.line	14
;>>>> 					{	KEY_LEFT=0x0001;
	LACK	1
	LDPK	_KEY_LEFT
	SACL	_KEY_LEFT
	.line	15
;>>>> 						return 1;
;>>>> 					};
;>>>> 			};
	LACK	1
	B	EPI0_1
L1:
	.line	18
;>>>> 		key_value=(*PEDATDIR)&0x0004;
	LACK	4
	MAR	* ,AR3
	AND	* ,AR2
	SACL	* 
	.line	19
;>>>> 		if(key_value!=0)
	LAC	* 
	BZ	L3
	.line	20
;>>>> 			{	Delay50uS();
	CALL	_Delay50uS,AR1
	.line	21
;>>>> 				Delay50uS();
	CALL	_Delay50uS
	.line	22
;>>>> 				key_value=*PEDATDIR&0x0004;
	LARK	AR3,28821
	LACK	4
	MAR	* ,AR3
	AND	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	23
;>>>> 				if(key_value!=0)
	LAC	* 
	BZ	L3
	.line	24
;>>>> 					{	KEY_SURE=0x0001;
	LACK	1
	LDPK	_KEY_SURE
	SACL	_KEY_SURE
	.line	25
;>>>> 						return 1;
;>>>> 					};
;>>>> 			};
	LACK	1
	B	EPI0_1
L3:
	.line	28
;>>>> 		key_value=(*PEDATDIR)&0x0008;
	LACK	8
	MAR	* ,AR3
	AND	* ,AR2
	SACL	* 
	.line	29
;>>>> 		if(key_value!=0)
	LAC	* 
	BZ	L5
	.line	30
;>>>> 			{	Delay50uS();
	CALL	_Delay50uS,AR1
	.line	31
;>>>> 				Delay50uS();
	CALL	_Delay50uS
	.line	32
;>>>> 				key_value=*PEDATDIR&0x0008;
	LARK	AR3,28821
	LACK	8
	MAR	* ,AR3
	AND	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	33
;>>>> 				if(key_value!=0)
	LAC	* 
	BZ	L5
	.line	34
;>>>> 					{	KEY_RIGHT=0x0001;
	LACK	1
	LDPK	_KEY_RIGHT
	SACL	_KEY_RIGHT
	.line	35
;>>>> 						return 1;
;>>>> 					};
;>>>> 			};
	LACK	1
	B	EPI0_1
L5:
	.line	38
;>>>> 		key_value=(*PEDATDIR)&0x0010;
	LACK	16
	MAR	* ,AR3
	AND	* ,AR2
	SACL	* 
	.line	39
;>>>> 		if(key_value!=0)
	LAC	* 
	BZ	L7
	.line	40
;>>>> 			{	Delay50uS();
	CALL	_Delay50uS,AR1
	.line	41
;>>>> 				Delay50uS();
	CALL	_Delay50uS
	.line	42
;>>>> 				key_value=*PEDATDIR&0x0010;
	LARK	AR3,28821
	LACK	16
	MAR	* ,AR3
	AND	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	43
;>>>> 				if(key_value!=0)
	LAC	* 
	BZ	L7
	.line	44
;>>>> 					{	KEY_UP=0x0001;
	LACK	1
	LDPK	_KEY_UP
	SACL	_KEY_UP
	.line	45
;>>>> 						return 1;
;>>>> 					};
;>>>> 			};
	LACK	1
	B	EPI0_1
L7:
	.line	48
;>>>> 		key_value=(*PEDATDIR)&0x0001;
	LACK	1
	MAR	* ,AR3
	AND	* ,AR2
	SACL	* 
	.line	49
;>>>> 		if(key_value!=0)
	LAC	* 
	BZ	L9
	.line	50
;>>>> 			{	Delay50uS();
	CALL	_Delay50uS,AR1
	.line	51
;>>>> 				Delay50uS();
	CALL	_Delay50uS
	.line	52
;>>>> 				key_value=*PEDATDIR&0x0001;
	LARK	AR3,28821
	LACK	1
	MAR	* ,AR3
	AND	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	* 
	.line	53
;>>>> 				if(key_value!=0)
	LAC	* 
	BZ	L9
	.line	54
;>>>> 					{	KEY_DOWN=0x0001;
	LACK	1
	LDPK	_KEY_DOWN
	SACL	_KEY_DOWN
	.line	55
;>>>> 						return 1;
;>>>> 					};
;>>>> 			};
	LACK	1
	B	EPI0_1
L9:
	.line	58
;>>>> 		return 0;
	LACK	0
EPI0_1:
	.line	59
	MAR	* ,AR1
	SBRK	3
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	63,000000000H,2

	.sym	_KEY_HANDLE,_KEY_HANDLE,36,2,0
	.globl	_KEY_HANDLE

	.func	64
;>>>> 	int KEY_HANDLE(void)
******************************************************
* FUNCTION DEF : _KEY_HANDLE
******************************************************
_KEY_HANDLE:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	2
;>>>> 	{	 if(KEY_RIGHT==0)
	LDPK	_KEY_RIGHT
	LAC	_KEY_RIGHT
	BNZ	L30
	.line	3
;>>>> 			if(KEY_LEFT==0)
	LDPK	_KEY_LEFT
	LAC	_KEY_LEFT
	BNZ	L22
	.line	4
;>>>> 				if(KEY_SURE==0)
	LDPK	_KEY_SURE
	LAC	_KEY_SURE
	BNZ	L14
	.line	5
;>>>> 					return 0;
;>>>> 				 else 
;>>>> 				 	switch(MAINMEAUFLAG)
	LACK	0
	B	EPI0_2
L15:
	.line	8
;>>>> 				 		 {case 1:return 1;
	LACK	1
	B	EPI0_2
L16:
	.line	9
;>>>> 				 		 case 2:LCD_CLEAR();
	CALL	_LCD_CLEAR,AR1
	.line	10
;>>>> 				 		 		LCD_SUBMEAU2('2');
	LACK	50
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	11
;>>>> 				 		 		LCD_SUBMEAU2('3');
	LACK	51
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	12
;>>>> 				 		 		LCD_SUBMEAU2('5');
	LACK	53
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	13
;>>>> 				 		 		LCD_SUBMEAU2('7');
	LACK	55
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	14
;>>>> 				 		 		LCD_SUBMEAU2('9');
	LACK	57
	SACL	*+
	CALL	_LCD_SUBMEAU2
	MAR	*-
	.line	15
;>>>> 				 		 		SUBBAR2('1');
	LACK	49
	SACL	*+
	CALL	_SUBBAR2
	MAR	*-
	.line	16
;>>>> 				 		 		SUBMEAU2FLAG=0x0001;
	LACK	1
	LDPK	_SUBMEAU2FLAG
	SACL	_SUBMEAU2FLAG
	.line	17
;>>>> 				 		 		return 1;
	LACK	1
	B	EPI0_2
L17:
	.line	18
;>>>> 				 		 case 3:LCD_CLEAR();
	CALL	_LCD_CLEAR,AR1
	.line	19
;>>>> 				 		 		LCD_SUBMEAU3('2');
	LACK	50
	SACL	*+
	CALL	_LCD_SUBMEAU3
	MAR	*-
	.line	20
;>>>> 				 		 		LCD_SUBMEAU3('3');
	LACK	51
	SACL	*+
	CALL	_LCD_SUBMEAU3
	MAR	*-
	.line	21
;>>>> 				 		 		LCD_SUBMEAU3('5');
	LACK	53
	SACL	*+
	CALL	_LCD_SUBMEAU3
	MAR	*-
	.line	22
;>>>> 				 		 		SUBBAR3('1');
	LACK	49
	SACL	*+
	CALL	_SUBBAR3
	MAR	*-
	.line	23
;>>>> 				 		 		SUBMEAU3FLAG=0x0001;
	LACK	1
	LDPK	_SUBMEAU3FLAG
	SACL	_SUBMEAU3FLAG
	.line	24
;>>>> 				 		 		return 1;
	LACK	1
	B	EPI0_2
L18:
	.line	25
;>>>> 				 		 case 4:LCD_CLEAR();
	CALL	_LCD_CLEAR,AR1
	.line	26
;>>>> 				 		 		LCD_SUBMEAU4('2');
	LACK	50
	SACL	*+
	CALL	_LCD_SUBMEAU4
	MAR	*-
	.line	27
;>>>> 				 		 		LCD_SUBMEAU4('3');
	LACK	51
	SACL	*+
	CALL	_LCD_SUBMEAU4
	MAR	*-
	.line	28
;>>>> 				 		 		LCD_SUBMEAU4('5');
	LACK	53
	SACL	*+
	CALL	_LCD_SUBMEAU4
	MAR	*-
	.line	29
;>>>> 				 		 		LCD_SUBMEAU4('7');
	LACK	55
	SACL	*+
	CALL	_LCD_SUBMEAU4
	MAR	*-
	.line	30
;>>>> 				 		 		SUBBAR4('1');
	LACK	49
	SACL	*+
	CALL	_SUBBAR4
	MAR	*-
	.line	31
;>>>> 				 		 		SUBMEAU4FLAG=0x0001;
	LACK	1
	LDPK	_SUBMEAU4FLAG
	SACL	_SUBMEAU4FLAG
	.line	32
;>>>> 				 		 		return 1;
	LACK	1
	B	EPI0_2
L19:
	.line	33
;>>>> 				 		 case 5:return 1;
;>>>> 			  else
;>>>> 			  	switch(MAINMEAUFLAG)
	LACK	1
	B	EPI0_2
L14:
	.line	7
	SSXM
	LDPK	_MAINMEAUFLAG
	LAC	_MAINMEAUFLAG
	SUBK	1
	BZ	L15
	SUBK	1
	BZ	L16
	SUBK	1
	BZ	L17
	SUBK	1
	BZ	L18
	SUBK	1
	BZ	L19
	B	EPI0_2
L23:
	.line	38
;>>>> 				 	case 1: LCD_STARTMEAU('1');
	MAR	* ,AR1
	LACK	49
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	39
;>>>> 				 			LCD_STARTMEAU('10');
	LACK	48
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	40
;>>>> 				 			CLEAR_BAR();
	CALL	_CLEAR_BAR
	.line	41
;>>>> 				 			MAINBAR('5');
	LACK	53
	SACL	*+
	CALL	_MAINBAR
	MAR	*-
	.line	42
;>>>> 				 			return 1;
	LACK	1
	B	EPI0_2
L24:
	.line	43
;>>>> 				 	 case 2:LCD_STARTMEAU('3');
	MAR	* ,AR1
	LACK	51
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	44
;>>>> 				 			LCD_STARTMEAU('2');
	LACK	50
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	45
;>>>> 				 			CLEAR_BAR();
	CALL	_CLEAR_BAR
	.line	46
;>>>> 				 			MAINBAR('1');
	LACK	49
	SACL	*+
	CALL	_MAINBAR
	MAR	*-
	.line	47
;>>>> 				 			return 1;
	LACK	1
	B	EPI0_2
L25:
	.line	48
;>>>> 				 	 case 3:LCD_STARTMEAU('5');
	MAR	* ,AR1
	LACK	53
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	49
;>>>> 				 			LCD_STARTMEAU('4');
	LACK	52
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	50
;>>>> 				 			CLEAR_BAR();
	CALL	_CLEAR_BAR
	.line	51
;>>>> 				 			MAINBAR('2');
	LACK	50
	SACL	*+
	CALL	_MAINBAR
	MAR	*-
	.line	52
;>>>> 				 			return 1;
	LACK	1
	B	EPI0_2
L26:
	.line	53
;>>>> 				 	 case 4:LCD_STARTMEAU('7');
	MAR	* ,AR1
	LACK	55
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	54
;>>>> 				 			LCD_STARTMEAU('6');
	LACK	54
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	55
;>>>> 				 			CLEAR_BAR();
	CALL	_CLEAR_BAR
	.line	56
;>>>> 				 			MAINBAR('3');
	LACK	51
	SACL	*+
	CALL	_MAINBAR
	MAR	*-
	.line	57
;>>>> 				 			return 1;
	LACK	1
	B	EPI0_2
L27:
	.line	58
;>>>> 				 	 case 5:LCD_STARTMEAU('9');
	MAR	* ,AR1
	LACK	57
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	59
;>>>> 				 			LCD_STARTMEAU('8');
	LACK	56
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	60
;>>>> 				 			CLEAR_BAR();
	CALL	_CLEAR_BAR
	.line	61
;>>>> 				 			MAINBAR('4');
	LACK	52
	SACL	*+
	CALL	_MAINBAR
	MAR	*-
	.line	62
;>>>> 				 			return 1;
;>>>> 		  else
;>>>> 		  	switch(MAINMEAUFLAG)
	LACK	1
	B	EPI0_2
L22:
	.line	36
	SSXM
	LDPK	_MAINMEAUFLAG
	LAC	_MAINMEAUFLAG
	SUBK	1
	BZ	L23
	SUBK	1
	BZ	L24
	SUBK	1
	BZ	L25
	SUBK	1
	BZ	L26
	SUBK	1
	BZ	L27
	B	EPI0_2
L31:
	.line	66
;>>>> 		  		{case 1:LCD_STARTMEAU('1');
	MAR	* ,AR1
	LACK	49
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	67
;>>>> 				 		LCD_STARTMEAU('4');
	LACK	52
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	68
;>>>> 				 		CLEAR_BAR();
	CALL	_CLEAR_BAR
	.line	69
;>>>> 				 		MAINBAR('2');
	LACK	50
	SACL	*+
	CALL	_MAINBAR
	MAR	*-
	.line	70
;>>>> 				 		return 1;
	LACK	1
	B	EPI0_2
L32:
	.line	71
;>>>> 		  		 case 2:LCD_STARTMEAU('3');
	MAR	* ,AR1
	LACK	51
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	72
;>>>> 				 		LCD_STARTMEAU('6');
	LACK	54
	SACL	*+
	CALL	_LCD_STARTMEAU
	MAR	*-
	.line	73
;>>>> 				 		CLEAR_BAR();
	CALL	_CLEAR_BAR
	.line	74
;>>>> 				 		MAINBAR('3');

⌨️ 快捷键说明

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