打印

新手求教单片机

[复制链接]
1412|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jianweixu|  楼主 | 2011-3-16 16:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
org 0000h
ajmp main
org 0030h
main:  mov R0,#60
Loop:  mov A,R0
      mov B,#10
       DIV AB
Display: SETB P2.6
         mov DPTR,#TAB
         movc A,@A+DPTR
         mov  P1,A      ;十位显示
         SETB P2.7
         mov A,B
         mov DPTR,#TAB
         movc A,@A+DPTR
         mov P1,A        ;个位显示
         acall del1
INT:    DEC R0
        DJNZ R0,Loop
       sjmp main
del1: mov R1,#20
           mov TMOD,#01h
           mov TH0,#3ch
           mov TL0,#0b0h
           SETB TR0
           JNB TF0,$
           clr TF0
          DJNZ R1,del1
         sjmp INT
          ret
TAB: DB 0c0h,0f9h,0a4h,0b0h,99h
     DB 92h,82h,0f8h,80h,90h     
    end
求教各位大侠帮小弟看看,程序为什么没办法实现60s倒计时?
虚心求教

相关帖子

沙发
mmax| | 2011-3-16 18:50 | 只看该作者
del1: mov R1,#20
           mov TMOD,#01h
           mov TH0,#3ch
           mov TL0,#0b0h
           SETB TR0
           JNB TF0,$
           clr TF0
          DJNZ R1,del1

因为你的代码始终R1=20,然后R1-1 != 0,所以会死循环在这的。
更改后的如下
================================================
           mov R1,#20
del1:   mov TMOD,#01h
           mov TH0,#3ch
           mov TL0,#0b0h
           SETB TR0
           JNB TF0,$
           clr TF0
          DJNZ R1,del1

使用特权

评论回复
板凳
jianweixu|  楼主 | 2011-3-17 08:56 | 只看该作者
Display: SETB P2.6
         mov DPTR,#TAB
         movc A,@A+DPTR
         mov  P1,A      ;十位显示  下面的语句是不是应该先关闭十位  clr P2.6         SETB P2.7
         mov A,B
         mov DPTR,#TAB
         movc A,@A+DPTR
         mov P1,A        ;个位显示
         acall del1

使用特权

评论回复
地板
jianweixu|  楼主 | 2011-3-17 08:56 | 只看该作者
请教楼上大侠

使用特权

评论回复
5
jianweixu|  楼主 | 2011-3-21 14:52 | 只看该作者
2楼mmax,我在仿真中程序无**常运行,只有个位显示0,2,4,8
修改程序如下
org 0000h
ajmp main
org 0030h
main:  mov R0,#60
Loop:  mov A,R0
      mov B,#10
       DIV AB
Display: mov DPTR,#TAB
         movc A,@A+DPTR
         mov  P0,A
         mov  A,#40h
         mov P2,A   
         acall dl1           ;十位显示
         Rl A
         mov P2,A
         mov A,B
         movc A,@A+DPTR
         mov P0,A   
         mov R1,#20             ;个位显示
         acall del1
INT:    DEC R0
        DJNZ R0,Loop
       sjmp main
  del1:    mov TMOD,#01h
           mov TH0,#3ch
           mov TL0,#0b0h
           SETB EA
           SETB TR0
           JNB TF0,$
           clr TF0
          DJNZ R1,del1
         sjmp INT
          ret
   

TAB: DB 0c0h,0f9h,0a4h,0b0h,99h
     DB 92h,82h,0f8h,80h,90h   
dl1: mov R7,#02H           ;1ms延时子程序  总提示illegal  character
dl:mov R6,#0FFH
dl0:DJNZ R6,dl0
          DJNZ R7,dl
          ret
      end

使用特权

评论回复
6
jianweixu|  楼主 | 2011-3-21 14:53 | 只看该作者
请教。。。?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

54

帖子

1

粉丝