📄 f24timer1.asm
字号:
;*******************************
;04.12.1 山东招标
;增加中断计时和切换箱开路设定报警灯取消
;JKn 用常闭触点
;*******************************
spk bit P1.4
JK1 BIT P1.3
JK2 BIT P1.2
JK3 BIT P1.1
JK4 BIT P1.0
DSPDATA BIT P3.6;36
DSPCLK BIT P3.7;37
DSPSTR BIT P3.5;;35
;00H-07H normal /08h-0fh seri_pc
;10h-17h disptmb/18-1fh noused
BIT_HF BIT 20H.0
BIT_JS BIT 20H.1
BIT_SPK BIT 20H.2
BIT_TIMECH BIT 20H.3
BIT_TDOWNSTAR BIT 20H.4
spk_ST BIT 20H.5
bit_end BIT 20H.6
bit_yuanbj bit 20h.7
BIT_CT2DA BIT 21H.0
BIT_CT2DB BIT 21H.1
BIT_CT2DC BIT 21H.2
;30H--3fH noused
;40H--5FH used for seri_pc
DISPT1 EQU 60H
DISPT2 EQU 61H
DISPT3 EQU 62H
DISPT4 EQU 63H
DISPT5 EQU 64H
SO_HEAD_PC EQU 65H
TIMEJS EQU 66H
TIME60 EQU 67H
DISPB1 EQU 68H
DISPB2 EQU 69H
DISPB3 EQU 6AH
DISPB4 EQU 6BH
DISPB5 EQU 6CH
TIMEH EQU 6DH
TIMEL EQU 6EH
TIMESPK EQU 6FH
keybuf equ 70h
delbuf0 equ 71h
delbuf1 equ 72h
;-------------------------
ORG 0000H
LJMP START
ORG 000BH
LJMP T50MS
ORG 001BH
RETI
ORG 0023H
LJMP SERI_PC
;-------------------------
ORG 0100H
START: MOV SP,#80H
MOV R0,#01H
CLR A
CLRAM1: MOV @R0,A
INC R0
CJNE R0,#7FH,CLRAM1
MOV R0,#90H
CLRAM2: CLR A
MOV @R0,A
INC R0
CJNE R0,#0FFH,CLRAM2
LCALL INITILY
SETB EA
;----------------
MAIN: LCALL SPEAKER
LCALL PC_COM
LCALL CHECK_BJ
LCALL CALCULATETM
LCALL HFLOCK
lcall allkey
SJMP MAIN
;***************************
;初始化控制状态字
;***************************
INITILY:MOV SO_HEAD_PC,#40H
SETB BIT_HF
CLR BIT_JS
CLR spk_ST
clr bit_end
clr bit_yuanbj
CLR BIT_TDOWNSTAR
CLR BIT_CT2DA
CLR BIT_CT2DB
CLR BIT_CT2DC
MOV P0,#0FFH
MOV P1,#0FBH
CLR spk;p1.5
CLR JK1; baojingjiance
CLR JK2; dianyuan
CLR DSPDATA;36
CLR DSPCLK;37
SETB DSPSTR;35
MOV DISPT3,#10
LCALL FATCH_DISPB
LCALL DISPTMB ;清显示
MOV SCON,#050H
MOV TMOD,#21H
MOV TH1,#0E8H ;1200
MOV TL1,#0E8H
MOV TH0,#42H ;50MS
MOV TL0,#0A0H;
SETB ES
SETB TR1
CLR ET1
SETB TR0
SETB ET0
RET
;*****************************
;timer0 intrupt
;*****************************
T50MS:PUSH ACC
PUSH PSW
MOV TH0,#42H ;50MS
MOV TL0,#0A0H
T_0:JNB BIT_JS,T_1
INC TIMEJS
MOV A,TIMEJS
CJNE A,#100,T01
T01:JC T_1
SETB BIT_HF;5S
CLR BIT_JS
T_1:INC TIME60
MOV A,TIME60
CJNE A,#19,T11
T11:JC T_2
MOV TIME60,#0
SETB BIT_TIMECH;1S
T_2:JNB spk_ST,T_3
INC TIMESPK
MOV A,TIMESPK
CJNE A,#200,T21
T21:JC T_3
CLR BIT_SPK
CLR spk_ST
T_3:NOP
POP PSW
POP ACC
RETI
;*****************************
;serial with pc
;*****************************
SERI_PC:PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
JNB RI,SBI1
CLR RI
mov a,sbuf
jb bit_end,pcint1
cjne a,#0feh,pcintt1
sjmp pcint6
pcintt1:cjne a,#0b0h,pcintt2
sjmp pcint6
pcintt2:cjne a,#0b1h,pcint4
pcint6:mov so_head_pc,#40h
setb bit_end
pcint1:MOV R0,SO_HEAD_PC
MOV @R0,A
mov a,so_head_pc
inc a
cjne a,#5ah,pcint2
pcint2:jc pcint3
clr bit_end
mov a,#40h
pcint3:mov so_head_pc,a
pcint4:sjmp sbi2
SBI1: JNB TI,SBI2
; CLR TI
SBI2: POP PSW
POP ACC
RETI
;------------------------
PC_COM:MOV A,SO_HEAD_PC;PC_COM
CJNE A,#43H,PC_COM1
PC_COM1:JNC PC_COM2
RET
PC_COM2:MOV A,40H
ANL A,#0F0H
XRL A,#0B0H
JNZ PC_COMA
;=============
PC_COMB:MOV A,#42H
ADD A,41H
MOV B,A
MOV A,SO_HEAD_PC
CJNE A,B,pc_comb1
pc_comb1:JNC pc_comb2
RET
pc_comb2:MOV A,40H ;AXH
ANL A,#0FH
MOV B,#3
MUL AB
MOV DPTR,#PCCOMB_L
JMP @A+DPTR
PCCOMB_L:LJMP PCCOMB0
LJMP PCCOMB1
;-------
PCCOMB0: MOV A,50H
JZ PCCOMB01
SETB BIT_CT2DA
SJMP PCCOMB011
PCCOMB01:CLR BIT_CT2DA
PCCOMB011:MOV A,51H
JZ PCCOMB02
SETB BIT_CT2DB
SJMP PCCOMB021
PCCOMB02:CLR BIT_CT2DB
PCCOMB021:MOV A,52H
JZ PCCOMB03
SETB BIT_CT2DC
SJMP PCCOMB031
PCCOMB03:CLR BIT_CT2DC
PCCOMB031:;clr bit_end
;MOV SO_HEAD_PC,#40H
;RET
;-------
PCCOMB1:CLR BIT_HF
SETB BIT_JS
MOV TIMEJS,#0
clr JK2;lamp off
clr bit_end
clr bit_yuanbj
MOV SO_HEAD_PC,#40H
RET
;=============
pc_coma:MOV A,#43H
ADD A,42H
MOV B,A
MOV A,SO_HEAD_PC
CJNE A,B,pc_coma1
pc_coma1:JNC pc_coma2
RET
pc_coma2: MOV A,40H ;FEH
INC A
INC A
JZ pc_coma3
MOV SO_HEAD_PC,#40H
clr bit_end
RET
pc_coma3:MOV A,41H ;AXH
ANL A,#0F0H
XRL A,#0A0H
JZ pc_coma4
MOV SO_HEAD_PC,#40H
clr bit_end
RET
pc_coma4:clr bit_end
MOV A,41H ;AXH
ANL A,#0FH
MOV B,#3
MUL AB
MOV DPTR,#PCCOMA_L
JMP @A+DPTR
PCCOMA_L:LJMP PCTIMERSTART
LJMP PCFATCHFLAG
LJMP PCUNLOCK
LJMP PCYUANORR
LJMP PCTIMERstop
;----------
PCTIMERSTART:SETB BIT_TDOWNSTAR
LCALL S1DEALWITHTIME
MOV A,43H;fen
SWAP A
ANL A,#0FH
MOV B,#10
MUL AB
MOV B,A
MOV A,43H;fen
ANL A,#0FH
ADD A,B
MOV TIMEH,A
MOV A,44H;miao
SWAP A
ANL A,#0FH
MOV B,#10
MUL AB
MOV B,A
MOV A,44H;miao
ANL A,#0FH
ADD A,B
MOV TIMEL,A
MOV A,TIMEL
MOV B,#10
DIV AB
MOV DISPT4,A
MOV DISPT5,B
MOV A,TIMEH
MOV B,#10
DIV AB
MOV DISPT1,A
MOV DISPT2,B
;MOV DISPT3,#10
LCALL FATCH_DISPB
LCALL DISPTMB
MOV TIME60,#0
CLR BIT_TIMECH
MOV SO_HEAD_PC,#40H
RET
;--------
PCFATCHFLAG:MOV A,43H
JZ PCFATCHFLAG0
MOV SO_HEAD_PC,#40H
RET
PCFATCHFLAG0:MOV A,P0
SWAP A
RL A
ANL A,#0E0H
MOV B,A
MOV SBUF,#0FEH
JNB TI,$
CLR TI
MOV SBUF,#0A1H
JNB TI,$
CLR TI
MOV SBUF,#2
JNB TI,$
CLR TI
MOV SBUF,#0H
JNB TI,$
CLR TI
MOV SBUF,B
JNB TI,$
CLR TI
MOV SO_HEAD_PC,#40H
RET
;--------
PCUNLOCK:MOV A,43H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -