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

📄 inductioncooker050413ver1.lst

📁 应用松翰母体写的一款电磁炉
💻 LST
📖 第 1 页 / 共 5 页
字号:
   283  00003A   2DF0      	mov	a,#11110000b
   284  00003B   1FD4      	mov	p4,a
   285  00003C   2BE4      	clr	p4ur
   286  00003D             	
   287  00003D   2DFF      	mov	a,#11111111b
   288  00003E   1FC5      	mov	p5m,a		;set p5 is output except p5.1
   289  00003F   2DCB      	mov	a,#11001011b
   290  000040   1FD5      	mov	p5,a
   291  000041             
   292  000041   0E00      	ret
   293  000042             
   294  000042             ;**********************************************
   295  000042             ;Name	:SysInitial
   296  000042             ;Function:
   297  000042             ;Input  :
   298  000042             ;Output	:
   299  000042             ;Register Used:
   300  000042             ;***********************************************
   301  000042             SysInitial:
   302  000042             
   303  000042   45C9      	bclr	ftc0ien			;dis t0 int
   304  000043   47DA      	bclr	ftc0enb			;stop t0 count
   305  000044   2D24      	mov	A,#00100100B		;//f0=fcpu/64
   306  000045   2FDA      	b0mov	Tc0M,A
   307  000046   2D64      	mov	A,#100			;//10ms constant  for  f0=1mips/64
   308  000047   2FDB      	b0mov	Tc0C,A
   309  000048   6FDA      	b0bset	FTc0ENB			; Enable TIMER0
   310  000049   4DC9      	bset	FTc0IEN			; Enable T0 interrupt
   311  00004A   45C8      	bclr	ftc0irq			; CLEAR TIMER0 INTERRUPT FLAG
   312  00004B             ;----
   313  00004B             ;初始化pwm
   314  00004B   46C9      	bclr	ftc1ien			;dis t1 int
   315  00004C   2BD8      	clr	t0m			;ftc1=fcpu
   316  00004D   2BDD      	clr	tc1c
   317  00004E   2D65      	mov	a,#01100101b		
   318  00004F   1FDC      	mov	tc1m,a			;set pwm=32 duty fpwm=62.5k
   319  000050   41DC      	bclr	ftc1out
   320  000051   40DC      	bclr	fpwm1out
   321  000052   47DC      	bclr	ftc1enb			;stop t1 count
   322  000053             ;----
   323  000053   2BB1      	clr	ADM
   324  000054   6FB1      	b0bset	FADENB			;enable adc
   325  000055             	mov_	ADR,#01010000b		;select 12 bit ADC,Fcpu/2=128us
   326  000055   2D50      	mov	a, #01010000b
   327  000056   1FB3      	mov	ADR, a
   328  000057             ;----
   329  000057   4919      	bset	poweronflag		;通电标志	
   330  000058   6FDF      	b0bset	FGIE			;//enable Interrupt gain
   331  000059   0E00      	ret
   332  00005A             
   333  00005A             ;**********************************************
   334  00005A             ;Name	:Pdelay
   335  00005A             ;Function:
   336  00005A             ;Input  :
   337  00005A             ;Output	:
   338  00005A             ;Register Used:
   339  00005A             ;***********************************************
   340  00005A             Pdelay:
   341  00005A   2DFF      	mov	a,#0ffh
   342  00005B   1F22      	mov	var1,a
   343  00005C             loop10:
   344  00005C   2DFF      	mov	a,#0ffh
   345  00005D   1F23      	mov	var2,a
   346  00005E             loop11:
   347  00005E   2623      	decms	var2
   348  00005F   805E      	jmp	loop11			;power on delay
   349  000060   2622      	decms	var1
   350  000061   805C      	jmp	loop10
   351  000062   0E00      	ret
   352  000063             	include	intserver.asm
   353  000063             ;************************************************
   354  000063             ;Name	:InterruptSub
   355  000063             ;Function:
   356  000063             ;Input  :
   357  000063             ;Output	:
   358  000063             ;Register Used:
   359  000063             ;*************************************************
   360  000063             InterruptSub:
   361  000063   2C00      	XCH	A,AccBuf
   362  000064   2C86      	XCH	A,PFLAG
   363  000065   2F01      	B0MOV	PflagBuf,A
   364  000066             	
   365  000066   75C8      	b0bts0	FTc0IRQ		;//Analyse the Interrupt resourc
   366  000067   806E      	jmp	Tc0INTR
   367  000068             	
   368  000068   70C8      	b0bts0	FP00IRQ		;//P00 interrupt
   369  000069   8080      	jmp	P00INTR
   370  00006A             
   371  00006A             Interrup90:
   372  00006A             
   373  00006A   2C01      	XCH	A,PflagBuf
   374  00006B   2F86      	B0MOV	PFLAG,A
   375  00006C   2C00      	XCH	A,AccBuf	;//For release the Acc And Pflag
   376  00006D             	
   377  00006D   0F00      	RETI
   378  00006E             
   379  00006E             ;--------------------------------------------------------
   380  00006E             Tc0INTR:
   381  00006E             ;//User can add  interrupt program
   382  00006E             	
   383  00006E   4816      	bset	t10msflag
   384  00006F             	
   385  00006F   1E0A      	mov	a,keychat
   386  000070   7086      	b0bts0	fz
   387  000071   8074      	jmp	TC0INTR10
   388  000072             	
   389  000072   260A      	decms	keychat
   390  000073   0000      	nop
   391  000074             ;-----
   392  000074             TC0INTR10:
   393  000074   2602      	decms	timer1s
   394  000075   807E      	jmp	TC0INTR90
   395  000076   4916      	bset	t1sflag
   396  000077             	mov_	timer1s,#100
   397  000077   2D64      	mov	a, #100
   398  000078   1F02      	mov	timer1s, a
   399  000079             ;-----
   400  000079             TC0INTR20:
   401  000079   2603      	decms	timer1m
   402  00007A   807E      	jmp	TC0INTR90
   403  00007B             	mov_	timer1m,#60
   404  00007B   2D3C      	mov	a, #60
   405  00007C   1F03      	mov	timer1m, a
   406  00007D   4A16      	bset	t1mflag
   407  00007E             TC0INTR90:
   408  00007E   65C8      	b0bclr	FTc0IRQ
   409  00007F   806A      	jmp	Interrup90
   410  000080             	
   411  000080             ;--------------------------------------------------------
   412  000080             P00INTR:
   413  000080             ;//User can add  interrupt program
   414  000080             
   415  000080             P00INTR90:
   416  000080   60C8      	b0bclr	FP00IRQ
   417  000081   806A      	jmp	Interrup90
   418  000082             ;--------------------------------------------------------
   419  000082             ;***********************************************
   420  000082             
   421  000082             
   422  000082             
   423  000082             ;***********************************************
   424  000082             ;Name	:mnintgnd
   425  000082             ;Function:interface between interrupt and main
   426  000082             ;Input  :
   427  000082             ;Output	:
   428  000082             ;Register Used:
   429  000082             ;***********************************************
   430  000082             mnintgnd:
   431  000082             
   432  000082             mnintgnd90:
   433  000082   0E00      	ret
   434  000083             	include keyscan.asm
   435  000083             ;**********************************************
   436  000083             ;Name	:mnkey
   437  000083             ;Function:
   438  000083             ;Input  :
   439  000083             ;Output	:
   440  000083             ;Register Used:
   441  000083             ;***********************************************
   442  000083             mnkey:
   443  000083   C087       	call	keyin
   444  000084   C0A2      	call	keychk
   445  000085   C0B4      	call	keycvt
   446  000086             	
   447  000086             mnkey90:
   448  000086   0E00      	ret
   449  000087             	
   450  000087             ;**********************************************
   451  000087             ;Name	:keyin
   452  000087             ;Function:keyinbuf.7=0:key on line0,=1:key on line1
   453  000087             ;Input  :
   454  000087             ;Output	:
   455  000087             ;Register Used:var1
   456  000087             ;***********************************************
   457  000087             keyin:
   458  000087             ;-----
   459  000087             	mov_	var1,p2		;push p2 value
   460  000087   1ED2      	mov	a, p2
   461  000088   1F22      	mov	var1, a
   462  000089   C0D7      	call	p2input
   463  00008A   2B06      	clr	keyinbuf
   464  00008B             ;----
   465  00008B             ;start scan key
   466  00008B             ;line0
   467  00008B   40D5      	bclr	line0
   468  00008C   C13F      	call	delay_10us
   469  00008D   1ED2      	mov	a,p2
   470  00008E   2A7F      	and	a,#01111111b
   471  00008F   1F06      	mov	keyinbuf,a
   472  000090   1D7F      	xor	a,#01111111b
   473  000091   7886      	b0bts1	fz
   474  000092   809C      	jmp	keyin80			;line0 上有键按下,退出line1扫描
   475  000093             ;-----
   476  000093             ;line1					;line0 上无键按下,接着扫描line1
   477  000093   41D5      	bclr	line1
   478  000094   C13F      	call	delay_10us
   479  000095   1ED2      	mov	a,p2
   480  000096   2A7F      	and	a,#01111111b
   481  000097   1F06      	mov	keyinbuf,a
   482  000098   1D7F      	xor	a,#01111111b
   483  000099   7086      	b0bts0	fz
   484  00009A   809C      	jmp	keyin80			;line1 上无键按下
   485  00009B             ;----
   486  00009B   4F06      	bset	keyinbuf.7		;line1 上有键按下
   487  00009C             ;------
   488  00009C             keyin80:
   489  00009C   48D5      	bset	line0
   490  00009D   49D5      	bset	line1
   491  00009E             ;----
   492  00009E   C0DD      	call	p2output
   493  00009F             	mov_	p2,var1			;pop p2 value
   494  00009F   1E22      	mov	a, var1
   495  0000A0   1FD2      	mov	p2, a
   496  0000A1             ;---
   497  0000A1             keyin90:
   498  0000A1   0E00      	ret
   499  0000A2             	
   500  0000A2             ;**********************************************
   501  0000A2             ;Name	:keychk
   502  0000A2             ;Function:
   503  0000A2             ;Input  :
   504  0000A2             ;Output	:
   505  0000A2             ;Register Used:
   506  0000A2             ;***********************************************
   507  0000A2             keychk:
   508  0000A2   1E06      	mov	a,keyinbuf	;check line0 state
   509  0000A3   0707      	cmprs	a,keychkbuf
   510  0000A4   80AE      	jmp	keychk10
   511  0000A5             	
   512  0000A5   7C16      	b0bts1	keystatflag	;check have key push or not?
   513  0000A6   80B3      	jmp	keychk90
   514  0000A7             	
   515  0000A7   1E0A      	mov	a,keychat	;banish key's dithering
   516  0000A8   7886      	b0bts1	fz
   517  0000A9   80B3      	jmp	keychk90
   518  0000AA             	
   519  0000AA   1E07      	mov	a,keychkbuf	;save key value
   520  0000AB   1F08      	mov	keycvtbuf,a
   521  0000AC             	
   522  0000AC   4416      	bclr	keystatflag
   523  0000AD   80B3      	jmp	keychk90
   524  0000AE             ;---	
   525  0000AE             keychk10:
   526  0000AE   1E06      	mov	a,keyinbuf	;send key state to bufram
   527  0000AF   1F07      	mov	keychkbuf,a
   528  0000B0             	
   529  0000B0   4C16      	bset	keystatflag	;set key push flag
   530  0000B1   2D03      	mov	a,#3		;3
   531  0000B2   1F0A      	mov	keychat,a	;banish key's dithering 30ms
   532  0000B3             ;---
   533  0000B3             keychk90:
   534  0000B3   0E00      	ret
   535  0000B4             
   536  0000B4             
   537  0000B4             ;**********************************************
   538  0000B4             ;Name	:keycvt
   539  0000B4             ;Function:
   540  0000B4             ;Input  :
   541  0000B4             ;Output	:
   542  0000B4             ;Register Used:var1,var2
   543  0000B4             ;***********************************************	
   544  0000B4             keycvt:
   545  0000B4   1E08      	mov	a,keycvtbuf	;convert key value
   546  0000B5   0709      	cmprs	a,keyoldbuf
   547  0000B6   80B8      	jmp	keycvt10
   548  0000B7   80D6      	jmp	keycvt90
   549  0000B8             ;-----------------------------------------	
   550  0000B8             keycvt10:
   551  0000B8   7708      	b0bts0	lineflag	;=0:line0 key,=1:line1 key
   552  0000B9   80C8      	jmp	line1keypush
   553  0000BA             ;----
   554  0000BA             ;line0 key push
   555  0000BA             	mov_	var1,keycvtbuf
   556  0000BA   1E08      	mov	a, keycvtbuf
   557  0000BB   1F22      	mov	var1, a
   558  0000BC             	mov_	var2,#7
   559  0000BC   2D07      	mov	a, #7
   560  0000BD   1F23      	mov	var2, a
   561  0000BE             ;-----------------------------------------
   562  0000BE             loopline0:
   563  0000BE   4286      	bclr	fc
   564  0000BF   0922      	rrcm	var1

⌨️ 快捷键说明

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