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

📄 maxbcdasm.asm

📁 DSP2407与MAX7219 LED显示电路
💻 ASM
📖 第 1 页 / 共 2 页
字号:
					sub  #1
					SACL 232H
					SUB	 #3300H
					BCND  L6,EQ  ;<=0
					B     L20  
L6:                 SPLK  #3309H,232H
					LACL 231H
					sub  #1
					SACL 231H
					SUB	 #2280H
					BCND  L7,EQ  ;<=0
					B     L20  
					
L7:                 SPLK  #2289H,231H
					LACL 230H
					sub  #1
					SACL 230H
					SUB	 #1100H
					BCND  L8,EQ  ;<=0
					B     L20         
L8:       
				    SPLK #1109H,230H
				    SPLK #2289H,231H
				    SPLK #3309H,232H 
				    SPLK #4489H,233H
				    SPLK #5505H,234H
				    SPLK #6689H,235H
				    SPLK #7705H,236H
				    SPLK #8809H,237H	
					                  ; CALL WRITE_7219
L20:                    
                    CALL  QS
                    B WAIT
;-----------------------------------------
QS:
 				    LDP #200H>>7 
 				    LACL  230H
 				    SACL  210H
 				    
 				    LACL  231H
 				    SACL  211H
 				    LACL  232H
 				    SACL  212H
 				    LACL  233H
 				    SACL  213H
 				    LACL  234H
 				    SACL  214H
 				    LACL  235H
 				    SACL  215H
 				    LACL  236H
 				    SACL  216H
 				    
 				    LACL  237H
 				    SACL  217H
 				    
 				     
 				    LAR AR1,#210H
				    CALL WRITE_7219
				    LAR AR1,#211H
				    CALL WRITE_7219
				    LAR AR1,#212H
				    CALL WRITE_7219
				    LAR AR1,#213H
				    CALL WRITE_7219
				    LAR AR1,#214H
				    CALL WRITE_7219
				    LAR AR1,#215H
				    CALL WRITE_7219
				    LAR AR1,#216H
				    CALL WRITE_7219
				    LAR AR1,#217H
				    CALL WRITE_7219		    
					RET				
		;(3)系统初始化程序
;*********************************************************
SYSINIT:
		            SETC 	INTM
					CLRC 	SXM
			       	CLRC 	OVM
					CLRC 	CNF					;B0区被配置为数据空间
			        LDP 	#0E0H				;指向7000h~7080h区
			        SPLK 	#86FEH,SCSR1   		;时钟2倍频,CLKIN=20M,CLKOUT=40M
			        SPLK	#0E8H,WDCR			;不使能WDT
				    LDP		#0
					SPLK	#0003H,IMR			;使能中断第2级INT2
					SPLK	#0FFFFH,IFR	
					
					LDP     #XINT1CR>>7
					SPLK    #8001H,XINT1CR     		;清全部中断标志
					RET

;*********************************************************
IOPF_INIT:		    LDP #MCRC>>7  ;允许输出
	                LACL MCRC
	                AND #0FCFFH
		        	SACL MCRC     ;IOPF0/IOPF1为IO输出口
	                LACL PFDATDIR
	                OR   #8302H
	                AND #0FF7EH
	                SACL PFDATDIR
	                RET
;********************************************	                 
IOPB_INIT:		    LDP #MCRA>>7  ;允许输出
	                LACL MCRA
	                AND #00FFH
		        	SACL MCRA     ;IOPF0/IOPF1为IO输出口
	                LACL PBDATDIR
	                OR   #0FF00H
	                AND #0FFFEH
	                SACL PFDATDIR
	                RET  	                
	                
	                
;*********************************************************
IOPE_INIT:		    LDP #MCRC>>7 ;IOPE1/2/3 为输出
					LACL MCRC
					AND #0FFF1H
					SACL MCRC
					LACL PEDATDIR
					OR #0E00H
					SACL PEDATDIR
					RET
;*********************************************************
WRITE_7219:         LDP #PEDATDIR>>7    ;AR1存放显示数据,AR2计数
					LAR AR2,#15					
					SBIT0 PEDATDIR,LOAD_7219
					CALL DELAY
WRITE1				SBIT0 PEDATDIR,CLK_7219
					CALL DELAY
                    MAR *,AR1
                    LACC *,16					
	                SFL
	                SACH *
	                BCND WRITE2,C
	                SBIT0 PEDATDIR,DIN_7219
	                CALL DELAY
	                B WRITE3
WRITE2				SBIT1 PEDATDIR,DIN_7219
                    CALL DELAY
WRITE3              SBIT1 PEDATDIR,CLK_7219
					CALL DELAY
					MAR *,AR2
					BANZ WRITE1
					SBIT1 PEDATDIR,LOAD_7219
					CALL DELAY					
					RET
;*********************************************************
     ;entrance   temp1
BCDWRITE:			LAR AR0,#temp1;temp1 存放实际要显示单元的数据
					LAR AR1,#temp2 ;temp2存放显示的位和数据
                    MAR *,AR0
                    LACC *
                    AND #000FH
                    OR #8800H
                    MAR *,AR1
                    ;SPLK #0077H,AR1
                    SACL *
                    CALL WRITE_7219
                    MAR *,AR0
                    LACC *                    
                    AND #00F0H
                    RPT #3
                    SFR
                    OR #7700H
                    MAR *,AR1
                    SACL *
                    CALL WRITE_7219
                    MAR *,AR0
                    LACC *
                    AND #0F00H
                    RPT #7
                    SFR                    
                    OR #6600H                     
                    MAR *,AR1
                    SACL *
                    CALL WRITE_7219
                    MAR *,AR0
                    LACC *
                    AND #0F000H
                    RPT #11
                    SFR
                    OR #5500H                    
                    MAR *,AR1
                    SACL *
                    CALL WRITE_7219
;*********************************************************                    RET 
     ;entrance   temp1
ADRESSWRITE:		LAR AR0,#temp1;temp1 存放实际要显示单元的数据
					LAR AR1,#temp2 ;temp2存放显示的位和数据
                    MAR *,AR0
                    LACC *
                    AND #000FH
                    OR #4400H
                    MAR *,AR1
                    SACL *
                    CALL WRITE_7219
                    MAR *,AR0
                    LACC *                    
                    AND #00F0H
                    RPT #3
                    SFR
                    OR #3300H
                    MAR *,AR1
                    SACL *
                    CALL WRITE_7219
                    MAR *,AR0
                    LACC *
                    AND #0F00H
                    RPT #7
                    SFR                    
                    OR #2200H                     
                    MAR *,AR1
                    SACL *
                    CALL WRITE_7219
                    MAR *,AR0
                    LACC *
                    AND #0F000H
                    RPT #11
                    SFR
                    OR #1100H                    
                    MAR *,AR1
                    SACL *
                    CALL WRITE_7219
                    RET                   
                    		
					
					
					
;*********************************************************
SHUTDOWN:			;LDP  #8100H>>7
					LAR AR1,#temp1
					MAR *,AR1
					SPLK #0FF00H,*+
					SPLK #0CC00H,*+
					LAR AR1,#temp1
					CALL WRITE_7219
					LAR AR1,#temp2
					CALL WRITE_7219
					RET


;/*************Init Max7219**********************************************************/
ALLON:				;LDP #8100H>>7
					LAR AR1,#temp1
					MAR *,AR1
					SPLK #0FF0FH,*+					
					LAR AR1,#temp1
					CALL WRITE_7219	
					RET	
DELAY3:               
	                ;LDP #200H>>7
	                ;LACC 241H
	                ;SACL AR0
					LAR AR0,#0FFH
					
					MAR *,AR0
DELAY1:             NOP 
                    NOP       
                    NOP
					BANZ DELAY1       
						;清全部中断标志
					RET	    
DELAY               RPT #100  
					NOP 
					NOP

				
					RET  
;(5)中断程序
GISR1:				SETC INTM
					;MAR *,AR6
					LDP  #200H>>7
					IN 240H,0100H
					LACL 240H
					AND #00FH ;
					SACL 240H
					
					
					RPT #100        ;priority 
					NOP
					RPT #100
					NOP
					MAR *,AR0
					LDP #0
					SPLK #01H,IFR
					LDP  #XINT1CR>>7
					SPLK #8001H,XINT1CR
					CLRC INTM
					RET
					
GISR5:								;优先级INT5中断人口
				
					CLRC	INTM	;开总中断,因为一进中断就自动关闭总中断
					RET	
;(6)假中断程序
PHANTOM: 	
KICK_DOG:						;复位看门狗
					RET
					END
	          
	          
	          
	          
	          
	          
	          
	          
	          
	          
	          
	          
	          

⌨️ 快捷键说明

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