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

📄 fution.asm

📁 多字节汉字屏显示控制程序
💻 ASM
字号:
;-----------------------------------------------------------
	 	PUBLIC     _RESET_SYSTEM
		PUBLIC	   _SET_DATA_L
		PUBLIC	   _ADDDATA
		PUBLIC	   _MOVEDATA_L
		PUBLIC	   _MOVEDATA_R
		PUBLIC	   _WRITE_OFF
		PUBLIC	   _SWAPDATA
        PROC       SEGMENT      CODE
        RSEG       PROC
;---------------------------------------------------------------------
_RESET_SYSTEM:
              MOV   	PSW,#0D
		      MOV   	IE,#0D
		MOV		IP,#0D
		MOV  	TMOD,#0D
		MOV		TCON,#0D
	   	POP		ACC
		POP		ACC
       	MOV   DPTR,#ROVER
       	PUSH  DPL
       	PUSH  DPH
       	RETI
ROVER:  CLR   A
       	PUSH  ACC
       	PUSH  ACC
       	RETI

;---------------------------------------------------------------------
;数据搬家,入口源地址,目的地址,终止地址
;---------------------------------------------------------------------
_ADDDATA:	;MOV	R7,#4D	;源地址
		;MOV	R6,#3D
		;MOV	R5,#3D	;目的地址
		;MOV	R4,#3D
		;R3		;终止地址
LOOP_ADD:	MOV	DPL,R7
		MOV	DPH,R6
		MOVX	A,@DPTR ;得到一个数据
		INC	DPTR
		MOV 	R7,DPL
		MOV	R6,DPH
		MOV	DPL,R5
		MOV	DPH,R4
		MOVX	@DPTR,A ;写入其他地址
 	        INC	DPTR
		MOV	R5,DPL
		MOV	R4,DPH
		MOV	A,R5
		XRL	A,R3
		JNZ	LOOP_ADD
		MOV	A,R4
		XRL	A,R2
		JNZ	LOOP_ADD
		RET

;---------------------------------------------------------------------
;左移出屏数据装载
;---------------------------------------------------------------------
_MOVEDATA_L:	;MOV	R7,#4D	;源地址
		;MOV	R6,#3D
		;MOV	R5,#3D	;目的地址
		;MOV	R4,#3D
		;R3		;终止地址
		;R2
		;R1
		;R0
		MOV	DPL,R7
		MOV	DPH,R6
		MOV	A,R1
		PUSH	ACC
		MOV	A,R5
		MOV	R1,A

LOOP:		MOV	A,R3
		MOV	R2,A

LOOP_L:
		MOVX	A,@DPTR ;得到一个数据
		RLC	A
		MOV	P2,R4
		MOVX	@R1,A ;写入其他地址

	 	PUSH	PSW

		XCH A,DPL
            	DEC A
            	CJNE A,#0FFH,LOOP_DPTR
            	DEC DPH
LOOP_DPTR: 	XCH A,DPL

		DEC	R1
		CJNE 	R1,#0FFH,LOOP_DPTR2
		DEC	R4
LOOP_DPTR2:
		POP	PSW
		DJNZ	R2,LOOP_L

		MOV	A,R3
		ADD	A,R3
		ADD	A,DPL
		MOV	DPL,A
		MOV	A,DPH
		ADDC	A,#0D
		MOV	DPH,A

		MOV	A,R3
		ADD	A,R3
		ADD	A,R1
		MOV	R1,A
		MOV	A,R4
		ADDC	A,#0D
		MOV	R4,A
		DJNZ	R0,LOOP
		POP	ACC
		MOV	R1,A
		RET
;---------------------------------------------------------------------
;左移出屏数据装载
;---------------------------------------------------------------------
_MOVEDATA_R:	;MOV	R7,#4D	;源地址
		;MOV	R6,#3D
		;MOV	R5,#3D	;目的地址
		;MOV	R4,#3D
		;MOV	R3,#23D ;终止地址
		;MOV	R2,#2D

		MOV	DPH,R6
		MOV	DPL,R7
		MOV	00H,05H
		PUSH	PSW

LOOP_R:		POP	PSW
		MOVX	A,@DPTR ;得到一个数据
		INC	DPTR
		RRC	A
		MOV	P2,R4
		MOVX	@R1,A ;写入其他地址
		PUSH	PSW

		INC	R1
		CJNE	R1,#0D,LOOP_R_NEXT
		INC	R4

LOOP_R_NEXT:  	MOV	A,R1
		XRL	A,R3
		JNZ	LOOP_R
		MOV	A,R4
		XRL	A,R2
		JNZ	LOOP_R
		POP	PSW
		RET
;---------------------------------------------------------------------
;数据搬家,入口源地址,目的地址,终止地址
;---------------------------------------------------------------------
_SET_DATA_L:	;MOV	R7,#4D	;源地址
		;MOV	R6,#3D
		;MOV	R5,#3D	;目的地址
		;MOV	R4,#3D
		;MOV	R3,#23D ;终止地址
		;MOV	R2,#2D
		INC	R3
		MOV	DPH,R6
		MOV	DPL,R7
		MOVX	A,@DPTR ;得到一个数据
LOP_L:		RLC	A
		DJNZ	R3,LOP_L
		JC	LOP_H
		MOV	DPH,R4
		MOV	DPL,R5
		MOVX	A,@DPTR ;写入其他地址
		ANL	A,#0FEH
		MOVX	@DPTR,A
		RET

LOP_H:		MOV	DPH,R4
		MOV	DPL,R5
		MOVX	A,@DPTR ;写入其他地址
		ORL	A,#01H
		MOVX	@DPTR,A
		RET
		;---------------------------------------------------------------------
_WRITE_OFF:
		CLR	P1.5
		CLR	P1.6
		CLR	P1.7

		MOV	DPTR,#5555H
		MOV	A,#0AAH
		MOVX	@DPTR,A

		MOV	DPTR,#2AAAH
		MOV	A,#055H
		MOVX	@DPTR,A

		MOV	DPTR,#5555H
		MOV	A,#80H
		MOVX	@DPTR,A

		MOV	DPTR,#5555H
		MOV	A,#0AAH
		MOVX	@DPTR,A

		MOV	DPTR,#2AAAH
		MOV	A,#055H
		MOVX	@DPTR,A

		MOV	DPTR,#5555H
		MOV	A,#20H
		MOVX	@DPTR,A

		RET
;---------------------------------------------------------------------
;数据高低位交换
;---------------------------------------------------------------------
_SWAPDATA:	;MOV	R7,#4D	;源地址
		;MOV	R6,#3D
		;MOV	R5,#3D	;目的地址
		;MOV	R4,#3D
		;MOV	R3,#23D ;终止地址
		;MOV	R2,#2D
		MOV	A,R5
		ADD	A,#1D
		MOV	R5,A
		MOV	A,R4
		ADDC	A,#0D
		MOV	R4,A

		MOV	DPH,R6
		MOV	DPL,R7

LOOP_SWAP:	MOVX	A,@DPTR ;得到一个数据
		MOV	R3,#8D
		CPL	A
		MOV	R1,A

LOOP_RLC:	MOV	A,R1
		RLC	A
		MOV	R1,A
		MOV	A,R2
		RRC	A
		MOV	R2,A
		DJNZ	R3,LOOP_RLC
		MOV	A,R2
		MOVX	@DPTR,A
		INC	DPTR

		MOV	A,DPL
		XRL	A,R5
		JNZ	LOOP_SWAP
		MOV	A,DPH
		XRL	A,R4
		JNZ	LOOP_SWAP
		RET
		END








⌨️ 快捷键说明

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