📄 slave2.sdi
字号:
,,, ORG 0000H
0000,02 00 30,, LJMP MAIN
,,, ORG 0023H
0023,02 00 63,, LJMP SERVE
,,, ORG 0030H
0030,75 81 60,MAIN,MAIN: MOV SP,#60H
0033,7D 00,, MOV R5,#0
0035,79 51,, MOV R1,#51H
0037,75 89 20,, MOV TMOD, #20H ;设置T1工作方式
003A,75 8D FD,, MOV TH1,#0FdH ;设置时间常数,确定波特率
003D,75 8B FD,, MOV TL1,#0FdH
0040,75 98 F0,, MOV SCON,#0F0H ;设置串行口工作方式
0043,75 87 00,, MOV PCON,#00H
0046,D2 8E,, SETB TR1
0048,D2 AF,, SETB EA
004A,D2 AC,, SETB ES ;允许串行口中断
004C,7F 03,LP2,LP2: MOV R7,#3
004E,78 51,, MOV R0,#51H
0050,E6,LP1,LP1: MOV A,@R0
0051,F5 80,, MOV P0,A
0053,12 00 A9,, LCALL DELAY
0056,08,, INC R0
0057,DF F7,, DJNZ R7,LP1
0059,20 78 02,, JB 2FH.0,ERR
005C,80 EE,, SJMP LP2
005E,75 80 FF,ERR,ERR: MOV P0,#0FFH
0061,80 FE,, SJMP $
,,,
0063,,SERVE,SERVE:
0063,10 98 01,, JBC RI,REV1 ;串行口中断服务程序
0066,32,, RETI
0067,30 9A 0D,REV1,REV1: JNB RB8,REV3
006A,E5 99,, MOV A,SBUF
006C,B4 02 07,, CJNE A,#02H,REV2
006F,C2 9D,, CLR SM2
0071,D2 D5,, SETB F0
0073,75 99 00,, MOV SBUF,#00H
0076,32,REV2,REV2: RETI
0077,30 D5 0B,REV3,REV3: JNB F0,REVDT
007A,E5 99,, MOV A,SBUF ;接收数据块长度
007C,04,, INC A
007D,F5 50,, MOV 50H,A
007F,C2 D5,, CLR F0
0081,75 99 00,, MOV SBUF,#00H
0084,32,, RETI
0085,D5 50 17,REVDT,REVDT: DJNZ 50H,RT
0088,E5 99,, MOV A,SBUF ;接收校验和
008A,6D,, XRL A,R5
008B,60 06,, JZ RIGHT
008D,75 99 FF,, MOV SBUF,#0FFH
0090,D2 78,, SETB 2FH.0
0092,32,, RETI
0093,75 99 00,RIGHT,RIGHT: MOV SBUF,#00H
0096,C2 78,, CLR 2FH.0
0098,D2 9D,, SETB SM2
009A,7D 00,, MOV R5,#0
009C,79 51,, MOV R1,#51H
009E,32,, RETI
009F,E5 99,RT,RT: MOV A,SBUF ;接收数据
00A1,F7,, MOV @R1,A
00A2,2D,, ADD A,R5
00A3,FD,, MOV R5,A
00A4,09,, INC R1
00A5,75 99 00,, MOV SBUF,#00H
00A8,32,, RETI
,,,
00A9,7A FF,DELAY,DELAY: MOV R2,#0FFH ;延时子程序
00AB,7B FF,AA1,AA1: MOV R3,#0FFH
00AD,00,AA,AA: NOP
00AE,00,, NOP
00AF,DB FC,, DJNZ R3,AA
00B1,DA F8,, DJNZ R2,AA1
00B3,22,, RET
,,,
000E,,,end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -