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

📄 main.asm

📁 dsp2407的实验测试程序,包括存储器
💻 ASM
字号:
;==========================================================================*
* File name : main.asm *
* Author: Qu Bo *
* Data: 2006.11.19*
* Version: 2.0 *
* Organization: DSP&EMC,National Key Laboratory of Power Electronics, 
*               Zhejiang University, Hangzhou 310027, China *
* Description : PROGRAM TO CONTROL A ELECTRIC CAR USE F2407A * 

;============================================================================*

        .bss    GPR0,1                      
        .bss    R_COUNT,1
        .bss    T_COUNT,1
        .bss    DATA,1
        .bss    R_BUFF,65
        .bss    TEMP,1
        .bss    TEMP1,1
        .bss    FLAG,1
        .bss    R_FLAG,1
        .include "F2407.h" 		;the header file  
		.def    _c_int0,_24_INT2  


;======================================================
; M A C R O ?Definitions
;======================================================
KICK_DOG 	.macro 				; Watchdog reset macro
		LDP 	#00E0h 			; DP-->7000h-707Fh
		SPLK 	#05555h, WDKEY
		SPLK	#0AAAAh, WDKEY
		LDP 	#0h 			; DP-->0000h-007Fh
		.endm      
;======================================================
;系统初始化
;使能EVA,EVB,A/D模块,其他的未使能(根据要求使能)。
;====================================================== 
        .text  
        .word   #0ffffh
        .word	#0ffffh
        .word	#0ffffh
        .word	#0ffffh
_c_int0:	
        LDP     #0H
        SETC    INTM
        CLRC    SXM
        LACC    IFR
        SACL    IFR
        CLRC    CNF
        SETC    OVM
        LDP     #WDCR>>7
	    SPLK    #006Fh,	WDCR 	        ;Disable WD
	    KICK_DOG  
	    SPLK    #00h,	GPR0
		OUT     GPR0,	WSGR 
	    LDP     #SCSR1>>7
	    SPLK    #0000000000101100B,SCSR1   ;able eva ,evb,spi only
	    LDP	    #IMR>>7
	    SPLK    #0001H,IMR                 ;中端级1使能
	    
	    SPLK    #104CH,T2CON   ;1001 0000 0100 1100
	    SPLK    #0,T2CNT
	    LDP		#MCRB>>7
	    SPLK	#0FFFDH,MCRB
	    SPLK	#0000H,MCRC
	    LDP		#PCDATDIR>>7
	    SPLK	#0FFFDH,PCDATDIR
	    
	    LDP		#MCRA>>7
	    SPLK	#04H,MCRA      ;设置引脚输出为XINT1
	    LDP		#XINT1CR>>7
	    SPLK	#08001H,XINT1CR
	    
	    LDP	    #R_COUNT
	    SPLK	#0,R_COUNT     ;计数器接收复位
	    SPLK	#0,T_COUNT     ;计数器发送复位
	    SPLK	#0FF00H,TEMP1  ;初始化 TEMP1
	    SPLK	#0H,R_FLAG
	    SPLK	#0FFH,TEMP
	    OUT     TEMP,06000H
        
        MAR     AR5          ;缓冲区复位
        LAR     AR5,#R_BUFF	
        LACC	*+,AR5
        SPLK	#0,FLAG
        CLRC    INTM
MAIN
		NOP
		NOP
		NOP
		NOP
		B       MAIN

		
		LACC    FLAG
		BZ      MAIN
		MAR     AR5
		LACC    *+,AR5
		LDP		#PFDATDIR>>7
        OR      #0FF00H
        SACL	PFDATDIR
        CALL    T_DATA_FLAG     ;TO  USB  INT0
        LACC    T_COUNT
        ADD     #1
        SACL    T_COUNT
        SUB		#64
        BNZ     MAIN
        CALL    T_DATA_FLAG1     ;TO  USB  INT1
        SPLK	#0H,T_COUNT
        MAR     AR5
        LAR     AR5,#R_BUFF
        SPLK	#0,FLAG
        CLRC    INTM
       	B       MAIN
	    
_24_INT2
        LDP     #TEMP
        LACC    TEMP
        AND     #0FBH 
        SACL    TEMP
        OUT     TEMP,06000H
        LDP		#PEDATDIR>>7
        SPLK	#00FFH,PEDATDIR
        LACC    PEDATDIR
        AND     #0FFH
        LDP     #TEMP
        SACL    TEMP
        LACC    R_FLAG
        BZ      R_START 
        LACC    TEMP    
        MAR     AR5
        SACL	*+,AR5
        LDP		#R_COUNT
        LACC    R_COUNT
        SUB     #1
        SACL    R_COUNT
        BCND    INT_RET,GT
        SPLK	#0H,R_FLAG
INT_RET  
        LDP		#TEMP
        LACC    TEMP    ;USB3
        OR      #04H  
        SACL    TEMP
        OUT     TEMP,06000H
		LDP		#XINT1CR>>7
		SPLK	#08001H,XINT1CR
		CLRC    INTM      
        RET
R_START
        LDP     #TEMP
        LACC    TEMP
        BCND    INT_RET,LT,EQ
        SUB     #40H
        BCND    INT_RET,GT
        SPLK	#01H,R_FLAG
        LACC    TEMP
        SACL    R_COUNT
        MAR     AR5
        LAR     AR5,#R_BUFF
        SACL	*+,AR5
        B       INT_RET
                                       
T_DATA_FLAG
		LDP		#TEMP1
		LACC	TEMP1
		AND     #0FFFEH
		OUT	    TEMP1,0A000H
		NOP
		NOP
		NOP
		OR      #1
		SACL	TEMP1
		OUT     TEMP1,0A000H
		RET
		
T_DATA_FLAG1
		LDP		#TEMP1
		LACC	TEMP1
		AND     #0FFFDH
		OUT	    TEMP1,0A000H
		NOP
		NOP
		NOP
		OR      #2
		SACL	TEMP1
		OUT     TEMP1,0A000H
		RET  
		  
DELAY
		LACC	#0FFH
D_LOOP		
		SUB		#1
		BZ      D_RET
		
		RPT     #0FFH
        NOP
        B       D_LOOP
D_RET
		RET
TABLE:
	.word	#003fh      ;0
	.word	#0006h      ;1
	.word	#005bh      ;2
	.word	#004fh      ;3
	.word	#0066h      ;4
	.word	#006dh      ;5
	.word	#007dh      ;6
	.word	#0007h      ;7
	.word	#007fh      ;8
	.word	#006fh      ;9
	.word	#0008h      ;_ 
	.word	#0079h      ;E
	.word	#0076h      ;H
	.word	#0038h      ;L
	.word	#003Fh      ;O
	.word	#006dh      ;S
	.word	#0007h      ;T
	.word   #0000h      ;无显示   
           .end  
            
            
            
            
                   

⌨️ 快捷键说明

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