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

📄 inductioncooker050413ver1.lst

📁 应用松翰母体写的一款电磁炉
💻 LST
📖 第 1 页 / 共 5 页
字号:
   274  000031             ;-----
   275  000031             ;bank select:
   276  000031             	bank0	macro
   277  000031             		b0bclr	frbnks0
   278  000031             		endm
   279  000031             	bank1	macro
   280  000031             		b0bset	frbnks0
   281  000031             		endm
   282  000031             	wdtc	macro
   283  000031             		mov a,#0x5a
   284  000031             		mov wdtr,a ; Clear the watchdog timer counter.
   285  000031             		endm
   286  000031             	notbit	macro bit
   287  000031             		b0bts0 bit
   288  000031             		jmp $+3
   289  000031             		b0bset bit
   290  000031             		jmp $+2
   291  000031             		b0bclr bit
   292  000031             		endm
   293  000031             	
   294  000031             		
   295  000031             		
   296  000031             		
   297  000031             	include	main.asm
   298  000031             ;-----------------------------------------------
   299  000031             ;******************Program code segment*********
   300  000031             ;-----------------------------------------------
   301  000000             .CODE
   302  000000             
   303  000000             	ORG	000h				;Code section start
   304  000000   8010      	jmp	Start				;Reset vector
   305  000001             						;Address 4 to 7 are reserved
   306  000008             	ORG	008h
   307  000008   8063      	jmp	InterruptSub			;Interrupt vector
   308  000009             
   309  000010             	ORG	010h
   310  000010             ;**************************************************
   311  000010             ;***************************************************
   312  000010             Start:
   313  000010   0000      	nop
   314  000011   0000      	nop
   315  000012   C05A      	call	Pdelay		;//Power on delay
   316  000013             ;-----	
   317  000013   7F86      	b0bts1	fnt0
   318  000014   8018      	jmp	wdtresetsub	;//watch dog reset way,no need initialize
   319  000015             ;-----	
   320  000015             TurnOnInitial:
   321  000015   C035      	call	PortInitial	
   322  000016   C023      	call	RAMInitial
   323  000017   C042      	call	SysInitial
   324  000018             ;-----
   325  000018             wdtresetsub:
   326  000018             
   327  000018             ;**********************************************
   328  000018             MainLoop:
   329  000018             ;//User need write the main routine Program.
   330  000018   0000      	nop
   331  000019             	@RST_WDT		;//User can use Macro instrution  REST_WATCHDOG
   332  000019   2D5A       		   MOV  A, #0x5A
   333  00001A   2FCC      		   B0MOV  WDTR, A		   
   334  00001B   C022      	call	mnchecktime
   335  00001C   C086      	call	mnintgnd	;//interface between interrupt and main
   336  00001D             mainloop00:
   337  00001D   C1F6      	call	mndisplay
   338  00001E   C21C      	call	mntwinkle
   339  00001F   C0A0      	call	mnkey		;//Interface between machine and human
   340  000020   C100      	call	mnapp
   341  000021             	
   342  000021   8018      	jmp	MainLoop
   343  000022             ;*****************************************************
   344  000022             ;*****************************************************
   345  000022             ;*****************************************************
   346  000022             mnchecktime:
   347  000022             
   348  000022             mnchecktime90:
   349  000022   0E00      	ret
   350  000023             	include	initialize.asm
   351  000023             ;**********************************************
   352  000023             ;Name	:RAMInitial
   353  000023             ;Function:clr bank0~bank1
   354  000023             ;Input  :
   355  000023             ;Output	:
   356  000023             ;Register Used:
   357  000023             ;***********************************************
   358  000023             RAMInitial:
   359  000023   2B84      	clr	y
   360  000024   2D7F      	mov	a,#7fh
   361  000025   2F83      	b0mov	z,a
   362  000026             Clrbank0:
   363  000026   2BE7      	clr	@YZ				;Clear @YZ content
   364  000027   2683      	decms	Z  				;z = z - 1 , skip next if z=0
   365  000028   8026      	jmp	Clrbank0
   366  000029   2BE7      	clr 	@YZ				;Clear address 0x00
   367  00002A             ;-----
   368  00002A             ;preset some constant
   369  00002A             
   370  00002A             	mov_	timer1s,#100		;1s
   371  00002A   2D64      	mov	a, #100
   372  00002B   1F02      	mov	timer1s, a
   373  00002C             	mov_	timer1m,#60		;1m
   374  00002C   2D3C      	mov	a, #60
   375  00002D   1F03      	mov	timer1m, a
   376  00002E             	mov_	timer2h,#120		;2h
   377  00002E   2D78      	mov	a, #120
   378  00002F   1F04      	mov	timer2h, a
   379  000030             	mov_	combuf,#11111111b	;set all com high level
   380  000030   2DFF      	mov	a, #11111111b
   381  000031   1F1F      	mov	combuf, a
   382  000032             	mov_	pwmpulsebuf,#10		;set initialize pwm pusle=10/32
   383  000032   2D0A      	mov	a, #10
   384  000033   1F18      	mov	pwmpulsebuf, a
   385  000034             
   386  000034   0E00      	ret
   387  000035             ;**********************************************
   388  000035             ;Name	:PortInitial
   389  000035             ;Function:
   390  000035             ;Input  :
   391  000035             ;Output	:
   392  000035             ;Register Used:
   393  000035             ;***********************************************
   394  000035             PortInitial:
   395  000035             
   396  000035   2DFF      	mov	a,#0ffh	
   397  000036   1FC2      	mov	p2m,a		;set p2 is output port
   398  000037   1FD2      	mov	p2,a		;set all p2 pin high level
   399  000038             
   400  000038   2DF0      	mov	a,#11110000b	;set p4.7~p4.4 is output,others is input
   401  000039   1FC4      	mov	p4m,a		
   402  00003A   2DF0      	mov	a,#11110000b
   403  00003B   1FD4      	mov	p4,a
   404  00003C   2BE4      	clr	p4ur
   405  00003D             	
   406  00003D   2DFF      	mov	a,#11111111b
   407  00003E   1FC5      	mov	p5m,a		;set p5 is output except p5.1
   408  00003F   2DCB      	mov	a,#11001011b
   409  000040   1FD5      	mov	p5,a
   410  000041             
   411  000041   0E00      	ret
   412  000042             
   413  000042             ;**********************************************
   414  000042             ;Name	:SysInitial
   415  000042             ;Function:
   416  000042             ;Input  :
   417  000042             ;Output	:
   418  000042             ;Register Used:
   419  000042             ;***********************************************
   420  000042             SysInitial:
   421  000042             
   422  000042   45C9      	bclr	ftc0ien			;dis t0 int
   423  000043   47DA      	bclr	ftc0enb			;stop t0 count
   424  000044   2D24      	mov	A,#00100100B		;//f0=fcpu/64
   425  000045   2FDA      	b0mov	Tc0M,A
   426  000046   2D64      	mov	A,#100			;//10ms constant  for  f0=1mips/64
   427  000047   2FDB      	b0mov	Tc0C,A
   428  000048   6FDA      	b0bset	FTc0ENB			; Enable TIMER0
   429  000049   4DC9      	bset	FTc0IEN			; Enable T0 interrupt
   430  00004A   45C8      	bclr	ftc0irq			; CLEAR TIMER0 INTERRUPT FLAG
   431  00004B             ;----
   432  00004B             ;初始化pwm
   433  00004B   46C9      	bclr	ftc1ien			;dis t1 int
   434  00004C   2BD8      	clr	t0m			;ftc1=fcpu
   435  00004D   2BDD      	clr	tc1c
   436  00004E   2D65      	mov	a,#01100101b		
   437  00004F   1FDC      	mov	tc1m,a			;set pwm=32 duty fpwm=62.5k
   438  000050   41DC      	bclr	ftc1out
   439  000051   40DC      	bclr	fpwm1out
   440  000052   47DC      	bclr	ftc1enb			;stop t1 count
   441  000053             ;----
   442  000053   2BB1      	clr	ADM
   443  000054   6FB1      	b0bset	FADENB			;enable adc
   444  000055             	mov_	ADR,#01010000b		;select 12 bit ADC,Fcpu/2=128us
   445  000055   2D50      	mov	a, #01010000b
   446  000056   1FB3      	mov	ADR, a
   447  000057             ;----
   448  000057   4923      	bset	poweronflag		;通电标志	
   449  000058   6FDF      	b0bset	FGIE			;//enable Interrupt gain
   450  000059   0E00      	ret
   451  00005A             
   452  00005A             ;**********************************************
   453  00005A             ;Name	:Pdelay
   454  00005A             ;Function:
   455  00005A             ;Input  :
   456  00005A             ;Output	:
   457  00005A             ;Register Used:
   458  00005A             ;***********************************************
   459  00005A             Pdelay:
   460  00005A   2DFF      	mov	a,#0ffh
   461  00005B   1F2D      	mov	var1,a
   462  00005C             loop10:
   463  00005C   2DFF      	mov	a,#0ffh
   464  00005D   1F2E      	mov	var2,a
   465  00005E             loop11:
   466  00005E   262E      	decms	var2
   467  00005F   805E      	jmp	loop11			;power on delay
   468  000060   262D      	decms	var1
   469  000061   805C      	jmp	loop10
   470  000062   0E00      	ret
   471  000063             	include	intserver.asm
   472  000063             ;************************************************
   473  000063             ;Name	:InterruptSub
   474  000063             ;Function:
   475  000063             ;Input  :
   476  000063             ;Output	:
   477  000063             ;Register Used:
   478  000063             ;*************************************************
   479  000063             InterruptSub:
   480  000063   2C00      	XCH	A,AccBuf
   481  000064   2C86      	XCH	A,PFLAG
   482  000065   2F01      	B0MOV	PflagBuf,A
   483  000066             	
   484  000066   75C8      	b0bts0	FTc0IRQ		;//Analyse the Interrupt resourc
   485  000067   8070      	jmp	Tc0INTR
   486  000068             	
   487  000068   70C8      	b0bts0	FP00IRQ		;//P00 interrupt
   488  000069   8082      	jmp	P00INTR
   489  00006A             	
   490  00006A   71C8      	b0bts0	FP01IRQ		;//P01 interrupt
   491  00006B   8084      	jmp	P01INTR
   492  00006C             
   493  00006C             Interrup90:
   494  00006C             
   495  00006C   2C01      	XCH	A,PflagBuf
   496  00006D   2F86      	B0MOV	PFLAG,A
   497  00006E   2C00      	XCH	A,AccBuf	;//For release the Acc And Pflag
   498  00006F             	
   499  00006F   0F00      	RETI
   500  000070             
   501  000070             ;--------------------------------------------------------
   502  000070             Tc0INTR:
   503  000070             ;//User can add  interrupt program
   504  000070             	
   505  000070   4820      	bset	t10msflag
   506  000071             	
   507  000071   1E0D      	mov	a,keychat
   508  000072   7086      	b0bts0	fz
   509  000073   8076      	jmp	TC0INTR10
   510  000074             	
   511  000074   260D      	decms	keychat
   512  000075   0000      	nop
   513  000076             ;-----
   514  000076             TC0INTR10:
   515  000076   2602      	decms	timer1s
   516  000077   8080      	jmp	TC0INTR90
   517  000078   4920      	bset	t1sflag
   518  000079             	mov_	timer1s,#100
   519  000079   2D64      	mov	a, #100
   520  00007A   1F02      	mov	timer1s, a
   521  00007B             ;-----
   522  00007B             TC0INTR20:
   523  00007B   2603      	decms	timer1m
   524  00007C   8080      	jmp	TC0INTR90
   525  00007D             	mov_	timer1m,#60
   526  00007D   2D3C      	mov	a, #60
   527  00007E   1F03      	mov	timer1m, a
   528  00007F   4A20      	bset	t1mflag
   529  000080             TC0INTR90:
   530  000080   65C8      	b0bclr	FTc0IRQ
   531  000081   806C      	jmp	Interrup90
   532  000082             	
   533  000082             ;--------------------------------------------------------
   534  000082             P00INTR:
   535  000082             ;//User can add  interrupt program
   536  000082             
   537  000082             P00INTR90:
   538  000082   60C8      	b0bclr	FP00IRQ
   539  000083   806C      	jmp	Interrup90
   540  000084             ;--------------------------------------------------------
   541  000084             P01INTR:
   542  000084             ;//User can add  interrupt program
   543  000084             
   544  000084             P01INTR90:
   545  000084   61C8      	b0bclr	FP01IRQ
   546  000085   806C      	jmp	Interrup90

⌨️ 快捷键说明

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