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

📄 jrdmdyxtsz.asm

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

;
;   ******  通过系统密码,进入系统设置菜单  ******
;
InToSysSetup:
                MOV     InterFace,#24
                LCALL   LcdInit
                LCALL   ShowRectangle           ; 显示一个矩形框
                LCALL   ShowSysRuler            ; 设备管理员有权进入
                LCALL   ShowClearWord           ; 显示"按←键清除输入"
InToSysSetup1:  LCALL   ShowSysPass
                CLR     WorkPassF
                MOV     R0,#TempBuf
                MOV     R1,#ShowBuf
                MOV     KeyCount,#0
InToSysSetup2:  LCALL   ScanKey
                JNB     KeyF,InToSysSetup2
                CLR     KeyF
                MOV     A,KeyNumber             ;
                CJNE    A,#0AH,InToSysSetup3
                LCALL   MainInterFace1
                RET
InToSysSetup3:  CJNE    A,#0BH,InToSysSetup4
                LCALL   MainInterFace1
                RET
InToSysSetup4:  CJNE    A,#0DH,InToSysSetup5
                SJMP    InToSysSetup1
InToSysSetup5:  MOV     A,KeyNumber             ;
                CLR     C
                SUBB    A,#10
                JNC     InToSysSetup2
                INC     KeyCount
                MOV     A,KeyNumber             ;
                MOV     @R0,A
                INC     R0
                MOV     A,#TSK
                MOVX    @R1,A
                INC     R1
                MOV     A,#190                ; 显示 " * "
                MOVX    @R1,A
                INC     R1
                MOV     LcdShowX,#23
                MOV     LcdShowY,#112
                MOV     A,KeyCount
                MOV     LcdShowC,A
                LCALL   DdShowString2
                MOV     A,KeyCount
                CLR     C
                SUBB    A,#PassNum
                JC      InToSysSetup2

                MOV     BNUM,#PassNum
                MOV     BADR,#TempBuf+4
                MOV     DPTR,#SysPassAdr        ; 系统密码首地址
                LCALL   RD_BLK

                MOV     R0,#TempBuf
                MOV     R1,#TempBuf+4
                MOV     R2,#PassNum
InToSysSetup6:  MOV     A,@R0
                INC     R0
                MOV     B,@R1
                INC     R1
                CJNE    A,B,InToSysSetup8
                DJNZ    R2,InToSysSetup6
                SJMP    InToSysSetup9
InToSysSetup7:  LCALL   ShowSysPassErr                 ; 错误提示
                LCALL   SendFarZdMaCw                  ; 远程终端操作系统时返回输入密码错信息
                MOV     A,#3
                LCALL   SecDelay
                MOV     EditShowY,#224
                LCALL   ClearYiHang
                LJMP    InToSysSetup1
InToSysSetup8:  MOV     R0,#TempBuf                    ; 超级密码:9313
                MOV     A,@R0
                CJNE    A,#9,InToSysSetup7
                INC     R0
                MOV     A,@R0
                CJNE    A,#3,InToSysSetup7
                INC     R0
                MOV     A,@R0
                CJNE    A,#1,InToSysSetup7
                INC     R0
                MOV     A,@R0
                CJNE    A,#3,InToSysSetup7
InToSysSetup9:  LCALL   SendFarZdMaZq           ; 远程终端操作系统时返回输入密码正确信息
                SETB    WorkPassF
                LCALL   LCDInit
;       ******  最底划线  ******
                MOV     R3,#000                 ; 设置 X 坐标低 8 位初值
                MOV     R4,#80H                 ; 设置 X 坐标高 8 位初值
                MOV     R5,#40H                 ; 设置 X 坐标低 8 位末值
                MOV     R6,#81H                 ; 设置 X 坐标高 8 位末值
                MOV     R7,#210                 ; 设置 Y 坐标初值
                LCALL   DrawThwartwise
;       ******  最上划线  ******
                MOV     R3,#050                 ; 设置 X 坐标低 8 位初值
                MOV     R4,#80H                 ; 设置 X 坐标高 8 位初值
                MOV     R5,#010                 ; 设置 X 坐标低 8 位末值
                MOV     R6,#81H                 ; 设置 X 坐标高 8 位末值
                MOV     R7,#030                 ; 设置 Y 坐标初值
                LCALL   DrawThwartwise

                LCALL   Show110vTest            ; 110V可调电源测试
                LCALL   Show70Vout
                LCALL   Show110Vout
                LCALL   Show145Vout
                LCALL   Show600Vout
                LCALL   ShowExit
                MOV     KeyCount,#0
InToSysSetup10: LCALL   ScanKey
                JNB     KeyF,InToSysSetup10
                CLR     KeyF
                MOV     A,KeyNumber             ;
                CJNE    A,#0AH,InToSysSetup11
                LCALL   RelayClear              ;清掉所有继电器输出
                LCALL   MainInterFace1
                RET
InToSysSetup11: CJNE    A,#0BH,InToSysSetup12
                LCALL   MainInterFace1
                RET
InToSysSetup12: MOV     A,KeyNumber             ;
                CLR     C
                SUBB    A,#10
                JNC     InToSysSetup9
                INC     KeyCount
                MOV     A,KeyNumber             ;
                CJNE    A,#0,InToSysSetup13
;                LCALL   OneSelfAdrSet           ; 本机地址设置
                LJMP    InToSysSetup9
InToSysSetup13: CJNE    A,#1,InToSysSetup14
                MOV     DataH,#00H
                MOV     DataL,#00H               ; 输出70V
                LCALL   WriteFarData            ; 写 A/D D/A 打印板数据
                LJMP    InToSysSetup9


                LJMP    InToSysSetup9
InToSysSetup14: CJNE    A,#2,InToSysSetup15
                MOV     DataH,#02H
                MOV     DataL,#90H             ;输出110V
                LCALL   WriteFarData            ; 写 A/D D/A 打印板数据
                LJMP    InToSysSetup9

                LJMP    InToSysSetup9
InToSysSetup15: CJNE    A,#3,InToSysSetup16
                MOV     DataH,#003H
                MOV     DataL,#0d0H             ;输出135V
                LCALL   WriteFarData            ; 写 A/D D/A 打印板数据
                LJMP    InToSysSetup9

InToSysSetup16: CJNE    A,#4,InToSysSetup17
                MOV     RelayStatus1,#00000001B
                MOV     RelayStatus2,#00000000B
                MOV     RelayStatus3,#00000000B
                MOV     CallAddr,#01H
                MOV     FuncCode,#SendCpu1Func15; 控制调压器继电器吸合, J1
                LCALL   FarModuleJdqWk          ; 远程模块继电器位控
                LJMP    InToSysSetup9
InToSysSetup17: CJNE    A,#5,InToSysSetup18
                LCALL   RelayClear              ;清掉所有继电器输出
                LCALL   MainInterFace1
                RET
InToSysSetup18: LJMP    InToSysSetup10

;
;       ******  用户密码修改  ******
;
EditUserPass:   LCALL   LcdInit
                LCALL   ShowRectangle           ; 显示一个矩形框
EditUserPass1:  LCALL   ShowMdfUserPw           ; 显示“请修改用户密码:”

                MOV     BNUM,#PassNum
                MOV     BADR,#TempBuf
                MOV     DPTR,#UserPassAdr       ; 系统密码首地址
                LCALL   RD_BLK
                MOV     R0,#TempBuf
                MOV     R1,#ShowBuf

                MOV     A,#TSK                ;
                MOVX    @R1,A                ;
                INC     R1
                MOV     A,@R0
                MOVX    @R1,A
                INC     R1
                MOV     A,#TSK                ;
                MOVX    @R1,A                ;
                INC     R0
                INC     R1
                MOV     A,@R0
                MOVX    @R1,A
                INC     R1
                MOV     A,#TSK                ;
                MOVX    @R1,A                ;
                INC     R0
                INC     R1
                MOV     A,@R0
                MOVX    @R1,A
                INC     R1
                MOV     A,#TSK                ;
                MOVX    @R1,A                ;
                INC     R0
                INC     R1
                MOV     A,@R0
                MOVX    @R1,A

                MOV     LcdShowX,#23
                MOV     LcdShowY,#112
                MOV     LcdShowC,#4
                LCALL   DdShowString2


                MOV     R1,#ShowBuf
                MOV     KeyCount,#0
EditUserPass2:  LCALL   ScanKey
                JNB     KeyF,EditUserPass2
                CLR     KeyF
                MOV     A,KeyNumber             ;
                CJNE    A,#0AH,EditUserPass3
                LJMP    EditUserPass1
EditUserPass3:  CJNE    A,#0BH,EditUserPass4
                RET
EditUserPass4:  MOV     A,KeyNumber             ;
                CLR     C
                SUBB    A,#10
                JNC     EditUserPass2
                INC     KeyCount
                MOV     A,#TSK                ;
                MOVX    @R1,A                ;
                INC     R1
                MOV     A,KeyNumber             ;
                MOVX    @R1,A
                INC     R1
                MOV     A,KeyCount
                MOV     LcdShowX,#23
                MOV     LcdShowY,#112
                MOV     LcdShowC,A
                LCALL   DdShowString2
                MOV     A,KeyCount
                CLR     C
                SUBB    A,#4
                JC      EditUserPass2

                MOV     R0,#TempBuf
                MOV     R1,#ShowBuf
                INC     R1
                MOVX    A,@R1
                INC     R1
                INC     R1
                MOV     @R0,A
                INC     R0
                MOVX    A,@R1
                INC     R1
                INC     R1
                MOV     @R0,A
                INC     R0
                MOVX    A,@R1
                INC     R1
                INC     R1
                MOV     @R0,A
                INC     R0
                MOVX    A,@R1
                MOV     @R0,A

                MOV     BNUM,#PassNum
                MOV     BADR,#TempBuf
                MOV     DPTR,#UserPassAdr
                LCALL   WR_BLK
                LJMP    EditUserPass1

;
;       ******  系统密码修改  ******
;
EditSysPass:    LCALL   LcdInit
                LCALL   ShowRectangle           ; 显示一个矩形框
EditSysPass1:   LCALL   ShowMdfSysPw            ; 显示“请修改系统密码:”
                MOV     BNUM,#PassNum
                MOV     BADR,#TempBuf
                MOV     DPTR,#SysPassAdr        ; 系统密码首地址
                LCALL   RD_BLK
                MOV     R0,#TempBuf
                MOV     R1,#ShowBuf

                MOV     A,#TSK                  ;
                MOVX    @R1,A                   ;
                INC     R1
                MOV     A,@R0
                MOVX    @R1,A
                INC     R1
                MOV     A,#TSK                  ;
                MOVX    @R1,A                   ;
                INC     R0
                INC     R1
                MOV     A,@R0
                MOVX    @R1,A
                INC     R1
                MOV     A,#TSK                  ;
                MOVX    @R1,A                   ;
                INC     R0
                INC     R1
                MOV     A,@R0
                MOVX    @R1,A
                INC     R1
                MOV     A,#TSK                ;
                MOVX    @R1,A                ;

⌨️ 快捷键说明

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