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

📄 7219interface.asm

📁 7219interface
💻 ASM
字号:
;7219送led_reg开始的4个字节单元数据
DIN BIT P3.5
CLK BIT P3.4
LOAD BIT P3.3
;REN  BIT  P2.0
RDEN BIT P2.0
LED_REG EQU 30H;在该位置之后放置即将显示的字符,30H放置最高两位
ORG  00
AJMP INT
ORG 0003H
AJMP SERVER
INT: 	 MOV 	SP,#60H
	 SETB	EA
	 SETB	EX0	;MOV   	IE,#81H	;允许外部中断0
	 CLR	IT0	;低电平触发,IE0为相应标志
	 CLR    RDEN
INIT7219:
	MOV	A,#0BH
	MOV	B,#07H
	ACALL   W_7219
	MOV 	A,#09H
	MOV	B,#0FFH
	ACALL   W_7219
	MOV 	A,#0AH
	MOV	B,#09H
	ACALL   W_7219
	MOV 	A,#0CH
	MOV	B,#01H
	ACALL   W_7219
;---------------------------
MAIN:

	ACALL   DISPLAY	;显示刷新的时间如何控制??
	SJMP 	MAIN
;--------------该函数显示8个数字-------------
DISPLAY:
	MOV 	R0,#LED_REG
	MOV     R3,#01H
	MOV     R2,#04H

C_DISP:
	ACALL  	CAIFEN
	MOV 	A,R4	;拆分后的高位
	MOV	B,A
	MOV 	A,R3
	ACALL   W_7219
	INC 	R3
	MOV 	A,R5	;拆分后的低位
	MOV 	B,A
	MOV 	A,R3
	ACALL	W_7219
	INC 	R3
	INC	R0
	DJNZ	R2,C_DISP;共显示四个数据
	RET

W_7219:
	CLR 	LOAD
	ACALL	SD_7219
	MOV  	A,B
	ACALL	SD_7219
	SETB	LOAD
	RET

SD_7219:
	MOV 	R6,#08H
C_SD:
	NOP
	CLR	CLK
	RLC	A
	MOV	DIN,C
	NOP
	SETB	CLK
	DJNZ	R6,C_SD
	RET

CAIFEN:
	MOV	A,@R0
	ANL	A,#0FH
	MOV	R5,A
	MOV	A,@R0
	SWAP	A
	ANL	A,#0FH
	MOV	R4,A
	RET
;设置标记来确定是否要更新显示
SERVER:
	;读取四个数据,分次读取
	SETB	RDEN
	PUSH	PSW
	PUSH	ACC

	MOV	A,P0	;读取数据
	MOV	30H,A	;最高两位
	CLR	RDEN
	NOP
	NOP

	SETB	RDEN
	NOP
	MOV	A,P0	;读取数据
	MOV	31H,A	;两位
	CLR	RDEN
	NOP
	NOP

	SETB	RDEN
	NOP
	MOV	A,P0	;读取数据
	MOV	32H,A	;两位
	CLR	RDEN
	NOP
	NOP

	SETB	RDEN
	NOP		;等待准备数据
	MOV	A,P0
	MOV	33H,A	;两位
	CLR	RDEN

	POP	ACC
	POP	PSW

	;NOP,负责与FPGA进行通信,读取数据
	RETI
END

⌨️ 快捷键说明

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