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

📄 maxbcdasm-1.asm

📁 DSP2407与MAX7219 LED显示电路
💻 ASM
字号:
;******************************************************************************/
;* file name:MAXBCDASM.ASM                                                          */
;*                                                                            */
;* This is proprietary information, not to be published -- NUAA_306_WORKGUROP */
;* Copyright (C) 2003, NUAA_306_WORKGROP.  All Rights Reserved.               */
;*                                                                            */
;* Author: Jianbo.CHU                                                        */
; Date: June,8, 2003                                                         */
;                                                                            */
; This code is to driver the micro-printer                                   */
;                                                                            */
;*                                                                            */
;************************************************
* MAX7219 LED显示电路
;阴极LED 控制芯片MAX7219
;CAP5/QEO4/IPOF0  与MAX7219 OE脚相连
;CAP6/IOPF1与max7219 dir相连
;1  A到B
;0  B到A

;MAX7219 与 	LF240连接7	说明
;DIN(1管脚)	    PWM7/IOPE1	LED显示所用信号
;LOAD(12管脚)	PWM8/IOPE2	
;CLK(13管脚)	PWM9/IOPE3	*/   
				.include  "F2407REGS.H" 
;(1)建立中断向量表
						.sect	".vectors"					;定义主向量段	
RSVECT			B    _c_int0					;PM 0	复位向量1
INT1	  		B    PHANTOM				;PM 2	中断优先级 14
INT2	  		B    PHANTOM				;PM 4	中断优先级2	5
INT3	  		B    PHANTOM				;PM 6	中断优先级 36
INT4	  		B    PHANTOM				;PM 8	中断优先级 47
INT5	  		B    GISR5					;PM A	中断优先级 58
INT6	  		B    PHANTOM				;PM C	中断优先级 69
RESERVED  		B    PHANTOM				;PM E	 (保留位)10
SW_INT8   		B    PHANTOM				;PM 10  	 用户定义软件中断		-
INT7	  		B    PHANTOM
INT8	  		B    PHANTOM
INT9	  		B    PHANTOM
INT10	  		B    PHANTOM
INT11	  		B    PHANTOM
INT12	  		B    PHANTOM
INT13	  		B    PHANTOM
INT14	  		B    PHANTOM
INT15	  		B    PHANTOM

INT20	  		B    PHANTOM
INT21	  		B    PHANTOM
INT22	  		B    PHANTOM
INT23	  		B    PHANTOM
INT24	  		B    PHANTOM
INT25	  		B    PHANTOM
INT26	  		B    PHANTOM
INT27	  		B    PHANTOM
INT28	  		B    PHANTOM
INT29	  		B    PHANTOM
INT30	  		B    PHANTOM			
SW_INT31  		B    PHANTOM				;PM 3E  	用户定义软件中断
DIN_7219  		.set 02h
LOAD_7219 		.set 04h
CLK_7219  		.set 08h 
				.bss temp1,1
				.bss temp2,1

;中断子向量入口定义pvecs
			.sect	".pvecs"					;定义子向量段
PVECTORS	B	PHANTOM				;保留向量地址偏移量0000h 
			B	PHANTOM				;保留向量地址偏移量0001h
			.space 80
  				
			B	PHANTOM				;保留向量地址偏移量003Fh
			B	PHANTOM				;保留向量地址偏移量0040h  CAN接收中断
			B	PHANTOM				;保留向量地址偏移量0041h
;(2)主程序
					.text
_c_int0    
					CALL	SYSINIT 					;系统初始化程序
					CALL    IOPF_INIT
					CALL    IOPE_INIT       
				;	LDP #PEDATDIR>>7
				;	SBIT0 PBDATDIR,B0
				;					
				;	SBIT0 PEDATDIR,DIN_7219
				;	SBIT1 PEDATDIR,DIN_7219
				;	SBIT0 PEDATDIR,DIN_7219
				;	
				;	SBIT0 PEDATDIR,CLK_7219
				;	SBIT1 PEDATDIR,CLK_7219
				;	SBIT0 PEDATDIR,CLK_7219
				;	
				;	SBIT0 PEDATDIR,LOAD_7219
				;	SBIT1 PEDATDIR,LOAD_7219
				;	SBIT0 PEDATDIR,LOAD_7219
					
					LDP #200H>>7
				    SPLK #0CC11H,200H
				    SPLK #0FF00H,201H
				    SPLK #099FFH,202H
				    SPLK #0AA44H,203H
				    SPLK #0BB77H,204H
				    SPLK #1100H,210H
				    SPLK #2201H,211H
				    SPLK #3302H,212H 
				    SPLK #4403H,213H
				    SPLK #5504H,214H
				    SPLK #6605H,215H
				    SPLK #7706H,216H
				    SPLK #8807H,217H
				   
				    
				    
				    LAR AR1,#200H    ;//shut down normal,D0=1,else all down
				    CALL WRITE_7219
				    LAR AR1,#201H
				    CALL WRITE_7219
				    LAR AR1,#202H
				    CALL WRITE_7219
				    LAR AR1,#203H
				    CALL WRITE_7219
				    LAR AR1,#204H
				    CALL WRITE_7219

			        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
				    LDP #200H>>7
				    SPLK #1101H,210H
				    SPLK #2202H,211H
				    SPLK #3303H,212H 
				    SPLK #4404H,213H
				    SPLK #5505H,214H
				    SPLK #6606H,215H
				    SPLK #7707H,216H
				    SPLK #8808H,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 
				  
				    LAR AR1,#temp1
				    MAR *,AR1
				    SPLK #9876H,* ;Data to be displayed
				    CALL BCDWRITE
				    LAR AR1,#temp1
				    MAR *,AR1
				    SPLK #temp1,* ;Data to be displayed 
				    CALL ADRESSWRITE
				    
				    
				    CALL SHUTDOWN
				    CALL ALLON
				    
WAIT:			    NOP
                    B WAIT
				    
				
		;(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	#0002H,IMR			;使能中断第2级INT2
					SPLK	#0FFFFH,IFR			;清全部中断标志
					RET

;*********************************************************
IOPF_INIT:		    LDP #MCRC>>7  ;允许输出
	                LACL MCRC
	                AND #0FCFFH
		        	SACL MCRC     ;IOPF0/IOPF1为IO输出口
	                LACL PFDATDIR
	                OR   #0302H
	                AND #0FFFEH
	                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 #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 
     ;entrance   temp1
ADRESSWRITE:		LAR AR0,#temp1;temp1 存放实际要显示单元的数据
					LAR AR1,#temp2 ;temp2存放显示的位和数据
                    MAR *,AR0
                    LACC *
                    AND #000FH
                    OR #8800H
                    MAR *,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                   
                    		
					
					
					
;*********************************************************
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	
	    
DELAY               RPT #200
					NOP
					RPT #200
					NOP
					RET
GISR5
PHANTOM 			B  _c_int0						
					          
	            
	          
	          
	          
	          
	          
	          
	          
	          
	          
	          
	          
	          
	          

⌨️ 快捷键说明

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