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

📄 inductioncooker050512ver2.lst

📁 应用松翰母体写的一款电磁炉
💻 LST
📖 第 1 页 / 共 5 页
字号:
   269  00003A             ;-------                        
   270  00003A             ;参数预设值                     
   271  00003A             ;火力                           
   272  E 00000000         	Preset120W	equ	00h
   273  E 00000000         	Preset600W	equ     00h
   274  E 00000000         	Preset1000W	equ     00h
   275  E 00000000         	Preset1400W	equ     00h
   276  E 00000000         	Preset1900W	equ     00h
   277  00003A             ;----                           
   278  00003A             ;温度                           
   279  E 00000000         	Preset120C	equ     00h
   280  E 00000000         	Preset160C	equ     00h
   281  E 00000000         	Preset200C	equ     00h
   282  E 00000000         	Preset270C	equ     00h
   283  00003A             ;----
   284  E 00000033         	uppervaluel	equ	33h
   285  E 0000000B         	uppervalueh	equ	0bh	;过压值250v/3.5v
   286  00003A             	
   287  E 00000000         	lowervaluel	equ	00h
   288  E 00000008         	lowervalueh	equ	08h	;欠压值180v/2.5v
   289  00003A             ;----
   290  E 00000066         	currentvaluel	equ	66h
   291  E 0000000E         	currentvalueh	equ	0eh	;过流值10A(1000:1~450Ω)
   292  00003A             ;----
   293  E 00000000         	hotestvaluel	equ	00h
   294  E 00000000         	hotestvalueh	equ	00h	;锅底温度过热值300℃
   295  00003A             ;----
   296  E 00000010         	openvaluel	equ	10h
   297  E 00000000         	openvalueh	equ	00h	;传感器开路值
   298  00003A             	
   299  E 000000EE         	shortvaluel	equ	0eeh
   300  E 0000000F         	shortvalueh	equ	0fh	;传感器短路值
   301  00003A             ;---------------------
   302  00003A             ;segment dot
   303  E 00000024         	frieddishled	equ	seg3buf.0
   304  E 00010024         	chaffydishled	equ	seg3buf.1
   305  E 00020024         	barbecueled	equ	seg3buf.2
   306  E 00030024         	cookingled	equ	seg3buf.3
   307  E 00040024         	soupingled	equ	seg3buf.4
   308  E 00050024         	warmmilkled	equ	seg3buf.5
   309  E 00060024         	boilwaterled	equ	seg3buf.6
   310  00003A             ;----
   311  E 00000025         	keepwarmled	equ	seg4buf.0 ;120w
   312  E 00010025         	temp120Cled	equ	seg4buf.1 ;600w
   313  E 00020025         	temp160Cled	equ	seg4buf.2 ;1000w
   314  E 00030025         	temp200Cled	equ	seg4buf.3 ;1400w
   315  E 00040025         	temp270Cled	equ	seg4buf.4 ;1900w
   316  00003A             ;------------------------
   317  00003A             ;故障信息
   318  E 00000040         	Errorvalue0	equ	01000000b	;E0,电路故障
   319  E 00000079         	Errorvalue1	equ	01111001b	;E1,无锅具、材料不合、小物件
   320  E 00000024         	Errorvalue2	equ	00100100b	;E2,IGBT过热
   321  E 00000030         	Errorvalue3	equ	00110000b	;E3,过压故障 
   322  E 00000019         	Errorvalue4	equ	00011001b	;E4,欠压故障
   323  E 00000012         	Errorvalue5	equ	00010010b	;E5,温度传感器开路
   324  E 00000002         	Errorvalue6	equ	00000010b	;E6,温度传感器短路
   325  00003A             	
   326  E 00000006         	Errorvalue	equ	00000110b	
   327  00003A             ;*******************************************************	
   328  00003A             ;**********************Port define**********************
   329  00003A             ;key input port row6~row0 is port2.6~port2.0
   330  00003A             ;key output port line3~lin0 is port1.6~port1.3
   331  00003A             ;-----
   332  E 000000D5         	line0		equ	p5.0
   333  E 000100D5         	line1		equ	p5.1
   334  00003A             ;-----
   335  E 000200D5         	ptfan		equ	p5.2
   336  E 000300D5         	ptpwm		equ	p5.3
   337  E 000400D5         	ptbuzzer	equ	p5.4
   338  E 000500D5         	ptcout		equ	p5.5
   339  00003A             	
   340  E 000400D4         	ptcom1		equ	p4.4
   341  E 000500D4         	ptcom2		equ	p4.5
   342  E 000600D4         	ptcom3		equ	p4.6
   343  E 000700D4         	ptcom4		equ	p4.7
   344  E 000000D5         	ptcom5		equ	p5.0
   345  E 000100D5         	ptcom6		equ	p5.1
   346  00003A             ;**************************************************
   347  00003A             ;*****************LCD字符表*************************
   348  00003A             ;**************************************************
   349  00003A             
   350  00003A             
   351  00003A             ;*********Micro define as following****************
   352  00003A             ;-----
   353  00003A             ;bank select:
   354  00003A             	bank0	macro
   355  00003A             		b0bclr	frbnks0
   356  00003A             		endm
   357  00003A             	bank1	macro
   358  00003A             		b0bset	frbnks0
   359  00003A             		endm
   360  00003A             	wdtc	macro
   361  00003A             		mov a,#0x5a
   362  00003A             		mov wdtr,a ; Clear the watchdog timer counter.
   363  00003A             		endm
   364  00003A             	notbit	macro bit
   365  00003A             		b0bts0 bit
   366  00003A             		jmp $+3
   367  00003A             		b0bset bit
   368  00003A             		jmp $+2
   369  00003A             		b0bclr bit
   370  00003A             		endm
   371  00003A             	
   372  00003A             		
   373  00003A             		
   374  00003A             		
   375  00003A             	include	main.asm
   376  00003A             ;-----------------------------------------------
   377  00003A             ;******************Program code segment*********
   378  00003A             ;-----------------------------------------------
   379  000000             .CODE
   380  000000             
   381  000000             	ORG	000h				;Code section start
   382  000000   8010      	jmp	Start				;Reset vector
   383  000001             						;Address 4 to 7 are reserved
   384  000008             	ORG	008h
   385  000008   8081      	jmp	InterruptSub			;Interrupt vector
   386  000009             
   387  000010             	ORG	010h
   388  000010             ;**************************************************
   389  000010             ;***************************************************
   390  000010             Start:
   391  000010   0000      	nop
   392  000011   0000      	nop
   393  000012   C078      	call	Pdelay		;//Power on delay
   394  000013             ;-----	
   395  000013   7F86      	b0bts1	fnt0
   396  000014   8018      	jmp	wdtresetsub	;//watch dog reset way,no need initialize
   397  000015             ;-----	
   398  000015             TurnOnInitial:
   399  000015   C04D      	call	PortInitial	
   400  000016   C036      	call	RAMInitial
   401  000017   C05A      	call	SysInitial
   402  000018             ;-----
   403  000018             wdtresetsub:
   404  000018             	
   405  000018             ;**********************************************
   406  000018             MainLoop:
   407  000018             ;//User need write the main routine Program.
   408  000018   0000      	nop
   409  000019             	@RST_WDT		;//User can use Macro instrution  REST_WATCHDOG
   410  000019   2D5A       		   MOV  A, #0x5A
   411  00001A   2FCC      		   B0MOV  WDTR, A		   
   412  00001B   C0C9      	call	mnintgnd	;//interface between interrupt and main
   413  00001C   C0ED      	call	mnkey		;//Interface between machine and human
   414  00001D   C447      	call	mndisplay	;//显示控制
   415  00001E   C470      	call	mntwinkle	;//闪烁控制
   416  00001F   C15C      	call	mnapp		;//按键、功能控制
   417  000020   C383      	call	poweronsub	;//上电控制
   418  000021   C4B0      	call	mngetdata	;//显示数据控制
   419  000022   C402      	call	mncontroll	;//单片机工作控制
   420  000023   C3CE      	call	mcustate	;//单片机的工作状态判定
   421  000024   C4EB      	call	mndetect	;//各种参数检测
   422  000025   C029      	call	mnchecktime	;//两小时无键操作控制
   423  000026   C5A7      	call	cookercheck	;//锅具检测
   424  000027   C3AC      	call	mnintermission	;//功率在600W以下采用间歇加热控制
   425  000028   8018      	jmp	MainLoop
   426  000029             ;*****************************************************
   427  000029             ;*****************************************************
   428  000029             ;*****************************************************
   429  000029             mnchecktime:
   430  000029   7727      	b0bts0	stoprunflag
   431  00002A   8035      	jmp	mnchecktime90
   432  00002B             ;----
   433  00002B   1E29      	mov	a,flag3
   434  00002C   2A67      	and	a,#01100111b
   435  00002D   7086      	b0bts0	fz		;在煮米饭、煲汤功能下无效
   436  00002E   8035      	jmp	mnchecktime90
   437  00002F   7B27      	b0bts1	t2hflag
   438  000030   8035      	jmp	mnchecktime90
   439  000031             ;----
   440  000031   4F27      	bset	stoprunflag	;两小时无操作,自动关机
   441  000032   4E28      	bset	buzzerflag
   442  000033             	mov_	buzzercnt,#10	;叫5声
   443  000033   2D0A      	mov	a, #10
   444  000034   1F0F      	mov	buzzercnt, a
   445  000035             ;-----
   446  000035             mnchecktime90:
   447  000035   0E00      	ret
   448  000036             	include	initialize.asm
   449  000036             ;**********************************************
   450  000036             ;Name	:RAMInitial
   451  000036             ;Function:clr bank0~bank1
   452  000036             ;Input  :
   453  000036             ;Output	:
   454  000036             ;Register Used:
   455  000036             ;***********************************************
   456  000036             RAMInitial:
   457  000036   2B84      	clr	y
   458  000037   2D7F      	mov	a,#7fh
   459  000038   2F83      	b0mov	z,a
   460  000039             Clrbank0:
   461  000039   2BE7      	clr	@YZ			;Clear @YZ content
   462  00003A   2683      	decms	Z  			;z = z - 1 , skip next if z=0
   463  00003B   8039      	jmp	Clrbank0
   464  00003C   2BE7      	clr 	@YZ			;Clear address 0x00
   465  00003D             ;-----
   466  00003D             ;preset some constant
   467  00003D             
   468  00003D             	mov_	timer10ms,#20		;10ms
   469  00003D   2D14      	mov	a, #20
   470  00003E   1F02      	mov	timer10ms, a
   471  00003F             	mov_	timer1s,#100		;1s
   472  00003F   2D64      	mov	a, #100
   473  000040   1F03      	mov	timer1s, a
   474  000041             	mov_	timer1m,#60		;1m
   475  000041   2D3C      	mov	a, #60
   476  000042   1F04      	mov	timer1m, a
   477  000043             	mov_	timer1h,#60		;1h
   478  000043   2D3C      	mov	a, #60
   479  000044   1F05      	mov	timer1h, a
   480  000045             	mov_	combuf,#11111111b	;set all com high level
   481  000045   2DFF      	mov	a, #11111111b
   482  000046   1F26      	mov	combuf, a
   483  000047             	mov_	pwmpulsebuf,#10		;set initialize pwm pusle=10/32
   484  000047   2D0A      	mov	a, #10
   485  000048   1F1F      	mov	pwmpulsebuf, a
   486  000049   2D32      	mov	a,#50			;set led frequent=0.5s
   487  00004A   1F0E      	mov	frequentbuf3,a
   488  00004B   1F0B      	mov	ledfrequent,a
   489  00004C   0E00      	ret
   490  00004D             ;**********************************************
   491  00004D             ;Name	:PortInitial
   492  00004D             ;Function:
   493  00004D             ;Input  :
   494  00004D             ;Output	:
   495  00004D             ;Register Used:
   496  00004D             ;***********************************************
   497  00004D             PortInitial:
   498  00004D             
   499  00004D   2DFF      	mov	a,#0ffh	
   500  00004E   1FC2      	mov	p2m,a		;set p2 is output port
   501  00004F   1FD2      	mov	p2,a		;set all p2 pin high level
   502  000050             
   503  000050   2DF0      	mov	a,#11110000b	;set p4.7~p4.4 is output,others is input
   504  000051   1FC4      	mov	p4m,a		
   505  000052   2DF0      	mov	a,#11110000b
   506  000053   1FD4      	mov	p4,a
   507  000054   2BE4      	clr	p4ur
   508  000055             	
   509  000055   2DFF      	mov	a,#11111111b
   510  000056   1FC5      	mov	p5m,a		;set p5 is output except p5.1
   511  000057   2DCB      	mov	a,#11001011b
   512  000058   1FD5      	mov	p5,a
   513  000059             
   514  000059   0E00      	ret
   515  00005A             
   516  00005A             ;**********************************************
   517  00005A             ;Name	:SysInitial
   518  00005A             ;Function:
   519  00005A             ;Input  :
   520  00005A             ;Output	:
   521  00005A             ;Register Used:
   522  00005A             ;***********************************************
   523  00005A             SysInitial:
   524  00005A             ;-----
   525  00005A   2BD8      	clr	t0m			;ftc1=fcpu
   526  00005B             /*
   527  00005B             	bclr	ftc0ien			;dis t0 int
   528  00005B             	bclr	ftc0enb			;stop t0 count
   529  00005B             	mov	A,#00100100B		;//f0=fcpu/64
   530  00005B             	b0mov	Tc0M,A
   531  00005B             	mov	A,#100			;//10ms constant  for  f0=1mips/64
   532  00005B             	b0mov	Tc0C,A
   533  00005B             	b0mov	Tc0r,a
   534  00005B             	b0bset	FTc0ENB			; Enable TIMER0
   535  00005B             	bset	FTc0IEN			; Enable T0 interrupt
   536  00005B             	bclr	ftc0irq			; CLEAR TIMER0 INTERRUPT FLAG

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -