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

📄 main.lst

📁 基本完成迷控制算法
💻 LST
📖 第 1 页 / 共 4 页
字号:
   823  0000CF             RF_remotedata_set1:
   824  0000CF             	mov_	RF_remotecountH,RF_bit1_Hval
   825  0000CF   2D04      	mov	a, RF_bit1_Hval
   826  0000D0   1F01      	mov	RF_remotecountH, a
   827  0000D1             	mov_	RF_remotecountL,RF_bit1_Lval
   828  0000D1   2D04      	mov	a, RF_bit1_Lval
   829  0000D2   1F02      	mov	RF_remotecountL, a
   830  0000D3             RF_remotedata_setting90:
   831  0000D3   0E00      	ret
   832  0000D4             ;-------------------------------------------
   833  0000D4             	include		keyscan.asm	; Key scanning
   834  0000D4             ;.data
   835  0000D4             ;	@key_num	equ	xx	; the xx < 9, otherwise you must repair the routine
   836  0000D4             ;	@debounce_num	equ	#xx	; debounce time = xx * Systime base
   837  0000D4             ;	@keystate_set	equ	xx	; 0: Low voltage detect ; 1: High voltage detect
   838  0000D4             ;	@key_power_set	equ	xx	; 0: Don't care power ; 1 : care power	
   839  0000D4             ;@keyinbuf	ds	1	; store the temp key state when scanning
   840  0000D4             ;@keychkbuf 	ds	1  	; store the key state    
   841  0000D4             ;@keycvtbuf	ds	1
   842  0000D4             ;@keyoldbuf	ds	1      
   843  0000D4             ;@keyflag	ds	1 
   844  0000D4             ;	@keydown_f	equ	@keyflag.0
   845  0000D4             ;@keychat	ds	1
   846  0000D4             ;@aplcode	ds	1 
   847  0000D4             
   848  0000D4             
   849  0000D4             ;	@key1_p		equ	px.x	; add at ram.asm
   850  0000D4             ;	@key1m_p	equ	pxm.x	;	|
   851  0000D4             ;	@key2_p		equ	px.x	;	|
   852  0000D4             ;	@key2m_p	equ	pxm.x	;	|
   853  0000D4             ;	@key3_p		equ	px.x	;	|
   854  0000D4             ;	@key3m_p	equ	pxm.x	;	|
   855  0000D4             ;	@key4_p		equ	px.x	;	|
   856  0000D4             ;	@key4m_p	equ	pxm.x	;	|
   857  0000D4             ;	@key5_p		equ	px.x	;	|
   858  0000D4             ;	@key5m_p	equ	pxm.x	;	|
   859  0000D4             ;	@key6_p		equ	px.x	;	|
   860  0000D4             ;	@key6m_p	equ	pxm.x	;	|
   861  0000D4             ;	@key7_p		equ	px.x	;	|
   862  0000D4             ;	@key7m_p	equ	pxm.x	;	|
   863  0000D4             ;	@key8_p		equ	px.x	;	|
   864  0000D4             ;	@key8m_p	equ	pxm.x	; add at ram.asm
   865  0000D4             
   866  0000D4             ;*******************************************************************************
   867  0000D4             ; call Usage:       chip support: ALL       purpose: get key value             *
   868  0000D4             ; @@key_init:   call at @@premain(if clear ram at com.asm, you can delete them)*
   869  0000D4             ; @@mnkey:	call at @@main						       *
   870  0000D4             ; @@deckeychat: call at @@Intface5ms					       *
   871  0000D4             ; @@Keyappl:	call at @@main(key application, can add in Sys.asm)	       *
   872  0000D4             ; @@key_powerdown:  call at powerdown subroutine			       *
   873  0000D4             ;Note: If detect Long time and short time key, you can set debounce time=long -*
   874  0000D4             ;    time, and wrtie a special routine to check short time key.		       *
   875  0000D4             ;*******************************************************************************
   876  0000D4             
   877  0000D4             ;.code
   878  0000D4             ;***********************************************
   879  0000D4             ;          Key scan data Initial               *
   880  0000D4             ;***********************************************
   881  0000D4             @@key_init:
   882  0000D4   2B08      	clr	@keyinbuf
   883  0000D5   2B09      	clr	@keychkbuf 
   884  0000D6   2B0A      	clr	@keycvtbuf
   885  0000D7   2B0B      	clr	@keyoldbuf
   886  0000D8   2B0C      	clr	@keyflag
   887  0000D9   2B0D      	clr	@keychat
   888  0000DA   2B0E      	clr	@aplcode
   889  0000DB   0E00       	ret
   890  0000DC             
   891  0000DC             ;**********************************
   892  0000DC             ;       key board scan		  *
   893  0000DC             ;**********************************
   894  0000DC             @@mnkey:
   895  0000DC   C0E0              call    @@keyin		; read into @keyinbuf
   896  0000DD   C0FA              call    @@keychk	; read into checkbuf
   897  0000DE   C10E              call    @@keycvt	; read into convertbuf
   898  0000DF   0E00              ret
   899  0000E0             ;**********************************
   900  0000E0             ;	read into @keyinbuf	  *  
   901  0000E0             ;**********************************
   902  0000E0             @@keyin:
   903  0000E0   2B08      	clr	@keyinbuf
   904  0000E1   60C2       	b0bclr	@key1m_p	;	|
   905  0000E2   78D2      	b0bts1	@key1_p		;	|
   906  0000E3   6808      	b0bset	@keyinbuf.0	;	|
   907  0000E4   61C2       	b0bclr	@key2m_p	;	|
   908  0000E5   79D2      	b0bts1	@key2_p		;	|
   909  0000E6   6908      	b0bset	@keyinbuf.1	;	|
   910  0000E7   62C2       	b0bclr	@key3m_p	;	|
   911  0000E8   7AD2      	b0bts1	@key3_p		;	|
   912  0000E9   6A08      	b0bset	@keyinbuf.2	;	|
   913  0000EA   63C2       	b0bclr	@key4m_p	;	|
   914  0000EB   7BD2      	b0bts1	@key4_p		;	|
   915  0000EC   6B08      	b0bset	@keyinbuf.3	;	|
   916  0000ED   64C2       	b0bclr	@key5m_p	;	|
   917  0000EE   7CD2      	b0bts1	@key5_p		;	|
   918  0000EF   6C08      	b0bset	@keyinbuf.4	;	|
   919  0000F0   65C2       	b0bclr	@key6m_p	;	|
   920  0000F1   7DD2      	b0bts1	@key6_p		;	|
   921  0000F2   6D08      	b0bset	@keyinbuf.5	;	|
   922  0000F3   66C2       	b0bclr	@key7m_p	;	|
   923  0000F4   7ED2      	b0bts1	@key7_p		;	|
   924  0000F5   6E08      	b0bset	@keyinbuf.6	;	|
   925  0000F6   67C2       	b0bclr	@key8m_p	;	|
   926  0000F7   7FD2      	b0bts1	@key8_p		;	|
   927  0000F8   6F08      	b0bset	@keyinbuf.7	; 	|
   928  0000F9   0E00              ret
   929  0000FA             ;********************************************
   930  0000FA             ;       check @keyinbuf and @keychkbuf      *
   931  0000FA             ;********************************************
   932  0000FA             @@keychk: 
   933  0000FA   1E08      	mov	a,@keyinbuf
   934  0000FB   1B09      	xor     a,@keychkbuf
   935  0000FC                     jnz     @@keychk10		; jmp if not same
   936  0000FC   7886      	b0bts1	FZ
   937  0000FD   8107      		jmp	@@keychk10
   938  0000FE             ; same
   939  0000FE   580C              bts1	@keydown_f
   940  0000FF   810D              jmp     @@keychk90		; end 
   941  000100             ; wait chatter
   942  000100   1E0D              mov	a,@keychat
   943  000101                     jnz     @@keychk90 		      
   944  000101   7886      	b0bts1	FZ
   945  000102   810D      		jmp	@@keychk90
   946  000103             ; key bounce time = 0 , copy chk buf into cvt buf
   947  000103             	mov_	@keycvtbuf,@keychkbuf
   948  000103   1E09      	mov	a, @keychkbuf
   949  000104   1F0A      	mov	@keycvtbuf, a
   950  000105   400C              bclr  @keydown_f		; clr @keyflag
   951  000106   810D              jmp     @@keychk90 
   952  000107             ; different                               
   953  000107             @@keychk10:
   954  000107   410C      bclr	have_key	/////add
   955  000108             	mov_	@keychkbuf,@keyinbuf
   956  000108   1E08      	mov	a, @keyinbuf
   957  000109   1F09      	mov	@keychkbuf, a
   958  00010A   480C              bset	@keydown_f		; set @keyflag.0		
   959  00010B                     mov_	@keychat,@debounce_num
   960  00010B   2D05      	mov	a, @debounce_num
   961  00010C   1F0D      	mov	@keychat, a
   962  00010D             @@keychk90:
   963  00010D   0E00              ret
   964  00010E             ;****************************************************************
   965  00010E             ;      compare @@keycvt and keyold and find the difference	*
   966  00010E             ;****************************************************************
   967  00010E             @@keycvt:
   968  00010E   1E0A      	mov	a,@keycvtbuf
   969  00010F   070B      	cmprs   a,@keyoldbuf
   970  000110   8112      	jmp	@@keycvt00
   971  000111   8119              jmp     @@keycvt90        ; same, exit 
   972  000112             ; check the new pressed key from table
   973  000112             @@keycvt00:
   974  000112             	mov_	@keyoldbuf,@keycvtbuf
   975  000112   1E0A      	mov	a, @keycvtbuf
   976  000113   1F0B      	mov	@keyoldbuf, a
   977  000114             ;----------------------------------------------------------------
   978  000114   1F0E      	mov	@aplcode,a
   979  000115   0600      	cmprs	a,#0
   980  000116   8118      	jmp	$+2
   981  000117   8119      	jmp	@@keycvt90
   982  000118   490C      	bset	have_key
   983  000119              @@keycvt90:
   984  000119   0E00      	ret	
   985  00011A             ;**********************************
   986  00011A             ;	key debounce check	  *
   987  00011A             ;**********************************
   988  00011A             @@deckeychat:
   989  00011A   580C      	bts1	@keydown_f
   990  00011B   8121      	jmp	@@deckeychat90
   991  00011C   1E0D              mov	a,@keychat
   992  00011D                     jz	@@deckeychat90
   993  00011D   7086      	b0bts0	FZ
   994  00011E   8121      		jmp	@@deckeychat90
   995  00011F   260D              decms   @keychat         ; @keychat--
   996  000120   8121              jmp     @@deckeychat90
   997  000121             @@deckeychat90:
   998  000121   0E00          	ret
   999  000122             ;**********************************
  1000  000122             ;	Key application		  *
  1001  000122             ;**********************************
  1002  000122             @@Keyappl:
  1003  000122   590C      	bts1	have_key
  1004  000123   8151      	jmp	@@keyappl70
  1005  000124             
  1006  000124   1E0E      	mov	a,@aplcode
  1007  000125   2A1E      	and	a,#00011110b
  1008  000126             	jz	@f
  1009  000126   7086      	b0bts0	FZ
  1010  000127   8134      		jmp	@f
  1011  000128   0602      	cmprs	a,#00000010b
  1012  000129   812B      	jmp	$+2
  1013  00012A   8160      	jmp	fast_forward_process
  1014  00012B   0604      	cmprs	a,#00000100b
  1015  00012C   812E      	jmp	$+2
  1016  00012D   8162      	jmp	forward_process
  1017  00012E   0608      	cmprs	a,#00001000b
  1018  00012F   8131      	jmp	$+2
  1019  000130   8164      	jmp	low_backward_process
  1020  000131   0610      	cmprs	a,#00010000b
  1021  000132   8134      	jmp	$+2
  1022  000133   8166      	jmp	backward_process
  1023  000134   2D00      @@:	mov	a,#0
  1024  000135             @@Keyappl10:
  1025  000135   1F00      	mov	remote_rambuf,a
  1026  000136   1E0E      	mov	a,@aplcode
  1027  000137   2A21      	and	a,#00100001b
  1028  000138   0601      	cmprs	a,#00000001b
  1029  000139   813B      	jmp	$+2
  1030  00013A   815A      	jmp	left_process
  1031  00013B   0620      	cmprs	a,#00100000b
  1032  00013C   813E      	jmp	$+2
  1033  00013D   815D      	jmp	right_process
  1034  00013E   2D00      	mov	a,#0
  1035  00013F   1800      	or	a,remote_rambuf
  1036  000140             @@keyappl20:
  1037  000140   1F00      	mov	remote_rambuf,a
  1038  000141   1E0E      	mov	a,@aplcode
  1039  000142   2A3F      	and	a,#00111111b
  1040  000143             	jnz	@@keyappl30
  1041  000143   7886      	b0bts1	FZ
  1042  000144   814D      		jmp	@@keyappl30
  1043  000145   1E0E      	mov	a,@aplcode
  1044  000146   2AC0      	and	a,#11000000b
  1045  000147   0640      	cmprs	a,#01000000b
  1046  000148   814A      	jmp	$+2
  1047  000149   8154      	jmp	up_process
  1048  00014A   0680      	cmprs	a,#10000000b
  1049  00014B   814D      	jmp	$+2
  1050  00014C   8157      	jmp	down_process
  1051  00014D             ;	jmp	@@keyappl30
  1052  00014D             @@keyappl30:
  1053  00014D   2DC0      	mov	a,ID_code_val
  1054  00014E   2AC0      	and	a,#11000000b
  1055  00014F   1900      	or	remote_rambuf,a
  1056  000150   8153      	jmp	@@keyappl90
  1057  000151             @@keyappl70:
  1058  000151   2B0E      	clr	@aplcode
  1059  000152   2B00      	clr	remote_rambuf
  1060  000153             @@keyappl90:
  1061  000153   0E00      	ret
  1062  000154             
  1063  000154             up_process:
  1064  000154             	mov_	remote_rambuf,#00011000b
  1065  000154   2D18      	mov	a, #00011000b
  1066  000155   1F00      	mov	remote_rambuf, a
  1067  000156   814D      	jmp	@@Keyappl30	
  1068  000157             down_process:
  1069  000157             	mov_	remote_rambuf,#00100000b
  1070  000157   2D20      	mov	a, #00100000b
  1071  000158   1F00      	mov	remote_rambuf, a
  1072  000159   814D      	jmp	@@Keyappl30
  1073  00015A             left_process:
  1074  00015A   2D08      	mov	a,#00001000b
  1075  00015B   1900      	or	remote_rambuf,a
  1076  00015C   814D      	jmp	@@Keyappl30	
  1077  00015D             right_process:	
  1078  00015D   2D10      	mov	a,#00010000b
  1079  00015E   1900      	or	remote_rambuf,a
  1080  00015F   814D      	jmp	@@Keyappl30
  1081  000160             fast_forward_process:
  1082  000160   2D02      	mov	a,#00000010b
  1083  000161   8135      	jmp	@@Keyappl10	
  1084  000162             forward_process:
  1085  000162   2D01      	mov	a,#00000001b
  1086  000163   8135      	jmp	@@Keyappl10
  1087  000164             low_backward_process:
  1088  000164   2D03      	mov	a,#00000011b
  1089  000165   8135      	jmp	@@Keyappl10
  1090  000166             backward_process:
  1091  000166   2D04      	mov	a,#00000100b
  1092  000167   8135      	jmp	@@Keyappl10
  1093  000168             	endp		 		; End of Compiler

⌨️ 快捷键说明

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