89c51单片机的汇编程序,帮忙翻译

jhjjc 2009-04-29 02:28:56
请高手给下面的代码添加注释并详细解释这段程序的功能(89C51单片机的代码)如果讲解的够清楚再追加分。


Q0000:LJMP Q007F

Q0003:RETI

Q000B:LJMP Q0060

Q0013:RETI

Q0024: DB FFH,FFH,FFH,FFH,FFH,FFH,FFH,FFH
DB FFH,FFH,FFH,FFH,30H,31H,32H,33H ;....0123
DB 34H,35H,36H,37H,38H,39H,41H,42H ;456789AB
DB 43H,44H,45H,46H,20H,20H,20H,31H ;CDEF...1
DB 39H,39H,39H,2FH,30H,37H,2FH,30H ;999/07/0
DB 38H,20H,20H,20H,20H,20H,20H,56H ;8......V
DB 45H,52H,3AH,4DH,34H,20H,20H,20H ;ER:M4...
DB 20H,20H,20H,20H

Q0060:MOV TL0,#BAH
MOV TH0,#EFH
PUSH PSW
PUSH A
PUSH DPL
PUSH DPH
SETB RS0
CLR RS1
LCALL Q05AA
POP DPH
POP DPL
POP ACC
POP PSW
RETI

Q007E:DB 00H

Q007F:CLR EA
CLR RS0
CLR RS1
MOV P1,#FFH
MOV P3,#FFH
MOV SP,#67H
MOV R0,#7FH
Q0090:MOV @R0,#00H
DJNZ R0,Q0090
MOV R2,#04H
MOV R0,#60H
MOV DPTR,#8200H
Q009B:MOVX A,@DPTR
INC A
MOV @R0,A
INC R0
INC DPTR
DJNZ R2,Q009B
MOV TMOD,#21H
MOV TCON,#00H
MOV TL0,#BAH
MOV TH0,#EFH
MOV TH1,#FDH
MOV TL1,#FDH
MOV PCON,#80H
MOV SCON,#D0H
SETB TR0
SETB TR1
SETB ET0
SETB EA
CLR A
MOV DPTR,#9001H
MOVX @DPTR,A
MOV DPTR,#9002H
MOVX @DPTR,A
MOV DPTR,#9003H
MOVX @DPTR,A
LCALL Q02B9
LCALL Q0414
MOV R0,#08H
LCALL Q01C8
CLR A
MOV 28H,A
MOV 29H,A
MOV 2AH,A
MOV 2BH,A
Q00E3:LCALL Q05D3
LCALL Q0421
MOV 67H,#01H
Q00EC:LCALL Q05AA
MOV 1FH,#05H
MOV A,67H
MOV DPTR,#9000H
MOVX @DPTR,A
LCALL Q01D3
CLR EA
Q00FD:CLR 20H.0
CLR P3.2
CLR TI
SETB TB8
MOV A,67H
MOV SBUF,A
ADD A,#AAH
JNB TI,$
CLR TI
CLR TB8
MOV SBUF,A
JNB TI,$
CLR TI
SETB P3.2
CLR RI
MOV R3,#32H
DJNZ R3,$
MOV R7,#00H
MOV R1,#30H
MOV R3,#08H
Q0127:MOV R4,#05H
Q0129:MOV R5,#FFH
Q012B:JBC RI,Q0135
DJNZ R5,Q012B
DJNZ R4,Q0129
LJMP Q01A0

Q0135:MOV A,SBUF
MOV @R1,A
CJNE R3,#01H,Q013E
LJMP Q0143

Q013E:ADD A,R7
MOV R7,A
INC R1
DJNZ R3,Q0127
Q0143:MOV R3,#32H
DJNZ R3,$
CLR P3.2
MOV A,R7
CJNE A,37H,Q0155
MOV A,67H
CJNE A,30H,Q0155
LJMP Q0158

Q0155:MOV A,R7
CPL A
MOV R7,A
Q0158:MOV A,R7
MOV 38H,A
LCALL Q01FD
MOV 3FH,#00H
MOV R1,#38H
MOV R3,#08H
Q0165:CLR TI
MOV A,@R1
MOV SBUF,A
CJNE R3,#01H,Q0170
LJMP Q0175

Q0170:ADD A,3FH
MOV 3FH,A
INC R1
Q0175:JNB TI,$
DJNZ R3,Q0165
CLR TI
SETB P3.2
CLR RI
MOV R3,#32H
DJNZ R3,$
MOV R4,#05H
Q0186:MOV R5,#FFH
Q0188:JBC RI,Q0192
DJNZ R5,Q0188
DJNZ R4,Q0186
LJMP Q01A0

Q0192:MOV A,SBUF
XRL A,#FFH
CJNE A,3FH,Q01A0
CLR P3.2
SETB 20H.0
LJMP Q01B2

Q01A0:CLR P3.2
MOV R3,#64H
DJNZ R3,$
LCALL Q01D3
DJNZ 1FH,Q01AF
LJMP Q01B2

Q01AF:LJMP Q00FD

Q01B2:SETB EA
JNB 20H.0,Q01BA
LCALL Q0228
Q01BA:INC 67H
DJNZ 66H,Q01C2
LJMP Q01C5

Q01C2:LJMP Q00EC

Q01C5:LJMP Q00E3

Q01C8:MOV R1,#00H
MOV R2,#00H
Q01CC:DJNZ R2,$
DJNZ R1,Q01CC
DJNZ R0,Q01CC
RET

Q01D3:MOV R3,#08H
MOV R1,#30H
Q01D7:MOV @R1,#00H
INC R1
DJNZ R3,Q01D7
RET

Q01DD: DB 7BH,08H,79H,38H,77H,00H,09H,DBH
DB FBH,22H,90H,00H,00H,75H,F0H,00H
DB 79H,10H,78H,00H,E4H,93H,25H,F0H
DB F5H,F0H,A3H,D8H,F7H,D9H,F3H,22H

Q01FD:MOV DPTR,#8102H
MOVX A,@DPTR
MOV 39H,A
MOV DPTR,#8101H
MOVX A,@DPTR
MOV 3AH,A
MOV DPTR,#8100H
MOVX A,@DPTR
MOV 3BH,A
CLR A
ORL A,28H
ORL A,29H
ORL A,2AH
ORL A,2BH
JZ Q021C
MOV A,#55H
Q021C:MOV 3CH,A
MOV DPTR,#8182H
MOVX A,@DPTR
MOV 3DH,A
MOV 3EH,#00H
RET

Q0228:MOV A,31H
CJNE A,#00H,Q0233
LCALL Q0289
LJMP Q024E

Q0233:MOV A,31H
CJNE A,#55H,Q023E
LCALL Q029E
LJMP Q024E

Q023E:MOV A,31H
CJNE A,#AAH,Q024E
LCALL Q0271
JC Q024E
LCALL Q02F6
LCALL Q0289
Q024E:MOV A,33H
JZ Q0266
MOV A,33H
CJNE A,#0AH,Q0257
Q0257:JNC Q0266
MOV A,33H
LCALL Q0381
MOV A,33H
LCALL Q03C2
MOV 33H,#00H
Q0266:ACALL Q01D3
RET

...全文
293 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
iceyme 2011-04-02
  • 打赏
  • 举报
回复
或许你可以将程序分成好几段来求助,最好有原理图什么的。
AbnormalSubmarine 2009-05-06
  • 打赏
  • 举报
回复
啥都没有
只能看到数据的倒来倒去
ckc 2009-05-06
  • 打赏
  • 举报
回复
确实太长了,另外这种程序多半跟硬件有关系的
没有原理图,不知道大概功能分析这个难度会高很多的
qlm2008 2009-05-05
  • 打赏
  • 举报
回复
你用这个程序干嘛的了,学习还是搞开发咯?这么长估计没多少人有这功夫哩!到猪八戒威客网发布吧,不过要钱的~~
goodider 2009-05-03
  • 打赏
  • 举报
回复
顶起来看看有高人没有指点一下
nanlingcg 2009-05-03
  • 打赏
  • 举报
回复
帮你顶下。。。
jhjjc 2009-05-03
  • 打赏
  • 举报
回复
哎,现在雷锋精神没有啦
Kethon 2009-04-29
  • 打赏
  • 举报
回复
没那闲工夫
小赌移情 2009-04-29
  • 打赏
  • 举报
回复
太長了 就20分吸引力不大...
jhjjc 2009-04-29
  • 打赏
  • 举报
回复
Q0269: DB 01H,02H,04H,08H,10H,20H,40H,80H

Q0271:MOV A,67H
DEC A
MOV B,#08H
DIV AB
MOV R0,#28H
ADD A,R0
MOV R0,A
MOV A,B
MOV DPTR,#0269H
MOVC A,@A+DPTR
ANL A,@R0
JZ Q0287
CLR C
RET

Q0287:SETB C
RET

Q0289:MOV A,67H
DEC A
MOV B,#08H
DIV AB
MOV R0,#28H
ADD A,R0
MOV R0,A
MOV A,B
MOV DPTR,#0269H
MOVC A,@A+DPTR
CPL A
ANL A,@R0
MOV @R0,A
RET

Q029E:MOV A,67H
DEC A
MOV B,#08H
DIV AB
MOV R0,#28H
ADD A,R0
MOV R0,A
MOV A,B
MOV DPTR,#0269H
MOVC A,@A+DPTR
MOV B,A
ANL A,@R0
JNZ Q02B8
MOV A,B
ORL A,@R0
MOV @R0,A
Q02B8:RET

Q02B9:MOV A,P1
ANL A,#80H
CJNE A,#00H,Q02F5
CLR EA
MOV R2,#04H
MOV R0,#60H
MOV DPTR,#8200H
Q02C9:MOVX A,@DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R2,Q02C9
MOV R0,#07H
MOV R1,#FFH
MOV DPTR,#8000H
CLR A
Q02D7:MOVX @DPTR,A
INC DPTR
DJNZ R1,Q02D7
DJNZ R0,Q02D7
LCALL Q032D
LCALL Q0357
LCALL Q04EE
MOV R2,#04H
MOV R0,#60H
MOV DPTR,#8200H
Q02ED:MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R2,Q02ED
SETB EA
Q02F5:RET

Q02F6:MOV DPTR,#8110H
MOVX A,@DPTR
MOV DPTR,#8100H
MOVX @DPTR,A
MOV DPTR,#8111H
MOVX A,@DPTR
MOV DPTR,#8101H
MOVX @DPTR,A
MOV DPTR,#8112H
MOVX A,@DPTR
MOV DPTR,#8102H
MOVX @DPTR,A
LCALL Q0357
LCALL Q04EE
RET

Q0315: DB E0H,2EH,00H,F8H,2AH,00H,10H,27H
DB 00H,28H,23H,00H,40H,1FH,00H,58H
DB 1BH,00H,70H,17H,00H,88H,13H,00H

Q032D:MOV A,P1
ANL A,#07H
MOV B,A
RL A
ADD A,B
MOV B,A
MOV A,B
MOV DPTR,#0315H
MOVC A,@A+DPTR
MOV DPTR,#8100H
MOVX @DPTR,A
MOV A,B
MOV DPTR,#0316H
MOVC A,@A+DPTR
MOV DPTR,#8101H
MOVX @DPTR,A
MOV A,B
MOV DPTR,#0317H
MOVC A,@A+DPTR
MOV DPTR,#8102H
MOVX @DPTR,A
RET

Q0357:MOV A,P1
ANL A,#07H
MOV B,A
RL A
ADD A,B
MOV B,A
MOV A,B
MOV DPTR,#0315H
MOVC A,@A+DPTR
MOV DPTR,#8110H
MOVX @DPTR,A
MOV A,B
MOV DPTR,#0316H
MOVC A,@A+DPTR
MOV DPTR,#8111H
MOVX @DPTR,A
MOV A,B
MOV DPTR,#0317H
MOVC A,@A+DPTR
MOV DPTR,#8112H
MOVX @DPTR,A
RET

Q0381:MOV B,A
MOV DPTR,#8100H
MOVX A,@DPTR
ADD A,B
MOVX @DPTR,A
MOV DPTR,#8101H
MOVX A,@DPTR
ADDC A,#00H
MOVX @DPTR,A
MOV DPTR,#8102H
MOVX A,@DPTR
ADDC A,#00H
MOVX @DPTR,A
MOV DPTR,#8102H
MOVX A,@DPTR
CJNE A,#01H,Q03AD
MOV DPTR,#8101H
MOVX A,@DPTR
CJNE A,#86H,Q03AD
MOV DPTR,#8100H
MOVX A,@DPTR
CJNE A,#9FH,Q03AD
Q03AD:JC Q03C1
MOV A,#01H
MOV DPTR,#8102H
MOVX @DPTR,A
MOV A,#86H
MOV DPTR,#8101H
MOVX @DPTR,A
MOV A,#9FH
MOV DPTR,#8100H
MOVX @DPTR,A
Q03C1:RET

Q03C2:MOV B,A
MOV DPTR,#8118H
MOVX A,@DPTR
ADD A,B
MOV B,A
ANL A,#01H
MOVX @DPTR,A
CLR C
MOV A,B
RRC A
MOV B,A
MOV DPTR,#8110H
MOVX A,@DPTR
ADD A,B
MOVX @DPTR,A
MOV DPTR,#8111H
MOVX A,@DPTR
ADDC A,#00H
MOVX @DPTR,A
MOV DPTR,#8112H
MOVX A,@DPTR
ADDC A,#00H
MOVX @DPTR,A
MOV DPTR,#8112H
MOVX A,@DPTR
CJNE A,#00H,Q03FF
MOV DPTR,#8111H
MOVX A,@DPTR
CJNE A,#88H,Q03FF
MOV DPTR,#8110H
MOVX A,@DPTR
CJNE A,#B8H,Q03FF
Q03FF:JC Q0413
MOV A,#00H
MOV DPTR,#8112H
MOVX @DPTR,A
MOV A,#88H
MOV DPTR,#8111H
MOVX @DPTR,A
MOV A,#B8H
MOV DPTR,#8110H
MOVX @DPTR,A
Q0413:RET

Q0414:MOV DPTR,#8182H
MOVX A,@DPTR
CJNE A,#78H,Q041B
Q041B:JC Q0420
LCALL Q04EE
Q0420:RET

Q0421:CLR EA
MOV DPTR,#8022H
MOVX A,@DPTR
MOV B,A
MOV DPTR,#8102H
MOVX A,@DPTR
CJNE A,B,Q044A
MOV DPTR,#8021H
MOVX A,@DPTR
MOV B,A
MOV DPTR,#8101H
MOVX A,@DPTR
CJNE A,B,Q044A
MOV DPTR,#8020H
MOVX A,@DPTR
MOV B,A
MOV DPTR,#8100H
MOVX A,@DPTR
CJNE A,B,Q044A
Q044A:JC Q0455
MOV A,#00H
MOV DPTR,#8182H
MOVX @DPTR,A
SETB EA
RET

Q0455:MOV A,#50H
MOV DPTR,#8182H
MOVX @DPTR,A
SETB EA
RET

Q045E: DB 00H,00H,9CH,40H,00H,00H,4EH,20H
DB 00H,00H,75H,30H,00H,00H,9CH,40H
DB 00H,01H,11H,70H,00H,00H,75H,30H
DB 00H,00H,C3H,50H,00H,00H,75H,30H
DB 00H,00H,9CH,40H,00H,00H,C3H,50H
DB 00H,00H,75H,30H,00H,00H,9CH,40H
DB 00H,00H,EAH,60H,00H,00H,75H,30H
DB 00H,00H,9CH,40H,00H,00H,C3H,50H
DB 00H,00H,75H,30H,00H,00H,4EH,20H
DB 00H,00H,75H,30H,00H,00H,9CH,40H
DB 00H,00H,4EH,20H,00H,00H,75H,30H
DB 00H,00H,C3H,50H,00H,00H,75H,30H
DB 00H,00H,9CH,40H,00H,00H,C3H,50H
DB 00H,00H,75H,30H,00H,00H,9CH,40H
DB 00H,00H,4EH,20H,00H,00H,75H,30H
DB 00H,00H,9CH,40H,00H,00H,4EH,20H
DB 00H,00H,3AH,98H,00H,00H,46H,50H
DB 00H,00H,52H,08H,00H,00H,5DH,C0H

Q04EE:CLR EA
MOV A,P1
ANL A,#08H
JNZ Q051B
MOV A,P1
ANL A,#30H
CJNE A,#30H,Q0503
MOV DPTR,#04DEH
LJMP Q053F

Q0503:CJNE A,#20H,Q050C
MOV DPTR,#04E2H
LJMP Q053F

Q050C:CJNE A,#10H,Q0515
MOV DPTR,#04E6H
LJMP Q053F

Q0515:MOV DPTR,#04EAH
LJMP Q053F

Q051B:MOV DPTR,#045EH
MOV A,P1
ANL A,#40H
JZ Q0527
MOV DPTR,#049EH
Q0527:LCALL Q05AA
LCALL Q05AA
MOV A,61H
ANL A,#0FH
MOV B,#04H
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
Q053F:CLR A
MOVC A,@A+DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#8023H
MOVX @DPTR,A
POP DPH
POP DPL
INC DPTR
CLR A
MOVC A,@A+DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#8022H
MOVX @DPTR,A
POP DPH
POP DPL
INC DPTR
CLR A
MOVC A,@A+DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#8021H
MOVX @DPTR,A
POP DPH
POP DPL
INC DPTR
CLR A
MOVC A,@A+DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#8020H
MOVX @DPTR,A
POP DPH
POP DPL
MOV B,#26H
MOV A,P1
ANL A,#08H
JNZ Q0586
MOV B,#12H
Q0586:LCALL Q05AA
LCALL Q05AA
LCALL Q05AA
MOV A,60H
MUL AB
MOV R0,A
MOV DPTR,#8020H
MOVX A,@DPTR
ADD A,R0
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ADDC A,B
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ADDC A,#00H
MOVX @DPTR,A
INC DPTR
MOV A,#00H
MOVX @DPTR,A
SETB EA
RET

Q05AA:MOV A,63H
RR A
RR A
RR A
RR A
XRL A,61H
RR A
RR A
XRL A,61H
RR A
XRL A,60H
RRC A
CPL C
MOV R0,#60H
MOV R2,#04H
Q05BF:MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ R2,Q05BF
MOV R2,#04H
MOV R0,#60H
MOV DPTR,#8200H
Q05CC:MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R2,Q05CC
RET

Q05D3:MOV A,P1
CPL A
ANL A,#F8H
MOV A,#F8H
RR A
RR A
RR A
INC A
MOV 66H,A
RET

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧