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

📄 main.lst

📁 基本完成迷控制算法
💻 LST
📖 第 1 页 / 共 5 页
字号:
   497  000017             //Note:进入中断的压栈保护,需用户自行定义Accbuf等Ram单元
   498  000017             //=====================================================
   499  000017             @push2	expand
   500  000017             	b0xch  accbuf,a
   501  000017             	b0mov  a,pflag
   502  000017             	b0mov  pflagbuf,a
   503  000017             	b0mov  a,rbank
   504  000017             	b0mov  rbankbuf,a
   505  000017             
   506  000017             	b0mov  a,l
   507  000017             	b0mov  lbuf,a
   508  000017             	b0mov  a,h
   509  000017             	b0mov  hbuf,a
   510  000017             	b0mov  a,r
   511  000017             	b0mov  rbuf,a	
   512  000017             	b0mov  a,x
   513  000017             	b0mov  xbuf,a	
   514  000017             	b0mov  a,y
   515  000017             	b0mov  ybuf,a
   516  000017             	b0mov  a,z
   517  000017             	b0mov  zbuf,a
   518  000017             	endm
   519  000017             //=======================================================
   520  000017             //Note:进入中断的压栈保护,需用户自行定义Accbuf等Ram单元
   521  000017             //=======================================================
   522  000017             @push1	expand
   523  000017             	b0xch  accbuf,a
   524  000017             	b0mov  a,pflag
   525  000017             	b0mov  pflagbuf,a
   526  000017             	b0mov  a,rbank
   527  000017             	b0mov  rbankbuf,a
   528  000017             
   529  000017             	b0mov  a,r
   530  000017             	b0mov  rbuf,a	
   531  000017             	b0mov  a,y
   532  000017             	b0mov  ybuf,a
   533  000017             	b0mov  a,z
   534  000017             	b0mov  zbuf,a 
   535  000017             	endm
   536  000017             //=======================================================
   537  000017             //Note:进入中断的压栈保护,需用户自行定义Accbuf等Ram单元
   538  000017             //=======================================================
   539  000017             @push0	expand
   540  000017             	b0xch  accbuf,a
   541  000017             	b0mov  a,pflag
   542  000017             	b0mov  pflagbuf,a
   543  000017             	b0mov  a,rbank
   544  000017             	b0mov  rbankbuf,a
   545  000017             	endm
   546  000017             //=======================================================
   547  000017             //Note:退出中断的出栈恢复,需用户自行定义Accbuf等Ram单元
   548  000017             //=======================================================
   549  000017             @pop2	expand
   550  000017             	b0mov  a,lbuf
   551  000017             	b0mov  l,a
   552  000017             	b0mov  a,hbuf
   553  000017             	b0mov  h,a
   554  000017             	b0mov  a,rbuf
   555  000017             	b0mov  r,a
   556  000017             	b0mov  a,xbuf
   557  000017             	b0mov  x,a
   558  000017             	b0mov  a,ybuf
   559  000017             	b0mov  y,a
   560  000017             	b0mov  a,zbuf
   561  000017             	b0mov  z,a
   562  000017             	
   563  000017             	b0mov  a,rbankbuf
   564  000017             	b0mov  rbank,a
   565  000017             	b0mov  a,pflagbuf
   566  000017             	b0mov  pflag,a
   567  000017             	b0xch  a,accbuf
   568  000017             	endm
   569  000017             //====================================================
   570  000017             //Note:退出中断的出栈恢复,需用户自行定义Accbuf等Ram单元
   571  000017             //====================================================
   572  000017             @pop1	expand
   573  000017             	b0mov  a,rbuf
   574  000017             	b0mov  r,a
   575  000017             	b0mov  a,ybuf
   576  000017             	b0mov  y,a
   577  000017             	b0mov  a,zbuf
   578  000017             	b0mov  z,a
   579  000017             	
   580  000017             	b0mov  a,rbankbuf
   581  000017             	b0mov  rbank,a
   582  000017             	b0mov  a,pflagbuf
   583  000017             	b0mov  pflag,a
   584  000017             	b0xch  a,accbuf
   585  000017             	endm
   586  000017             //====================================================
   587  000017             //Note:退出中断的出栈恢复,需用户自行定义Accbuf等Ram单元
   588  000017             //====================================================
   589  000017             @pop0	expand
   590  000017             	b0mov  a,rbankbuf
   591  000017             	b0mov  rbank,a
   592  000017             	b0mov  a,pflagbuf
   593  000017             	b0mov  pflag,a
   594  000017             	b0xch  a,accbuf
   595  000017             	endm
   596  000017             //====================================================
   597  000017             //Note:进入RAM的bank0
   598  000017             //====================================================
   599  000017             bank0	expand
   600  000017             	clr	rbank
   601  000017             	endm
   602  000017             //====================================================
   603  000017             //Note:进入RAM的bank1
   604  000017             //====================================================
   605  000017             bank1	expand
   606  000017             	b0mov    rbank,#01h
   607  000017             	endm
   608  000017             //====================================================
   609  000017             //Note:进入RAM的bank2
   610  000017             //====================================================
   611  000017             bank2	expand
   612  000017             	b0mov    rbank,#02h
   613  000017             	endm
   614  000017             //====================================================
   615  000017             //Note:进入RAM的bank15
   616  000017             //====================================================
   617  000017             bank15  expand
   618  000017             	b0mov    rbank,#0fh
   619  000017             	endm
   620  000017             //====================================================
   621  000017             //Note:进入RAM的bank0,并退出子程序
   622  000017             //====================================================
   623  000017             ret_ban0	expand
   624  000017             	bank0
   625  000017             	ret
   626  000017             	endm
   627  000017             //====================================================
   628  000017             //Note:RAM资料的指针指向确定
   629  000017             //====================================================
   630  000017             point_hl	expand  val
   631  000017             	b0mov    h,#val$m
   632  000017             	b0mov    l,#val$l
   633  000017             	endm
   634  000017             //====================================================
   635  000017             //Note:ROM资料的指针指向确定
   636  000017             //====================================================
   637  000017             point_yz	expand  val
   638  000017             	b0mov    y,#val$m
   639  000017             	b0mov    z,#val$l
   640  000017             	endm
   641  000017             //====================================================
   642  000017             //Note:ROM资料的指针指向确定
   643  000017             //====================================================
   644  000017             point_xyz	expand  val
   645  000017             	b0mov    x,#val$h
   646  000017             	b0mov    y,#val$m
   647  000017             	b0mov    z,#val$l
   648  000017             	endm
   649  000017             //====================================================
   650  000017             //	to check acc in some range, example : #30h - #39h,
   651  000017             //	use boundi	ram_to_acc, #30h, #39h, over_jmp_addr
   652  000017             //	if acc is under the range
   653  000017             //      acc = acc - sm
   654  000017             //	else
   655  000017             //	   jmp over_jmp=addr
   656  000017             //	Note :	1. acc will be changed, c, dc, z flag will be changed
   657  000017             //           	2. the macro is used for "jmp_ar" macro
   658  000017             //Val中的数据介于sm和la之间程序跳到adr处
   659  000017             //====================================================
   660  000017             boundi	expand	val, sm, la, adr
   661  000017             	mov	a,val
   662  000017             	add	a, #(0xff - (la))
   663  000017             	b0bts0	fc
   664  000017             	jmp_ret	<adr>
   665  000017             	ifnb	<sm>
   666  000017             		if	(sm) > 0
   667  000017             			add	a, #((la) - (sm) + 1)
   668  000017             			b0bts1	fc
   669  000017             			jmp_ret	<adr>
   670  000017             		endif
   671  000017             	endif
   672  000017             	mov   a,val
   673  000017             	sub     a,#sm
   674  000017             	endm
   675  000017             //====================================================
   676  000017             //	to add ram=ram+1 from 00 to ff
   677  000017             //	if ram > <la>
   678  000017             //      ram = <sm> 
   679  000017             //====================================================
   680  000017             lim_inc expand val, sm, la
   681  000017             	incms    val
   682  000017             	jmp      $+2
   683  000017             	jmp      $+4
   684  000017             	b0mov    a,val
   685  000017             	sub      a,#((la) + 1 )
   686  000017             	jnc      $+3
   687  000017             	mov      a,#sm
   688  000017             	b0mov    val,a
   689  000017                 endm
   690  000017             //====================================================
   691  000017             //	to sub ram=ram-1 from <sm> to <la>
   692  000017             //	if ram < <sm>
   693  000017             //      ram = <la> 
   694  000017             //====================================================
   695  000017             lim_dec expand val, sm, la
   696  000017             	if	sm == 0
   697  000017             		b0mov   a,val
   698  000017             		jnz     $+4
   699  000017             		mov     a,#la
   700  000017             		b0mov   val,a
   701  000017             		jmp	$+3
   702  000017             		decms   val
   703  000017             		nop
   704  000017             	else
   705  000017             		decms   val
   706  000017             		nop
   707  000017             		b0mov   a,val
   708  000017             		sub     a,#( sm - 1 )
   709  000017             		jnc	$+3
   710  000017             		mov     a,#la
   711  000017             		b0mov   val,a
   712  000017             	endif
   713  000017             	endm
   714  000017             //====================================================
   715  000017             //	to add ram=ram+1 from 00 to ff
   716  000017             //	if ram > <la>
   717  000017             //      ram = <la> 
   718  000017             //====================================================
   719  000017             limh_inc	expand val, sm, la
   720  000017             	incms    val
   721  000017             	jmp      $+2
   722  000017             	jmp      $+4
   723  000017             	b0mov    a,val
   724  000017             	sub      a,#((la) + 1 )
   725  000017             	jnc      $+3
   726  000017             	mov      a,#la
   727  000017             	b0mov    val,a
   728  000017                 endm
   729  000017             //====================================================
   730  000017             //	to sub ram=ram-1 from <sm> to <la>
   731  000017             //	if ram < <sm>
   732  000017             //      ram = <sm> 
   733  000017             //====================================================
   734  000017             liml_dec expand val, sm, la
   735  000017             	if	sm == 0
   736  000017             		b0mov   a,val
   737  000017             		jnz     $+4
   738  000017             		mov     a,#sm
   739  000017             		b0mov   val,a
   740  000017             		jmp		$+3
   741  000017             		decms   val
   742  000017             		nop
   743  000017             	else
   744  000017             		decms   val

⌨️ 快捷键说明

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