⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 master.sdi

📁 《单片机原理实用教程——基于Proteus虚拟仿真》一书的配套光盘
💻 SDI
字号:
,,,        ORG 0000H
0000,02 00 30,,        LJMP MAIN
,,,        ORG 0030H
0030,75 81 70,MAIN,MAIN:   MOV SP,#70H
,,,
0033,75 51 01,,        MOV 51H,#01H            ;从机1数据
0036,75 52 02,,        MOV 52H,#02H
0039,75 53 03,,        MOV 53H,#03H
003C,75 61 01,,        MOV 61H,#01H            ;从机2数据
003F,75 62 02,,        MOV 62H,#02H
0042,75 63 03,,        MOV 63H,#03H
0045,30 90 05,AGAIN,AGAIN:  JNB P1.0,SET_NM1        ;K1键按下?
0048,30 91 19,,        JNB P1.1,SET_NM2        ;K2键按下?
004B,80 F8,,        SJMP AGAIN
004D,75 40 01,SET_NM1,SET_NM1:MOV 40H,#01H            ;K1键按下,设定从机1地址
0050,D2 07,,        SETB 20H.7
0052,7D 00,,        MOV R5,#00H
0054,75 50 03,,        MOV 50H,#03H            ;数据块长度
0057,05 51,,        INC 51H
0059,05 52,,        INC 52H
005B,05 53,,        INC 53H
005D,12 00 77,,        LCALL TRS
0060,C2 07,,        CLR 20H.7
0062,80 E1,,        SJMP AGAIN
0064,75 40 02,SET_NM2,SET_NM2:MOV 40H,#02H            ;K1键按下,设定从机2地址
0067,7D 00,,        MOV R5,#00H
0069,75 50 03,,        MOV 50H,#03H            ;数据块长度
006C,05 61,,        INC 61H
006E,05 62,,        INC 62H
0070,05 63,,        INC 63H
0072,12 00 77,,        LCALL TRS
0075,80 CE,,        SJMP AGAIN
,,,
0077,75 89 20,TRS,TRS:    MOV TMOD, #20H          ;设置T1工作方式
007A,75 8D FD,,        MOV  TH1,#0FdH          ;设置时间常数,确定波特率
007D,75 8B FD,,        MOV  TL1,#0FdH
0080,D2 8E,,        SETB TR1
0082,75 98 D8,,        MOV  SCON,#0D8H         ;设置串行口工作方式
0085,75 87 00,,        MOV  PCON,#00H
0088,D2 AF,,        SETB EA
008A,E5 40,TX_ADDR,TX_ADDR:MOV  A,40H              ;发送从机地址
008C,F5 99,,        MOV SBUF,A
008E,30 99 FD,WAIT1,WAIT1:  JNB TI,WAIT1            ;等待发送完
0091,C2 99,,        CLR TI
0093,30 98 FD,RX_ADDR,RX_ADDR:JNB RI,RX_ADDR
0096,C2 98,,        CLR RI
0098,E5 99,,        MOV  A,SBUF             ;判断从机应答
009A,B4 00 F6,,        CJNE A,#00H,RX_ADDR     ;应答错误,重发
009D,C2 9B,,        CLR TB8
009F,85 50 99,RDT,RDT:    MOV SBUF,50H            ;发送数据块长度
00A2,30 99 FD,WAIT2,WAIT2:  JNB TI,WAIT2            ;等待发送完
00A5,C2 99,,        CLR TI
00A7,30 98 FD,RX_DT1,RX_DT1: JNB RI,RX_DT1
00AA,C2 98,,        CLR RI
00AC,E5 99,,        MOV  A,SBUF             ;判断从机应答
00AE,B4 00 EE,,        CJNE A,#00H,RDT         ;应答错误,重发
00B1,20 07 04,,        JB  20H.7,G51H
00B4,78 61,,        MOV R0,#61H
00B6,80 02,,        SJMP RTRS
00B8,78 51,G51H,G51H:   MOV R0,#51H             ;发送数据
00BA,E6,RTRS,RTRS:   MOV A,@R0
00BB,F5 F0,,        MOV B,A
00BD,F5 99,,        MOV SBUF,A
00BF,30 99 FD,WAIT3,WAIT3:  JNB TI,WAIT3            ;等待发送完
00C2,C2 99,,        CLR TI
00C4,30 98 FD,RX_DT,RX_DT:  JNB RI,RX_DT
00C7,C2 98,,        CLR RI
00C9,E5 99,,        MOV  A,SBUF             ;判断从机应答
00CB,B4 00 EC,,        CJNE A,#00H,RTRS        ;应答错误,重发
00CE,08,,        INC R0
00CF,E5 F0,,        MOV A,B
00D1,2D,,        ADD A,R5                ;发送数据累加
00D2,FD,,        MOV R5,A
00D3,D5 50 E4,,        DJNZ 50H,RTRS
00D6,ED,RTRS1,RTRS1:  MOV A,R5
00D7,F5 99,,        MOV SBUF,A              ;发送校验和
00D9,30 99 FD,WAIT4,WAIT4:  JNB TI,WAIT4            ;等待发送完
00DC,C2 99,,        CLR TI
00DE,30 98 FD,RX_PAR,RX_PAR: JNB RI,RX_PAR
00E1,C2 98,,        CLR RI
00E3,E5 99,,        MOV  A,SBUF             ;判断从机应答
00E5,B4 00 01,,        CJNE A,#00H,ERR         ;应答错误
00E8,22,,        RET
00E9,80 FE,ERR,ERR:    SJMP $
,,,
000E,,,end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -