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

📄 main.asm

📁 2407的一些源代码
💻 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    TEMP1,1
        .bss    R_COUNT,1
        .bss    T_COUNT,1
        .bss    DATA,1
        .bss    R_BUFF,65
        .bss    TEMP,1
        .bss    TEMP2,1
        .bss    FLAG,1
        .bss    R_FLAG,1
        .bss    T_FLAG,1
        .include "F2407.h" 		     ;the header file  
		.def    _c_int0,_24_INT2  

ST0             .SET   0
ST1             .SET   1
ST0_SAVE    	.usect ".blk0",1
ST1_SAVE    	.usect ".blk0",1
ACCH    	    .usect ".blk0",1
ACCL    	    .usect ".blk0",1
P_HI    	    .usect ".blk0",1
P_LO    	    .usect ".blk0",1
T_SAVE    	    .usect ".blk0",1 
;======================================================
; 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               ;中端级2使能
	    
	    SPLK    #104CH,T2CON
	    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	#1,FLAG;
        SPLK	#0,T_FLAG
        CLRC    INTM
MAIN
		LDP     #FLAG
		LACC    FLAG
		BCND    MAIN,NEQ ;ACC=!0
		SPLK	#1,FLAG
		LACC    T_FLAG
        BNZ     DA_1
		LDP     #TEMP1
        LACC    TEMP1
        AND     #0FBH 
        SACL    TEMP1
        OUT     TEMP1,06000H
 		NOP
		LDP     #TEMP2
		SPLK	#040H,TEMP2
		OUT     TEMP2,0a000H
		LDP		#T_FLAG
		SPLK	#1,T_FLAG
		SPLK	#40H,T_COUNT
		SPLK	#0,DATA
		LACC    #40H
		MAR     AR5
        LAR     AR5,#R_BUFF
        SACL	*+,0,AR5
        LDP     #TEMP1
        LACC    TEMP1
        OR      #04H
        SACL    TEMP1
        OUT     TEMP1,06000H
		B       MAIN
DA_1	
		LDP     #TEMP1
        LACC    TEMP1
        AND     #0F7H 
        SACL    TEMP1
        OUT     TEMP1,06000H
		LDP     #TEMP
		LACC    DATA
		ADD     #1
;		LACC    #11         ;上传值
		SACL    DATA
		SPLK    #40H,DATA
		OUT     DATA,0A000H
		MAR     AR5
        SACL	*+,0,AR5
        LDP     #TEMP1
        LACC    TEMP1
        OR      #08H
        SACL    TEMP1
        OUT     TEMP1,06000H
        RPT     #01FH
        NOP
        NOP
        NOP
        NOP
        NOP
        LACC    T_COUNT
		SUB     #1
		SACL    T_COUNT
		BCND    ENG_P,LT,EQ
		B       MAIN

ENG_P
        SPLK	#0,T_FLAG
        B       MAIN		
	    
_24_INT2
;       LDP     #ST0_SAVE
;       SST     #ST0,ST0_SAVE
;       SST     #ST1,ST1_SAVE
        LDP		#ACCH
        SACH    ACCH
        SACL    ACCL
;       SPH     P_HI
;       SPL     P_LO
;       MPY     #1
 ;      SPL     T_SAVE

    
        LDP     #TEMP
        SPLK	#0,FLAG
        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	#8001H,XINT1CR
		
		LDP		#P_LO
;       LT      P_LO
;       MPY     #1
;       LPH     P_HI
;       LT      T_SAVE
        LACC    ACCH,16
        ADDS    ACCL
;       LDP		#ST1>>7
;;      LST     #ST1,ST1_SAVE
;       LST     #ST0,ST0_SAVE
		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,06000H
		NOP
		NOP
		NOP
		OR      #1
		SACL	TEMP1
		OUT     TEMP1,06000H
		RET
		
T_DATA_FLAG1
		LDP		#TEMP1
		LACC	TEMP1
		AND     #0FFFDH
		OUT	    TEMP1,06000H
		NOP
		NOP
		NOP
		OR      #2
		SACL	TEMP1
		OUT     TEMP1,06000H
		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      
	   .word	#005bh      
 	   .word	#004fh      
	   .word	#0066h      
	   .word	#006dh      
	   .word	#007dh      
	   .word	#0007h      
	   .word	#007fh      
	   .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 + -