求租一个CCS定时器程序解析
dsp吧
全部回复
仅看楼主
level 1
zyx5208 楼主
程序想要划分下块求各块的功能
2011年06月16日 14点06分 1
level 1
zyx5208 楼主
.title "ex7"
   .global _c_int00
   .mmregs
  
PERSEC .set 60h
SEC   .set 61h
MIN   .set 62h
STATUS .set 63h
TMP0 .set 64h
TMP1 .set 65h
TMP   .set 66h
D_LED .set 0b000h
;D_LED0 .set   01h
;D_LED1 .set   02h
;D_LED2 .set   03h
;D_LED3 .set   04h
;D_LED4 .set   05h
;D_LED5 .set   06h
D_LED0 .set   06h
D_LED1 .set   05h
D_LED2 .set   04h
D_LED3 .set   03h
D_LED4 .set   02h
D_LED5 .set   01h
LED_DISP .macro hexdata,portaddr
   LD hexdata,B
   ST #0Ah,TMP0
   RPT #15
   SUBC TMP0,B
   STH B,TMP0     ;存放BCD码个位
   STL B,TMP1     ;存放BCD码十位
   ST #2000h,AR0
   LD TMP0,B
   ADD AR0,B
   STL B,AR0
   NOP
   NOP
   LD *AR0,A
   OR #portaddr+1,A   ;计算位码
   PORTW AL,D_LED
   rpt #30000
   nop
   nop
   ST #2000h,AR0
   LD TMP1,B
   ADD AR0,B
   STL B,AR0
   NOP
   NOP
   LD *AR0,A
   OR #portaddr,A    ;计算位码
   PORTW AL,D_LED
   rpt #30000
   nop
   nop
   .endm      
;段码
   .data
   .word 3F00h,0600h,5B00h,4f00h,6600h,6d00h,7d00h,0700h,7f00h,6f00h
  
   .sect ".vectors"
rst: B _c_int00
   NOP
   NOP
   .space 15*4*16
int0: B keydown
   NOP
   NOP
   .space 2*4*16
tint: B timeout
   NOP
   NOP
   .space 12*4*16
  
   .text
_c_int00
   LD #0h,DP
   STM #3000h,SP
   SSBX INTM
   RSBX SXM
   STM #07FFFh,SWWSR
   stm #0001h,2Bh
  
   ST #0h,CLKMD
tst: BITF CLKMD,#1h
   BC tst,TC
   ST #1087h,CLKMD
   BITF CLKMD,#1h
   RPT #0FFh
   NOP
  
   ORM #0010h,TCR
   ST #19999,PRD
   ORM #0009h,TCR
   ORM #0020h,TCR
   ST #0FFFFh,IFR
   ORM #0008h,IMR
   RSBX INTM
   ST #0,PERSEC
   ST #0,SEC
   ST #0,MIN
   ST #1,STATUS
  
   LED_DISP PERSEC,D_LED1
   LED_DISP MIN,D_LED5
   LED_DISP SEC,D_LED3
   ANDM #0FFEFh,TCR
  
susp nop
   nop
   nop
   B susp
  
timeout ADDM #1,PERSEC
         LD #100,A
         SUB PERSEC,A
         BC secout,ALEQ
         B exit
secout ST #0,PERSEC
         ADDM #1,SEC
   LD #60,A
   SUB SEC,A
   BC minout,ALEQ
   B exit
minout ST #0,SEC
   ADDM #1,MIN
   LD #100,A
   SUB MIN,A
   BC overflow,ALEQ
   B exit
overflow
   ST #0,MIN
   ORM #0030h,TCR   ;Stop and Reload Timer
   ST #0,STATUS   ;Set stopfalg
exit LED_DISP MIN,D_LED5
   LED_DISP SEC,D_LED3
   LED_DISP PERSEC,D_LED1
   RETE  
keydown
   ST 0ffffh,IFR
   ORM #0030h,TCR
   BITF STATUS,#1h
   BC restart,NTC
   RETE
restart ST #0,PERSEC
   ST #0,SEC
   ST #0,MIN
         LED_DISP PERSEC,D_LED1   ;刷新1/100秒表
   LED_DISP SEC,D_LED3    ;刷新秒表
   LED_DISP MIN,D_LED5    ;刷新分钟
   ANDM #0FFEFh,TCR
   RETE  
2011年06月16日 14点06分 2
level 1
zyx5208 楼主
希望有知道的前辈帮忙分析一下,在线求解,考试啦[揉脸]
2011年06月16日 14点06分 3
level 1
zyx5208 楼主
还是没有人来,我一直等,等到天换地老,海枯石烂
2011年06月16日 14点06分 4
level 1
zyx5208 楼主
等那个等,等那个等,
2011年06月16日 14点06分 5
1