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

📄 driver_max7219.asm

📁 MAX7219驱动
💻 ASM
字号:
; ****************
; *Driver_MAX7219*
; ****************

; 硬件连接定义
DIN_Max7219		BIT		P0.0;
LOAD_Max7219	BIT		P0.1;
CLK_Max7219		BIT		P0.2;

; 寄存器定义
Address			EQU		21H;
WordCount		EQU		22H;
Databuf			EQU		23H;

		ORG		0000H;
		JMP		Main;
Main:
		CALL	Max7219_Initialization;
		MOV		Address,#01H;
		MOV		WordCount,#08H;
		MOV		Databuf,#07H;
		MOV		Databuf+1,#06H;
		MOV		Databuf+2,#05H;
		MOV		Databuf+3,#04H;
		MOV		Databuf+4,#03H;
		MOV		Databuf+5,#02H;
		MOV		Databuf+6,#01H;
		MOV		Databuf+7,#00H;
		CALL	Max7219_Send_bytes;
		SJMP	$;
Max7219_Initialization:
		MOV		Address,#0BH;
		MOV		Databuf,#07H; 设定扫描界限([00H-07H],xxH表示只扫描第xx位)
		MOV		WordCount,#01H;
		CALL	Max7219_Send_bytes;
		MOV		Address,#09H;
		MOV		Databuf,#0FFH; 设定译码(00H:0-7位不译码;01H:0位译码,1-7位不译码
		MOV		WordCount,#01H;			0FH:0-3位译码,4-7位不译码;0FH:0-7位译码)
		CALL	Max7219_Send_bytes;
		MOV		Address,#0AH;
		MOV		Databuf,#07H; 设定亮度(00H-0FH,00H亮度最低;0FH亮度最高)
		MOV		WordCount,#01H;
		CALL	Max7219_Send_bytes;
		MOV		Address,#0CH;
		MOV		Databuf,#01H; 设定掉电寄存器(01H为正常模式,00H为掉电模式)
		MOV		WordCount,#01H;
		CALL	Max7219_Send_bytes;	   
/*		MOV		Address,#0FH;
		MOV		Databuf,#00H; 设定显示测试寄存器(00H为正常模式,01H为测试模式)
		MOV		WordCount,#01H;
		CALL	Max7219_Send_bytes;	  */
		RET
Max7219_Send_bytes:
		MOV		R0,#Databuf;
Loop_Send_Adr0:
		MOV		A,Address;
		MOV		R7,#08H;
Loop_Send_Adr:
		CLR		CLK_Max7219;
		CLR		LOAD_Max7219;
		RLC		A;
		MOV		DIN_Max7219,C;
		SETB	CLK_Max7219;
		DJNZ	R7,Loop_Send_Adr;
Loop_Send_Dat0:
		MOV		R7,#08H;
		MOV		A,@R0;
Loop_Send_Dat1:
		CLR		CLK_Max7219;
		RLC		A;
		MOV		DIN_Max7219,C;
		SETB	CLK_Max7219;
		DJNZ	R7,Loop_Send_Dat1;
		SETB	LOAD_Max7219;
		INC		R0;
		INC		Address;	
		DJNZ	WordCount,Loop_Send_Adr0;
		RET	
		END			

⌨️ 快捷键说明

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