网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: TI德州中文网 >> 技术文库 >> C5000文章 >> TMS320C54x >> 正文
  定时器实验代码           ★★★ 【字体:
定时器实验代码
作者:D003    文章来源:本站原创    点击数:    更新时间:2007-3-1    

 

************************************************
* FileName:  ex7.asm                        *
* Description: 定时器实验                     *
* Copyright(C) SanZhi Electronic, Author Zpin  *
************************************************


  .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  

  .end  

欢迎点击进入:"61IC中国电子在线"官方网站     文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:TC 湘ICP备06016957号