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

📄 jrmaincpu.asm

📁 用增强型单片机51RD2做的控制器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
                NOP
                NOP
                DJNZ    R7,LPW
                SETB    SROM_DAT
                NOP
                NOP
                NOP
                NOP
                SETB    SROM_CLK
                MOV     R6,#100
Err:            MOV     R7,#100
Err1:           JB      SROM_DAT,Err2
                NOP
                CLR     SROM_CLK
                RET
Err2:           DJNZ    R7,Err1
                DJNZ    R6,Err
                CLR     SROM_CLK
                RET
READ:           MOV     R7,#08H
                NOP
                SETB    SROM_DAT
                NOP
                NOP
LPR:            SETB    SROM_CLK
                NOP
                MOV     C,SROM_DAT
                NOP
                CLR     SROM_CLK
                NOP
                RLC     A
                NOP
                DJNZ    R7,LPR
                RET

;
;       ******  远程模块地址设置 ******
;
FarModuleDzSz:  MOV     R1,#SendBuf

                MOV     A,#00H
                MOVX    @R1,A
                INC     R1

                MOV     A,#00H
                MOVX    @R1,A
                INC     R1

                MOV     A,#00H
                MOVX    @R1,A
                INC     R1

                MOV     CallAddr,#CurrentAdr    ; 通用广播地址
                MOV     FuncCode,SendCpu1Func01 ; 地址设置
                LCALL   DataToFarCpu            ; 发送一条记录到远程CPU
                RET
;
;       ******  远程模块时间设置 ******
;
FarModuleTime:  MOV     R1,#SendBuf
                MOV     A,Sec
                MOVX    @R1,A
                INC     R1

                MOV     A,Min
                MOVX    @R1,A
                INC     R1

                MOV     A,Hour
                MOVX    @R1,A
                INC     R1

                MOV     A,Day
                MOVX    @R1,A
                INC     R1

                MOV     A,Month
                MOVX    @R1,A
                INC     R1

                MOV     A,Week
                MOVX    @R1,A
                INC     R1

                MOV     A,Year
                MOVX    @R1,A
                INC     R1

                MOV     CallAddr,#CurrentAdr    ; 通用广播地址
                MOV     FuncCode,#SendCpu1Func02; 时间设置
                LCALL   DataToFarCpu            ; 发送一条记录到远程CPU
                RET

;
;       ******  远程模块继电器位控 ******
;
FarModuleJdqWk: MOV     R1,#SendBuf
                MOV     A,RelayStatus1
                MOVX    @R1,A
                INC     R1
                MOV     A,RelayStatus2
                MOVX    @R1,A
                INC     R1
                MOV     A,RelayStatus3
                MOVX    @R1,A
                INC     R1
                LCALL   DataToFarCpu            ; 发送一条记录到远程CPU
                RET

;
;       ******  System Init ******
;
SystemInit:
                MOV     LedStatus,#00000011B
                MOV     A,LedStatus
                LCALL   LedDrive

                SETB    TimeRst
                CLR     TimeClk
                MOV     AUXR,#00H               ; 使用内部扩展存储器
SystemInit1:    CLR     EA
                LCALL   Watchdog
                LCALL   DL500MS
                LCALL   DL500MS
                LCALL   UserPassInit            ; 用户密码初始化
                LCALL   DL100MS
                LCALL   SysPassInit             ; 系统密码初始化
                LCALL   DL100MS
                LCALL   BgJlPointInit           ; 报告记录数据区地址指针初始化

                LCALL   OscEnable               ; 时钟允许位操作
                LCALL   DL100MS
                LCALL   ReadMulClock            ; 读HT1380时钟日期
                LCALL   DL100MS
                LCALL   LcdInit                 ; 液晶显示初始化
                LCALL   DL100MS
                LCALL   Openlight
                LCALL   DL100MS


                MOV     TMOD,#21H
                MOV     TH0,#4CH
                MOV     TL0,#01H
                SETB    TR0
                MOV     TH1,#Baud
                MOV     TL1,#Baud
                SETB    TR1
                MOV     SCON,#50H
                MOV     PCON,#00H
                SETB    IT0
                SETB    EX0                     ; 容许外部中断
                SETB    IT1
                SETB    EX1
                SETB    ET0
                CLR     ET1
                SETB    ES
                SETB    EA

                SETB    LcdCs
                SETB    LcdRead
                SETB    LcdWrite
                SETB    DisplayF
                SETB    ComCtrl

                CLR     CommandBF               ; 近程键标志
                CLR     CommandAF               ; 近程速度CPU
                CLR     FarKeyF                 ; 远程键标志
                CLR     KeyF


                mov  flag,#02H                  ;清零设置接地电阻值1:0K完全接地,2:100K可调电阻,3:100K固定电阻
                clr  SaveFlag


                LCALL   VariableInit            ; 变量初始化


                LCALL   MainInterFace1

                LCALL   ClrReportBuf            ; 清运行报告缓冲区(32Byte)

                LCALL   ReadNearDat             ; 读 CPU2 数据

                LCALL   ClrLinkGR_buf           ;清零接地电阻缓冲区
                LCALL   ClrActiveFlagBuf        ;清零动作标志缓冲区
                LCALL   ClrVoltBuf
                LCALL   ClearTempBuf

                LCALL   ClearExtTempBuf


                MOV     RelayStatus1,#00000000B
                MOV     RelayStatus2,#00000000B
                MOV     RelayStatus3,#00000000B
;                MOV     RelayStatus1,#0FFH
;                MOV     RelayStatus2,#0FFH
;                MOV     RelayStatus3,#0FFH
                MOV     CallAddr,#01H
                MOV     FuncCode,#SendCpu1Func15; 继电器位控
                LCALL   FarModuleJdqWk          ; 远程模块继电器位控


                LCALL   DL100MS
                LCALL   FarShowData             ; 发送到远程显示板数据

                MOV     InterFace,#24           ; 无自动操作状态
                CLR     AutoRunF


                CLR     CommandBF               ; 近程键标志
                CLR     CommandAF               ; 近程速度CPU
                CLR     FarKeyF                 ; 远程键标志
                CLR     KeyF
                SETB    RelayIn


                MOV     CallAddr,#01H
                MOV     FuncCode,#SendCpu2Func01; 读开关量状态
                LCALL   SendToSpdCpu

                MOV     DataH,#02H
                MOV     DataL,#90H              ;输出110V
                LCALL   WriteFarData            ; 写 A/D D/A 打印板数据

              ; lcall   ChangeSpdStepMotor

                RET
;***********************************************
ChangeSpdStepMotor:
                MOV     R1,#SendBuf
                mov     R6,#0DCH;#0EDH
                MOV     A,R6
                MOVx     @R1,A
                INC     R1
                mov     R7,#00H;#0FFH
                MOV     A,R7
                MOVx     @R1,A
                MOV     CallAddr,#01H
                MOV     FuncCode,#SendCpu2Func05
                LCALL   SendToSpdCpu             ;调步进电机速度
                ret
;************************************************
ClrLinkGR_buf:  MOV     R6,#10                  ;将接地电阻清零
                MOV     R1, #LinkG_R_buf+0
CLR0:           MOV     A, #00H
                MOVX    @R1,A
                INC     R1
                DJNZ    R6,CLR0
                ret
;************************************************
ClrActiveFlagBuf:
                MOV     R6,#5                  ;将动作标志缓冲区清零
                MOV     R1, #ActiveFlagBuf+0
CLR1:           MOV     A, #00H
                MOVX    @R1,A
                INC     R1
                DJNZ    R6,CLR1
                ret
;************************************************
ClrVoltBuf:     MOV     R6,#12                    ;
                MOV     R1, #VoltBuf+0
CLR2:           MOV     A, #00H
                MOVX    @R1,A
                INC     R1
                DJNZ    R6,CLR2
                ret
;************************************************
ClearExtTempBuf:
                MOV     DPTR,#ExtTempBuf             ; 临时数据缓冲区(32Byte)
                MOV     R2,#60
                MOV     A,#0
ClearExtTempBuf1:
                MOVX    @DPTR,A
                INC     DPTR
                DJNZ    R2,ClearExtTempBuf1
                ret
;************************************************
ClearTempBuf:
                MOV     DPTR,#TempBuf             ; 临时数据缓冲区(32Byte)
                MOV     R2,#64
                MOV     A,#0
ClearTempBuf1:
                MOVX    @DPTR,A
                INC     DPTR
                DJNZ    R2,ClearTempBuf1
                ret
;************************************************
SaveDateTime:   MOV     DPTR,#ExtTempBuf+4          ;存取年月日和时分秒到TempBuf
                MOV     A,Year
                MOVX    @DPTR,A
                INC     DPTR
                MOV     A,Month
                MOVX    @DPTR,A
                INC     DPTR
                MOV     A,Day
                MOVX    @DPTR,A
                INC     DPTR
                MOV     A,Hour
                MOVX    @DPTR,A
                INC     DPTR
                MOV     A,Min
                MOVX    @DPTR,A
                INC     DPTR
                MOV     A,Sec
                MOVX    @DPTR,A
                ret



include        "JrDmDySjCl.ASM"                  ; 数据处理
include        "JrDmDyHx.ASM"                    ; 汉字显示
include        "JrDmDySf.ASM"                    ; 通用算法
include        "JrDmDyCx.ASM"                    ; 报告查询
include        "JrDmDyDy.ASM"                    ; 报告打印
include        "JrDmDyTx.ASM"                    ; 通讯程序
include        "JrDmDySz.ASM"                    ; 时钟程序
include        "JrDmDyQt.ASM"                    ; 其它程序
include        "JrDmDyCsh.ASM"                   ; 初 始 化
include        "JrDmDyLcd.ASM"                   ; 液显驱动
include        "JrDmDyXtSz.ASM"                  ; 系统设置
include        "JrDmDyFace.ASM"                  ; 显示界面
include        "JrDmDyHzk.ASM"                   ; 汉 字 库
include        "JrDmDyYwk.ASM"                   ; 英文动态库
include        "JrDmDyTsk.ASM"                   ; 特 殊 库
include        "JrDmDyXwk.ASM"                   ; 西文固定库
include        "JrDmDySm.ASM"                    ; 使用说明
include        "LinkGnd.ASM"
include        "TEST_RESLT.ASM"
include        "CURRENTTESTRESLT.ASM"
;
;       ******  Program end flag  ******
;
               END

⌨️ 快捷键说明

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