导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→初学者:问题出在哪里?请老师们指教[miaoyalin]

 *第5188篇: 初学者:问题出在哪里?请老师们指教

  
楼 主:miaoyalin 2002年9月27日00:39
 初学者:问题出在哪里?请老师们指教
我在用89C51做一个时钟的实验时,在实验板上运行时,每分钟的时间要慢5秒左右,30H是分钟的个
位,31H是分钟的十位,32H是小时的个位,33H是小时的十位,晶振为6MHZ,按照定时时间来算这几
句应该是不要的inc 21h
    mov a,21h
    cjne a,#10,toreti
    mov 21h,#0
但是不要的话时间都少了一个数量级,但加上去的话每分钟还是要慢5秒左右,真是不知问题出在
哪儿,请老师们指点,谢谢!!
        ORG  0000H          ;程序入口地址
          AJMP MAIN
          ORG  000BH
          AJMP WT0 
          ORG  20H         

main:mov sp,#40h
     mov 20h,#0
     mov 21h,#0
     mov 22h,#0
     mov 30h,#0
     mov 31h,#0
     mov 32h,#2
     mov 33h,#1
     mov th0,#0f8h
     mov tl0,#30h
     mov tmod,#01h
     clr p2.4
     setb ea
     setb et0
     setb tr0
     setb it0
     setb ex0
pk1:jb p2.0,pk2  ;小时设定
    jnb p2.0,pk1
    inc 32h
    mov a,33h
    mov b,#10
    mul ab
    add a,32h
    cjne a,#24,dd1
    mov 32h,#0
    mov 33h,#0
dd1:mov a,32h
    cjne a,#10,pk2
    mov 32h,#0
    inc 33h
pk2:jb p2.1,pk1   ;分钟设定
    jnb p2.1,pk2
    inc 30h
    mov a,31h
    mov b,#10
    mul ab
    add a,30h
    cjne a,#60,dd2
    mov 30h,#0
    mov 31h,#0
dd2:mov a,30h
    cjne a,#10,pk1
    mov 30h,#0
    inc 31h
    ajmp pk1


WT0:push acc
    push psw
    mov th0,#0f8h
    mov tl0,#30h  ;50ms
    inc 20h
    mov a,20h
    cjne a,#250,toreti  ;1s
    mov 20h,#0
    inc 21h
    mov a,21h
    cjne a,#10,toreti    ;????
    mov 21h,#0
    inc 22h
    mov a,22h
    cjne a,#60,toreti
    mov 22h,#0
    inc 30h          ;分钟个位
    mov a,30h
    cjne a,#10,toreti
    mov 30h,#0
    inc 31h
    mov a,31h
    cjne a,#6,toreti
    mov 31h,#0
    inc 32h
    mov a,33h
    mov b,#10
    mul ab
    add a,32h
    cjne a,#24,el0
    mov 32h,#0
    mov 33h,#0
    ajmp toreti
el0:mov a,32h
    cjne a,#10,toreti
    mov 32h,#0
    inc 33h
toreti:acall led 
       pop psw
       pop acc
       reti
led:   mov r7,#0fh    ;显示程序
       mov r0,#30h
       mov DPTR,#TAB
       mov a,@r0
       movc a,@a+DPTR
     mov p1,a
     clr p3.0
     djnz r7,$
     mov r7,#0fh
     inc r0
     setb p3.0
     mov a,@r0
     movc a,@a+DPTR
     mov p1,a
     clr p3.1
     djnz r7,$
     mov r7,#0fh
     inc r0
     setb p3.1
     mov a,@r0
     movc a,@a+DPTR
     mov p1,a
     clr p3.2
     djnz r7,$
     mov r7,#0fh
     inc r0
     setb p3.2
     mov a,@r0
     movc a,@a+DPTR
     mov p1,a
     clr p3.3
     djnz r7,$
     setb p3.3
     ret


TAB:    DB 0C0H,0F9H,0A4H,0B0H,99H
        DB 92H,82H,0F8H,80H,90H  
     end

  
2楼:lingl2 2002年9月27日08:05
 你可调tm0的时间常数
你可调tm0的时间常数,也可调21h

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:闲聊:红桃J在网吗

[下一篇主题]:初学者:一个古老的问题