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

📄 max7221cs.asm

📁 自己做的单片机Proteus仿真实例
💻 ASM
字号:
 	DIN  BIT P3.0  	 ;数据输入端
	CLK  BIT P3.2	 ;时钟输入端
	LOAD BIT P3.1	 ;数据锁存控制端
      	ORG   0000H
      	LJMP  START
    
       	ORG   0030H
  START: 
	MOV 	SP,#60H
        LCALL 	PROCESS	;调用初始化MAX7221子程序
        MOV 	50H,#09H   
        MOV 	51H,#08H
	MOV 	52H,#07H
       	MOV 	53H,#06H
	MOV 	54H,#05H   
        MOV 	55H,#04H
	MOV 	56H,#03H
       	MOV 	57H,#02H	
	LCALL 	DISPLAY	;调用显示
  	sjmp  	$  	   


PROCESS:MOV A,#0CH    ;进入停机工作方式
 	MOV B,#00H
	LCALL W_7221
	
	MOV A,#0BH    ;扫描位数
        MOV  B,#07H
        LCALL W_7221
	 
        MOV A,#09H    ;译码方式
	MOV B,#0FFH
	LCALL W_7221

         MOV A,#0AH    ;显示亮度
         MOV B,#09H
	 LCALL W_7221
	 
	 MOV A,#0FH
	 MOV B,#01H
	 LCALL W_7221

	 MOV A,#0CH     ;进入启动工作方式
	 MOV B,#01H
	 LCALL W_7221

 	 RET

 
 W_7221: CLR  LOAD	;设置LOAD为
	 LCALL SD_7221	;发送位数据的高位
	 MOV A,B	;发送位数据的低位
	 LCALL SD_7221
	 
	 NOP
	 NOP
	 SETB LOAD	;锁存位数据
         RET

SD_7221: MOV R1,#08H	;发送位数据
C_SD:	 NOP
	 NOP
         CLR  CLK
	 RLC  A		;发位数据的最高位
	 MOV  DIN,C	;传待发位到发送口
	 NOP
	 NOP
	 SETB CLK	;设置上升沿,发送数据
         DJNZ R1,C_SD	;直到数据发送完,跳出
	 RET

;MAX7221 显示子程序

DISPLAY: MOV R0,#50H    ;设置缓冲区首址
	 MOV R2,#1	;准备启用MAX7221中的第号寄存器
	 MOV R3,#8	;共要发送个数据
C_DISP:  MOV A,@R0	;取出缓冲区数据显示
	 MOV B,A
	 MOV A,R2
	 LCALL W_7221	;发送第一个待显示的数据
	 INC R0		;继续取下一个待显数据
INC R0		;继续取下一个待显数据

	 INC R2		;启用下一个MAX7221中的寄存器
	 DJNZ R3,C_DISP ;三个待显数据发送完跳出
	 RET
DELAY:	 MOV R4,#100
   L2:	 MOV R5,#20
   L1:	 MOV R6,#0FFH
      	 DJNZ R6,$
      	 DJNZ R5,L1
       	 DJNZ R4,L2
      	 RET

      	 END 
      











 

⌨️ 快捷键说明

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