⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 define.asm

📁 应用松翰母体写的一款电磁炉
💻 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
	timer200ms	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转换结果值
	ADCtempl	ds	1
	ADCtemph	ds	1
	ADCcnt		ds	1
	ADCmaxvaluel	ds	1	
	ADCmaxvalueh	ds	1	;A/D转换的最大值
	ADCminvaluel	ds	1
	ADCminvalueh	ds	1	;A/D转换的最小值
;-------
;计算公式3355*p=ADCvoltage(电压)*ADCcurrent(电流),最大功率值=3355*1900=0x614464
	powervaluel	ds	1	
	powervaluem	ds	1
	powervalueh	ds	1	;功率参数缓存
;----
	pwmpulsebuf	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
	flag9		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	;保温标志
;----
	secondflag	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:锅不符合
	checkingflag	equ	flag7.5
	detecttimeflag	equ	flag7.6
	highvoltflag	equ	flag7.7
;-----
	nocookerflag	equ	flag8.0	;无锅、尺寸不合、小物件故障标志
	abnormalvoltflag equ	flag8.1	;市电电压不正常标志
	malfunctionflag	equ	flag8.2	;其他故障标志
	onecycleflag	equ	flag8.3	;循环一个检测周期
	cyclestartflag	equ	flag8.4	;一个检测周期的开始
	pushvalueflag	equ	flag8.5
	stopheatflag	equ	flag8.6	;间歇加热时不检测锅
	lowvoltflag	equ	flag8.7
;----
	beyondflag	equ	flag9.0	;超范围设定标志
	heattimeflag	equ	flag9.1	;=1:调整PWM
	twinkleflag	equ	flag9.2
	noneedflag	equ	flag9.3
	sendvalueflag	equ	flag9.4
	startcompflag	equ	flag9.5
	abcookerflag	equ	flag9.6
;----
	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电压点
;---
	ADC50Wvaluel	equ	20h
	ADC50Wvaluem	equ	0d8h
	ADC50Wvalueh	equ	02h
;-------
;功率参数
/*
	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	0c0h
	ADCvalue6M	equ	14h	    
	ADCvalue6H    	equ	6ch	;1900w

/*	
	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	0ebh
	ADCnocookerh	equ	01h	;>=0.60v,认为有锅
	
	ADCnocooker1	equ	70h
	ADCnocooker2	equ	01h	;当检测到有锅后,只有电流小于此点电压时,才认为无锅
;-------                        
;锅底温度参数   
	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℃
	ADCIGBTvalueL	equ	49h
	ADCIGBTvalueH	equ     04h	;IGBT过热温度点80℃
;----
	uppervaluel	equ	33h
	uppervalueh	equ	0bh	;过压值250v/3.5v
	
	uppervalue1	equ	8fh
	uppervalue2	equ	0ah	;过压后,只有电压回落到此点时,才认为正常
	
	lowervaluel	equ	00h
	lowervalueh	equ	08h	;欠压值180v/2.5v
	
	lowervalue1	equ	0a3h
	lowervalue2	equ	08h	;欠压后,只有电压回落到此点时,才认为正常
;----
	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	35
	initpwmvalue	equ	15	
;---------------------
;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 + -