找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5827|回复: 3
打印 上一主题 下一主题
收起左侧

十万火急,,谁可以帮忙一下

[复制链接]
跳转到指定楼层
楼主
ID:13636 发表于 2009-5-30 22:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

 哪位大哥帮忙一行行解析一下,谢谢!!!!!!!  
一个数字时钟的汇编程序.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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:13636 发表于 2009-5-30 22:28 | 只看该作者

谁可以帮忙啊.小弟谢谢了

回复

使用道具 举报

板凳
ID:11367 发表于 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 发表于 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则跳转到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)中的内容+1
       CJNE @R0,#4,$+3                              =?4    ≠往下
       JC BACK                                           C为1转移BACK
       CJNE @R0,#5,$+3                            =?5   ≠往下
       JC S24                                               为24转移S24
       CJNE @R0,#10,$+3                          =?10  ≠往下
       JC BACK                                             C为1转移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转移到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位数据指针寄存器赋值,在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


没空了  自己弄吧

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表