;V1.4修改:童锁键检测时候由5S改成3S。
;****************************************
; 电陶炉
;****************************************
;----------------------------------------
;O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~
;----------------------------------------
;****************************************
IAR EQU 00H
TMR0 EQU 01H
PCL EQU 02H
FLAGS EQU 03H
C EQU 0
DC EQU 1
Z EQU 2
MP EQU 04H
P0 EQU 05H
P1 EQU 06H
P2 EQU 07H
;08H NOT USED
P0CL EQU 09H
P0CH EQU 0AH
P1CL EQU 0BH
P1CH EQU 0CH
P2C EQU 0DH
;0EH,0FH NOT USED
SYS_GEN EQU 10H
INT_EN EQU 11H
INT_FLAG EQU 12H
INT_EXT EQU 13H
ADDATA EQU 14H
ADCON EQU 15H
CONV EQU 0
EOC EQU 3
TMR1 EQU 16H
TMR1C EQU 17H
T2CNT EQU 18H
T2CON EQU 19H
T2DATA EQU 1AH
;1BH NOT USED
PWM8DATA EQU 1CH
PWM8CON EQU 1DH
PWM10CON EQU 1EH
PWM10DATA EQU 1FH
COMPCON EQU 20H
BUZCON EQU 21H
TABLE_SPH EQU 22H
TABLE_SPL EQU 23H
TABLE_DATAH EQU 24H
ADDATAL EQU 1BH
KEY_C1 EQU 2CH
KEY_C EQU 2DH
KEY_DATAL EQU 2EH
KEY_DATAH EQU 2FH
;****************************************
;P0口
;P1口
STB EQU P1,0
AC EQU P1,1
EN EQU P1,2
FAN EQU P1,3
BELL EQU P1,3
;P2口
DIO EQU P2,0
CLK EQU P2,1
;****************************************
;----------------------------------------
;O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~O(∩_∩)O~
;----------------------------------------
;****************************************
GPR0 EQU ?
GPR1 EQU ?
TCOUNT EQU ?
RBEEP EQU ?
RBEEPL EQU ?
RBEEPH EQU ?
ACF EQU ?
ACOLD EQU 0
AC_EN EQU 1
ACSET EQU ?
ACNT EQU ?
SEC EQU ?
MIN EQU ?
HOUR EQU ?
SECL EQU ?
SEC5S EQU ?
AC_SEC EQU ?
P_SEC EQU ?
DELAY EQU ?
COUNT EQU ?
POWER EQU ?
TEMP EQU ?
BCD_REG EQU ?
FEN1_COUNT EQU ?
FEN3_COUNT EQU ?
DISPLAY1 EQU ?
DISPLAY2 EQU ?
DISPLAY3 EQU ?
DISPLAY4 EQU ?
DISPLAY5 EQU ?
FANT EQU ?
FANT1 EQU ?
B_SEC EQU ?
DICOUNT EQU ?
ADCOUNT EQU ?
ADCOUNT1 EQU ?
DATAL EQU ?
DATAH EQU ?
TMPR_VAC EQU ?
TMPR_PAN EQU ?
TMPR_TR EQU ?
TR_COUNT EQU ?
TR_COUNT1 EQU ?
PAN_COUNT EQU ?
PAN_COUNT1 EQU ?
PAN_COUNT2 EQU ?
VOL_COUNT EQU ?
BCOUNT EQU ?
SEC2S EQU ?
ADAT0L EQU ?
ADAT0H EQU ?
ADCOUNT3 EQU ?
TEMP1 EQU ?
KCOUNT EQU ? ;按键扫描
KDATA EQU ?
POWER1 EQU ?
KEYF EQU ?
KEY_EN EQU 1
KOLD EQU ?
KCNTL EQU ?
KCNTLL EQU ?
KOLD1 EQU ?
KOLD2 EQU ?
KOLD3 EQU ?
KOLD4 EQU ?
KOLD5 EQU ?
FCOUNT0 EQU ?
FCOUNT EQU ?
FCOUNT1 EQU ?
ERRF EQU ?
WORK EQU ?
ONOFF EQU 0
ERR EQU 1
FAN1 EQU 2
FON EQU 3
TIMER EQU 4
TONG EQU 5
FLAG EQU ?
SS EQU 0
S05 EQU 1 ;0.5S
TIME EQU 2
DJ EQU 3
T_CHANGE EQU 4
FEN3 EQU 5
DYE EQU 6 ;电压错误
SS1 EQU 7
FLAG1 EQU ?
;0蜂鸣器
FIRST EQU 1 ;上电全亮
GW EQU 2 ;高温灯
KS EQU 3 ;到达降功率开始计时
HZ60 EQU 4 ;为1表示60HZ
SD EQU 5 ;上电测试频率
GL EQU 7 ;开可控硅处理
;EGWCOUNT1 EQU ?
;EGWCOUNT2 EQU ?
EDYCOUNT1 EQU ?
ENFLAG EQU ?
ENFLAG1 EQU ?
ENFLAG2 EQU ?
PCOUNT EQU ?
BBCOUNT EQU ?
WEN_D EQU ?
POWER_TEMP EQU ?
COUNT10MS EQU ?
POWER_J EQU ?
GAOT EQU 2BH
;****************************************
ORG 00H
JP START
;****************************************
ORG 01H
NOP
INTE_IN:
LD GPR0,A ;中断现场保护
LD A,FLAGS
LD GPR1,A
SZB INT_FLAG,2 ;定时2中断,125US进一次
JP INT_TMR2
CLR INT_FLAG
;----------------------------------------
INT_TMR2: ;定时2中断,125US进一次
CLRB INT_FLAG,2 ;清中断标志位
CLRWDT
INCR TCOUNT ;主程序时间计数
;----------------------------------------
;(~ o ~)Y(~ o ~)Y(~ o ~)Y(~ o ~)Y
;----------------------------------------
ZZ_10MS:
INCR COUNT10MS
LDIA .80
SUBA COUNT10MS
SNZB FLAGS,C
JP FAC_TESE
CLR COUNT10MS
INCR SECL
INCR AC_SEC
INCR B_SEC
FAC_TESE:
SNZB ACF,ACOLD
JP FAC_LOW_TO_HIGH
FAC_HIGH_TO_LOW:
SZB AC
JP AC_BACK
SZB AC
JP AC_BACK
SZB AC
JP AC_BACK
CLRB ACF,ACOLD
JP AC_COM
FAC_LOW_TO_HIGH:
SNZB AC
JP AC_BACK
SNZB AC
JP AC_BACK
SNZB AC
JP AC_BACK
SETB ACF,ACOLD
JP AC_COM
AC_COM:
SETB ACF,AC_EN
CLR ACNT
INCR PCOUNT
LDIA .20
SUBA PCOUNT
SNZB FLAGS,C
JP AC_BACK
CLR PCOUNT
AC_BACK:
;----------------------------------------
;(~ o ~)Y(~ o ~)Y(~ o ~)Y(~ o ~)Y
;----------------------------------------
BPBP:
SNZB FLAG1,0
JP BPBP_BACK
SNZB RBEEP,0
JP BPBP_OFF
LDIA 08H
XORR P1
SZDECR RBEEPL
JP BPBP_BACK
SZDECR RBEEPH
JP BPBP_BACK
LDIA 02H
LD RBEEPH,A
CLRB RBEEP,0
BPBP_OFF:
SNZB WORK,FAN1
CLRB BELL
BPBP_BACK:
LDIA 01H
XORR FLAG1
;----------------------------------------
SET_WORK:
SZB WORK,ERR
JP WORK_OFF
SNZB WORK,ONOFF
JP WORK_OFF
SZB FLAG,DJ
JP WORK_OFF
LDIA B'01111110'
ANDA ERRF
SNZB FLAGS,Z
JP WORK_OFF
SNZB ACF,AC_EN
JP WORK_OFF1
;CALL SET_POWER
SNZB FLAG1,GL ;控制当前过零是否开可控硅
JP SET_WORK_KK_COM1
SET_WORK_KK_COM:
CLRB EN
SET_WORK_KK_COM1:
INCR DELAY
LDIA D'20'
SUBA DELAY
SNZB FLAGS,C
JP WORK_BACK
SET_WORK_COM:
;*****************************************
CLR ACNT
CLRB ACF,AC_EN
CLR DELAY
WORK_OFF:
CLRB FLAG1,GL
WORK_OFF1:
SETB EN
WORK_BACK:
SZB RBEEP,0
JP INT_BACK
SZB WORK,ONOFF
JP ON_FAN
SZB WORK,FAN1
JP ON_FAN
CLRB FAN
JP INT_BACK
ON_FAN:
SETB FAN
INT_BACK:
;***********************************************
REC_BACK:
LD A,GPR0 ;中断返回
CLRB FLAGS,0 ;只用到C位跟Z位
SZB GPR1,0
SETB FLAGS,0
CLRB FLAGS,2
SZB GPR1,2
SETB FLAGS,2
RETI
;****************************************
;----------------------------------------
;~~~~(>_<)~~~~ ~~~~(>_<)~~~~ ~~~~(>_<)~~~
;----------------------------------------
;****************************************
START:
NOP
CLRWDT
LDIA 00H
OPTION ;上电清WDT(必要)
;-------------初始化I/O------------------
LDIA B'00000100'
LD P1,A
CLR P0
CLR P2
LDIA B'11111111'
LD P0CH,A
LDIA B'00111111'
LD P0CL,A
LDIA B'10010010'
LD P1CH,A
LDIA B'10100010'
LD P1CL,A
LDIA B'00010010'
LD P2C,A
LDIA B'00000100'
LD P1,A
CLR P0
CLR P2
SD_DELAY:
CLRWDT
NOP
SZDECR RBEEPL ;上电延时
JP SD_DELAY
SZDECR RBEEPH
JP SD_DELAY
;--------------清寄存器------------------
CLR_RAM: ;清掉所有RAM
LDIA 0FH
LD MP,A
CLR_LOOP:
INCR MP
CLR IAR
LDIA 07FH
SUBA MP
SNZB FLAGS,0
JP CLR_LOOP
;-------------初始化RAM------------------
INIT_RAM:
LDIA 03H
LD SYS_GEN,A ;中断,AD总使能
LDIA 02H
LD KEY_C1,A
LDIA 2BH
LD KEY_C,A
NOP
SETB KEY_C,7
LDIA D'250' ;8下125US
LD T2DATA,A ;TMR2设置成250US
LDIA 30H
LD T2CON,A
SETB T2CON,0
LDIA 04H
LD INT_EN,A ;定时2中断使能
SETB RBEEP,0
LDIA 02H
LD RBEEPH,A
LDIA D'250'
LD RBEEPL,A
SETB FLAG1,FIRST ;上电全亮
SETB FLAG1,SD
LDIA .60;D'100' ;长按键后每次时间
LD KCNTL,A
LDIA D'10'
LD KCNTLL,A
- 1
- 2
- 3
前往页