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

📄 main.lst

📁 基本完成迷控制算法
💻 LST
📖 第 1 页 / 共 5 页
字号:
   745  000017             		nop
   746  000017             		b0mov   a,val
   747  000017             		sub     a,#( sm - 1 )
   748  000017             		jnc	$+3
   749  000017             		mov     a,#sm
   750  000017             		b0mov   val,a
   751  000017             	endif
   752  000017                 	endm
   753  000017             //====================================================
   754  000017             //      clr_ramX	;clear ram from #00 to max address(bank0,bank1)
   755  000017             //note: y,z,c may be changed.
   756  000017             //====================================================
   757  000017             clr_ram0   expand    adr
   758  000017             	clr     y	  	// set ram bank0
   759  000017             	b0mov	z,#(adr)	// use indirect addressing index pointer (@yz)
   760  000017             				// set pointer = 0x00xx	
   761  000017                 	clr	@yz
   762  000017             	decms	z	  	// z = z -1
   763  000017             	jmp	$-2 		// skip if z = 0
   764  000017             	clr	@yz
   765  000017             	endm	
   766  000017             //====================================================
   767  000017             clr_ram1   expand    adr
   768  000017             	b0mov	y,#1	  	// set ram bank1
   769  000017             	b0mov	z,#(adr)	// use indirect addressing index pointer (@yz)
   770  000017             				// set pointer = 0x00xx	
   771  000017                 	clr	@yz
   772  000017             	decms	z	  	// z = z -1
   773  000017             	jmp	$-2 		// skip if z = 0
   774  000017             	clr	@yz
   775  000017             	endm		
   776  000017             //====================================================
   777  000017             sleep	expand
   778  000017             	b0bset	fcpum0
   779  000017             	endm
   780  000017             //====================================================
   781  000017             //      circularly shift val
   782  000017             //note: 1. c will be changed.
   783  000017             //    	2. must includestd macro1.h
   784  000017             //====================================================
   785  000017             rrcmn	expand	mem,val	
   786  000017             	repeat	val
   787  000017             	rrcm	mem
   788  000017             	endm
   789  000017             	endm
   790  000017             //====================================================
   791  000017             rlcmn	expand	mem,val	
   792  000017             	repeat	val
   793  000017             	rlcm	mem
   794  000017             	endm
   795  000017             	endm
   796  000017             //====================================================
   797  000017             shln	expand	mem,val	
   798  000017             	repeat	val
   799  000017             	shl	mem
   800  000017             	endm
   801  000017             	endm
   802  000017             //====================================================
   803  000017             shrn	expand	mem,val	
   804  000017             	repeat	val
   805  000017             	shr	mem
   806  000017             	endm
   807  000017             	endm
   808  000017             //====================================================
   809  000017             roln	expand	mem,val	
   810  000017             	repeat	val
   811  000017             	rol	mem
   812  000017             	endm
   813  000017             	endm
   814  000017             //====================================================	
   815  000017             rorn	expand	mem,val	
   816  000017             	repeat	val
   817  000017             	ror	mem
   818  000017             	endm
   819  000017             	endm
   820  000017             //====================================================
   821  000017             notb	expand	f	
   822  000017             	b0bts1	f
   823  000017             	jmp	$+3
   824  000017             	b0bclr	f
   825  000017             	jmp	$+2
   826  000017             	b0bset	f	
   827  000017             	endm
   828  000017             //====================================================
   829  000017             //	add_de, adc_de, adcm_de, addm_de ;algorism addition					
   830  000017             //====================================================
   831  000017             add_de	expand	acc,v1
   832  000017             	add	acc,v1
   833  000017             	daa
   834  000017             	endm
   835  000017             //====================================================
   836  000017             adc_de	expand	acc,v1
   837  000017             	adc	acc,v1
   838  000017             	daa
   839  000017             	endm
   840  000017             //====================================================
   841  000017             adcm_de	expand	v1,v2
   842  000017             	b0mov	a,v2
   843  000017             	adc	a,v1
   844  000017             	daa
   845  000017             	b0mov	v1,a
   846  000017             	endm
   847  000017             //====================================================
   848  000017             addm_de	expand	v1,v2
   849  000017             	b0mov	a,v2
   850  000017             	add	a,v1
   851  000017             	daa
   852  000017             	b0mov	v1,a
   853  000017             	endm
   854  000017             //====================================================
   855  000017             //	subm_de, sbcm_de     ;algorism subtration						
   856  000017             //====================================================
   857  000017             Subm_de	expand	v1,v2	
   858  000017             	mov	a,#99h
   859  000017             		sub	a,v2
   860  000017             		adc	a,v1
   861  000017             		daa
   862  000017             		b0mov	v1,a
   863  000017             	endm
   864  000017             //====================================================
   865  000017             Sbcm_de	expand	v1,v2
   866  000017             	mov	a,#99h
   867  000017             	sbc	a,v2
   868  000017             	adc	a,v1
   869  000017             	daa
   870  000017             	b0mov	v1,a
   871  000017             	endm
   872  000017             //====================================================
   873  000017             Xchgupcycle_	expand	adr, list:vararg
   874  000017             	@s_temp1=adr
   875  000017             	for	ls, <list>
   876  000017             		xch	a, ls
   877  000017             		xch	a, @s_temp1
   878  000017             		@s_temp1	=	@s_temp1 + 1
   879  000017             	endm
   880  000017             		xch	a,@s_temp1
   881  000017             	endm 
   882  000017             //====================================================
   883  000017             //must use serial ram byte,can economize ram byte
   884  000017             Downbyte_cycle	expand	adr,list:vararg	
   885  000017             	@s_temp1 = adr
   886  000017             	for	ls, <list>
   887  000017             		xch	a,@s_temp1
   888  000017             		@s_temp1 = @s_temp1 + 1
   889  000017             	endm
   890  000017             		xch	a,@s_temp1
   891  000017             		xch	a,adr	
   892  000017             	endm 
   893  000017             //ex:	downbyte_cycle	wk0,wk1,wk2,...,wkn
   894  000017             //		(wkn are serial ram byte)
   895  000017             //result:wkn,wk0,wk1,...wk(n-1)
   896  000017             //====================================================
   897  000017             //must use serial ram byte,can economize ram byte
   898  000017             Upbyte_cycle	expand	adr,list:vararg
   899  000017             	@s_temp1 = adr
   900  000017             	for	ls, <list>
   901  000017             		xch	a,ls
   902  000017             		xch	a,@s_temp1
   903  000017             		@s_temp1 = @s_temp1 + 1
   904  000017             	endm
   905  000017             		xch	a,@s_temp1
   906  000017             	endm 
   907  000017             //ex:	upbyte_cycle	wk0,wk1,wk2,...,wkn		       
   908  000017             //       	(wkn are serial ram byte)
   909  000017             //result:wk1,wk2,wk3,...wk0
   910  000017             //====================================================
   911  000017             //Note:将v1与v2中的数据交换
   912  000017             //====================================================
   913  000017             XCHM	expand	v1,v2
   914  000017             	xch	a,v2
   915  000017             	xch	a,v1
   916  000017             	xch	a,v2
   917  000017             	endm
   918  000017             //====================================================
   919  000017             //Note:将v2中的数据bit倒置存于v1中
   920  000017             //====================================================
   921  000017             ConvertM	expand	v1,v2
   922  000017             	clr	v1
   923  000017             	bts0	v2.0
   924  000017             	bset	v1.7
   925  000017             	bts0	v2.1
   926  000017             	bset	v1.6
   927  000017             	bts0	v2.2
   928  000017             	bset	v1.5
   929  000017             	bts0	v2.3
   930  000017             	bset	v1.4
   931  000017             	bts0	v2.4
   932  000017             	bset	v1.3
   933  000017             	bts0	v2.5
   934  000017             	bset	v1.2
   935  000017             	bts0	v2.6
   936  000017             	bset	v1.1
   937  000017             	bts0	v2.7
   938  000017             	bset	v1.0
   939  000017             	endm
   940  000017             //====================================================
   941  000017             //Note:将v2中的数据bit倒置取反并存于v1中
   942  000017             //====================================================
   943  000017             Convert_M	expand	v1,v2
   944  000017             	clr	v1
   945  000017             	bts1	v2.0
   946  000017             	bset	v1.7
   947  000017             	bts1	v2.1
   948  000017             	bset	v1.6
   949  000017             	bts1	v2.2
   950  000017             	bset	v1.5
   951  000017             	bts1	v2.3
   952  000017             	bset	v1.4
   953  000017             	bts1	v2.4
   954  000017             	bset	v1.3
   955  000017             	bts1	v2.5
   956  000017             	bset	v1.2
   957  000017             	bts1	v2.6
   958  000017             	bset	v1.1
   959  000017             	bts1	v2.7
   960  000017             	bset	v1.0
   961  000017             	endm
   962  000017             //====================================================
   963  000017             //Note: 将位f1与位f2相与赋予f2
   964  000017             //====================================================
   965  000017             AND_f	macro	f1,f2
   966  000017             	bts0	f1
   967  000017             	jmp	$+2
   968  000017             	bclr	f2
   969  000017             	endm
   970  000017             
   971  000017             
   972  000000             .code
   973  000000             	org		00h
   974  000000             	include		vec.asm		; System Vector
   975  000000             ;**********************************
   976  000000             ;	Main routine Vector	  *
   977  000000             ;**********************************
   978  000000   0000      	nop			; 0
   979  000001   0000      	nop			; 1	 you can delete this struction
   980  000002   800A      	jmp	@@int_main	; 2	 you can delete this struction
   981  000003             ;	jmp	@@int_main	; 3	 you can delete this struction
   982  000003             ;	JMP	@@int_main	; 4	; reserved for user!
   983  000003             ;	JMP	@@int_main	; 5	;	|
   984  000003             ;	JMP	@@int_main	; 6	;	|
   985  000003             ;	JMP	@@int_main	; 7	; reserved for user!
   986  000003             ;**********************************
   987  000003             ;	Interrupt Vector	  *
   988  000003             ;**********************************
   989  000008             	org	08h
   990  000008   803C      	jmp	@@int_rs  	; 8 	Interrupt Service Routine
   991  000009             
   992  000009   800A      	jmp	@@int_main	; 9 	you can delete this struction

⌨️ 快捷键说明

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