re七e nop nop INT bd timer;定时器中断向量 o nn ppp RINTO rete ;串口0接收中断 nn pp nop XINTO rete;串口0发送中断 pp 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 ;软件中断
工N3:rete;外中断3中断 nop nop HPINT:rete;主机中断 op nop RIN乎1:rete;串口1接收中断 nop nop XN乎1:rete;串口1发送中断 op no ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★;★★★★★★
INT3: rete ;外中断3中断 nop nop nop HPINT: rete ;主机中断 nop nop nop RINT1: rete ;串口1接收中断 nop nop nop XINT1: rete ;串口1发送中断 nop nop nop ******************************************
s七ar七: LD #0,DP STM #STACK+100h, SP STM #07FFFh, SWWSR STM #1020h, PMST sT#1000,*(t0cout);计数器设置为1000(1s) SSBX INTM ;关全部中断 iTIMES,A READA TIMO;初始化TIM,PRD READA PRDO smM#669h,TCR0;初始化rcRo smM#8,IMR;初始化IMR,使能 timer0中断 RSBX INTM ;开放全部中断 WALT: B W工乎 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★大★★★★★★★★
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,*(t0cout);计数器减1 CMPM *(to cout)#o ;判断是否为0 BC next, nrc ;不是0,退出循环 sT#1000,*(t0cout);为0,设置计数器,并将xF取反 BI卫Ft0f1ag,#1 BC xf out ntc SSBX XE ST #o, to flag B next xf out RSBX XE ST #1, to flag next: RSBX INTM 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 times.ou七 m times. map MEMORY IPAGE 0: RAMl: origin =1000h, length =500h PAGE 1: SPRAMl: origin=0060h, length=20h SPRAM2: origin=0100h, length=200h SEcT工ONs text >RAM1 PAGE 0 data: >RAM1 PAGE 0 vars >SPRAMI PAGE 1 STACK >SPRAM2 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 } 返回本节