标题: 计时器 [打印本页]

作者: andamajing    时间: 2010-5-15 14:22
标题: 计时器
我想设计一个计时器,计时器即使过程中若按一个键则计时停止,再按一个键则计时又重新开始。有高手帮忙吗?我设计的程序,怎么计时停止后在按键也不动了,所以请高手帮忙!
作者: andamajing    时间: 2010-5-15 14:28

LEDBUF EQU 30H ;显示码缓存区
HOUR   EQU 40H
MINUTE EQU 41H
SECOND EQU 42H
C100US EQU 43H
TICK   EQU 10000 ;置中断次数
T100US EQU 256-100 ;置定时器初值
LJMP START  ;跳转到主程序

ORG 0003H
LJMP DISPLYLED
RETI

ORG 000BH  ;定时器0中断入口
TOINT: PUSH PSW  ;状态保护
      PUSH ACC
      MOV A,C100US+1 
      JNZ GOOD  ;计数值是否为0
      DEC C100US
GOOD: DEC C100US+1
   MOV A,C100US
   ORL A,C100US+1
   JNZ EXIT
   MOV C100US,#HIGH(TICK) ;重置计数值
   MOV C100US+1,#LOW(TICK)
   INC SECOND       ;秒加一
   MOV A,SECOND    
   CJNE A,#60,EXIT    ;判断秒针是否为60
   MOV SECOND,#0
   INC MINUTE
   MOV A,MINUTE
   CJNE A,#60,EXIT
   MOV MINUTE,#0
   INC HOUR
   MOV A,HOUR
   CJNE A,#24,EXIT
   MOV HOUR,#0
EXIT: POP ACC
   POP PSW
   RETI

DELAY:        ;  延时子程序
   MOV R7,#0FEH
DELAYLOOP:
   DJNZ R7,DELAYLOOP
   DJNZ R6,DELAYLOOP   ;  R6是否有错,是否应改为R7?
   RET


LEDMAP:      ;数码管显示码
  DB 3FH,06H,5BH,4FH
  DB 66H,6DH,7DH,07H
  DB 7FH,6FH,77H,7CH
  DB 39H,5EH,79H,71H

这是我写的程序,怎么实现计时停止?高手赐教!
作者: dengjianw    时间: 2010-5-15 21:26
用C语言比较好做
作者: 示波器    时间: 2010-6-30 22:40
应该是在停止的时候把数据存储起来,标志位设一个值(停止值,由设计者自己规定)。再按一次,则修改标志位,把之前存储的数据取出作为初始值。思路是这样的,具体如何实现,还要请教各位高手啦




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1