📄 wks.asm
字号:
mov Temp_CC,a
clr Num_B
mov a,All_Temp_H
sbc a,Num_B
snz c
jmp Calcu_Over
mov All_Temp_H,a
mov a,Temp_CC
mov All_Temp_L,a
inc Zero_L
jmp Cal_0
Calcu_Over:
clr No_Zero_Flag
clr c
rlc Zero_L
dec Zero_L
dec Zero_L
dec Zero_L
dec Zero_L
dec Zero_L
dec Zero_L
ret
Zero_Error:
set No_Zero_Flag
ret
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
Buz_Sub:
inc Buz_Ram
snz Buz_Ram.2
jmp Buz_Over
clr Buz_Ram
sz Buz_Measure
jmp set_buz
clr Buz
clr Buz_Flag
sz Buz_Num
jmp dec_buz_num
clr Buz
clr Have_key
jmp buz_over
To_opc:
mov a,250 ;停时间
jmp Buz_com
dec_buz_num:
dec Buz_Num
sz Buz_Num.0
jmp To_opc
mov a,100 ;响时间
Buz_com:
mov Buz_Measure,a
set_buz:
dec Buz_Measure
snz Buz_Num.0 ;偶数不叫 奇数叫
set Buz_Flag ;脉冲标志
buz_over:
RET
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
Zero_Sub:
;开机检测 逐渐加热
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
jmp Zero_Over
mov a,1
addm a,Minute_L
clr acc
adcm a,Minute_H
mov a,Minute_L
sub a,10h
mov a,27h
mov All_Temp_L,a
mov a,Minute_H
sbc a,All_Temp_L
snz c
jmp Zero_90
clr Minute_L
clr Minute_H ;关闭输出
;dec Zero_L
set Drive
mov a,Zero_L
sub a,12
sz c
jmp Zero_90
set Drive
set Star_Over
jmp Zero_Over
Zero_90:
sz Zero ;过零检测 由高到低触发
jmp Zero_Clr_0 ;
snz Zero_Flag ;过零标志
jmp Zero_Juge
clr Zero_Flag
set Drive ;关掉驱动
;过零到
mov a,Zero_L ;只触发1~2ms
mov Zero_Delay,a
jmp Zero_Over
Zero_Clr_0:
set Zero_Flag
jmp Com_Z
Zero_Juge:
clr Zero_Flag
Com_Z:
sz Zero_Delay
jmp BBP
;延时结束
sz Ms_2
jmp BBH
set Drive ;触发结束 关闭输出
jmp Zero_Over
BBH:
sdz Ms_2
jmp Zero_Over
set Drive
jmp Zero_Over
BBP:
sdz Zero_Delay
jmp Zero_Over
clr Drive
mov a,1
mov Ms_2,a ;触发1ms
jmp Zero_Over
Zero_Over:
;键盘检测
sz Key_S2
jmp Key_Set
sz Key_Flag
jmp Key_Ovef
clr Key_Num_L
clr Key_Num_H
set Have_key
set Key_Flag
mov a,40
mov Buz_Measure,a
clr Buz_Num
jmp Key_Over
Key_Set:
mov a,1
addm a,Key_Num_L
clr acc
adcm a,Key_Num_H
mov a,Key_Num_L
SUB a,120
mov a,0
mov All_Temp_L,a
mov a,Key_Num_H
sbc a,All_Temp_L
snz c
jmp Key_Over
clr Key_Flag
Key_Ovef:
clr Key_Num_L
clr Key_Num_H
key_Over:
snz Ts_Drive ;监测PIC驱动可控硅是否超过2ms 超过剪掉剩余
jmp Clr_Drive_Flag
inc Drive_Count
mov a,Drive_Count
sub a,3
snz c
jmp Drive_Over
clr Drive_Count
clr TR_Off ;超过2秒 关断输出
jmp Drive_Over
Clr_Drive_Flag:
clr Drive_Count
set TR_Off
Drive_Over:
ret
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
;5.268
Ad_Sub:
mov a,00011000b ;外部中断,定时器中断
orm a,intc
clr adcr.7
nop
nop
nop
nop
mov a,11001000b ;电流值
mov adcr,a
nop
nop
clr acsr
nop
nop
wait_Current:
clr adcr.7
sz adcr.6
jmp wait_Current
inc Current_Count
mov a,adrh
addm a,Current_L
clr acc
adcm a,Current_H
sz Current_Count
jmp To_Room_Test
;电流值设置
mov a,Current_H
sub a,250
sz c
jmp To_Error_Current
jmp To_Current_Com
To_Error_Current:
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
;电流出错处理
;mov a,100
;mov Buz_Measure,a
;mov a,100
;mov Buz_Num,a
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
To_Current_Com:
clr Current_H
clr Current_L
;///////////////////////////
To_Room_Test:
mov a,11011001b ;室温
mov adcr,a
nop
nop
clr acsr
nop
nop
wait_Room:
clr adcr.7
sz adcr.6
jmp wait_Room
inc Room_Count
mov a,adrh
addm a,Room_L
clr acc
adcm a,Room_H
sz Room_Count
jmp To_J_K
clr Temp_Sign
mov a,Room_H
sub a,5 ;<-20度
snz c
jmp To_000
mov a,Room_H
sub a,15
snz c
jmp Negative_PP
mov a,Room_H
sub a,187
snz c
jmp LLLP
mov a,Room_H
sub a,237 ;>158度
sz c
jmp To_000
mov a,187
mov Room_H,a
LLLP:
clr Error_s
clr Error_Flag
call Table_Temp
jmp To_J_K
Negative_PP:
set Temp_Sign ;温度为负值
jmp LLLP
To_000:
clr Room_H
clr Room_L
set Error_Flag
jmp Ad_Over
To_J_K:
mov a,11011010b ;传感器
mov adcr,a
nop
nop
clr acsr
nop
nop
wait_J_K:
clr adcr.7
sz adcr.6
jmp wait_J_K
mov a,adrl
mov J_Temp_L,a
mov a,adrh
mov J_Temp_H,a
clr c ;0000 0000 0000 xxxx
rrc J_Temp_H
rrc J_Temp_L
clr c
rrc J_Temp_H
rrc J_Temp_L
clr c
rrc J_Temp_H
rrc J_Temp_L
clr c
rrc J_Temp_H
rrc J_Temp_L
mov a,J_Temp_L
addm a,JK_Temp_L
mov a,J_Temp_H
adcm a,JK_Temp_H
;=========================================
clr acc
adcm a,JK_Temp_P
clr acc
adcm a,JK_Temp_K
inc J_K_Count
sz J_K_Count
jmp Ad_Over
clr c
rrc JK_Temp_K
rrc JK_Temp_P
rrc JK_Temp_H
rrc JK_Temp_L
clr c
rrc JK_Temp_K
rrc JK_Temp_P
rrc JK_Temp_H
rrc JK_Temp_L
clr c
rrc JK_Temp_K
rrc JK_Temp_P
rrc JK_Temp_H
rrc JK_Temp_L
clr c
rrc JK_Temp_K
rrc JK_Temp_P
rrc JK_Temp_H
rrc JK_Temp_L
mov a,0f0h
andm a,JK_Temp_L
;=========================================
mov a,JK_Temp_H
mov JK_Value_H,a
mov a,JK_Temp_L
mov JK_Value_L,a
clr JK_Temp_H
clr JK_Temp_L
clr JK_Temp_P
clr JK_Temp_K
Ad_Over:
mov a,11110111b ;外部中断,定时器中断
andm a,intc
ret
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
EXT_INT:
mov Copy_a,a
mov a,Status
mov Copy_S,a
mov a,Send_Save_L
mov Send_L,a
mov a,Send_Save_H
mov Send_H,a
set Ext_Flag
clr Flag_0
clr Num_Pul
DDM:
snz Clk_P ;_|
jmp Clr_F
sz Flag_0
jmp Set_F
set Flag_0
inc Num_Pul
mov a,Num_Pul
sub a,4
snz c
jmp DDM
jmp Send_Data
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
Clr_F:
clr Num_H
clr Flag_0
jmp DDm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -