请求 帮助——注释和流程图 谢谢了
其他联系方式 QQ51162752
At89c2051汇编程序
ORG 0000H
AJMP STARD
ORG 000BH
AJMP T0W
ORG 0023H
JB RI,WX11
RETI
WX11: PUSH PSW
PUSH ACC
MOV A,SBUF
CLR RI
CJNE A,#0DH,RER99
SETB 2FH.0
RER99: POP ACC
POP PSW
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
T0W: PUSH PSW
PUSH ACC
MOV TH0,#0C0H ;定时器T0初值
MOV TL0,#00H
MOV 20H,P1
MOV 21H,P3
ANL 21H,#0F8H
MOV A,22H
CJNE A,20H,MH99
MOV A,23H
CJNE A,21H,MH99
AJMP ME
MH99: JB 22H.7,M2
JNB 20H.7,M2
SETB 24H.7
M2: JB 22H.6,M3
JNB 20H.6,M3
SETB 24H.6
M3: JB 22H.5,M4
JNB 20H.5,M4
SETB 24H.5
M4: JB 22H.4,M5
JNB 20H.4,M5
SETB 24H. 4
M5: JB 22H.3,M6
JNB 20H.3,M6
SETB 24H. 3
M6: JB 22H.2,M7
JNB 20H.2,M7
SETB 24H. 2
M7: JB 22H.1,M8
JNB 20H.1,M8
SETB 24H. 1
M8: JB 22H.0,M9
JNB 20H.0,M9
SETB 24H. 0
M9: JB 23H.7,MA
JNB 21H.7,MA
SETB 25H. 7
MA: JB 23H.5,MB
JNB 21H.5,MB
SETB 25H.5
MB: JB 23H.4,MC
JNB 21H.4,MC
SETB 25H.4
MC: JB 23H.3,MD
JNB 21H.3,MD
SETB 25H.3
MD: MOV 22H,20H
MOV 23H,21H
ME: POP ACC
POP PSW
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STARD: MOV SP,#07H
MOV TMOD,#21H ;定时器T1为工作方式2 ;T0为工作方式1
MOV TH1,#0FDH ;定时器T1初值 (9600BIT/S;11。0592MHZ)
MOV TL1,#0FDH
SETB TR1 ;开启T1
MOV TH0,#80H ;定时器T0初值
MOV TL0,#00H
SETB TR0 ;开启T0
MOV SCON,#50H ;串口工作方式为01,并允许接收。
MOV 87H,#00H ;波特率不加倍
MOV IE,#92H ;允许串口接收中断、T0中断。
MOV 24H,#00H
MOV 25H,#00H
MOV 20H,P1
MOV 21H,P3
ANL 21H,#0F8H
MOV 22H,20H
MOV 23H,21H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
N0: JB P3.2,NH
MOV 24H,#00H
MOV 25H,#00H
AJMP N0
NH: JNB 24H.7,N1
MOV 30H,#30H
MOV 31H,#31H
ACALL COMSMS
CLR 24H.7
JB P3.2,N1
AJMP N0
N1: JNB 24H.6,N2
MOV 30H,#30H
MOV 31H,#32H
ACALL COMSMS
CLR 24H.6
JB P3.2,N2
AJMP N0
N2: JNB 24H.5,N3
MOV 30H,#30H
MOV 31H,#33H
ACALL COMSMS
CLR 24H.5
JB P3.2,N3
AJMP N0
N3: JNB 24H.4,N4
MOV 30H,#30H
MOV 31H,#34H
ACALL COMSMS
CLR 24H.4
JB P3.2,N4
AJMP N0
N4: JNB 24H.3,N5
MOV 30H,#30H
MOV 31H,#35H
ACALL COMSMS
CLR 24H.3
JB P3.2,N5
AJMP N0
N5: JNB 24H.2,N6
MOV 30H,#30H
MOV 31H,#36H
ACALL COMSMS
CLR 24H.2
JB P3.2,N6
AJMP N0
N6: JNB 24H.1,N7
MOV 30H,#30H
MOV 31H,#37H
ACALL COMSMS
CLR 24H.1
JB P3.2,N7
AJMP N0
N7: JNB 24H.0,N8
MOV 30H,#30H
MOV 31H,#38H
ACALL COMSMS
CLR 24H.0
JB P3.2,N8
AJMP N0
N8: JNB 25H.7,N9
MOV 30H,#30H
MOV 31H,#39H
ACALL COMSMS
CLR 25H.7
JB P3.2,N9
AJMP N0
N9: JNB 25H.3,NA
MOV 30H,#31H
MOV 31H,#30H
ACALL COMSMS
CLR 25H.3
JB P3.2,NA
AJMP N0
NA: JNB 25H.4,NB
MOV 30H,#31H
MOV 31H,#31H
ACALL COMSMS
CLR 25H.4
JB P3.2,NB
AJMP N0
NB: JNB 25H.5,NC
MOV 30H,#31H
MOV 31H,#32H
ACALL COMSMS
CLR 25H.5
NC: AJMP N0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
COMSMS:CLR 2FH.0
MOV A,#43H ;将ASCII码C发送到串口
ACALL COMF
MOV A,#4FH ;将ASCII码O发送到串口
ACALL COMF
MOV A,#4DH ;将ASCII码M发送到串口
ACALL COMF
MOV A,#53H ;将ASCII码S发送到串口
ACALL COMF
MOV A,#4DH ;将ASCII码M发送到串口
ACALL COMF
MOV A,#53H ;将ASCII码S发送到串口
ACALL COMF
MOV A,30H
ACALL COMF
MOV A,31H
ACALL COMF
MOV R7,#38 ;10.756276S
SD01: MOV R6,#255
SD02: MOV R5,#255
SD03: JB 2FH.0,WD09
DJNZ R5,SD03
DJNZ R6,SD02
DJNZ R7,SD01
CLR 2FH.0
MOV A,#43H ;将ASCII码C发送到串口
ACALL COMF
MOV A,#4FH ;将ASCII码O发送到串口
ACALL COMF
MOV A,#4DH ;将ASCII码M发送到串口
ACALL COMF
MOV A,#53H ;将ASCII码S发送到串口
ACALL COMF
MOV A,#4DH ;将ASCII码M发送到串口
ACALL COMF
MOV A,#53H ;将ASCII码S发送到串口
ACALL COMF
MOV A,30H
ACALL COMF
MOV A,31H
ACALL COMF
MOV R7,#20 ;5S
WD01: MOV R6,#255
WD02: MOV R5,#255
WD03: JB 2FH.0,WD09
DJNZ R5,WD03
DJNZ R6,WD02
DJNZ R7,WD01
WD09: RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
COMF: MOV SBUF,A
MC01: JNB TI,MC01
CLR TI
RET
END