📄 main.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 + -