没有学过汇编语言,求哪位帮帮忙? 提前谢了啊! 10
ORG1100HRING10:MOVR6,#20;inputpasswordRING11:MOVR7,#20;800HzRING12:LCALLDL10;sound=1C...
ORG 1100H
RING10:MOV R6,#20 ;input password
RING11:MOV R7,#20 ;800Hz
RING12:LCALL DL10 ;sound=1
CPL P3.0 ;delay=0.5s
DJNZ R7,RING12
DJNZ R6,RING11
CLR P3.0
RET
ORG 1150
HRING20:MOV R3,#03
RING21:MOV R6,#20 ;password wrong
RING22:MOV R7,#20 ;1600Hz
RING23:LCALL DL20 ;sound=3
CPL P3.0 ;delay=0.25s
DJNZ R7,RING23
DJNZ R6,RING22
CLR P3.0
MOV R7,#200
RING24:LCALL DL10
DJNZ R7,RING24
DJNZ R3,RING21
CLR P3.0
RET
ORG 1200H
RING30:MOV R3,#02
RING31:MOV R6,#20 ;select
RING32:MOV R7,#20 ;800Hz
RING33:LCALL DL10 ;sound=2
CPL P3.0 ;delay=0.5s
DJNZ R7,RING33
DJNZ R6,RING32
CLR P3.0MOV R7,#200
RING34:LCALL DL10
DJNZ R7,RING34
DJNZ R3,RING31
CLR P3.0
RET
ORG 1250H
RING40:MOV R3,#03
RING41:MOV R6,#20 ;control
RING42:MOV R7,#20 ;800Hz
RING43:LCALL DL10 ;sound=3
CPL P3.0 ;delay=0.5s
DJNZ R7,RING43
DJNZ R6,RING42
CLR P3.0
MOV R7,#100
RING44:LCALL DL10
DJNZ R7,RING44
DJNZ R3,RING41
CLR P3.0
RET
ORG 1300H
RING50:MOV R6,#40 ;finish
RING51:MOV R7,#20 ;1600Hz
RING52:LCALL DL20 ;sound=1
CPL P3.0 ;delay=0.15s
DJNZ R7,RING52
DJNZ R6,RING51
CLR P3.0
RET
ORG 1500H
DL10:MOV R5,#25 ;delay1.25ms,f=800HZ,fosc=12MHz,
DL12:MOV R4,#25
DL11:DJNZ R4,DL11
DJNZ R5,DL12
RET
ORG 1600H
DL20:MOV R5,#12 ;delay0.625ms,f=1600HZ,fosc=12MHz,
DL22:MOV R4,#25
DL21:DJNZ R4,DL21
DJNZ R5,DL22
RET
ORG 1650H
DL30:MOV R5,#50 ;delay20ms
DL32:MOV R4,#200
DL31:DJNZ R4,DL31
DJNZ R5,DL32
RET
还有这个
ORG 0150H
HOKE: CLR 7DH
SETB P3.1 ;open telephone
CLR TR0 ;close T0
MOV R2,#03H ;password wrong 3
LCALL RING10 ;input password
IN: CLR 7EH ;7EH=0
DTMF: MOV R7,#5H ;PASSWORD:5 R7
MOV R1,#38H ;sign
SETB P1.4
SETB P1.5
SETB P1.6
SETB P1.7
WAIT: JBC 7EH,CC ;wait INT0
LJMP WAIT
CC: MOV R7,#5H ;password 5***
MOV R0,#30H ;password top
MOV R1,#38H ;sign
CMP: MOV A,@R1
MOV R4,A
CLR C
MOV A,@R1
SUBB A,@R0 ;test
INC R0
INC R1
JZ AAA ;OK,pass one
LJMP QQ
AAA: DJNZ R7,CMP ;R7-1!=0
LJMP LL ;pass
QQ: DJNZ R2,IN1 ;password wrong&R2!=0
LCALL RING20
LJMP STOP
IN1:LCALL RING20 ;password wrong,try!
LJMP IN 展开
RING10:MOV R6,#20 ;input password
RING11:MOV R7,#20 ;800Hz
RING12:LCALL DL10 ;sound=1
CPL P3.0 ;delay=0.5s
DJNZ R7,RING12
DJNZ R6,RING11
CLR P3.0
RET
ORG 1150
HRING20:MOV R3,#03
RING21:MOV R6,#20 ;password wrong
RING22:MOV R7,#20 ;1600Hz
RING23:LCALL DL20 ;sound=3
CPL P3.0 ;delay=0.25s
DJNZ R7,RING23
DJNZ R6,RING22
CLR P3.0
MOV R7,#200
RING24:LCALL DL10
DJNZ R7,RING24
DJNZ R3,RING21
CLR P3.0
RET
ORG 1200H
RING30:MOV R3,#02
RING31:MOV R6,#20 ;select
RING32:MOV R7,#20 ;800Hz
RING33:LCALL DL10 ;sound=2
CPL P3.0 ;delay=0.5s
DJNZ R7,RING33
DJNZ R6,RING32
CLR P3.0MOV R7,#200
RING34:LCALL DL10
DJNZ R7,RING34
DJNZ R3,RING31
CLR P3.0
RET
ORG 1250H
RING40:MOV R3,#03
RING41:MOV R6,#20 ;control
RING42:MOV R7,#20 ;800Hz
RING43:LCALL DL10 ;sound=3
CPL P3.0 ;delay=0.5s
DJNZ R7,RING43
DJNZ R6,RING42
CLR P3.0
MOV R7,#100
RING44:LCALL DL10
DJNZ R7,RING44
DJNZ R3,RING41
CLR P3.0
RET
ORG 1300H
RING50:MOV R6,#40 ;finish
RING51:MOV R7,#20 ;1600Hz
RING52:LCALL DL20 ;sound=1
CPL P3.0 ;delay=0.15s
DJNZ R7,RING52
DJNZ R6,RING51
CLR P3.0
RET
ORG 1500H
DL10:MOV R5,#25 ;delay1.25ms,f=800HZ,fosc=12MHz,
DL12:MOV R4,#25
DL11:DJNZ R4,DL11
DJNZ R5,DL12
RET
ORG 1600H
DL20:MOV R5,#12 ;delay0.625ms,f=1600HZ,fosc=12MHz,
DL22:MOV R4,#25
DL21:DJNZ R4,DL21
DJNZ R5,DL22
RET
ORG 1650H
DL30:MOV R5,#50 ;delay20ms
DL32:MOV R4,#200
DL31:DJNZ R4,DL31
DJNZ R5,DL32
RET
还有这个
ORG 0150H
HOKE: CLR 7DH
SETB P3.1 ;open telephone
CLR TR0 ;close T0
MOV R2,#03H ;password wrong 3
LCALL RING10 ;input password
IN: CLR 7EH ;7EH=0
DTMF: MOV R7,#5H ;PASSWORD:5 R7
MOV R1,#38H ;sign
SETB P1.4
SETB P1.5
SETB P1.6
SETB P1.7
WAIT: JBC 7EH,CC ;wait INT0
LJMP WAIT
CC: MOV R7,#5H ;password 5***
MOV R0,#30H ;password top
MOV R1,#38H ;sign
CMP: MOV A,@R1
MOV R4,A
CLR C
MOV A,@R1
SUBB A,@R0 ;test
INC R0
INC R1
JZ AAA ;OK,pass one
LJMP QQ
AAA: DJNZ R7,CMP ;R7-1!=0
LJMP LL ;pass
QQ: DJNZ R2,IN1 ;password wrong&R2!=0
LCALL RING20
LJMP STOP
IN1:LCALL RING20 ;password wrong,try!
LJMP IN 展开
5个回答
展开全部
1、楼主太粗心了,所有的逗号采用的都是全角字符“,”,应该是半角的","
2、CLR P3.0MOV R7,#200 ;此句应变为两句:
CLR P3.0
MOV R7,#200
3、最后一条汇编指令后应该加一行END,如:
LJMP IN
END
4、不知道楼主程序的功能,把最后部份程序改成如下,至少编译可以通过,至于功能是否能实现再说:
INC R0
INC R1
JZ AAA ;OK,pass one
AAA: DJNZ R7,CMP ;R7-1!=0
LJMP IN
END
2、CLR P3.0MOV R7,#200 ;此句应变为两句:
CLR P3.0
MOV R7,#200
3、最后一条汇编指令后应该加一行END,如:
LJMP IN
END
4、不知道楼主程序的功能,把最后部份程序改成如下,至少编译可以通过,至于功能是否能实现再说:
INC R0
INC R1
JZ AAA ;OK,pass one
AAA: DJNZ R7,CMP ;R7-1!=0
LJMP IN
END
展开全部
这个不是纯的MASM汇编程序,倒很像单片机指令,好像是响铃程序,太长了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的问题是什么啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没学过汇编,这个很麻烦,你都没说要做什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说明你的问题,都没有说问题怎么帮助呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询