?? tj1025g.asm
字號:
;*************************************************************
;*************************************************************
; 天津 GPRS 通訊儀表程序
; Writed by 李紹鵬
; Date: 2006.10.22:8
;=============================================================
;-----------------------------------
;RAM:20H21H BIT:00H--0FH ORDER
; 2AH2BH 50H--5FH COMMITTE
; 2CH2DH 60H--6FH COMMITTE
; 2EH2FH 70H--7FH SYSTEM
;-----------------------------------
GPRS_XY BIT 63H
SBOF_XY BIT 64H
SBUD_XY BIT 65H
XT_XY BIT 66H
SBUD_G BIT 67H
SBOF_G BIT 68H
XT_G BIT 6AH
OR_OK BIT 6CH
TD_OK BIT 6DH
MA_OK BIT 6EH
OR_G BIT 6FH
;*************************************************************
;*************************************************************
;*************************************************************
ORG 0000H
LJMP MAIN
org 0003H
LJMP ADPR
org 0023H
LJMP RSPR
org 002BH
LJMP KDPR
;------------------------------
ORG 0050H
MAIN:CLR EA
MOV A,#00H
MOV B,#00H
MOV PSW,#00H
MOV SP,#80H
MOV DPTR,#0FFFFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV IP,#00H
MOV IE,#00H
MOV TMOD,#00H
MOV TCON,#00H
MOV TH0,#00H
MOV TL0,#00H
MOV TH1,#00H
MOV TL1,#00H
MOV T2CON,#00H
MOV TH2,#00H
MOV TL2,#00H
MOV SCON,#00H
LCALL WADOG
LCALL DSPK
JB P1.3,MX0
LCALL MS3
MX0:JB P1.3,MX1
LCALL MS3
MX1:JB P1.3,MN0
LCALL CLRP
MN0:LCALL WADOG
MOV SP,#80H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV IP,#00H
MOV IE,#00H
MOV TCON,#00H
SETB 0B8H
MOV TMOD,#25H
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV T2CON,#00H
MOV TH2,#00H
MOV TL2,#00H
MOV RCAP2H,#0F8H
MOV RCAP2L,#0CDH
SETB TR2
SETB IT0
;-----------------------------
; 檢查DS12887
;-----------------------------
MAA:MOV DPTR,#0001H
MOVX A,@DPTR
CJNE A,#0C0H,MA0
LJMP MA1
MA0:MOV A,#0C0H
LCALL WRDA
MA1:MOV DPTR,#0003H
MOVX A,@DPTR
CJNE A,#0C0H,MA2
LJMP MA3
MA2:MOV A,#0C0H
LCALL WRDA
MA3:MOV DPTR,#0005H
MOVX A,@DPTR
CJNE A,#0C0H,MA4
LJMP MA5
MA4:MOV A,#0C0H
LCALL WRDA
;------------------------------
MA5:MOV DPTR,#000AH
MOVX A,@DPTR
CJNE A,#20H,MA6
LJMP MA7
MA6:MOV A,#20H
LCALL WRDA
;------------------------------
MA7:MOV DPTR,#000BH
MOVX A,@DPTR
CJNE A,#12H,MA8
LJMP MN2
MA8:LCALL WADOG
MOV A,#12H
LCALL WRDA
MOVX A,@DPTR
CJNE A,#12H,MA8
;============================================
; 檢查儀表參數
;============================================
MN2: MOV DPTR,#0010H
MOV R1,#00H
MOV B,#31
MN3: MOVX A,@DPTR
ADD A,R1
XCH A,R1
INC DPTR
DJNZ B,MN3
MOVX A,@DPTR
CJNE A,01H,MN4
;-------------------------------
; 備份數據區
; 備份1:E810-E830
; 備份2:EF10-EF30
;-------------------------------
MOV DPTR,#0010H
MOV B,#32
YXA7:MOVX A,@DPTR
YGG1:MOV DPH,#0E8H
LCALL WRDA
MOV R2,A
MOVX A,@DPTR
CJNE A,02H,YGG1
YGG2:MOV DPH,#0EFH
LCALL WRDA
MOV R2,A
MOVX A,@DPTR
CJNE A,02H,YGG2
MOV DPH,#00H
INC DPL
DJNZ B,YXA7
LJMP MN5
;-----------------------------
; 檢查備份1正確性
;-----------------------------
MN4: MOV DPTR,#0E810H
MOV R1,#00H
MOV B,#31
YMN3: MOVX A,@DPTR
ADD A,R1
XCH A,R1
INC DPTR
DJNZ B,YMN3
MOVX A,@DPTR
CJNE A,01H,MN4B
MOV DPTR,#0E810H
MOV B,#32
YXF7:MOVX A,@DPTR
YGF1:MOV DPH,#00H
LCALL WRDA
MOV R2,A
MOVX A,@DPTR
CJNE A,02H,YGF1
YGF2:MOV DPH,#0EFH
LCALL WRDA
MOV R2,A
MOVX A,@DPTR
CJNE A,02H,YGF2
MOV DPH,#0E8H
INC DPL
DJNZ B,YXF7
LJMP MN5
;--------------------------
; 檢查備份2正確性
;--------------------------
MN4B: MOV DPTR,#0EF10H
MOV R1,#00H
MOV B,#31
YMB3: MOVX A,@DPTR
ADD A,R1
XCH A,R1
INC DPTR
DJNZ B,YMB3
MOVX A,@DPTR
CJNE A,01H,MN4C
MOV DPTR,#0EF10H
MOV B,#32
YBB7:MOVX A,@DPTR
YGB1:MOV DPH,#00H
LCALL WRDA
MOV R2,A
MOVX A,@DPTR
XCH A,R2
CJNE A,02H,YGB1
YGB2:MOV DPH,#8FH
LCALL WRDA
MOV R2,A
MOVX A,@DPTR
XCH A,R2
CJNE A,02H,YGB2
MOV DPH,#0EFH
INC DPL
DJNZ B,YBB7
LJMP MN5
;-----------------------------
; 重新裝載儀表參數
;-----------------------------
MN4C:LCALL SEFD
;-----------------------------
;============================================
; 檢查數據文件
;============================================
;-----------------------------
; 讀上電時間
;-----------------------------
MN5: MOV DPTR,#0000H
MOV B,#0AH
MOV R0,#70H
MN7: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ B,MN7
MOV A,70H
ADD A,72H
ADD A,74H
CJNE A,#0D5H,MN8
LJMP MN5
;========================================
MN8:LCALL SUMD ;計算上月 上日
;------------------------
LCALL MKT ;置RAM區30H-50H為80H
;------------------------
MOV R7,#00H
MB0:MOV R0,#30H
MOV R1,#00H
MB1:MOV DPTR,#8000H ;8000H
MOV A,R7
ADD A,DPH
XCH A,DPH
MOV A,#24 ;
MOV B,R1
MUL AB
MOV DPL,A
MOV A,B
ADD A,DPH
MOV DPH,A
MOVX A,@DPTR
CJNE A,#55H,MB3
INC DPTR
MOV R6,#55H
MOV R2,#22 ;23個數據相加22次
MB2:MOVX A,@DPTR
ADD A,R6
MOV R6,A
INC DPTR
DJNZ R2,MB2
MOVX A,@DPTR
CJNE A,06H,MB3
MOV @R0,07H
MB3:INC R0
INC R1
CJNE R1,#0CH,MB1 ;第一遍檢查
MOV A,R7
ADD A,#08H
MOV R7,A
CJNE R7,#10H,MB0 ;第二遍檢查 備份
;-------------------------------
MOV 1AH,#80H
MOV 1BH,#08H
;-------------------------------
MOV 7AH,#00H
MOV 7BH,#30H
MDK:MOV R0,7BH
MOV A,@R0
JNB ACC.7,MD01
MOV A,78H
LCALL BCH1
DEC A
MOV B,A
MOV A,7AH
CJNE A,B,MD00
LCALL COPE ;COPE 錯誤重裝載
MOV B,7AH
LCALL RECV ;RECV
LJMP MD02
MD00:MOV B,7AH
LCALL SEAA ;SEAA
LJMP MD02
MD01:PUSH ACC
MOV A,7AH
MOV B,A
POP ACC
LCALL COPD ;COPD
MOV B,7AH
LCALL RECV ;RECV
MD02:INC 7AH
INC 7BH
MOV A,7AH
CJNE A,#0CH,MDK
;===========================================
; 本月日統計數據上電檢查
;===========================================
LCALL MKT
MOV 1AH,#82H
MOV 1BH,#08H
LCALL MRSB
MOV DPTR,#006BH
MOVX A,@DPTR
MOV B,A
MOV A,78H
CJNE A,B,MG0
LCALL JCLD
LJMP MG3
MG0:MOV A,7DH
CJNE A,B,MG1
LCALL COPG
MOV 1AH,#82H
MOV 1BH,#08H
mov b,#1FH
LCALL SALD
LCALL COPE
MOV A,77H
LCALL BCH1
DEC A
MOV B,A
LCALL RECV
LJMP MG3
MG1:MOV 1AH,#82H
MOV 1BH,#08H
mov b,#1fh
LCALL SALD
LCALL COPE
MOV A,77H
LCALL BCH1
DEC A
MOV B,A
LCALL RECV
MOV 1AH,#85H
MOV 1BH,#08H
mov b,#1fh
LCALL SALD
LJMP BCC ;跳到主循環
;=====================================
; 上月日統計數據檢查
;=====================================
MG3:LCALL MKT
MOV 1AH,#85H
MOV 1BH,#08H
LCALL MRSB
LCALL JLLD
;-------------------------------------
; 斷電數據記錄
; 數據存儲區:E000H-E640H
; 數據備份區:E800H-EE40H
;-------------------------------------
OFJL: LCALL WADOG
MOV DPTR,#007FH
MOVX A,@DPTR
MOV B,A
MOV DPH,#0E0H
MOV A,#10H
MUL AB
MOV DPL,A
MOV A,B
ADD A,DPH
MOV DPH,A
MOV A,#55H
LCALL WRDA
INC DPTR
MOV B,#06H
MOV R6,#00H
MOV R7,#6AH
OFJ2:PUSH DPH
PUSH DPL
MOV DPH,R6
MOV DPL,R7
MOVX A,@DPTR
INC DPTR
MOV R6,DPH
MOV R7,DPL
POP DPL
POP DPH
LCALL WRDA
INC DPTR
DJNZ B,OFJ2
MOV A,79H
LCALL WRDA
INC DPTR
MOV A,78H
LCALL WRDA
INC DPTR
MOV A,77H
LCALL WRDA
INC DPTR
MOV A,74H
LCALL WRDA
INC DPTR
MOV A,72H
LCALL WRDA
INC DPTR
MOV A,70H
LCALL WRDA
INC DPTR
;----------------------
; 斷電次數+1
;----------------------
MOV DPTR,#007FH
MOVX A,@DPTR
INC A
MOV B,A
CLR C
SUBB A,#64H ;
JC OFJ3
MOV B,#00H
OFJ3:MOV A,B
LCALL WRDA
;-----------------------------------
; 當前小時數據區檢查
;-----------------------------------
MOV A,77H
LCALL BCH1
DEC A
MOV R1,A
MOV R0,#00H
MOV R2,#02H
MOV R3,#40H
LCALL MUL2
MOV A,74H
LCALL BCH1
MOV B,#24
MUL AB
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -