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

📄 main.lst

📁 基本完成迷控制算法
💻 LST
📖 第 1 页 / 共 4 页
字号:
     1  000000             ;Note:
     2  000000             ;*****************************************************************************
     3  000000             ;        000000        00000     0000      0000  00000  0000       0000	     *
     4  000000             ;      00     00     00     00    0000      00    0 0     000     000	     *
     5  000000             ;      00      000  00       00   00 00     00    0 0       00   00	     *
     6  000000             ;       00          00       00   00  00    00    0 0        00 00 	     *
     7  000000             ;         000000    00       00   00   00   00    0 0         000	     *
     8  000000             ;    000        00  00       00   00    00  00    0 0        00  00	     *
     9  000000             ;      00       00  00       00   00     00 00    0 0       00    00	     *
    10  000000             ;       00     00    00     00    00      0000    0 0     000      000	     *
    11  000000             ;         000000       00000     0000      0000  00000  0000        0000     *
    12  000000             ;									     *
    13  000000             ; Case Name:telecontrol bike	(SONIX SN8P1602b Inside)		     *
    14  000000             ; Purpose  :RF telecontrol		         			     *
    15  000000             ;				Version: 1.0				     *
    16  000000             ;              Ooooo   		Author: Recal Chao			     *
    17  000000             ;       ooooO  (   )            E-mail: sa1@sonix.cn			     *
    18  000000             ;       (   )   ) / 		Tel   : (86)0755-26719666-235		     *
    19  000000             ;	 \ (   (_/		Fax   : (86)0755-26719786		     *
    20  000000             ;         \_)   		Date  : 2004/05/08			     *  
    21  000000             ;				Company: SONIX TECHNOLOGY(SHENZHEN) CO.,LTD  *
    22  000000             ;*****************************************************************************
    23  000000             ;Fosc=8MHz(Crystal)
    24  000000             ;Fcpu=2MHz
    25  000000             ;***************************************
    26  000000             	chip	SN8P1602b	
    27  000000             //{{SONIX_CODE_OPTION
    28  000000             	.Code_Option	Low_Power	Enable
    29  000000             	.Code_Option	Noise_Filter	Disable
    30  000000             	.Code_Option	OSG		Enable
    31  000000             	.Code_Option	High_Clk	4M_X'tal
    32  000000             	.Code_Option	High_Clk/2	Disable
    33  000000             	.Code_Option	Security	Enable
    34  000000             	.Code_Option	Int_16K_RC	Always_ON
    35  000000             	.Code_Option	Watch_Dog	Enable
    36  000000             //}}SONIX_CODE_OPTION
    37  000000             	
    38  000000             	include		ram.asm    	; User's RAM and Pin Definition
    39  000000             ;************************************************
    40  000000             ;        Main Program Data Define               *
    41  000000             ;************************************************
    42  000000             .data
    43  000000             ;===================Pin Difinition====================
    44  000000             ;Key
    45  E 000000D2         	@key1_p		equ	p2.0	;	|
    46  E 000000C2         	@key1m_p	equ	p2m.0	;	|
    47  E 000100D2         	@key2_p		equ	p2.1	;	|
    48  E 000100C2         	@key2m_p	equ	p2m.1	;	|
    49  E 000200D2         	@key3_p		equ	p2.2	;	|
    50  E 000200C2         	@key3m_p	equ	p2m.2	;	|
    51  E 000300D2         	@key4_p		equ	p2.3	;	|
    52  E 000300C2         	@key4m_p	equ	p2m.3	;	|
    53  E 000400D2         	@key5_p		equ	p2.4	;	|
    54  E 000400C2         	@key5m_p	equ	p2m.4	;	|
    55  E 000500D2         	@key6_p		equ	p2.5	;	|
    56  E 000500C2         	@key6m_p	equ	p2m.5	;	|
    57  E 000600D2         	@key7_p		equ	p2.6	;	|
    58  E 000600C2         	@key7m_p	equ	p2m.6	;	|
    59  E 000700D2         	@key8_p		equ	p2.7	;	|
    60  E 000700C2         	@key8m_p	equ	p2m.7	; 	|
    61  000000             ;RF remote pin
    62  E 000000D1         	O_RFremote	equ	p1.0
    63  E 000000C1         	Om_RFremote	equ	p1m.0
    64  000000             ;=============== Usual work register =================
    65  E 000000C0         ID_code_val	equ	#11000000b	;Note:bit[5..0]==000000,bit6 and bit7 can self select
    66  0000 D             remote_rambuf	ds	1
    67  000001             ;RF remote
    68  E 00000001         RF_pilot_Lval	equ	#1	;
    69  E 00000010         RF_pilot_Hval	equ	#16	;
    70  E 00000002         RF_bit0_Lval	equ	#2	;
    71  E 00000002         RF_bit0_Hval	equ	#2	;
    72  E 00000004         RF_bit1_Lval	equ	#4	;
    73  E 00000004         RF_bit1_Hval	equ	#4	;
    74  E 00000000         RF_stop_Lval	equ	#0	;
    75  E 00000000         RF_stop_Hval	equ	#0	;
    76  E 00000008         RF_databit_val	equ	#8	;
    77  000001             
    78  0001 D             RF_remotecountH	ds	1
    79  0002 D             RF_remotecountL	ds	1
    80  0003 D             RF_remotedata_val	ds	2
    81  0005 D             RF_databit_count	ds	1
    82  0006 D             RF_remote_mode		ds	1
    83  000007             ;	1 = remote pilot, 2 = remote data, 3 = remote stop bit
    84  0007 D             RF_flag	ds	1
    85  E 00000007         	RF_remotestart_f	equ	RF_flag.0	;1==satart remote
    86  E 00010007         	RF_remoteover_f		equ	RF_flag.1	;1==remote temp over
    87  E 00020007         	RF_remotefinish_f	equ	RF_flag.2	;1==remote finish
    88  E 00030007         	RF_remotelevel_f	equ	RF_flag.3	;control output 0/1
    89  000008             ;Key scanning
    90  E 00000008         	@key_num	equ	8	; 
    91  E 00000005         	@debounce_num	equ	#5	; debounce time = xx * Systime base
    92  E 00000000         	@keystate_set	equ	0	; 0: Low voltage detect ; 1: High voltage detect
    93  E 00000000         	@key_power_set	equ	0	; 0: Don't care power ; 1 : care power	
    94  0008 D             @keyinbuf	ds	1	; store the temp key state when scanning
    95  0009 D             @keychkbuf 	ds	1  	; store the key state    
    96  000A D             @keycvtbuf	ds	1
    97  000B D             @keyoldbuf	ds	1      
    98  000C D             @keyflag	ds	1 
    99  E 0000000C         	@keydown_f	equ	@keyflag.0
   100  E 0001000C         	have_key	equ	@keyflag.1
   101  000D D             @keychat	ds	1
   102  000E D             @aplcode	ds	1 
   103  00000F             ;================ Temp work register =================
   104  000F D             wk00	ds	1	; Temp Register
   105  000010             ;wk01	ds	1	;	X
   106  000010             ;wk02	ds	1	;	X
   107  000010             ;wk03	ds	1	;	X
   108  000010             ;wk04	ds	1	;	X
   109  000010             ;wk05	ds	1	;	X
   110  000010             ;wk06	ds	1	;	X
   111  000010             ;wk07	ds	1	;	X
   112  000010             ;wk08	ds	1	;	X
   113  000010             ;wk09	ds	1	;	X
   114  000010             ;wk10	ds	1	;	X
   115  000010             ;wk11	ds	1	;	X
   116  000010             ;wk12	ds	1	; Temp Register
   117  000010             ;============================= Clear Ram =============================
   118  E 00000001         	@Rambank0	equ	1	; 0: No bank0  ; 1: Have bank0
   119  E 00000000         	@Rambank1	equ	0	; 0: No bank1  ; 1: Have bank1
   120  E 00000000         	@Rambank2	equ	0	; 0: No bank2  ; 1: Have bank2
   121  E 00000000         	@Rambank3	equ	0	; 0: No bank3  ; 1: Have bank3
   122  E 00000000         	@Rambank4	equ	0	; 0: No bank4  ; 1: Have bank4
   123  E 00000000         	@Rambank15	equ	0	; 0: No bank15 ; 1: Have bank15
   124  E 00000030         	@Rambank0_val	equ	#48	; xx= 2fh,3fh,7fh...
   125  000010             ;============================ Application =============================
   126  000010             ; Power down	
   127  E 00000000         @Powerdown_set	equ	0	; 0: System not powerdown ; 1: System will power down
   128  000010             ; Green mode
   129  E 00000000         @GreenMode_set	equ	0	; 0: System not Greenmode ; 1: System will Greenmode
   130  000010             ; Oscm setting
   131  E 00000040         @Oscm_set	equ	#01000000b
   132  000010             ; Pedge setting			; 0: Not use pedge register
   133  E 00000000         @Pedge_set	equ	0	; 1: Wakeup by low level ; 2: Wakeup by falling edge
   134  000010             				; 3: Wakeup by rising edge ; 4: Wakeup by change triggle
   135  000010             ; A/D setting
   136  E 00000000         @ADappl_set	equ	0	; 0: Not use A/D ; 1: Use A/D
   137  000010             ; D/A setting
   138  E 00000000         @DAappl_set	equ	0	; 0: Not use D/A ; 1: Use D/A
   139  000010             ; LCD display
   140  E 00000000         @Lcdappl_set	equ	0	; 0: Not use Lcd driver ; 1: Use Lcd driver
   141  000010             ;============================== IO port ===============================
   142  E 00000001         	@ChipP0		equ	1	; 1: P0 exist , 0: P0 not exist
   143  E 00000001         	@ChipP1		equ	1	; 1: P1 exist , 0: P1 not exist
   144  E 00000001         	@ChipP2		equ	1	; 1: P2 exist , 0: P2 not exist
   145  E 00000000         	@ChipP3		equ	0	; 1: P3 exist , 0: P3 not exist
   146  E 00000000         	@ChipP4		equ	0	; 1: P4 exist , 0: P4 not exist
   147  E 00000000         	@ChipP5		equ	0	; 1: P5 exist , 0: P5 not exist
   148  E 00000000         	@ChipP6		equ	0	; 1: P6 exist , 0: P6 not exist
   149  E 00000000         	@ChipP7		equ	0	; 1: P7 exist , 0: P7 not exist
   150  000010             
   151  000010             ;Pur register Set/Port Value Set/IO direction Set
   152  E 00000002         	@Purmode	equ	2	; 0=No Pur register ; 1=Bit set ; 2=Port set 
   153  000010             ;----------------------------------------------	
   154  E 00000005          	@Pur_set	equ	00000101b       ; Ex. 00110001b --> p0UR&p4UR&p5UR=1
   155  000010             ;----------------------------------------------	
   156  000010             ;--------------
   157  E 00000000         	@p1set	equ	#0	; In/Output value
   158  E 00000000         	@p1Wset	equ	#0	; 0: No wakeup / 1: Wakeup
   159  E 00000001         	@p1Mset	equ	#00000001b	; 0: Input     / 1: Output
   160  000010             ;--------------
   161  E 000000FF         	@p2set	equ	#11111111b	; In/Output value
   162  E 00000000         	@p2Mset	equ	#00000000b	; 0: Input / 1: Output
   163  000010             ;--------------
   164  000010             ;--------------
   165  000010             ;--------------
   166  000010             ;--------------
   167  000010             ;--------------
   168  000010             ;===================== Interrupt data Define ======================
   169  0010 D             accbuf		ds	1
   170  0011 D             pflagbuf	ds	1
   171  000012             ;ybuf		ds	1
   172  000012             ;zbuf		ds	1
   173  000012             ;rbuf		ds	1
   174  000012             ;xbuf		ds	1
   175  000012             ;hbuf		ds	1
   176  000012             ;lbuf		ds	1	
   177  0012 D             intwk00		ds	1               ;interrupt work register0
   178  000013             ;intwk01	ds	1               ;interrupt work register1
   179  000013             ;intwk02	ds	1               ;interrupt work register2
   180  000013             ;intwk03	ds	1               ;interrupt work register3
   181  000013             ;intwk04	ds	1		;interrupt work register4
   182  E 00000000         	@ChipP00INT	equ	0	; 1: P00INT exist , 0: P00INT don't care
   183  E 00000000         	@ChipP01INT	equ	0	; 1: P00INT exist , 0: P00INT don't care
   184  E 00000000         	@ChipP02INT	equ	0	; 1: P00INT exist , 0: P00INT don't care
   185  E 00000000         	@ChipT0INT	equ	0	; 1: T0INT  exist , 0: T0INT  don't care
   186  E 00000000         	@ChipSIOINT	equ	0	; 1: SIOINT exist , 0: SIOINT don't care
   187  E 00000001         	@ChipTC0INT	equ	1	; 1: TC0INT exist , 0: TC0INT don't care
   188  E 00000000         	@ChipTC1INT	equ	0	; 1: TC1INT exist , 0: TC1INT don't care
   189  E 00000000         	@ChipADCINT	equ	0	; 1: ADINT  exist , 0: ADINT  don't care
   190  000013             ;====================== Interrupt Interface data define =====================
   191  000013             	
   192  E 00000002         @Systimer_set   equ   2   ;0: No system time base/1: T0 time base/2: Tc0 time base/3: Tc1 time base
   193  000013             	
   194  0013 D             	@intgnd	ds	1		;INT interface register
   195  E 00000000         		@SysT0	equ	0	; 1: Use T0  / 0: Not use T0
   196  E 00000001         		@SysTc0	equ	1	; 1: Use Tc0 / 0: Not use Tc0
   197  E 00000000         		@SysTc1	equ	0	; 1: Use Tc1 / 0: Not use Tc1	
   198  000014             							
   199  E 00000006          	@SysTc0c	equ	#06h	; set Pre-scalar=fcpu/
   200  E 00000070          	@SysTc0m	equ	#70h	; set count steps 250us
   201  E 00000000          	@SysTc0R_set	equ	0	; 1: Use Tc0R / 0: Not use TC0R				
   202  000014              
   203  E 00000000         IRQ=0
   204  E 00000013         	@Sys5msIRQ	equ	@intgnd.IRQ    ;IRQ 5ms flag
   205  000014             ;IRQ=IRQ+1
   206  000014             	;@Sys10msIRQ	equ	@intgnd.IRQ    ;IRQ 10ms flag
   207  000014             IRQ=IRQ+1
   208  E 00010013         	@Sys50msIRQ	equ	@intgnd.IRQ    ;IRQ 50ms flag
   209  000014             ;IRQ=IRQ+1
   210  000014             	;@Sys100msIRQ	equ	@intgnd.IRQ    ;IRQ 100ms flag
   211  000014             ;IRQ=IRQ+1
   212  000014             	;@Sys200msIRQ	equ	@intgnd.IRQ    ;IRQ 200ms flag
   213  000014             ;IRQ=IRQ+1
   214  000014             	;@Sys300msIRQ	equ	@intgnd.IRQ    ;IRQ 300ms flag
   215  000014             ;IRQ=IRQ+1
   216  000014             	;@Sys400msIRQ	equ	@intgnd.IRQ    ;IRQ 400ms flag
   217  000014             ;IRQ=IRQ+1
   218  000014             	;@Sys500msIRQ	equ	@intgnd.IRQ    ;IRQ 500ms flag
   219  000014             ;IRQ=IRQ+1
   220  000014             	;@Sys600msIRQQ	equ	@intgnd.IRQ    ;IRQ 600ms flag
   221  000014             ;IRQ=IRQ+1
   222  000014             	;@Sys700msIRQ	equ	@intgnd.IRQ    ;IRQ 700ms flag
   223  000014             ;IRQ=IRQ+1
   224  000014             	;@Sys800msIRQ	equ	@intgnd.IRQ    ;IRQ 800ms flag
   225  000014             ;IRQ=IRQ+1
   226  000014             	;@Sys900msIRQ	equ	@intgnd.IRQ    ;IRQ 900ms flag
   227  000014             ;IRQ=IRQ+1
   228  000014             	;@Sys1sIRQ	equ	@intgnd.IRQ    ;IRQ 1000ms flag
   229  000014             ;IRQ=IRQ+1
   230  000014             	;@Sys5sIRQ	equ	@intgnd.IRQ    ;IRQ 5000ms flag
   231  000014             ;IRQ=IRQ+1
   232  000014             	;@Sys10sIRQ	equ	@intgnd.IRQ    ;IRQ 10000ms flag
   233  000014             ;IRQ=IRQ+1
   234  000014             	;@Sys30sIRQ	equ	@intgnd.IRQ    ;IRQ 30000ms flag
   235  000014             ;IRQ=IRQ+1
   236  000014             	;@Sys60sIRQ	equ	@intgnd.IRQ    ;IRQ 60000ms flag
   237  000014             ;IRQ=IRQ+1
   238  000014             	;@Sys300sIRQ	equ	@intgnd.IRQ    ;IRQ 300000ms flag
   239  000014             
   240  000014             
   241  0014 D             	@Sys50msC	ds	1               ;count for 50ms INT
   242  E 0000000A         		@Sys50msStep	equ	#10     ;count step of 5ms INT
   243  000015             
   244  000015             
   245  000015             
   246  000015             
   247  000015             
   248  000015             
   249  000015             
   250  000015             
   251  000015             
   252  000015             
   253  000015             
   254  000015             
   255  000015             
   256  000015             
   257  000015             
   258  000015             ;Others
   259  E 00000000         bit0		equ	0
   260  E 00000001         bit1		equ	1
   261  E 00000002         bit2		equ	2
   262  E 00000003         bit3		equ	3
   263  E 00000004         bit4		equ	4
   264  E 00000005         bit5		equ	5
   265  E 00000006         bit6		equ	6
   266  E 00000007         bit7		equ	7
   267  000015             ;	include		extern.h	; Project's Macro	
   268  000015             	includestd	macro1.h	; SONIX Standard MACRO1
   269  000015             	includestd	macro2.h	; SONIX Standard MACRO2
   270  000015             	includestd	macro3.h	; SONIX Standard MACRO3
   271  000015             	includestd	macro.h		; Sonix's full macro liarbry
   272  000015             
   273  000000             .code
   274  000000             	org		00h

⌨️ 快捷键说明

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