tuzhiquan 发表于 2012-5-11 11:32:20

用51做时钟,帮我看看这ASM有什么不对,


   FIRSTBIT P1.0;定义四个数码管?

tuzhiquan 发表于 2012-5-11 11:33:01


   FIRSTBIT P1.0;定义四个数码管?
           SECOND BIT P1.1
           THREEBIT P1.2
           FOUR   BIT P1.3

           MINUTE EQU 60H;中断内加1变量,用来计是不是到1S
          
           COUNT1 EQU 65H;分钟个位
           COUNT2 EQU 66H;分钟十位
           COUNT3 EQU 67H;小时个位
           COUNT4 EQU 68H;小时十位
         
ONEMINUTE EQU 69H
   INII   EQU 70H
   COUNT5 EQU 71H
         

          MOV INII,#0
          MOV ONEMINUTE,#200;定时多长时间为一秒
          MOV COUNT1,#0
          MOV COUNT2,#0
          MOV COUNT3,#0
          MOV COUNT4,#0
          
          
ORG 0000H
          AJMP START
ORG 00BH
          AJMP INTERRUPT
ORG 40H
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
;;;显示代码;;;;;




   ORG 80H          
START:                        
                                        MOV TMOD,#01H
                                        SETB EA       
                                        SETB TR0       
                                        SETB ET0       
                                        MOV TH0,#0EEH ;;定时器五豪秒
                                        MOV TL0,#00H                  
   LOOP:       
                                        MOV A,MINUTE
                                        CJNE A,#200,c1 ;5MS*200=1S,计数没有到1秒显示0000                       
                                        INC COUNT5
                                        AJMP DISPLAY

;;;;;interrupt;;;;;;;
INTERRUPT:
                                        MOV TH0,#0EEH
                                        MOV TL0,#00H
                                        INC MINUTE ;计数加1                                       
                                        RET
               
               
;;;;数码管显示部分 ;;;;;

DISPLAY:
                 CLR MINUTE
                 MOV A,COUNT5
         CJNE A,#60,C1;计数是不是到1分钟
         MOV COUNT5,#0;计数1秒清0
         
          INC COUNT1
       C1:MOV A, COUNT1
          CJNE A,#10,SHI;10minute         
          MOV COUNT1,#0;计数十分钟清0
         
          INC COUNT2
      C2: MOV A,COUNT2
          CJNE A,#6,BAI
          MOV COUNT2,#0;计数6十分钟清0
         
          INC COUNT3
      C3: MOV A,COUNT3
          CJNE A,#10,QIAN
          MOV COUNT3,#0 ;计数十小时清0
         
         INC COUNT4
      C4:MOV A, COUNT4
         CJNE A,#2,WAN;如果24小时到,COUNT1,2,3,4都清0转到C1从重显示
         MOV A, COUNT3
         CJNE A,#4,WAN
         MOV COUNT4,#0
         MOV COUNT1,#0
         MOV COUNT2,#0
         MOV COUNT3,#0
         AJMP C1
    SHI:
          
                                   MOV A, COUNT1         
                                   MOV DPTR,#TABLE
                                   MOVC A,@A+DPTR          
                                   MOV P0,A   
                                   CLR FOUR
                                   LCALL DELAY
                                   SETB FOUR
                                   AJMP C2;转到第二个数码管显示
       
    BAI:
                             MOV A, COUNT2
                                   MOV DPTR,#TABLE
                                   MOVC A,@A+DPTR          
                                   MOV P0,A      
                                   CLR THREE
                                   LCALL DELAY
                                   SETB THREE
                             AJMP C3;转到第3个数码管显示

    QIAN:
      
         MOV A, COUNT3
         MOV DPTR,#TABLE
                                   MOVC A,@A+DPTR          
                                   MOV P0,A                
                                   CLR SECOND
                                   LCALL DELAY
                                   SETB SECOND
                                   AJMP C4;转到第4个数码管显示               

      WAN:
   
         MOV A,COUNT4
         MOV DPTR,#TABLE
                                   MOVC A,@A+DPTR          
                                   MOV P0,A
                                   CLR FIRST             
                                   LCALL DELAY
                                   SETB FIRST
                                   AJMP LOOP;回主程序
   
                       
                                  
       
   ;;;;        延时;;;;;;;
DELAY: MOV R7,#2
D0:    MOV R6,#2
D1:        DJNZ R6,D1
         DJNZ R7,D0                      
             RET







END

tuzhiquan 发表于 2012-5-11 11:33:59

高手请指点一二,这个是哪里有问题,我也搞不太清楚

raxb 发表于 2012-5-11 13:52:58

tuzhiquan 发表于 2012-5-11 11:33 static/image/common/back.gif
高手请指点一二,这个是哪里有问题,我也搞不太清楚

什么现象嘛

tuzhiquan 发表于 2012-5-11 15:00:06

就显示0000,不走时间

lxa0 发表于 2012-5-11 20:44:06

你没有把走动后的数据交送显示吧?
页: [1]
查看完整版本: 用51做时钟,帮我看看这ASM有什么不对,