?? jrmaincpu.asm.bak
字號:
Watchdog: ret
;
; ****** 清通信接收緩沖區(32Byte) ******
;
ClrRecvBuf: MOV R1,#RecvBuf
MOV R2,#32
ClrRecvBuf1: MOV A,#00H
MOVX @R1,A
INC R1
DJNZ R2,ClrRecvBuf1
RET
;
; ****** 清運行報告緩沖區(32Byte) ******
;
ClrReportBuf: MOV R1,#ReportBuf
MOV R2,#32
ClrReportBuf1: MOV A,#00H
MOVX @R1,A
INC R1
DJNZ R2,ClrReportBuf1
RET
;
; ****** 返回遠程顯示板密碼正確信息 ******
;
SendFarXsbMaZq: CLR PSW.3 ; RX : PAGE 2
SETB PSW.4
MOV CallAddr,#FarShowAdr ; 遠程顯示板地址
MOV FuncCode,#SendCpu1Func32; 顯示板密碼正確確認信息
LCALL DataToFarCpu ; 發送一條記錄到遠程CPU
CLR PSW.3 ; RX : PAGE 0
CLR PSW.4
RET
;
; ****** 返回遠程顯示板密碼錯誤信息 ******
;
SendFarXsbMaCw: CLR PSW.3 ; RX : PAGE 2
SETB PSW.4
MOV CallAddr,#FarShowAdr ; 遠程顯示板地址
MOV FuncCode,#SendCpu1Func33; 顯示板密碼錯誤確認信息
LCALL DataToFarCpu ; 發送一條記錄到遠程CPU
CLR PSW.3 ; RX : PAGE 0
CLR PSW.4
RET
;
; ****** 寫多字節 SEEPROM ******
;
WR_BLK: PUSH PSW
SETB PSW.3 ; RX : PAGE 3
SETB PSW.4
CLR SROM_CLK
NOP
NOP
NOP
NOP
SETB SROM_DAT
NOP
NOP
NOP
NOP
SETB SROM_CLK
NOP
NOP
NOP
NOP
CLR SROM_DAT
NOP
NOP
NOP
NOP
CLR SROM_CLK ; StarT
MOV A,#WCT0
LCALL WRITE
MOV A,DPH ; SROM HIGHT BYTE
LCALL WRITE
MOV A,DPL ; SROM LOW BYTE
LCALL WRITE
MOV R1,BADR
MOV R2,BNUM
LWB: MOV A,@R1
LCALL WRITE
INC R1
DJNZ R2,LWB
NOP
CLR SROM_DAT
NOP
NOP
NOP
NOP
SETB SROM_CLK
NOP
NOP
NOP
NOP
SETB SROM_DAT ; STOP
LCALL DL10MS
POP PSW
RET
;
; ****** 讀多字節 SEEPROM ******
;
RD_BLK: PUSH PSW
SETB PSW.3 ; RX : PAGE 2
SETB PSW.4
CLR SROM_CLK
NOP
NOP
NOP
NOP
SETB SROM_DAT
NOP
NOP
NOP
NOP
SETB SROM_CLK
NOP
NOP
NOP
NOP
CLR SROM_DAT
NOP
NOP
NOP
NOP
CLR SROM_CLK ; StarT
NOP
MOV A,#WCT0
LCALL WRITE
MOV A,DPH ; SROM HIGHT BYTE
LCALL WRITE
MOV A,DPL ; SROM LOW BYTE
LCALL WRITE
SETB SROM_DAT
NOP
NOP
NOP
NOP
SETB SROM_CLK
NOP
NOP
NOP
NOP
CLR SROM_DAT
NOP
NOP
NOP
NOP
CLR SROM_CLK ; StarT AGAIN
MOV A,#RCT0
LCALL WRITE
MOV R1,BADR
MOV R2,BNUM
LRB: LCALL READ
MOV @R1,A
INC R1
DJNZ R2,LRB1
SETB SROM_DAT
NOP
NOP
NOP
NOP
SETB SROM_CLK
NOP
NOP
NOP
NOP
CLR SROM_CLK ; NO ACKNOWLEDGE
NOP
NOP
NOP
NOP
CLR SROM_DAT
NOP
NOP
NOP
NOP
SETB SROM_CLK
NOP
NOP
NOP
NOP
SETB SROM_DAT ; STOP
POP PSW
RET
LRB1: CLR SROM_DAT
NOP
NOP
NOP
NOP
SETB SROM_CLK
NOP
NOP
NOP
NOP
CLR SROM_CLK ; ACKNOWLEDGE
NOP
NOP
NOP
NOP
SJMP LRB
WRITE: MOV R7,#08H
LPW: RLC A
MOV SROM_DAT,C
SETB SROM_CLK
NOP
NOP
NOP
NOP
CLR SROM_CLK
NOP
NOP
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: 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 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
clr flag
LCALL VariableInit ; 變量初始化
LCALL MainInterFace1
LCALL ClrReportBuf ; 清運行報告緩沖區(32Byte)
LCALL ReadNearDat ; 讀 CPU2 數據
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
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"
;
; ****** Program end flag ******
;
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -