re七e nop nop INT timer;定时器中断向量 nop pp RINTO re七e ;串口0接收中断 nop nop nop x工N0: rete;串口0发送中断 nop nop nop sIN6. space4*16;软件中断 sIN7. space4*16;软件中断
rete nop nop TINT: bd timer ;定时器中断向量 nop nop nop RINT0: rete ;串口0接收中断 nop nop nop XINT0: rete ;串口0发送中断 nop nop nop SINT6 .space 4*16 ;软件中断 SINT7 .space 4*16 ;软件中断
TNT3:rete;外中断3中断 ● nnn Ppp ● HPNT:rete;主机中断 nop o nop RTN1:rete;串口1接收中断 ppp XN1:xete;串口1发送中断 Ppp ● ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★;★★★★★★
INT3: rete ;外中断3中断 nop nop nop HPINT: rete ;主机中断 nop nop nop RINT1: rete ;串口1接收中断 nop nop nop XINT1: rete ;串口1发送中断 nop nop nop ******************************************
s七art LD #0,DP STM #STACK+100h, SP STM #07FFFh, SWWSR STM #1020h, PMST sT#1000,*(t0cout);计数器设置为1000(1s) SSBX INTM ;关全部中断 LD #TIMES,A READA TIMO;初始化TrM,PRD READA PRDO smM#669h,TCR0;初始化rcR0 smM#8,IMR;初始化IR,使能 timer0中断 RSBX INTM ;开放全部中断 WA工T:B WA工T ★★★★★★★★★★★★★★★★★★★★大★★★★★★★大★★★★★★★★★
start: LD #0,DP STM #STACK+100h,SP STM #07FFFh,SWWSR STM #1020h,PMST ST #1000,*(t0_cout) ;计数器设置为 1000(1s) SSBX INTM ;关全部中断 LD #TIMES,A READA TIM0 ;初始化 TIM,PRD READA PRD0 STM #669h,TCR0 ;初始化TCR0 STM #8,IMR;初始化 IMR, 使能 timer0 中断 RSBX INTM ;开放全部中断 WAIT: B WAIT **************************************
;定时器0中断服务子程序 七imer ADDM #-1 *(to cout) ;计数器减1 CMPM *(to cout),#o ;判断是否为0 BC next, nrc ;不是0,退出循环 sT#1000,*( to cout);为0,设置计数器,并将xF取反 BITF to flag,#1 BC xf。ut,NC SSBX XE #o, to flag B nex七 xf out RSBX XE ST #1 to flag nex七: RSBX INTN RETE end
;定时器0中断服务子程序 timer: ADDM #-1,*(t0_cout) ;计数器减1 CMPM *(t0_cout),#0 ;判断是否为0 BC next,NTC ;不是0,退出循环 ST #1000,*(t0_cout);为0,设置计数器,并将XF取反 BITF t0_flag,#1 BC xf_out,NTC SSBX XF ST #0,t0_flag B next xf_out: RSBX XF ST #1,t0_flag next: RSBX INTM RETE .end
5.链接命令文件 times, cmd如下: times, ob o七imes.ou七 m times. map MEMORY IPAGE 0: RAMl: origin =l000h, length =500h PAGE 1: SPRAMl: origin=0060h, length=20h SPRAM2: origin=0100h, length=200h sEcr工oNS 七ex七:>RAM1PAGE0 data >RAM1 PAGE 0 vars >SPRAMI PAGE 1 STACK >SPRAMZ PAGE 1 回本节
5.链接命令文件times.cmd如下: times.obj -o times.out -m times.map MEMORY {PAGE 0:RAM1: origin =1000h ,length =500h PAGE 1:SPRAM1: origin=0060h,length=20h SPRAM2: origin=0100h,length=200h } SECTIONS { .text :>RAM1 PAGE 0 .data :>RAM1 PAGE 0 vars :>SPRAM1 PAGE 1 STACK :>SPRAM2 PAGE 1 } 返回本节