?? tj1025g.asm
字號:
CLR C
ADD A,R7
MOV R7,A
MOV A,B
ADDC A,R6
MOV R6,A
MOV DPTR,#9000H
CLR C
MOV A,R7
ADD A,DPL
MOV DPL,A
MOV A,R6
ADDC A,DPH
MOV DPH,A
MOVX A,@DPTR
CJNE A,#55H,HROR
INC DPTR
MOV R2,#55H
MOV B,#22
HROR1:MOVX A,@DPTR
ADD A,R2
XCH A,R2
INC DPTR
DJNZ B,HROR1
MOVX A,@DPTR
CJNE A,02H,HROR
LJMP BCC
HROR:MOV A,77H
MOV 4CH,A
MOV A,74H
MOV 4DH,A
LCALL DOHOUR
LJMP BCC ;跳到主循環
;===================================
MKT:MOV R0,#30H
MOV A,#80H
MKT1:MOV @R0,A
INC R0
CJNE R0,#50H,MKT1
RET
;===================================
MRSB:LCALL WADOG
MOV R7,#00H
MRB:MOV R0,#30H
MOV R1,#00H
MOV DPL,#00H
MRB1:MOV A,1AH
MOV DPH,A
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,MRB3
INC DPTR
MOV R6,#55H
MOV R2,#22
MRB2:MOVX A,@DPTR
ADD A,R6
MOV R6,A
INC DPTR
DJNZ R2,MRB2
MOVX A,@DPTR
CJNE A,06H,MRB3
MOV @R0,07H
MRB3:INC R0
INC R1
CJNE R1,#20H,MRB1
MOV A,R7
ADD A,#08H
MOV R7,A
CJNE R7,#10H,MRB
RET
;========================================
JCLD:MOV 1AH,#82H
MOV 1BH,#08H
MOV 7AH,#00H
MOV 7BH,#30H
MTDK:MOV R0,7BH
MOV A,@R0
JNB ACC.7,MTD1
MOV A,77H
LCALL BCH1
DEC A
MOV B,A
MOV A,7AH
CJNE A,B,MTD0
LCALL COPE
MOV B,7AH
LCALL RECV
LJMP MTD2
MTD0:MOV B,7AH
LCALL SEAA
LJMP MTD2
MTD1:PUSH ACC
MOV A,7AH
MOV B,A
POP ACC
LCALL COPD
MOV B,7AH
LCALL RECV
MTD2:INC 7AH
INC 7BH
MOV A,7AH
CJNE A,#20H,MTDK
RET
;=====================================
JLLD:MOV 1AH,#85H
MOV 1BH,#08H
MOV 7AH,#00H
MOV 7BH,#30H
MLD0:MOV R0,7BH
MOV A,@R0
JNB ACC.7,MLD1
MOV B,7AH
LCALL SEAA
LJMP MLD2
MLD1:PUSH ACC
MOV A,7AH
MOV B,A
POP ACC
LCALL COPD
MOV A,7AH
MOV B,A
LCALL RECV
MLD2:INC 7AH
INC 7BH
MOV A,7AH
CJNE A,#20H,MLD0
RET
;========================================
SALD:NOP
SAL1:PUSH B
LCALL SEAA
POP B
djnz b,sal1
RET
;========================================
BCC:MOV DPTR,#0F500H
PUSH DPH
PUSH DPL
MOV DPTR,#FDDB
MOV R6,DPH
MOV R7,DPL
MOV B,#30H
BCC1:CLR A
MOV DPH,R6
MOV DPL,R7
MOVC A,@A+DPTR
INC DPTR
MOV R6,DPH
MOV R7,DPL
POP DPL
POP DPH
lcall wrda
INC DPTR
PUSH DPH
PUSH DPL
DJNZ B,BCC1
POP DPL
POP DPH
;******************************************
; 主循環體
;******************************************
CHR:CLR A
MOV B,#70H
MOV R0,#10H
CHR1:MOV @R0,A
INC R0
DJNZ B,CHR1
;-------------------------
LCALL SEDB ;裝載儀表參數
;-------------------------
SETB P1.1
SETB P1.2
SETB P1.3
MOV 65H,#0FFH
SETB EX0
SETB EA
ST10: LCALL WADOG
JNB 7EH,ST10
CLR 7EH
ST11: LCALL WADOG
JNB 7EH,ST11
CLR 7EH
ST12: LCALL WADOG
JNB 7EH,ST12
LCALL CAUP
SETB ET2 ;打開顯示
LCALL SET2 ;URAT 9600 1.8.N.1
ST31: LCALL WADOG
JNB 7EH,ST32
LCALL CAUP
;------------------------
ST32: MOV A,7FH
CLR C
SUBB A,#04H
JNC ST33
LCALL DSPP ;顯示當前電壓和時間
LJMP ST37
ST33: MOV A,7FH
CLR C
SUBB A,#20H
JC ST36
MOV A,7FH
CLR C
SUBB A,#0A0H
JC ST35
LCALL DSOF ; 顯示斷電數據
LJMP ST37
ST35: LCALL SEKY ; 顯示統計數據
LJMP ST37
ST36: LCALL SETY
LJMP ST31
;----------------------------
ST37: JB XT_G,ST38
JB SBUD_G,ST39
JB OR_G, ST3A
LJMP ST31
;******************************************
; 心跳啟動(10。28 心跳由儀表發出)
;******************************************
ST38:LCALL WADOG
LCALL XTDA
MOV 0EH,#00H
MOV 0FH,#1CH
LCALL FSTJ
CLR XT_G
LJMP ST31
;******************************************
; 上報超上限超下限數據
;******************************************
ST39: LCALL WADOG
LCALL FSBJ
CLR SBUD_G
;--------------------------
; 過程處理(接收響應)
;--------------------------
LJMP ST31
;==========================================
ST3A:LCALL WADOG
LCALL GPRS_PROG
CLR OR_G
LJMP ST31
;******************************************
; GPRS 通訊程序
;******************************************
GPRS_PROG: LCALL WADOG
LJMP GSPR0 ;調試程序時使用,調試完畢刪除
;-----------------------------------
LCALL CKAD
JB OR_OK,GPR0 ;數據校驗和正確
LJMP GSPR9
GPR0:LCALL CKMA
JB MA_OK,GPR1 ;通訊密碼正確
LJMP GSPR9
GPR1:LCALL CKTD
JB TD_OK,GSPR0 ;時延正確
LJMP GSPR9
;-----------------------------------
GSPR0:LCALL JXGN ;解析應用層功能碼
JNB 01H,GSPR1
SETB XT_XY ;心跳響應(主站)
LJMP GSPR9
GSPR1:JNB 02H,GSPR2
LCALL CSSZ ;參數設置
LJMP GSPR9
GSPR2:JNB 03H,GSPR3
LCALL CSCX ;查詢參數
LJMP GSPR9
GSPR3:JNB 04H,GSPR4
LCALL QQLS ;請求歷史類統計數據
LJMP GSPR9
GSPR4:JNB 05H,GSPR5
LCALL QQSJ ;請求斷電數據
LJMP GSPR9
GSPR5:JNB 06H,GSPR6
SETB SBUD_XY ;超限響應(主站)
LJMP GSPR9
GSPR6:JNB 07H,GSPR7
SETB SBOF_XY ;斷電響應(主站)
LJMP GSPR9
GSPR7:JNB 12H,GSPR8
SETB GPRS_XY
LJMP GSPR9
GSPR8:JNB 13H,GSPR9
LCALL CXGPRS
LJMP GSPR9
GSPR9:CLR OR_G
EGSPR:RET
;==========================================
; 解析應用層功能碼
; 使用 RAM: 20H21H BIT:00H--0FH
; 22H23H 10H--1FH
; 儀表與主站通訊標志
; 功能碼 位地址
; 81H 心跳檢查 01H
; 82H 參數設置 02H
; 83H 查詢參數 03H
; 84H 請求歷史類數據 04H
; 85H 請求事件數據 05H
; 86H 主動上報超限數據 06H
; 87H 主動上報斷電數據 07H
;
; 數據存放:0F80CH
;==========================================
JXGN:LCALL WADOG
MOV 20H,#00H ;00H--07H
MOV 21H,#00H ;08H--0FH
MOV 22H,#00H ;10H--17H
MOV 23H,#00H ;18H--1FH
MOV DPTR,#0F800H
MOVX A,@DPTR
CJNE A,#78H,COD0
LJMP COD7
COD0:MOV DPTR,#0F80CH
MOVX A,@DPTR
CJNE A,#81H,COD1
SETB 01H
LJMP EXGN
COD1:CJNE A,#82H,COD2
SETB 02H
LJMP EXGN
COD2:CJNE A,#83H,COD3
SETB 03H
LJMP EXGN
COD3:CJNE A,#84H,COD4
SETB 04H
LJMP EXGN
COD4:CJNE A,#85H,COD5
SETB 05H
LJMP EXGN
COD5:CJNE A,#86H,COD6
SETB 06H
LJMP EXGN
COD6:CJNE A,#87H,COD60
SETB 07H
COD60:LJMP EXGN
;------------------------
COD7:MOV DPTR,#0F80CH
MOVX A,@DPTR
CJNE A,#81H,COD8
SETB 11H
LJMP EXGN
COD8:CJNE A,#82H,COD9
SETB 12H
LJMP EXGN
COD9:CJNE A,#83H,EXGN
SETB 13H
EXGN:RET
;==========================================
; 發送斷電類數據
;使用RAM 08H 斷電總次數
; 09H 發送次數
; 0AH
; 0BH0CH (數據標識單元標識+數據)總和長度
; 0DH 每個(數據標識單元標識+數據)長度
; 0EH0FH 發送數據長度
; 10H-15H 數據標識單元數據
;使用位地址:
;==========================================
QQSJ:MOV DPTR,#0F812H
MOVX A,@DPTR
MOV 0AH,A ;請求開始年
MOV DPTR,#0F813H
MOVX A,@DPTR
MOV 0BH,A ;請求開始月
MOV DPTR,#0F814H
MOVX A,@DPTR
MOV 0CH,A ;請求終止年
MOV DPTR,#0F815H
MOVX A,@DPTR
MOV 0DH,A ;請求終止月
;------------------------------
MOV 08H,#00H
MOV 09H,#00H
;------------------------------
SQDR: MOV DPTR,#0E000H
MOV A,09H
MOV B,#10H
MUL AB
CLR C
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
INC DPTR ;55 XXXXXX XXXXXX
MOV 10H,DPH
MOV 11H,DPL
MOVX A,@DPTR ; 年
MOV 0EH,A
INC DPTR
MOVX A,@DPTR ;月
MOV 0FH,A
;--------------------------------------
; 2005.4----2006.1
;--------------------------------------
CLR C
MOV A,0FH
SUBB A,0BH
MOV A,0EH
SUBB A,0AH
JC SQDD4 ;< 開始年月
CLR C
MOV A,0DH
SUBB A,0FH
MOV A,0CH
SUBB A,0EH
JC SQDD4 ;>結束年月
LJMP SQDD5
;-------------------------------
; 檢索 下一條
;-------------------------------
SQDD4: MOV A,09H
ADD A,#01H
MOV 09H,A
MOV B,A
MOV DPTR,#007FH
MOVX A,@DPTR
CJNE A,B,SQDD6
LJMP SQDS
SQDD6: LJMP SQDR
;------------------------------
; 裝配數據
;------------------------------
SQDD5: LCALL LOADSJ
MOV A,08H
ADD A,#01H
MOV 08H,A
LJMP SQDD4
;------------------------------
; 檢索結束
;------------------------------
SQDS: MOV DPTR,#0F900H
MOV A,#68H
LCALL WRDA
MOV A,08H
MOV B,#12
MUL AB
CLR C
ADD A,#18
MOV 11H,A
MOV A,B
ADDC A,#00H
MOV 10H,A
CLR C
MOV A,11H
RLC A
MOV 11H,A
MOV A,10H
RLC A
MOV 10H,A
CLR C
MOV A,11H
RLC A
MOV 11H,A
MOV A,10H
RLC A
MOV 10H,A
MOV DPTR,#0F901H
MOV A,10H
LCALL WRDA
INC DPTR
MOV A,11H
LCALL WRDA
INC DPTR
MOV A,10H
LCALL WRDA
INC DPTR
MOV A,11H
LCALL WRDA
;----------------------------
MOV DPTR,#0F905H
MOV A,#68H ;文件頭 68H
LCALL WRDA
;----------------------------
MOV DPTR,#0F906H
MOV A,#8FH ;控制域C
LCALL WRDA
;----------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -