[求助] 60秒倒计时程序怎样改

liweiliang   2010-12-17 23:21 楼主
 新手请教下面一个60秒倒计时程序怎样修改能循环多次使用?请大侠们不吝赐教!多谢了!
    org   0000h
     ljmp  main
     org   000bh
     sjmp  t1s
     org   0030h
main:mov   r2,#60
     mov   r4,#20
     mov   ie,#88h
     mov   tmod,#10h
     mov   th1,#3ch
     mov   tl1,#0b0h
     setb  tr1
     acall dis
     sjmp  $
t1s: mov   th1,#3ch
     mov   tl1,#0b0h
     djnz  r4,t1s1
     mov   r4,#20
     djnz  r2,t1s0
     clr   tr1
t1s0:acall dis
t1s1:reti
seg7:inc a
     movc a,@a+pc
     ret
     db 0c0h,0f9h,0a4h,0b0h
     db 99h,92h,82h,0f8h
     db 80h,90h,88h,83h
     db 0c6h,0a1h,86h,8eh
dis: mov a,r2
     mov b,#10
     div ab
     acall seg7
     mov p1,a
     mov a,b
     acall seg7
     mov p2,a
     ret
 end

回复评论 (12)

用汇编啊,,,你敢不敢用c编。。。
我爱电子!
点赞  2010-12-18 15:01
这是一本书上的现成的程序,我对汇编尚不能看的明白,更谈不上c语言了!上面的程序仅能60秒就停止了,想若能反复使用的话该如何改动,但在我对编程几乎不通,还望大侠们多多指教!
点赞  2010-12-19 11:50

t1s: mov   th1,#3ch
     mov   tl1,#0b0h
     djnz  r4,t1s1
     mov   r4,#20
     djnz  r2,t1s0


;     clr   tr1

     mov r2,#60


t1s0:acall dis
t1s1:reti

点赞  2010-12-19 23:13

谢templeton!

多谢!不怕您笑话,搞机械的半路出家看这些程序如同天书一般,句句字字都在猜谜!
点赞  2010-12-20 07:43
用定时器比较方便,时间也精确
我是黑客
点赞  2010-12-20 17:41

回复 5楼 liweiliang 的帖子

不客气 呵呵
术业有专攻而已
点赞  2010-12-20 21:31

再请教一个叫我糊涂的问题:

查表指令mov  dptr,#table 后面的表格放在什么地方都行吗?或者有什么要求?
点赞  2010-12-20 22:49

回复 6楼 wuquan-1230 的帖子

是的我们在实际工作中用的就是现成的定时器。我本人一直想学习单片机,周围没有可请教的只能自学,怎奈搞机械的头脑也都机械,只会摆弄有形的连续的东西,看起单片机和程序来的感觉可全都是发散的跳跃的,全然找不到北了!一步一个坎,好像几十年的学习都没曾有过这么多的挫折感!这不憋了好几天也弄不懂了,只好来此请教了。
点赞  2010-12-20 23:18

回复 8楼 liweiliang 的帖子

按照这种格式

table :
     数据表

只要是end前面就可以了
点赞  2010-12-22 13:03
再次谢谢templeton!
点赞  2010-12-22 22:22
我也在自习感觉蛮累的,想找个公司一边学一边工作,这样快一点,但一般公司看我没有经验都不要
点赞  2010-12-23 11:46

    最简单的方法是在:

    djnz  r2,t1s0
     clr   tr1

改为:

    djnz  r2,t1s0
     ljmp main

[ 本帖最后由 liang118038 于 2011-3-9 00:06 编辑 ]
点赞  2011-3-8 23:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复