📄 zldjpgxiugai2.asm
字号:
;************************************************
;04031班 柯昌骏&&张爱祥 2005年10月
;************************************************
.include "F2407REGS.H"
.def _c_int0
.bss TEMP1, 1
.bss TEMP2, 1
.bss TEMP5, 1
.bss TEMP6, 1
.bss TEMP3, 1
.bss TEMP4, 1
.bss SPD,1
.bss SPDFB,1
;(1)建立中断向量表
.sect ".vectors" ;定义主向量段
RSVECT B _c_int0 ;PM 0 复位向量1
INT1 B GISR1 ;PM 2 中断优先级 14
INT2 B GISR2 ;PM 4 中断优先级2 5
INT3 B PHANTOM ;PM 6 中断优先级 36
INT4 B PHANTOM ;PM 8 中断优先级 47
INT5 B PHANTOM ;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
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 用户定义软件中断
;中断子向量入口定义pvecs
.sect ".pvecs" ;定义子向量段
PVECTORS B PHANTOM ;0000H
B PHANTOM ;0001H
B PHANTOM ;0002H
B PHANTOM ;0003H
B PHANTOM ;0004H
B PHANTOM ;0005H
B PHANTOM ;0006H
B PHANTOM ;0007H
B PHANTOM ;0008H
B PHANTOM ;0009H
B PHANTOM ;000AH
B PHANTOM ;000BH
B PHANTOM ;000CH
B PHANTOM ;000DH
B PHANTOM ;000EH
B PHANTOM ;000FH
B PHANTOM ;0010H
B PHANTOM ;0011H
B PHANTOM ;0012H
B PHANTOM ;0013H
B PHANTOM ;0014H
B PHANTOM ;0015H
B PHANTOM ;0016H
B PHANTOM ;0017H
B PHANTOM ;0018H
B PHANTOM ;0019H
B PHANTOM ;001AH
B PHANTOM ;001BH
B PHANTOM ;001CH
B PHANTOM ;001DH
B PHANTOM ;001EH
B PHANTOM ;001FH
B PHANTOM ;0020H
B PHANTOM ;0021H
B PHANTOM ;0022H
B PHANTOM ;0023H
B PHANTOM ;0024H
B PHANTOM ;0025H
B PHANTOM ;0026H
B T1PINT_ISR ;0027H ;XIUGAI
B PHANTOM ;0028H
B PHANTOM ;0029H
B PHANTOM ;002AH
B PHANTOM ;002BH
B PHANTOM ;002CH
B PHANTOM ;002DH
B PHANTOM ;002EH
B PHANTOM ;002FH
B PHANTOM ;0030H
B PHANTOM ;0031H
B PHANTOM ;0032H
B PHANTOM ;0033H
B PHANTOM ;0034H
B PHANTOM ;0035H
B PHANTOM ;0036H
B PHANTOM ;0037H
B PHANTOM ;0038H
B PHANTOM ;0039H
B PHANTOM ;003AH
B PHANTOM ;003BH
B PHANTOM ;003CH
B PHANTOM ;003DH
B PHANTOM ;003EH
B PHANTOM ;003FH
B PHANTOM ;0040H
B PHANTOM ;0041H
DIN_7219 .set 02h
LOAD_7219 .set 04h
CLK_7219 .set 08h
;(2)主程序
.text
_c_int0
CALL SYSINIT ;系统初始化程序
CALL IOPB_INIT
CALL IOPF_INIT
CALL IOPE_INIT
;*******LEDINIT**********************************XIUGAI
LDP #200H>>7
SPLK #0CC11H,200H
SPLK #0FF00H,201H
SPLK #099FFH,202H
SPLK #0AA44H,203H
SPLK #0BB77H,204H
SPLK #110FH,210H
SPLK #220FH,211H
SPLK #330FH,212H
SPLK #440FH,213H
SPLK #550FH,214H
SPLK #660FH,215H
SPLK #770FH,216H
SPLK #880FH,217H
LAR AR1,#200H
CALL WRITE_7219
LAR AR1,#201H
CALL WRITE_7219
LAR AR1,#202H
CALL WRITE_7219
LAR AR1,#203H
CALL WRITE_7219
LAR AR1,#204h
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
;**********LEDINIT********************************************XIUGAI
LDP #SPD>>7
SPLK #0,SPD
SPLK #0,SPDFB
SPLK #0AH,TEMP4 ;10次溢出中断
SPLK #7FH,TEMP5
OUT TEMP5,0300H ;SPEED = 0,MOTOR INIT
SPLK #0H, TEMP3
;-------------------------------------------------------------XIUGAI
CLRC INTM
;***********************************************
WAIT: LDP #XINT1CR>>7
SPLK #8001H,XINT1CR
CLRC INTM
CALL IOPF_TODSP
LDP #DP_PF2 ;READ SWITCH STATUS
LACL PBDATDIR
LDP #TEMP5>>7
SACL TEMP5
SACL TEMP6
SPDGO1: ;READ SPEED FEEDBACK PLUSE
LDP #DP_PF2
LACL PEDATDIR
AND #0040H
LDP #TEMP3>>7
SUB TEMP3
BCND GO2,EQ
LDP #SPDFB>>7 ;SPDFB++
LACL SPDFB
ADD #1
SACL SPDFB
GO2: LDP #DP_PF2
LACL PEDATDIR
LDP #TEMP3>>7
AND #0040H
SACL TEMP3
NOP
NOP
NOP
NOP
NOP
NOP
LDP #211H>>7
LACL 211H
BCND LEVEL1,NEQ
SPLK #0,210H
B XW
LEVEL1: SUB #1
BCND LEVEL2,NEQ
SPLK #20H,210H
B XW
LEVEL2: SUB #1
BCND LEVEL3,NEQ
SPLK #40H,210H
B XW
LEVEL3: SUB #1
BCND LEVEL4,NEQ
SPLK #60H,210H
B XW
LEVEL4: SUB #1
BCND LEVEL5,NEQ
SPLK #7FH,210H
B XW
LEVEL5: SUB #1
BCND LEVEL6,NEQ
SPLK #9FH,210H
B XW
LEVEL6: SUB #1
BCND LEVEL7,NEQ
SPLK #0BFH,210H
B XW
LEVEL7: SUB #1
BCND LEVEL8,NEQ
SPLK #0DFH,210H
B XW
LEVEL8: SPLK #0FFH,210H
XW: LDP #210H>>7
OUT 210H,0300H
CALL DELAY
PANDUAN: LDP #PEDATDIR>>7
BIT PEDATDIR,BIT4 ;左限位
BCND STOPLEFT,NTC
BIT PEDATDIR,BIT5
BCND STOPRIGHT,NTC ;右限位
B WAIT
STOPLEFT: LDP #PBDATDIR>>7
LACL PBDATDIR
OR #3020H
SACL PBDATDIR
;CALL DELAY
CALL DELAY
LDP #PBDATDIR>>7
LACL PBDATDIR
AND #0FFDFH
SACL PBDATDIR
LDP #210H>>7
SPLK #0FFH,210H
;OUT 210H,0300H
SPLK #8,211H
RPT #200
NOP
B WAIT
STOPRIGHT: LDP #PBDATDIR>>7
LACL PBDATDIR
OR #3020H
SACL PBDATDIR
;CALL DELAY
CALL DELAY
LDP #PBDATDIR>>7
LACL PBDATDIR
AND #0FFDFH
SACL PBDATDIR
LDP #210H>>7
SPLK #0,210H
;OUT 210H,0300H
SPLK #0,211H
RPT #200
NOP
B WAIT
;(3)系统初始化程序
;*********************************************************
SYSINIT: SETC INTM
CLRC SXM
CLRC OVM
CLRC CNF
LDP #0E0H
SPLK #86FEH,SCSR1 ;CLKIN=10M,CLKOUT=10M
SPLK #0E8h,WDCR
LDP #0
SPLK #03h,IMR ; XIUGAI
SPLK #0FFFFh,IFR
NOP
LDP #XINT1CR>>7
SPLK #8001H,XINT1CR ;BIT0=1,使能外部中断XINT1
;--------- ;T1 INIT
LDP #DP_EVA
SPLK #80H, EVAIMRA ;使能T1PINT中断
SPLK #0FFFFh, EVAIFRA ;复位定时器1周期中断标志位
SPLK #0, GPTCONA
SPLK #0F420H, T1PR ;使定时器没50ms产生一次中断;???????????
SPLK #0H, T1CNT
SPLK #0164CH, T1CON ;????????????????
NOP ;清中断标志
RET
;*********************************************************
IOPF_INIT: LDP #MCRC>>7 ;允许输出
LACL MCRC
AND #0FCFFH
SACL MCRC ;IOPF0/IOPF1为IO输出口
LACL PFDATDIR
OR #0302H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -