标题: 求助:8位数码管显示秒计时程序调试 [打印本页]

作者: Sky-hawk    时间: 2009-3-11 21:13
标题: 求助:8位数码管显示秒计时程序调试
 ;8位数码管显示秒计时(使用本论坛的51hei-5型板,硬件连接简述:晶振12M,PO口并接两个74HC573驱动8位数码管,P2.6为段选通位,P2.7为位选通位.)

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN:MOV SP,#60H

      MOV R1,#00H         ;位计数清0

      MOV R2,#00H         ;缓冲区清0

      CLR P2.0            ;段选通清0

      CLR P2.1            ;位选通清0

LOOP2:MOV A,R2

      LCALL DELAY1S

      ADDC A,#01H

      MOV R2,A

LOOP1:MOV B,#10

      DIV AB

      JNZ LOOP           ;A不为0转移到LOOP

      LCALL DISPLAY

      LJMP LOOP2

LOOP:INC R1

      LCALL DISPLAY

      LCALL LOOP1

DISPLAY:SETB P2.1             ;位处理

     MOV A,R1

     MOV DPTR,#TAB2

     MOVC A,@A+DPTR

     MOV P0,A

     CLR P2.1

     CLR A

     SETB P2.0         ;段处理

      MOV A,B

      MOV DPTR,#TAB1

      MOVC A,@A+DPTR

      MOV P0,A   

      CLR P2.0

      LCALL DELAY5MS    

      RET

DELAY1S: MOV R5,#100     

D1: MOV R6,#20           

D2: MOV R7,#248        

DJNZ R7,$                

DJNZ R6,D2             

DJNZ R5,D1              

RET

DELAY5MS: MOV R3,#50      

D3:MOV R4,#49             

DJNZ R3,$               

DJNZ R4,D3               

RET

TAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH  ;共阴显示字库0-9

TAB2:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH   ;位选通字符表

END


我是一个初学者,在此程序调试中,发现数码管仅显示“1”,不累加了,请过路的高手帮忙看一下,谢谢!



作者: arbol    时间: 2009-4-15 18:30

DELAY5MS: 
      MOV R3,#50      

D3:   MOV R4,#49             

      DJNZ R3,$               

      DJNZ R4,D3               

      RET


这个5ms延时永远循环不完!

应该是:
 

DELAY5MS: 
      
MOV R4,#49  
D3:   MOV R3,#50                 

      DJNZ R3,$               

      DJNZ R4,D3               

      RET

好像还有别的问题!
1>2>3>4>5>6>7>8>9>6>6>6>6>66666666>77777777>.....

[此贴子已经被作者于2009-4-15 20:31:05编辑过]





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