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

📄 da.asm

📁 TMS320LF2407键盘与DA转换综合控制源码 键盘0
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		ADD		#PVECTORS			;加上外设中断入口地址
		BACC						;跳到相应的中断服务子程序
XINT1_ISR:	                		; 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 key value in (210H)
					SACL  *    		; backup input in (211)
					RPT #100      		; priority 
					NOP
					RPT #100
					NOP
                    LACC  *             ;装载累加器
              	    SUB   #00H
					BCND  KEY0,EQ
	
					LACC *
					SUB  #01H
					BCND  KEY1,EQ 
					
					LACC *
					SUB  #02H
					BCND  KEY2,EQ 
					
					 LACC *
					SUB  #03H
					BCND  KEY3,EQ   
					
GISR1_RET:					;中断返回
	      
	     					;开总中断,因为一进中断就自动关闭总中断
		  LDP  #XINT1CR>>7
		SPLK #8001H,XINT1CR  
		 CLRC	INTM
		RET					

			        ;LDP #0
					;SPLK #01H,IFR					
					;LDP  #XINT1CR>>7		; Book P45
					;SPLK #8001H,XINT1CR		; enable XINT1
					;CLRC INTM
					;RET
;---------------------------------------------------------------------------------------------------------------------
KEY0:   			
					
				    
					CALL  SQUAREWAVE
          			B  GISR1_RET
KEY1:   			
				
				    
					CALL  TRIANGLEWAVE
	     			B  GISR1_RET
KEY2:   			
				    
					CALL  SINEWAVE
	     			B  GISR1_RET
KEY3:   		
				   
					CALL  SAWTOOTHWAVE
	      			B  GISR1_RET
;---------------------------------------------------------------------------------------------------------------------
SQUAREWAVE:
					LDP #0
					SPLK #01H,IFR					
					LDP  #XINT1CR>>7		; Book P45
					SPLK #8001H,XINT1CR		; enable XINT1
					CLRC  INTM

						LDP   #0
				    	SPLK #00H,60H
				    	SPLK #00H,61H
				    	SPLK #00H,62H
LOOP:			    
					LDP		#0
					SPLK #0AH,62H
					OUT	62H,0300H
					RPT #100
					CALL DELAY1 
					CALL DELAY
					RPT     #200
	                		NOP  
	                		RPT     #200
	                		NOP 
					LDP		#0
					SPLK   #0A8H,62H
					OUT	62H,0300H 
						RPT #100 
					CALL DELAY1
					CALL DELAY
					RPT     #200
	                		NOP  
	                		RPT     #200
	                		NOP 

					B 		LOOP   
					RET
;---------------------------------------------------------------------------------------------------------------------
TRIANGLEWAVE:			   
			    	LDP #0
				SPLK #01H,IFR
				LDP  #XINT1CR>>7		; Book P45
		            	SPLK #8001H,XINT1CR		; enable XINT1
		            	CLRC	 INTM

 				    
						LDP   #0
				    	SPLK #00H,60H
				    	SPLK #00H,61H
				    	SPLK #00H,62H
 				    ; LDP #0
				   ; SPLK #0FFH,60H
				    
LOOP1:			    
                    LACL	 60H
                    ADD 	#1
                    SACL   60H 
                    CALL DELAY1
                    
					BIT 60H,8
					BCND LOOP2,TC
					OUT 60H,0300H
					RPT #200
					NOP
				   	B   LOOP1 
LOOP2:
					LACL  60H
					SUB  #1  
				
					
					BCND  LOOP1, LEQ
					SACL  60H 
						CALL DELAY1
					OUT  60H,0300H
					RPT  #200
					NOP
			        	B   LOOP2  
			        	RET
;---------------------------------------------------------------------------------------------------------------------
SINEWAVE:

	             
				    		   
			    	LDP #0
				SPLK #01H,IFR
				LDP  #XINT1CR>>7		; Book P45
		            	SPLK #8001H,XINT1CR		; enable XINT1
		            	CLRC	 INTM  
		            	
				    lar ar0,#0100h
          lar ar1,#0300h
          lar ar2,#0060h
          lar ar3,#8000h
                   
          ldp   #0h    
          splk #0000h,k
          splk #111h,I     ;Q10
          splk #0000h,sine     
          splk #0000h,ia 
          splk #0000h,ib
          splk #8000h,count
          splk #0800h,dax
          
        
       	 ;kick_dog
          ldp #0
          splk #1023,k
          mar *,ar3
          lacc #table
          RPT #200
          NOP
          rpt k
          tblr *+
          lar ar3,#8000h
          	
       	
    	LAR  AR3,#200H
		;CLRC	INTM
		
        ;RETURN  nop  
        ;kick_dog
        b RETURN

          
RETURN:          ldp #0 
          CLRC SXM
          lacc count
          sub  #83ffh 
          bcnd AGAIN,GEQ
          b OUTPORT1

AGAIN     ldp #0
          splk #8000h,count

OUTPORT1   
          ldp #0 
		  mar *,ar3
          lar ar3,count
          setc sxm
          LACC *
          SACL sine
          LACC sine 
         ; LACC #8001H
          RPTK #7
          SFR
          sacl sine
          LACC sine
          ADD #80H
          SACL sine
          ;splk #0ffffh,sine;
          
          out sine,0300h  

P1:					
          ldp #0  
          clrc sxm  
		  lacc count
          add #1h
          sacl count
          
    
         B  RETURN
     RET
;---------------------------------------------------------------------------------------------------------------------
SAWTOOTHWAVE:	  
					 LDP #0
					SPLK #01H,IFR
					
					LDP  #XINT1CR>>7		; Book P45
					SPLK #8001H,XINT1CR		; enable XINT1
					CLRC  INTM
                     
                     
						LDP   #0
				    	SPLK #00H,60H
				    	SPLK #00H,61H
				    	SPLK #00H,62H
						;LDP   #0
				    	;SPLK #0FFH,60H
				    	;SPLK #07FH,61H
				    	;SPLK #3FH,62H
LOOP3:			    
                     			LDP     #0
LOOP4:             			SPLK    #00H , 61H
LOOP5:	             			OUT     61H, 0300H
	                 		RPT     #200
	                 		NOP 
	                 		LACC    61H
	                 		ADD     #1
	                 		SACL    61H 
	                 			CALL  DELAY1 
	                 			
	                 		SUB     #07FH
	                 		BCND    LOOP4, GEQ 
	                 	
	                 	
	                 		B       LOOP5  
                             RET
;------------------------	                 		
DELAY1:
		LACL #10
DELAY2: SUB #1
		RPT #15
		NOP
		BCND DELAY2,NEQ
		RET
;---------------------------------------------------------------------------------------------------------------------
GISR5:		        	CLRC	INTM	     			;开总中断,因为一进中断就自动关闭总中断
						RET
;---------------------------------------------------------------------------------------------------------------------
;(6)假中断程序
PHANTOM: 	
				KICK_DOG			 	;复位看门狗     
				RET
				
				END


⌨️ 快捷键说明

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