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

📄 lcd1.asm

📁 我在公司做的基于430F206的互感器现场效验仪
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	nop
	nop
	nop
	nop
	.line	16
;>>>> 	        Lcd_wd=0x00;    wait();
	LACK	0
	SACL	* 
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	17
;>>>> 	 Lcd_wc=OVLAY;          wait();
	LACK	91
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	18
;>>>> 	        Lcd_wd=0x08;    wait();
	LACK	8
	SACL	* 
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	20
;>>>> 	 Lcd_Clear(0x0,0x8000,0x00);
	MAR	* ,AR1
	LACK	0
	SACL	*+
	LALK	1,15
	SACL	*+
	LACK	0
	SACL	*+
	CALL	_Lcd_Clear
	SBRK	3
	.line	21
;>>>> 	 Lcd_wc=DISP_ON;        wait();
	LACK	89
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	22
;>>>> 	        Lcd_wd=0x54;    wait();
	LACK	84
	SACL	* 
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	23
;>>>> 	 Lcd_wc=CSRFORM;        wait();
	LACK	93
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	24
;>>>> 	        Lcd_wd=0x07;    wait();
	LACK	7
	SACL	* 
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	25
;>>>> 	        Lcd_wd=0x87;    wait();
	LACK	135
	SACL	* 
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	26
;>>>> 	 Lcd_wc=CSRDIR_DW;      wait();
	LACK	79
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
EPI0_2:
	.line	28
	MAR	* ,AR1
	SBRK	3
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	110,000000000H,2

	.sym	_Lcd_Point,_Lcd_Point,32,2,0
	.globl	_Lcd_Point

	.func	121
;>>>> 	void  Lcd_Point(unsigned int Dot_X,unsigned int Dot_Y)
******************************************************
* FUNCTION DEF : _Lcd_Point
******************************************************
_Lcd_Point:

LF3	.set	0

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

	.sym	_Dot_X,-3+LF3,14,9,16
	.sym	_Dot_Y,-4+LF3,14,9,16
	.sym	_Cursor_X,1,14,1,16
	.sym	_Cursor_Y,2,14,1,16
	.sym	_Counter,3,14,1,16
	.sym	_Read_Data,4,14,1,16
	.line	2
;>>>> 	        unsigned int    Cursor_X,Cursor_Y;
;>>>> 	        unsigned int    Counter;
;>>>> 	        unsigned int    Read_Data;
	.line	6
;>>>> 	        Counter=Dot_X&0x0007;
	LACK	7
	LARK	AR2,-3+LF3
	MAR	*0+
	AND	* 
	ADRK	6-LF3
	SACL	* 
	.line	7
;>>>> 	        Cursor_X=(Dot_Y*Lcd_AP+(Dot_X>>3)+0x4000)&0x00ff;
	RSXM
	SBRK	6-LF3
	LAC	*-,12,AR1
	SACH	* ,1,AR2
	LT	* ,AR1
	MPYK	40
	PAC
	ADDK	16384
	ADD	* ,AR2
	ANDK	255
	ADRK	5-LF3
	SACL	* 
	.line	8
;>>>> 	        Cursor_Y=((Dot_Y*Lcd_AP+(Dot_X>>3)+0x4000)&0xff00)>>8;
	SBRK	4-LF3
	LAC	*-,12,AR1
	SACH	* ,1,AR2
	LT	* ,AR0
	LACK	40
	SACL	*
	MPYU	*,AR1
	PAC
	ADDK	16384
	ADDS	* ,AR0
	ANDK	65280
	SACL	* 
	LAC	* ,7,AR2
	ADRK	6-LF3
	SACH	* ,1,AR0
	.line	9
;>>>> 	        Lcd_wc=CSRW;    wait();
	LACK	70
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	10
;>>>> 	                Lcd_wd=Cursor_X;        wait();
	MAR	* ,AR2
	MAR	*-
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	11
;>>>> 	                Lcd_wd=Cursor_Y;        wait();
	MAR	*+
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	12
;>>>> 	        Lcd_wc=MREAD;   wait();
	LACK	67
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	13
;>>>> 	                Read_Data=Lcd_rd&0x00ff;
	IN	* ,0301h
	LAC	* ,AR2
	ANDK	255
	ADRK	2
	SACL	* 
	.line	14
;>>>> 	                        wait();
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	16
;>>>> 	        Lcd_wc=CSRW;    wait();
	LACK	70
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	17
;>>>> 	                Lcd_wd=Cursor_X;        wait();
	MAR	* ,AR2
	SBRK	3
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	18
;>>>> 	                Lcd_wd=Cursor_Y;        wait();
	MAR	*+
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	19
;>>>> 	        Lcd_wc=MWRITE;  wait();
	LACK	66
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	20
;>>>> 	                Lcd_wd=(0x80>>Counter)|Read_Data;
	MAR	* ,AR2
	MAR	*+
	ZALS	*+,AR0
	CMPL
	SACL	* 
	LT	* 
	LACK	128
	SACL	* 
	SSXM
	LACT	* 
	SACH	* ,1
	LAC	* ,AR2
	OR	* ,AR1
	SACL	* 
	OUT	* ,0300h
	.line	21
;>>>> 	                        wait();
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
EPI0_3:
	.line	22
	SBRK	6
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	142,000000000H,5

	.sym	_Lcd_Dot,_Lcd_Dot,32,2,0
	.globl	_Lcd_Dot

	.func	156
;>>>> 	void  Lcd_Dot(unsigned int Dot_X,unsigned int Dot_Y,unsigned int Dot_Type)
******************************************************
* FUNCTION DEF : _Lcd_Dot
******************************************************
_Lcd_Dot:

LF4	.set	0

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

	.sym	_Dot_X,-3+LF4,14,9,16
	.sym	_Dot_Y,-4+LF4,14,9,16
	.sym	_Dot_Type,-5+LF4,14,9,16
	.sym	_Cursor_X,1,14,1,16
	.sym	_Cursor_Y,2,14,1,16
	.sym	_Counter,3,14,1,16
	.sym	_Loop,4,14,1,16
	.sym	_Read_Data,5,14,1,16
	.line	2
;>>>> 	        unsigned int    Cursor_X,Cursor_Y;
;>>>> 	        unsigned int    Counter,Loop;
;>>>> 	        unsigned int    Read_Data;
	.line	6
;>>>> 	        Counter=0x8-(Dot_X&0x0007);                                     
	LACK	7
	LARK	AR2,-3+LF4
	MAR	*0+
	AND	* 
	NEG
	ADDK	8
	ADRK	6-LF4
	SACL	* 
	.line	7
;>>>> 	        Dot_Type=Dot_Type<<Counter;
	LT	* 
	SBRK	8-LF4
	LACT	* 
	SACL	* 
	.line	8
;>>>> 	        Cursor_X=(Dot_Y*Lcd_AP+(Dot_X>>3)+0x4000)&0x00ff;
	RSXM
	ADRK	2
	LAC	*-,12,AR1
	SACH	* ,1,AR2
	LT	* ,AR1
	MPYK	40
	PAC
	ADDK	16384
	ADD	* ,AR2
	ANDK	255
	ADRK	5-LF4
	SACL	* 
	.line	9
;>>>> 	        Cursor_Y=((Dot_Y*Lcd_AP+(Dot_X>>3)+0x4000)&0xff00)>>8;
	SBRK	4-LF4
	LAC	*-,12,AR1
	SACH	* ,1,AR2
	LT	* ,AR0
	LACK	40
	SACL	*
	MPYU	*,AR1
	PAC
	ADDK	16384
	ADDS	* ,AR0
	ANDK	65280
	SACL	* 
	LAC	* ,7,AR2
	ADRK	6-LF4
	SACH	* ,1,AR0
	.line	10
;>>>> 	        Lcd_wc=CSRDIR_RG;       wait();
	LACK	76
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	11
;>>>> 	        Lcd_wc=CSRW;    wait();
	LACK	70
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	12
;>>>> 	                Lcd_wd=Cursor_X;        wait();
	MAR	* ,AR2
	MAR	*-
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	13
;>>>> 	                Lcd_wd=Cursor_Y;        wait();
	MAR	*+
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	14
;>>>> 	        Lcd_wc=MREAD;   wait();
	LACK	67
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	15
;>>>> 	                Read_Data=Lcd_rd&0x00ff;
	IN	* ,0301h
	LAC	* ,AR2
	ANDK	255
	ADRK	3
	SACL	* 
	.line	16
;>>>> 	                        wait();
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	18
;>>>> 	        Lcd_wc=CSRW;    wait();
	LACK	70
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	19
;>>>> 	                Lcd_wd=Cursor_X;        wait();
	MAR	* ,AR2
	SBRK	4
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	20
;>>>> 	                Lcd_wd=Cursor_Y;        wait();
	MAR	*+
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	21
;>>>> 	        Lcd_wc=MWRITE;  wait();
	LACK	66
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	22
;>>>> 	                Lcd_wd=((Dot_Type&0xff00)>>8)|Read_Data;
	LACK	65280
	MAR	* ,AR2
	SBRK	7-LF4
	AND	* ,AR0
	SACL	* 
	LAC	* ,7
	SACH	* ,1
	LAC	* ,AR2
	ADRK	10-LF4
	OR	* ,AR1
	SACL	* 
	OUT	* ,0300h
	.line	23
;>>>> 	                        wait();
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	25
;>>>> 	        Lcd_wc=CSRW;    wait();
	LACK	70
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	26
;>>>> 	                Lcd_wd=Cursor_X+1;      wait();
	MAR	* ,AR2
	SBRK	4
	LAC	* ,AR1
	ADDK	1
	SACL	* 
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	27
;>>>> 	                Lcd_wd=Cursor_Y;        wait();
	MAR	* ,AR2
	MAR	*+
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	28
;>>>> 	        Lcd_wc=MREAD;   wait();
	LACK	67
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	29
;>>>> 	                Read_Data=Lcd_rd&0x00ff;
	IN	* ,0301h
	LAC	* ,AR2
	ANDK	255
	ADRK	3
	SACL	* 
	.line	30
;>>>> 	                        wait();
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	32
;>>>> 	        Lcd_wc=CSRW;    wait();
	LACK	70
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	33
;>>>> 	                Lcd_wd=Cursor_X+1;      wait();
	MAR	* ,AR2
	SBRK	4
	LAC	* ,AR1
	ADDK	1
	SACL	* 
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	34
;>>>> 	                Lcd_wd=Cursor_Y;        wait();
	MAR	* ,AR2
	MAR	*+
	OUT	* ,0300h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	35
;>>>> 	        Lcd_wc=MWRITE;  wait();
	LACK	66
	MAR	* ,AR0
	SACL	* 
	OUT	* ,0301h
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	.line	37
;>>>> 	                Lcd_wd=(Dot_Type&0x00ff)|Read_Data;
	LACK	255
	MAR	* ,AR2
	SBRK	7-LF4
	AND	* 
	ADRK	10-LF4
	OR	* ,AR1
	SACL	* 
	OUT	* ,0300h
	.line	38
;>>>> 	                        wait();
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
EPI0_4:
	.line	39
	SBRK	7
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	194,000000000H,6

	.sym	_Lcd_Line,_Lcd_Line,32,2,0
	.globl	_Lcd_Line

	.func	210
;>>>> 	void  Lcd_Line(unsigned int X0,unsigned int Y0,unsigned int X1,unsigned int Y1)
******************************************************
* FUNCTION DEF : _Lcd_Line
******************************************************
_Lcd_Line:

LF5	.set	0

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

	.sym	_X0,-3+LF5,14,9,16
	.sym	_Y0,-4+LF5,14,9,16
	.sym	_X1,-5+LF5,14,9,16
	.sym	_Y1,-6+LF5,14,9,16
	.sym	_Cursor_X,1,14,1,16
	.sym	_Cursor_Y,2,14,1,16
	.sym	_Counter,3,14,1,16
	.sym	_Dot_Type,4,14,1,16
	.sym	_Read_Data,5,14,1,16
	.sym	_k,6,7,1,32
	.line	2
;>>>> 	        unsigned int    Cursor_X,Cursor_Y;
;>>>> 	        unsigned int    Counter,Dot_Type;                         
;>>>> 	        unsigned int    Read_Data;
;>>>> 	        double  k;
	.line	8
;>>>> 	        if(X0==X1)
	LARK	AR2,-3+LF5
	MAR	*0+
	LAC	* 
	SBRK	2
	SUB	* 
	BNZ	L7
	.line	10
;>>>> 	                 if (Y0>Y1)     {Counter=Y0;Y0=Y1;Y1=Counter;}
	MAR	*+
	ZALS	* 
	SBRK	2
	SUBS	* 
	BLEZ	L8
	ADRK	2
	LAC	* 
	ADRK	7-LF5
	SACL	* 
	SBRK	9-LF5
	LAC	* 
	ADRK	2
	SACL	* 
	ADRK	7-LF5
	LAC	* 
	SBRK	9-LF5
	SACL	* 
L8:
	.line	11
;>>>> 	                 if (Y1>=239)   Y1=239;
	ZALS	* 
	SUBK	239
	BLZ	L9
	LACK	239
	SACL	* 
L9:
	.line	12
;>>>> 	                 for (Counter=Y0;Counter<=Y1;Counter++)
	ADRK	2
	LAC	* 
	ADRK	7-LF5
	SACL	* 
	ZALS	* 
	SBRK	9-LF5
	SUBS	* 
	BGZ	L12
	ADRK	9-LF5
L10:
	.line	13
;>>>> 	                        Lcd_Point(X0,Counter); 
	LAC	* ,AR1
	SACL	*+,AR2
	SBRK	6-LF5
	LAC	* ,AR1
	SACL	*+
	CALL	_Lcd_Point
	SBRK	2
	.line	12
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SBRK	9-LF5
	SUBS	* 
	ADRK	9-LF5
	BLEZ	L10
	B	L12
L7:
	.line	15
;>>>> 	        else if(Y0==Y1)
	MAR	*+
	LAC	* 
	SBRK	2
	SUB	* 
	BNZ	L13
	.line	17
;>>>> 	                 if (X0>X1)     {Counter=X0;X0=X1;X1=Counter;}
	ADRK	3
	ZALS	* 
	SBRK	2
	SUBS	* 
	BLEZ	L14
	ADRK	2
	LAC	* 
	ADRK	6-LF5
	SACL	* 
	SBRK	8-LF5
	LAC	* 
	ADRK	2
	SACL	* 
	ADRK	6-LF5
	LAC	* 
	SBRK	8-LF5
	SACL	* 
L14:
	.line	18
;>>>> 	                 if (X1>=319)   X1=319;
	ZALS	* 
	SUBK	319
	BLZ	L15
	SPLK	#319,* 
L15:
	.line	20
;>>>> 	                 Cursor_X=(Y0*Lcd_AP+(X0>>3)+0x4000)&0x00ff;
	RSXM
	ADRK	2
	LAC	*-,12,AR1
	SACH	* ,1,AR2
	LT	* ,AR1
	MPYK	40
	PAC
	ADDK	16384
	ADD	* ,AR2
	ANDK	255
	ADRK	5-LF5
	SACL	* 
	.line	21
;>>>> 	                 Cursor_Y=((Y0*Lcd_AP+(X0>>3)+0x4000)&0xff00)>>8;
	SBRK	4-LF5
	LAC	*-,12,AR1
	SACH	* ,1,AR2
	LT	* ,AR0
	LACK	40
	SACL	*
	MPYU	*,AR1
	PAC
	ADDK	16384
	ADDS	* ,AR0
	ANDK	65280
	SACL	* 
	LAC	* ,7,AR2
	ADRK	6-LF5
	SACH	* ,1
	.line	23
;>>>> 	                 if ((X0>>3)==(X1>>3))
	SBRK	7-LF5
	LAC	* ,12,AR1
	SACH	*+,1,AR2
	ADRK	2
	LAC	* ,12,AR1
	MAR	*-,AR0
	SACH	* ,1
	ZALS	* ,AR1
	SUBS	* 
	BNZ	L16
	.line	25
;>>>> 	                        Dot_Type=0xff>>(X0&0x07);
	LACK	7
	MAR	* ,AR2
	AND	* ,AR0
	CMPL
	SACL	* 
	LT	* 
	LACK	255
	SACL	* 
	SSXM
	LACT	* ,AR2
	ADRK	7-LF5
	SACH	* ,1
	.line	26
;>>>> 	                        Read_Data=0xff<<(7-X1&0x07);
	LACK	7
	SBRK	9-LF5
	SUB	* ,AR0
	ANDK	7
	SACL	* 
	LT	* 
	LACK	255
	SACL	* 
	LACT	* ,AR2
	ADRK	10-LF5
	SACL	* 
	.line	27
;>>>> 	                        Dot_Type=Dot_Type&Read_Data;
	LAC	*-
	AND	* 
	SACL	* ,AR0
	.line	28

⌨️ 快捷键说明

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