找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6668|回復: 3
收起左側(cè)

十萬火急,,誰可以幫忙一下

[復制鏈接]
ID:13636 發(fā)表于 2009-5-30 22:27 | 顯示全部樓層 |閱讀模式

 哪位大哥幫忙一行行解析一下,謝謝!!!!!!!  
一個數(shù)字時鐘的匯編程序.AT89C52的單片機

     AJMP MAIN
      
       ORG 03H                     
  MOV P3,#0FFH
  AJMP AJ2
       RETI
 
       ORG 13H                     
  MOV P3,#0FFH
  AJMP AJ1
       RETI

       ORG 1BH
       MOV TH1,#0ECH
       MOV TL1,#78H
       DJNZ R6,BACK
       MOV R6,#200
     
AJ:    MOV R0,#35H                      ;秒
       INC @R0
       CJNE @R0,#10,$+3
       JC BACK
       MOV @R0,#0
       MOV R0,#34H
       INC @R0
       CJNE @R0,#6,$+3
       JC BACK
       MOV @R0,#0
      

AJ1:   MOV R0,#33H                       ;分
       INC @R0
       CJNE @R0,#10,$+3
       JC BACK
       MOV @R0,#0
       MOV R0,#32H
       INC @R0
       CJNE @R0,#6,$+3
       JC BACK
       MOV @R0,#0
      
      
AJ2:   MOV R0,#31H                          ;時
       INC @R0
       CJNE @R0,#4,$+3
       JC BACK
       CJNE @R0,#5,$+3   
       JC S24            
       CJNE @R0,#10,$+3
       JC BACK
       MOV @R0,#0
       MOV R0,#30H
       INC @R0
BACK:  RETI
S24:   DEC R0
       CJNE @R0,#2,$+3
       JC BACK
       MOV @R0,#0            
       MOV 31H,#0
       RETI

MAIN:  MOV R1,#30H
       MOV @R1,#0
  INC R1
       CJNE R1,#36H,MAIN+2
  MOV P3,#0FFH
       MOV P0,#0

       MOV DPTR,#SEGPT
       MOV R6,#200
       MOV TMOD,#10H
       MOV TH1,#0ECH
       MOV TH1,#78H
       SETB IT0
  SETB IT1
       MOV IP,#15H
       MOV IE,#9FH
       SETB TR1
LOOPO: MOV R1,#30H
       MOV R7,#20H
LOOPI: MOV P2,#0
       MOV A,@R1
       MOVC A,@A+DPTR
       MOV P1,A   
       MOV P2,R7
       INC R1
       MOV A,R7
       RR A
       MOV R7,A
       CJNE R7,#80H,LOOPI
       SJMP LOOPO
SEGPT: DB 40H,79H,24H,30H,19H,12H,2,78H,0,18H
       END

回復

使用道具 舉報

ID:13636 發(fā)表于 2009-5-30 22:28 | 顯示全部樓層

誰可以幫忙啊.小弟謝謝了

回復

使用道具 舉報

ID:11367 發(fā)表于 2009-6-3 07:58 | 顯示全部樓層
     AJMP MAIN
      
       ORG 03H                     
  MOV P3,#0FFH
  AJMP AJ2
       RETI
 
       ORG 13H                     
  MOV P3,#0FFH
  AJMP AJ1
       RETI

       ORG 1BH
       MOV TH1,#0ECH
       MOV TL1,#78H
       DJNZ R6,BACK
       MOV R6,#200
     
AJ:    MOV R0,#35H                      ;秒
       INC @R0
       CJNE @R0,#10,$+3
       JC BACK
       MOV @R0,#0
       MOV R0,#34H
       INC @R0
       CJNE @R0,#6,$+3
       JC BACK
       MOV @R0,#0
      

AJ1:   MOV R0,#33H                       ;分
       INC @R0
       CJNE @R0,#10,$+3
       JC BACK
       MOV @R0,#0
       MOV R0,#32H
       INC @R0
       CJNE @R0,#6,$+3
       JC BACK
       MOV @R0,#0
      
      
AJ2:   MOV R0,#31H                          ;時
       INC @R0
       CJNE @R0,#4,$+3
       JC BACK
       CJNE @R0,#5,$+3   
       JC S24            
       CJNE @R0,#10,$+3
       JC BACK
       MOV @R0,#0
       MOV R0,#30H
       INC @R0
;BACK:  RETI
S24:   DEC R0
       CJNE @R0,#2,$+3
       JC BACK
       MOV @R0,#0            
       MOV 31H,#0
       RETI

MAIN:  MOV R1,#30H
       MOV @R1,#0
  INC R1
       CJNE R1,#36H,MAIN+2
  MOV P3,#0FFH
       MOV P0,#0

       MOV DPTR,#SEGPT
       MOV R6,#200
       MOV TMOD,#10H
       MOV TH1,#0ECH
       MOV TH1,#78H
       SETB IT0
  SETB IT1
       MOV IP,#15H
       MOV IE,#9FH
       SETB TR1
LOOPO: MOV R1,#30H
       MOV R7,#20H
LOOPI: MOV P2,#0
       MOV A,@R1
       MOVC A,@A+DPTR
       MOV P1,A   
       MOV P2,R7
       INC R1
       MOV A,R7
       RR A
       MOV R7,A
       CJNE R7,#80H,LOOPI
       SJMP LOOPO
SEGPT: DB 40H,79H,24H,30H,19H,12H,2,78H,0,18H
       END

回復

使用道具 舉報

ID:14096 發(fā)表于 2009-6-11 11:24 | 顯示全部樓層
 AJMP MAIN                 
      
       ORG 03H                中斷源入口地址:03H      
  MOV P3,#0FFH             給P3口賦值:0FFH
  AJMP AJ2                    跳至AJ2,進行"時"的程序
       RETI
 
       ORG 13H                中斷源入口地址:13H     
  MOV P3,#0FFH              給P3口賦值:0FFH
  AJMP AJ1                     跳至AJ1,進行"分"的程序
       RETI


       ORG 1BH                中斷源入口地址:1BH      
       MOV TH1,#0ECH     T1的高位為0ECH
       MOV TL1,#78H        T1的低位為78H
       DJNZ R6,BACK        判斷R6-1=0?    ≠0則跳轉(zhuǎn)到BACK  =0向下運行
       MOV R6,#200       
     
AJ:    MOV R0,#35H                      ;秒
       INC @R0
       CJNE @R0,#10,$+3
       JC BACK
       MOV @R0,#0
       MOV R0,#34H
       INC @R0
       CJNE @R0,#6,$+3
       JC BACK
       MOV @R0,#0
      

AJ1:   MOV R0,#33H                       ;分
       INC @R0
       CJNE @R0,#10,$+3
       JC BACK
       MOV @R0,#0
       MOV R0,#32H
       INC @R0
       CJNE @R0,#6,$+3
       JC BACK
       MOV @R0,#0
      
      
AJ2:   MOV R0,#31H                          ;時     R0=31H
       INC @R0                                            (31H)中的內(nèi)容+1
       CJNE @R0,#4,$+3                              =?4    ≠往下
       JC BACK                                           C為1轉(zhuǎn)移BACK
       CJNE @R0,#5,$+3                            =?5   ≠往下
       JC S24                                               為24轉(zhuǎn)移S24
       CJNE @R0,#10,$+3                          =?10  ≠往下
       JC BACK                                             C為1轉(zhuǎn)移BACK
       MOV @R0,#0                                     給@R0賦值為0
       MOV R0,#30H                                     R0=30H
       INC @R0                                            @R0+1
BACK:  RETI                                             返回
S24:   DEC R0                                          R0-1
       CJNE @R0,#2,$+3                            =?2  ≠往下
       JC BACK                                             C為1轉(zhuǎn)移到BACK
       MOV @R0,#0                                    再將@R0=0
       MOV 31H,#0                                     將31H=0
       RETI                                                返回

MAIN:  MOV R1,#30H                               最初始:R1=31H
       MOV @R1,#0                                            @R1=0H
  INC R1                                                        將R1+1
       CJNE R1,#36H,MAIN+2                    =?36        ≠往下
  MOV P3,#0FFH                                      P3賦值0FFH  
       MOV P0,#0                                     P0為0

       MOV DPTR,#SEGPT                        16位數(shù)據(jù)指針寄存器賦值,在SEGPT中找
       MOV R6,#200                                R6=200
       MOV TMOD,#10H
       MOV TH1,#0ECH
       MOV TH1,#78H
       SETB IT0
  SETB IT1
       MOV IP,#15H
       MOV IE,#9FH
       SETB TR1
LOOPO: MOV R1,#30H
       MOV R7,#20H
LOOPI: MOV P2,#0
       MOV A,@R1
       MOVC A,@A+DPTR
       MOV P1,A   
       MOV P2,R7
       INC R1
       MOV A,R7
       RR A
       MOV R7,A
       CJNE R7,#80H,LOOPI
       SJMP LOOPO
SEGPT: DB 40H,79H,24H,30H,19H,12H,2,78H,0,18H
       END


沒空了  自己弄吧

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表