📄 define.asm
字号:
;********************************************************
; COMPANY : CHOMP *
; PROJECT NAME : *
; Author : carman *
; Original : *
; VERSION : V0.0 *
; START DATE : 2005.04.13 *
; COMPLISH DATE: 2005. *
; Modify : 2005. *
; BODY : SN8P2708 *
; COMPILER : ICE2k *
; CRYSTAL : 4MHz *
; Modify function: *
; *******************************************************
;//Set ICE emulation mode.Pay attention to it be reset after emulation.
;//ICE_MODE EQU 1
;// Please set ICE_MODE equ 0 and recompiler before write the code into IC body
ICE_MODE EQU 0
chip sn8p2715
//{{SONIX_CODE_OPTION
.Code_Option LVD LVD_M ; 2.0V Reset Enable LVD24 bit of PFLAG for 2.4V Low Voltage Indicator
.Code_Option RST_P0.3 P0.3
.Code_Option Watch_Dog Enable ; Normal mode: Enable Watchdog Green and Sleep mode: Stop Watchdog
.Code_Option High_Clk 4M_X'tal ; Crystal/Resonator: 2Mhz~10Mhz
.Code_Option Fcpu #2 ; Fcpu = Fosc/4
.Code_Option Security Enable
.Code_Option Noise_Filter Enable
//}}SONIX_CODE_OPTION
.nolist ; do not list the macro file
INCLUDESTD MACRO1.H
INCLUDESTD MACRO2.H
INCLUDESTD MACRO3.H
INCLUDESTD SN8P2X_ICE.H
;*******************************************
.list
;-----------------------------------------------
.DATA
;bank0
org 0h ;Bank 0 data section start from RAM address 0x000
AccBuf ds 1 ;Accumulater buffer
PflagBuf ds 1 ;PFLAG buffer
timer10ms ds 1
timer20ms ds 1
timer1s ds 1
timer1m ds 1
timer1h ds 1
timer2h ds 1
timerbuf ds 1 ;用于定时处理,00~99分钟
timerbuf1 ds 1
timerbuf2 ds 1
displaytimer ds 1 ;2ms
;-----
buzfrequent ds 1 ;蜂鸣器的频率设定
loadfrequent ds 1 ;蜂鸣器的载波频率设定
ledfrequent ds 1 ;指示灯的闪烁频率设定
frequentbuf1 ds 1 ;=buzfrequent
frequentbuf2 ds 1 ;=loadfrequent
frequentbuf3 ds 1 ;=ledfrequent
buzzercnt ds 1 ;蜂鸣器鸣叫次数
keyinbuf ds 1
keychkbuf ds 1
keycvtbuf ds 1
keyoldbuf ds 1
Keychat ds 1
aplcode ds 1
;----
ADCvolbufl ds 1
ADCvolbufh ds 1 ;火力控制值
ADCcurbufl ds 1
ADCcurbufh ds 1 ;电流控制值
ADCtempbufl ds 1
ADCtempbufh ds 1 ;温度控制值
ADCvaluel ds 1
ADCvalueh ds 1 ;A/D转换结果值
ADCtemp ds 1
ADCcnt ds 1
;-------
;计算公式3355*p=ADCvoltage(电压)*ADCcurrent(电流),最大功率值=3355*1900=0x614464
powervaluel ds 1
powervaluem ds 1
powervalueh ds 1 ;功率参数缓存
;----
pwmpulsebuf ds 1
pulsetimer ds 1
;----
stepbuf ds 1 ;档位控制
;----
seg1buf ds 1
seg2buf ds 1
seg3buf ds 1
seg4buf ds 1
combuf ds 1
;----
seg1temp ds 1
seg2temp ds 1
seg3temp ds 1
Flag1 ds 1
flag2 ds 1
flag3 ds 1
flag4 ds 1
flag5 ds 1
flag6 ds 1
flag7 ds 1
flag8 ds 1
;---------------------------------------------
temp0 ds 1
temp1 ds 1
temp2 ds 1
temp3 ds 1
temp4 ds 1
;-----
temp5 ds 1
temp6 ds 1
temp7 ds 1
;-----
var1 ds 1
var2 ds 1
var3 ds 1
var4 ds 1
;***************************************************
;*************** Define flag ***********************
t10msflag equ Flag1.0
t1sflag equ Flag1.1
t1mflag equ flag1.2
t2hflag equ Flag1.3
keystatflag equ Flag1.4
refurbishflag equ flag1.5 ;刷新数码管显示标志
overtempflag equ flag1.6 ;超温标志
stoprunflag equ flag1.7 ;停止工作标志
;----
volADCflag equ flag2.0 ;过压、欠压检测
curADCflag equ flag2.1 ;过流检测
IgbtADCflag equ flag2.2 ;IGBT过温检测
cookerADCflag equ flag2.3 ;锅底温度检测
cookerflag equ flag2.4 ;无锅、尺寸不合、小物件检测
operateflag equ flag2.5 ;开始工作标志
buzzerflag equ flag2.6 ;蜂鸣器响标志
fanrunflag equ flag2.7 ;风扇运转标志
;----
frieddishflag equ flag3.0 ;炒菜标志
chaffydishflag equ flag3.1 ;火锅标志
barbecueflag equ flag3.2 ;烧烤标志
cookingflag equ flag3.3 ;煮饭标志
soupingflag equ flag3.4 ;煲汤标志
warmmilkflag equ flag3.5 ;热奶标志
boilwaterflag equ flag3.6 ;煮水标志
keepwarmflag equ flag3.7 ;保温标志
;----
malfunctionflag equ flag4.0 ;故障标志
poweronflag equ flag4.1 ;初始通电标志
ADCstartflag equ flag4.2 ;A/D转换开始标志
ADCendflag equ flag4.3 ;A/D转换结束标志
changestaflag equ flag4.4 ;状态切换标志
settimeflag equ flag4.5 ;定时标志
timecomeflag equ flag4.6 ;定时到标志
Igbtstartupflag equ flag4.7 ;IGBT启动标志
;----
checktimeflag equ flag5.0
parameterflag equ flag5.1 ;获取参数标志
tempcomeflag equ flag5.2 ;温度点之间切换
t1hflag equ flag5.3
loadfrequentflag equ flag5.4 ;蜂鸣器的载波频率
startflag equ flag5.5 ;状态标志
ledfrequentflag equ flag5.6 ;指示灯的频率标志
checkcookerflag equ flag5.7 ;用于有锅无锅检测
;----
timekeyflag equ flag6.0 ;按下定时键,开始定时标志
keyokflag equ flag6.1
firststepflag equ flag6.2 ;1~4步骤切换
secondstepflag equ flag6.3
thirdstepflag equ flag6.4
fourthstepflag equ flag6.5
firstsettimeflag equ flag6.6 ;初次定时标志
oneminuteflag equ flag6.7
;----
tempkeyflag equ flag7.0 ;设定温度键
intermissionflag equ flag7.1 ;间歇加热控制
statechangeflag equ flag7.2
heatflag equ flag7.3
havecookerflag equ flag7.4 ;=1:锅符合,=0:锅不符合
pulsetimeflag equ flag7.5
checkingflag equ flag7.6
detecttimeflag equ flag7.7
;-----
nocookerflag equ flag8.0 ;无锅、尺寸不合、小物件故障标志
abnormalvoltfalg equ flag8.1 ;市电电压不正常标志
onecycleflag equ flag8.2 ;循环一个检测周期
cyclestartflag equ flag8.3 ;一个检测周期的开始
secondflag equ flag8.4
popvalueflag equ flag8.5
pushvalueflag equ flag8.6
stopheatflag equ flag8.7 ;间歇加热时不检测锅
;----
lineflag equ keycvtbuf.7 ;=0:line0 上按键,=1:line1 上按键
;----
com1flag equ combuf.4
com2flag equ combuf.5
com3flag equ combuf.6
com4flag equ combuf.7
;****************************************************
;*******************constant define******************
;-------
;火力参数
;---
ADCvoltvaluel equ 0e3h
ADCvoltvalueh equ 09h ;220V电压点
;-------
;功率参数
/*
ADCvalue1L equ 80h
ADCvalue1M equ 60h
ADCvalue1H equ 0bh ;200w
ADCvalue2L equ 0c0h
ADCvalue2M equ 10h
ADCvalue2H equ 11h ;300w
ADCvalue3L equ 40h
ADCvalue3M equ 32h
ADCvalue3H equ 33h ;900w
ADCvalue4L equ 80h
ADCvalue4M equ 0e2h
ADCvalue4H equ 38h ;1000w
ADCvalue5L equ 80h
ADCvalue5M equ 0a3h
ADCvalue5H equ 4fh ;1400w
ADCvalue6L equ 0c0h
ADCvalue6M equ 14h
ADCvalue6H equ 6ch ;1900w
*/
ADCvalue1L equ 0a0h
ADCvalue1M equ 38h
ADCvalue1H equ 0eh ;200w
ADCvalue2L equ 0e0h
ADCvalue2M equ 0e8h
ADCvalue2H equ 13h ;300w
ADCvalue3L equ 60h
ADCvalue3M equ 0ah
ADCvalue3H equ 36h ;900w
ADCvalue4L equ 0a0h
ADCvalue4M equ 0bah
ADCvalue4H equ 3bh ;1000w
ADCvalue5L equ 80h
ADCvalue5M equ 0a3h
ADCvalue5H equ 4fh ;1400w
ADCvalue6L equ 0a0h
ADCvalue6M equ 3ch
ADCvalue6H equ 69h ;1900w
;-----
;无锅时的电流参数
ADCnocookerl equ 0c2h
ADCnocookerh equ 01h ;0.55v
;// ADCnocookerl equ 8fh
;// ADCnocookerh equ 02h ;0.8v
;-------
;锅底温度参数
ADC40CvalueL equ 47h
ADC40CvalueH equ 01h
ADC50CvalueL equ 0dbh
ADC50CvalueH equ 01h
ADC60CvalueL equ 87h
ADC60CvalueH equ 02h
ADC70CvalueL equ 53h
ADC70CvalueH equ 03h
ADC80CvalueL equ 49h
ADC80CvalueH equ 04h
ADC90CvalueL equ 58h
ADC90CvalueH equ 05h
ADC100CvalueL equ 76h
ADC100CvalueH equ 06h
ADC104CvalueL equ 0e9h
ADC104CvalueH equ 06h
ADC107CvalueL equ 3bh
ADC107CvalueH equ 07h
;---
;IGBT温度参数
;// ADCIGBTvalueL equ 87h
;// ADCIGBTvalueH equ 02h ;IGBT过热温度点60℃
ADCIGBTvalueL equ 53h
ADCIGBTvalueH equ 03h ;IGBT过热温度点70℃
;----
uppervaluel equ 33h
uppervalueh equ 0bh ;过压值250v/3.5v
lowervaluel equ 00h
lowervalueh equ 08h ;欠压值180v/2.5v
;----
currentvaluel equ 93h
currentvalueh equ 0ch ;过流值10A(1000:1~350Ω)
;----
hotestvaluel equ 80h
hotestvalueh equ 0fh ;锅底温度过热值300℃
;----
openvaluel equ 10h
openvalueh equ 00h ;传感器开路值
shortvaluel equ 0eeh
shortvalueh equ 0fh ;传感器短路值
;----
cookerpwmvalue equ 10h
;---------------------
;segment dot
frieddishled equ seg3buf.0
chaffydishled equ seg3buf.1
barbecueled equ seg3buf.2
cookingled equ seg3buf.3
soupingled equ seg3buf.4
warmmilkled equ seg3buf.5
boilwaterled equ seg3buf.6
;----
keepwarmled equ seg4buf.0 ;120w
temp120Cled equ seg4buf.1 ;600w
temp160Cled equ seg4buf.2 ;1000w
temp200Cled equ seg4buf.3 ;1400w
temp270Cled equ seg4buf.4 ;1900w
;------------------------
;故障信息
Errorvalue0 equ 01000000b ;E0,电路故障
Errorvalue1 equ 01111001b ;E1,无锅具、材料不合、小物件
Errorvalue2 equ 00100100b ;E2,IGBT过热
Errorvalue3 equ 00110000b ;E3,过压故障
Errorvalue4 equ 00011001b ;E4,欠压故障
Errorvalue5 equ 00010010b ;E5,温度传感器开路
Errorvalue6 equ 00000010b ;E6,温度传感器短路
Errorvalue equ 00000110b
;*******************************************************
;**********************Port define**********************
;key input port row6~row0 is port2.6~port2.0
;key output port line3~lin0 is port1.6~port1.3
;-----
line0 equ p5.0
line1 equ p5.1
;-----
ptfan equ p5.2
ptpwm equ p5.3
ptbuzzer equ p5.4
ptcout equ p5.5
ptcom1 equ p4.4
ptcom2 equ p4.5
ptcom3 equ p4.6
ptcom4 equ p4.7
ptcom5 equ p5.0
ptcom6 equ p5.1
;**************************************************
;*****************LCD字符表*************************
;**************************************************
;*********Micro define as following****************
;-----
;bank select:
bank0 macro
b0bclr frbnks0
endm
bank1 macro
b0bset frbnks0
endm
wdtc macro
mov a,#0x5a
mov wdtr,a ; Clear the watchdog timer counter.
endm
notbit macro bit
b0bts0 bit
jmp $+3
b0bset bit
jmp $+2
b0bclr bit
endm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -