📄 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 + -