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

📄 keyled.asm

📁 TMS320LF2407键盘
💻 ASM
字号:
;/******************************************************************************/
;press the key and the leds display the key value!
;the key value is from:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
;the leds dislay the value as:0,1,2,3,4,5,6,7,8,9,-,E,H,L,,P,NULL                                         */
;/******************************************************************************/

						.include  	"F2407REGS.H" 		;引用头部文件
						.def      	_c_int0
;(1)建立中断向量表
						.sect	".vectors"					;定义主向量段	
RSVECT			B    _c_int0				;PM 0	复位向量1
INT1	  		B    GISR1					;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  	 用户定义软件中断		-

INT9	  		B    PHANTOM
INT10	  		B    PHANTOM
INT11	  		B    PHANTOM
INT12	  		B    PHANTOM
INT13	  		B    PHANTOM
INT14	  		B    PHANTOM
INT15	  		B    PHANTOM
INT16	  		B    PHANTOM
INT17	  		B    PHANTOM
INT18	  		B    PHANTOM
INT19	  		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  	用户定义软件中断	 	-
					
			.sect	".pvecs"					;定义子向量段
PVECTORS	B	PHANTOM				;保留向量地址偏移量0000h 		
			.space 80h*16  		
					B	PHANTOM				;保留向量地址偏移量0040h  CAN接收中断
					B	PHANTOM				;保留向量地址偏移量0041h
			
;中断子向量入口定义pvecs
DIN_7219  		.set 02h						;在WRITE_7219中用
LOAD_7219 		.set 04h
CLK_7219  		.set 08h 
 
    			.bss temp1,1
	    		.bss temp2,1
	    					
;(2)主程序
					.text
_c_int0     CLRC XF
						SETC 	INTM
						CALL	SYSINIT 					;系统初始化程序				
				    CALL    IOPF_INIT
				    CALL    IOPE_INIT
				    ;CLRC    INTM
				    				     
				    LDP #200H>>7						; FOR TEST  
				    SPLK #0CC11H,200H				; 初始化
				    SPLK #0FF00H,201H
				    SPLK #099FFH,202H
				    SPLK #0AA44H,203H
				    SPLK #0BB77H,204H
				    
				    SPLK #08806H,210H
				    SPLK #08807H,211H
				    SPLK #8808H,212H 
				    SPLK #8809H,213H
				    SPLK #880AH,214H
				    SPLK #880BH,215H
				    SPLK #880CH,216H
				    SPLK #880DH,217H
				    SPLK #880EH,218H
				    SPLK #880FH,219H
				    ;-------------------      
                    
				    LAR     AR1,#200H			
	          CALL    WRITE_7219  
	          LAR     AR1,#205H			
	          CALL    WRITE_7219
	          LAR     AR1,#206H			
	          CALL    WRITE_7219
	          LAR     AR1,#207H			
	          CALL    WRITE_7219
	          LAR     AR1,#208h		
	          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
	          LAR     AR1,#218h		
						CALL    WRITE_7219
						LAR     AR1,#219h		
						CALL    WRITE_7219                 			    
				    ;----------------------------
				    CLRC    INTM
     			    ;---------------------------

WAIT:	    LDP  #XINT1CR>>7    	; Book P45
			SPLK #8001H,XINT1CR		; enable XINT1
		CLRC INTM                                                                            
          LAR     AR1,#200H			
          CALL    WRITE_7219                    
          LDP     #200H>>7 
          mar     *,ar1
          lar     ar1,#211h
          lacl    *
          sacl    210h          
          LAR     AR1,#210H			
          CALL    WRITE_7219
         CALL    DELAY 
					B	    WAIT
;(3)系统初始化程序
SYSINIT:					
					CLRC 	SXM
					CLRC 	OVM
					CLRC 	CNF
					LDP 	#0E0H
					SPLK	#86FEH,SCSR1	;CLKIN=10M,CLKOUT=10M			       
					SPLK	#0E8h,WDCR	
					LDP		#0
					SPLK	#01h,IMR		; 
					SPLK	#0FFFFh,IFR
					LDP     #XINT1CR>>7
					SPLK    #8001H,XINT1CR        ;priority 					
					NOP				;清中断标志
			    RET
  
;-------------------------------------
;*********************************************************
; TMS320 -> LVC16245 -> Max7219 -> LED
IOPF_INIT:		    			; Select lvc16245
					LDP #MCRC>>7  ;允许输出
					LACL MCRC
					AND #0FCFFH
					SACL MCRC     ;IOPF0/IOPF1为IO输出口
					LACL PFDATDIR
					OR   #0302H
					AND #0FFFEH
					SACL PFDATDIR
					RET   
                 
IOPE_INIT:		  				; Set para for Max7219  
					LDP #MCRC>>7 ;IOPE7为output low 
					LACL MCRC
					AND #0FF7EH
					SACL MCRC
					LACL PEDATDIR
					OR #8E00H
					AND #0FF7FH
					SACL PEDATDIR
					RET
;*********************************************************
WRITE_7219:         
					SETC INTM
					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					
					CLRC INTM
					RET
;-----------------------
DELAY    	RPT #200
					NOP
					RPT #200
					NOP
					RET
;-----------------------					
;(5)中断程序
GISR1:		; read data to (210), and back it up in (211)
					SETC INTM					
					LDP #200h>>7
					MAR *,AR6			; used to refer to save address
					LAR AR6,#0210H
					IN *,0100H 		;GET KEY VALUE , read in word from port address 0100h -> (210)
					LACC *				;(210)->ACC
					AND #00FH  		;HIGH BYTE IS CLEARED
					OR #8800H  		; DISPLAY POSITION CHOICE !!!
					SACL *+      	; save input in (210)
					sacl *    		; backup input in (211)
					RPT #100      ; priority 
					NOP
					RPT #100
					NOP
					MAR *,AR0					
					LDP  #XINT1CR>>7			; Book P45
					SPLK #8001H,XINT1CR		; enable XINT1
					CLRC INTM
					RET
;----------------------------
GISR5:		CLRC	INTM	;开总中断,因为一进中断就自动关闭总中断
					RET
;-----------------------------	
;(6)假中断程序
PHANTOM 	
KICK_DOG						;复位看门狗     
					RET
					END

⌨️ 快捷键说明

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