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

📄 inductioncooker050706ver2.lst

📁 应用松翰母体写的一款电磁炉
💻 LST
📖 第 1 页 / 共 5 页
字号:
   799  0000DA   808C      	jmp	Interrup90
   800  0000DB             ;***********************************************
   801  0000DB             
   802  0000DB             
   803  0000DB             
   804  0000DB             ;***********************************************
   805  0000DB             ;Name	:mnintgnd
   806  0000DB             ;Function:interface between interrupt and main
   807  0000DB             ;Input  :
   808  0000DB             ;Output	:
   809  0000DB             ;Register Used:
   810  0000DB             ;***********************************************
   811  0000DB             mnintgnd:
   812  0000DB   7836      	b0bts1	t10msflag
   813  0000DC   80FB      	jmp	mnintgnd90
   814  0000DD             ;-----------------------------
   815  0000DD   4036      	bclr	t10msflag
   816  0000DE             ;------------------------------
   817  0000DE             mnintgnd10:
   818  0000DE             ;----
   819  0000DE   260E      	decms	loadfrequent
   820  0000DF   80ED      	jmp	mnintgnd20
   821  0000E0             	mov_	loadfrequent,#50
   822  0000E0   2D32      	mov	a, #50
   823  0000E1   1F0E      	mov	loadfrequent, a
   824  0000E2             ;-----
   825  0000E2   1E13      	mov	a,buzzercnt
   826  0000E3   7086      	b0bts0	fz
   827  0000E4   80ED      	jmp	mnintgnd20
   828  0000E5             ;---
   829  0000E5             	notbit	buzzerflag
   830  0000E5   7637      		b0bts0 buzzerflag
   831  0000E6   80E9      		jmp $+3
   832  0000E7   6E37      		b0bset buzzerflag
   833  0000E8   80EA      		jmp $+2
   834  0000E9   6637      		b0bclr buzzerflag
   835  0000EA   2613      	decms	buzzercnt
   836  0000EB   80ED      	jmp	mnintgnd20
   837  0000EC   4637      	bclr	buzzerflag
   838  0000ED             ;------------------------------
   839  0000ED             mnintgnd20:
   840  0000ED             ;----
   841  0000ED   260F      	decms	ledfrequent
   842  0000EE   80F2      	jmp	mnintgnd30
   843  0000EF   4E3A      	bset	ledfrequentflag
   844  0000F0             	mov_	ledfrequent,#50
   845  0000F0   2D32      	mov	a, #50
   846  0000F1   1F0F      	mov	ledfrequent, a
   847  0000F2             ;-------------------------------
   848  0000F2             mnintgnd30:
   849  0000F2   2604      	decms	timer200ms
   850  0000F3   80FB      	jmp	mnintgnd90
   851  0000F4             	notbit	heattimeflag
   852  0000F4   713E      		b0bts0 heattimeflag
   853  0000F5   80F8      		jmp $+3
   854  0000F6   693E      		b0bset heattimeflag
   855  0000F7   80F9      		jmp $+2
   856  0000F8   613E      		b0bclr heattimeflag
   857  0000F9             	mov_	timer200ms,#20
   858  0000F9   2D14      	mov	a, #20
   859  0000FA   1F04      	mov	timer200ms, a
   860  0000FB             mnintgnd90:
   861  0000FB   0E00      	ret
   862  0000FC             	include keyscan.asm
   863  0000FC             ;**********************************************
   864  0000FC             ;Name	:mnkey
   865  0000FC             ;Function:
   866  0000FC             ;Input  :
   867  0000FC             ;Output	:
   868  0000FC             ;Register Used:
   869  0000FC             ;***********************************************
   870  0000FC             mnkey:
   871  0000FC   C100       	call	keyin
   872  0000FD   C11D      	call	keychk
   873  0000FE   C12F      	call	keycvt
   874  0000FF             	
   875  0000FF             mnkey90:
   876  0000FF   0E00      	ret
   877  000100             	
   878  000100             ;**********************************************
   879  000100             ;Name	:keyin
   880  000100             ;Function:keyinbuf.7=0:key on line0,=1:key on line1
   881  000100             ;Input  :
   882  000100             ;Output	:
   883  000100             ;Register Used:var1,var2
   884  000100             ;***********************************************
   885  000100             keyin:
   886  000100             ;-----
   887  000100             	mov_	var1,p2		;push p2 value
   888  000100   1ED2      	mov	a, p2
   889  000101   1F47      	mov	var1, a
   890  000102   2DF0      	mov	a,#11110000b
   891  000103   19D4      	or	p4,a
   892  000104   C15F      	call	p2input
   893  000105   2B14      	clr	keyinbuf
   894  000106             ;----
   895  000106             ;start scan key
   896  000106             ;line0
   897  000106   40D5      	bclr	line0
   898  000107   C411      	call	delay_10us
   899  000108   1ED2      	mov	a,p2
   900  000109   2A7F      	and	a,#01111111b
   901  00010A   1F14      	mov	keyinbuf,a
   902  00010B   1D7F      	xor	a,#01111111b
   903  00010C   7886      	b0bts1	fz
   904  00010D   8117      	jmp	keyin80			;line0 上有键按下,退出line1扫描
   905  00010E             ;-----
   906  00010E             ;line1					;line0 上无键按下,接着扫描line1
   907  00010E   41D5      	bclr	line1
   908  00010F   C411      	call	delay_10us
   909  000110   1ED2      	mov	a,p2
   910  000111   2A7F      	and	a,#01111111b
   911  000112   1F14      	mov	keyinbuf,a
   912  000113   1D7F      	xor	a,#01111111b
   913  000114   7086      	b0bts0	fz
   914  000115   8117      	jmp	keyin80			;line1 上无键按下
   915  000116             ;----
   916  000116   4F14      	bset	keyinbuf.7		;line1 上有键按下
   917  000117             ;------
   918  000117             keyin80:
   919  000117   48D5      	bset	line0
   920  000118   49D5      	bset	line1
   921  000119             ;----
   922  000119   C165      	call	p2output
   923  00011A             	mov_	p2,var1			;pop p2 value
   924  00011A   1E47      	mov	a, var1
   925  00011B   1FD2      	mov	p2, a
   926  00011C             ;---
   927  00011C             keyin90:
   928  00011C   0E00      	ret
   929  00011D             	
   930  00011D             ;**********************************************
   931  00011D             ;Name	:keychk
   932  00011D             ;Function:
   933  00011D             ;Input  :
   934  00011D             ;Output	:
   935  00011D             ;Register Used:
   936  00011D             ;***********************************************
   937  00011D             keychk:
   938  00011D   1E14      	mov	a,keyinbuf	;check line0 state
   939  00011E   0715      	cmprs	a,keychkbuf
   940  00011F   8129      	jmp	keychk10
   941  000120             	
   942  000120   7C36      	b0bts1	keystatflag	;check have key push or not?
   943  000121   812E      	jmp	keychk90
   944  000122             	
   945  000122   1E18      	mov	a,keychat	;banish key's dithering
   946  000123   7886      	b0bts1	fz
   947  000124   812E      	jmp	keychk90
   948  000125             	
   949  000125   1E15      	mov	a,keychkbuf	;save key value
   950  000126   1F16      	mov	keycvtbuf,a
   951  000127             	
   952  000127   4436      	bclr	keystatflag
   953  000128   812E      	jmp	keychk90
   954  000129             ;---	
   955  000129             keychk10:
   956  000129   1E14      	mov	a,keyinbuf	;send key state to bufram
   957  00012A   1F15      	mov	keychkbuf,a
   958  00012B             	
   959  00012B   4C36      	bset	keystatflag	;set key push flag
   960  00012C   2D05      	mov	a,#5		;5
   961  00012D   1F18      	mov	keychat,a	;banish key's dithering 50ms
   962  00012E             ;---
   963  00012E             keychk90:
   964  00012E   0E00      	ret
   965  00012F             
   966  00012F             
   967  00012F             ;**********************************************
   968  00012F             ;Name	:keycvt
   969  00012F             ;Function:
   970  00012F             ;Input  :
   971  00012F             ;Output	:
   972  00012F             ;Register Used:temp3,temp4
   973  00012F             ;***********************************************	
   974  00012F             keycvt:
   975  00012F   1E16      	mov	a,keycvtbuf	;convert key value
   976  000130   0717      	cmprs	a,keyoldbuf
   977  000131   8133      	jmp	keycvt10
   978  000132   815E      	jmp	keycvt90
   979  000133             ;-----------------------------------------	
   980  000133             keycvt10:
   981  000133   7716      	b0bts0	lineflag	;=0:line0 key,=1:line1 key
   982  000134   8146      	jmp	line1keypush
   983  000135             ;----
   984  000135             ;line0 key push
   985  000135   1E16      	mov	a,keycvtbuf
   986  000136   1F17      	mov	keyoldbuf,a
   987  000137   1A80      	or	a,#10000000b
   988  000138   1F42      	mov	temp3,a
   989  000139             	mov_	temp4,#7
   990  000139   2D07      	mov	a, #7
   991  00013A   1F43      	mov	temp4, a
   992  00013B             ;-----------------------------------------
   993  00013B             loopline0:
   994  00013B   4286      	bclr	fc
   995  00013C   0942      	rrcm	temp3
   996  00013D   7A86      	b0bts1	fc
   997  00013E   8143      	jmp	line0getonekey
   998  00013F   2643      	decms	temp4
   999  000140   813B      	jmp	loopline0
  1000  000141             ;-----
  1001  000141   493B      	bset	keyokflag
  1002  000142   0E00      	ret
  1003  000143             ;-----
  1004  000143             line0getonekey:
  1005  000143   1E43      	mov	a,temp4
  1006  000144   1F19      	mov	aplcode,a
  1007  000145   0E00      	ret
  1008  000146             ;------------------------------------------
  1009  000146             line1keypush:
  1010  000146   1E16      	mov	a,keycvtbuf
  1011  000147   1F17      	mov	keyoldbuf,a
  1012  000148   1A80      	or	a,#10000000b
  1013  000149   1F42      	mov	temp3,a
  1014  00014A             ;----
  1015  00014A   2A03      	and	a,#00000011b
  1016  00014B   7086      	b0bts0	fz
  1017  00014C   815B      	jmp	twokeypush
  1018  00014D             	mov_	temp4,#5
  1019  00014D   2D05      	mov	a, #5
  1020  00014E   1F43      	mov	temp4, a
  1021  00014F             loopline1:
  1022  00014F   4286      	bclr	fc
  1023  000150   0942      	rrcm	temp3
  1024  000151   7A86      	b0bts1	fc
  1025  000152   8157      	jmp	line1getonekey
  1026  000153   2643      	decms	temp4
  1027  000154   814F      	jmp	loopline1
  1028  000155             ;-----
  1029  000155   493B      	bset	keyokflag
  1030  000156   0E00      	ret
  1031  000157             ;-----
  1032  000157             line1getonekey:
  1033  000157   1E43      	mov	a,temp4
  1034  000158   1407      	add	a,#7
  1035  000159   1F19      	mov	aplcode,a
  1036  00015A   0E00      	ret
  1037  00015B             ;----
  1038  00015B             twokeypush:
  1039  00015B   2D0D      	mov	a,#13
  1040  00015C   1F19      	mov	aplcode,a
  1041  00015D   493B      	bset	keyokflag	
  1042  00015E             ;-----	
  1043  00015E             keycvt90:
  1044  00015E   0E00      	ret	
  1045  00015F             	
  1046  00015F             ;*******************************************************
  1047  00015F             ;*******************************************************
  1048  00015F             ;*******************************************************
  1049  00015F             p2input:
  1050  00015F   2BC2      	clr	p2m		;set p2 is input
  1051  000160             	mov_	p2ur,#0ffh	;set p2 have pull_up
  1052  000160   2DFF      	mov	a, #0ffh
  1053  000161   1FE2      	mov	p2ur, a
  1054  000162   8163      	jmp	$+1
  1055  000163   8164      	jmp	$+1
  1056  000164   0E00      	ret
  1057  000165             ;-----------------
  1058  000165             p2output:
  1059  000165             	mov_	p2m,#0ffh	;set p2 is output
  1060  000165   2DFF      	mov	a, #0ffh
  1061  000166   1FC2      	mov	p2m, a
  1062  000167   2BE2      	clr	p2ur		;clr p2 pull_up
  1063  000168   8169      	jmp	$+1
  1064  000169   816A      	jmp	$+1

⌨️ 快捷键说明

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