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

📄 lcdsub.asm

📁 2407嵌入式系统程序(c语言)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	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 + -