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

📄 jrdmdytx.asm

📁 用增强型单片机51RD2做的控制器
💻 ASM
📖 第 1 页 / 共 3 页
字号:

                MOVX    A,@R1
                MOV     HOUR,A
                INC     R1

                MOVX    A,@R1
                MOV     DAY,A
                INC     R1

                MOVX    A,@R1
                MOV     MONTH,A
                INC     R1

                MOVX    A,@R1
                MOV     WEEK,A
                INC     R1

                MOVX    A,@R1
                MOV     YEAR,A
                INC     R1

                LCALL   HtWriteClock
                LCALL   HtWriteDate
                RET

;
;     ******  发送系统密码到远程终端 ******
;
ReadSysPass:    MOV     R1,#SendBuf
                MOVX    @R1,A
                MOV     BNUM,#PassNum
                MOV     BADR,#SendBuf+1
                MOV     DPTR,#SysPassAdr        ; 系统密码首地址
                LCALL   RD_BLK

                PUSH    PSW
                CLR     PSW.3                    ; RX : PAGE 2
                SETB    PSW.4
                MOV     CallAddr,#FarPcAdr      ; 远程控制PC地址
                MOV     FuncCode,#SendCpu1Func17; 发送数据到远程终端功能码
                LCALL   DataToFarPC             ; 发送一条记录到远程(PC)终端
                POP     PSW
                RET
;
;   ******  接收远程终端系统密码设置 ******
;
WriteSysPass:   MOV     BNUM,#PassNum
                MOV     BADR,#RecvBuf+3
                MOV     DPTR,#SysPassAdr
                LCALL   WR_BLK
                RET
;
;     ******  发送用户密码到远程终端 ******
;
ReadUserPass:
                MOV     R1,#SendBuf
                MOVX    @R1,A
                MOV     BNUM,#PassNum
                MOV     BADR,#SendBuf+1
                MOV     DPTR,#UserPassAdr        ; 用户密码首地址
                LCALL   RD_BLK

                PUSH    PSW
                CLR     PSW.3                    ; RX : PAGE 2
                SETB    PSW.4
                MOV     CallAddr,#FarPcAdr      ; 远程控制PC地址
                MOV     FuncCode,#SendCpu1Func17; 发送数据到远程终端功能码
                LCALL   DataToFarPC             ; 发送一条记录到远程(PC)终端
                POP     PSW
                RET
;
;   ******  接收远程终端用户密码设置 ******
;
WriteUserPass:  MOV     BNUM,#PassNum
                MOV     BADR,#RecvBuf+3
                MOV     DPTR,#UserPassAdr       ; 用户密码首地址
                LCALL   WR_BLK
                RET



;
;       ******  接收远程终端的复位设置 ******
;
ReadSysReset:
                MOV     R1,#SendBuf
                MOVX    @R1,A

                PUSH    PSW
                CLR     PSW.3                    ; RX : PAGE 2
                SETB    PSW.4
                MOV     CallAddr,#FarPcAdr      ; 远程控制PC地址
                MOV     FuncCode,#SendCpu1Func17; 发送数据到远程终端功能码
                LCALL   DataToFarPC             ; 发送一条记录到远程(PC)终端
                POP     PSW
                RET



;
;******  将接收下位机采集的 A/D 值装入 A/D 缓冲区  ******
;
GetAdData:      MOV     R0,#RecvBuf+2           ; 通信接收缓冲区(32Byte)
                MOV     R1,#AdBcdBuf
                MOV     R2,#16
GetAdData1:     MOVX    A,@R0
                INC     R0
                MOVX    @R1,A
                INC     R1
                DJNZ    R2,GetAdData1
                RET




;
;       ******  发送一条记录到远程CPU  ******
;
DataToFarCpu:   CLR     ES
                CLR     ComCtrl
                CLR     A
                MOV     B,#DataHead             ; 发送数据贞头
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarCpu1:  JNB     TI,DataToFarCpu1        ;
                CLR     TI
                MOV     B,#DataHead             ; 发送数据贞头
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarCpu2:  JNB     TI,DataToFarCpu2        ;
                CLR     TI
                MOV     B,CallAddr              ; 发送被呼的主机地址
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarCpu3:  JNB     TI,DataToFarCpu3        ;
                CLR     TI
                MOV     B,#SelfAddr             ; 发送本机地址
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarCpu4:  JNB     TI,DataToFarCpu4        ;
                CLR     TI
                MOV     B,FuncCode              ; 发送功能码
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarCpu5:  JNB     TI,DataToFarCpu5        ;
                CLR     TI
                MOV     R1,#SendBuf
                MOV     R2,#SendNum-5
DataToFarCpu6:  XCH     A,B
                MOVX    A,@R1
                XCH     A,B
                INC     R1
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarCpu7:  JNB     TI,DataToFarCpu7        ;
                CLR     TI
                DJNZ    R2,DataToFarCpu6
                MOV     SBUF,A                  ;
DataToFarCpu8:  JNB     TI,DataToFarCpu8        ;
                CLR     TI
                SETB    ComCtrl
                SETB    ES
                LCALL   DL100MS
                RET
;
;   ******  发送一条记录到远程(PC)终端  ******
;
DataToFarPC:    CLR     ES
                CLR     A
                MOV     B,#DataHead             ; 发送数据贞头
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarPC1:   JNB     TI,DataToFarPC1         ;
                CLR     TI
                MOV     B,#DataHead             ; 发送数据贞头
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarPC2:   JNB     TI,DataToFarPC2         ;
                CLR     TI
                MOV     B,CallAddr              ; 发送被呼的主机地址
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarPC3:   JNB     TI,DataToFarPC3         ;
                CLR     TI
                MOV     B,#SelfAddr             ; 发送本机地址
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarPC4:   JNB     TI,DataToFarPC4         ;
                CLR     TI
                MOV     B,FuncCode              ; 发送功能码
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarPC5:   JNB     TI,DataToFarPC5         ;
                CLR     TI
                MOV     R1,#SendBuf
                MOV     R2,#SendNum-5
DataToFarPC6:   XCH     A,B
                MOVX    A,@R1
                XCH     A,B
                INC     R1
                MOV     SBUF,B                  ;
                ADD     A,B
DataToFarPC7:   JNB     TI,DataToFarPC7         ;
                CLR     TI
                DJNZ    R2,DataToFarPC6
                MOV     SBUF,A                  ;
DataToFarPC8:   JNB     TI,DataToFarPC8         ;
                CLR     TI
                SETB    ES
                LCALL   DL100MS
                RET
;
;   ******  将RecvBuf的数据转发到远程终端(PC)  ******
;
ZfSjDPC:        MOV     R0,#RecvBuf
                MOV     R1,#SendBuf
                MOV     R2,#32
ZfSjDPC1:       MOVX    A,@R0
                INC     R0
                MOVX    @R1,A
                INC     R1
                DJNZ    R2,ZfSjDPC1
                CLR     ES
                CLR     A
                MOV     B,#DataHead             ; 发送数据贞头
                MOV     SBUF,B                  ;
                ADD     A,B
ZfSjDPC2:       JNB     TI,ZfSjDPC2             ;
                CLR     TI
                MOV     B,#DataHead             ; 发送数据贞头
                MOV     SBUF,B                  ;
                ADD     A,B
ZfSjDPC3:       JNB     TI,ZfSjDPC3             ;
                CLR     TI
                MOV     B,#FarPcAdr             ; 远程控制PC地址              ; 发送被呼的主机地址
                MOV     SBUF,B                  ;
                ADD     A,B
ZfSjDPC4:       JNB     TI,ZfSjDPC4             ;
                CLR     TI
                MOV     R1,#SendBuf
                MOV     R2,#SendNum-3
ZfSjDPC5:       XCH     A,B
                MOVX    A,@R1
                XCH     A,B
                INC     R1
                MOV     SBUF,B                  ;
                ADD     A,B
ZfSjDPC6:       JNB     TI,ZfSjDPC6             ;
                CLR     TI
                DJNZ    R2,ZfSjDPC5
                MOV     SBUF,A                  ;
ZfSjDPC7:       JNB     TI,ZfSjDPC7             ;
                CLR     TI
                SETB    ES
                LCALL   DL100MS
                RET

ModemPortInit:  MOV     R1,#ShowBuf
                MOV     A,#41H                  ; Send "A"
                MOVX    @R1,A
                INC     R1
                MOV     A,#54H                  ; Send "T"
                MOVX    @R1,A
                INC     R1
                MOV     A,#26H                  ; Send "&"
                MOVX    @R1,A
                INC     R1
                MOV     A,#43H                  ; Send "C"
                MOVX    @R1,A
                INC     R1
                MOV     A,#30H
                MOVX    @R1,A
                INC     R1
                MOV     A,#26H                  ; Send "&"
                MOVX    @R1,A
                INC     R1
                MOV     A,#44H                  ; Send "D"
                MOVX    @R1,A
                INC     R1
                MOV     A,#30H                  ; Send "0" Modem 忽略 DTR
                MOVX    @R1,A
                INC     R1
                MOV     A,#26H                  ; Send "&"
                MOVX    @R1,A
                INC     R1
                MOV     A,#4BH                  ; Send "K"
                MOVX    @R1,A
                INC     R1
                MOV     A,#30H                 ; Send "0" 禁止流控
                MOVX    @R1,A
                INC     R1
                MOV     A,#26H                  ; Send "&"
                MOVX    @R1,A
                INC     R1
                MOV     A,#52H                  ; Send "R"
                MOVX    @R1,A
                INC     R1
                MOV     A,#31H                  ; Send "1" 当 Modem 在线时,CTS 一直有效 (NO) 忽略 RTS 信号
                MOVX    @R1,A
                INC     R1
                MOV     A,#26H                  ; Send "&"
                MOVX    @R1,A
                INC     R1
                MOV     A,#53H                  ; Send "S"
                MOVX    @R1,A
                INC     R1
                MOV     A,#30H                  ; Send "0" DSR 一直有效(NO) (默认值)
                MOVX    @R1,A
                INC     R1
                MOV     A,#26H                  ; Send "&"
                MOVX    @R1,A
                INC     R1
                MOV     A,#57H                  ; Send "W"
                MOVX    @R1,A
                INC     R1
                MOV     A,#0DH                  ; Send "CR" ENTER
                MOVX    @R1,A
                INC     R1
                MOV     A,#20                    ; SendNum = 7
                LCALL   ModemInit               ; 调制解调器初始化
                RET

ModemZdYd:      MOV     R1,#ShowBuf
                MOV     A,#41H                  ; Send "A"
                MOVX    @R1,A
                INC     R1
                MOV     A,#54H                  ; Send "T"
                MOVX    @R1,A
                INC     R1
                MOV     A,#53H                  ; Send "S"
                MOVX    @R1,A
                INC     R1
                MOV     A,#30H                  ; Send "0"
                MOVX    @R1,A
                INC     R1
                MOV     A,#3DH                  ; Send "="
                MOVX    @R1,A
                INC     R1
                MOV     A,#31H                  ; Send "1" ASCII CODE 振铃次数为“1”次
                MOVX    @R1,A
                INC     R1
                MOV     A,#0DH                  ; Send "CR" ENTER
                MOVX    @R1,A
                INC     R1
                MOV     A,#7                    ; SendNum = 7
                LCALL   ModemInit               ; 调制解调器初始化
                RET


ModemLkGj:      MOV     R1,#ShowBuf
                MOV     A,#41H                  ; Send "A"
                MOVX    @R1,A
                INC     R1
                MOV     A,#54H                  ; Send "T"
                MOVX    @R1,A
                INC     R1
                MOV     A,#48H                  ; Send "H"
                MOVX    @R1,A
                INC     R1
                MOV     A,#30H                  ; Send "0"
                MOVX    @R1,A
                INC     R1
                MOV     A,#0DH                  ; Send "CR" ENTER
                MOVX    @R1,A
                INC     R1
                MOV     A,#5                    ; SendNum = 7
                LCALL   ModemInit               ; 调制解调器初始化
                RET

ModemHfCjPz:    MOV     R1,#ShowBuf
                MOV     A,#41H                  ; Send "A"
                MOVX    @R1,A
                INC     R1
                MOV     A,#54H                  ; Send "T"
                MOVX    @R1,A
                INC     R1
                MOV     A,#26H                  ; Send "&"
                MOVX    @R1,A
                INC     R1
                MOV     A,#46H                  ; Send "F"
                MOVX    @R1,A
                INC     R1
                MOV     A,#26H                  ; Send "&"
                MOVX    @R1,A
                INC     R1
                MOV     A,#57H                  ; Send "W"
                MOVX    @R1,A
                INC     R1
                MOV     A,#0DH                  ; Send "CR" ENTER
                MOVX    @R1,A
                INC     R1
                MOV     A,#7                    ; SendNum = 7
                LCALL   ModemInit               ; 调制解调器初始化
                RET



ModemInit:      CLR     ES
                CLR     ComCtrl
                MOV     R1,#ShowBuf
                MOV     R2,A
ModemInit1:     MOVX    A,@R1
                INC     R1
                MOV     SBUF,A                  ;
ModemInit2:     JNB     TI,ModemInit2           ;
                CLR     TI
                DJNZ    R2,ModemInit1
                SETB    ComCtrl
                SETB    ES
                LCALL   DL100MS
                RET




                END




⌨️ 快捷键说明

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