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

📄 plane050930v01.lst

📁 应用松翰母体开发的航模飞机的源代码!有舵机控制功能
💻 LST
📖 第 1 页 / 共 4 页
字号:
     1  000000             ;********************************************************
     2  000000             ;  COMPANY      : CHOMP					*
     3  000000             ;  PROJECT NAME : 					*
     4  000000             ;  Author	: 					*
     5  000000             ;  VERSION	: V0.0			      		*
     6  000000             ;  START DATE	: 2004.12.				*
     7  000000             ;  COMPLISH DATE: 2004.12.				*
     8  000000             ;  Modify	: 2004.12.				*
     9  000000             ;  BODY		: SN8P2602				*
    10  000000             ;  COMPILER	: 2K					*
    11  000000             ;  CRYSTAL	: 4MHz					*
    12  000000             ;  Modify function:					*
    13  000000             ; *******************************************************
    14  000000             
    15  000000             ;//Set ICE emulation mode.Pay attention to it be reset after emulation.
    16  000000             ;ICE_MODE	EQU	1
    17  000000             ;// Please set ICE_MODE equ 0  and recompiler  before write the code into IC body
    18  000000             ;//ICE_MODE	EQU	0
    19  000000             
    20  000000             chip	sn8p2602a
    21  000000             //{{SONIX_CODE_OPTION
    22  000000             	.Code_Option	Noise_Filter	Disable
    23  000000             	.Code_Option	Reset_Pin	P15
    24  000000             	.Code_Option	Watch_Dog	Disable		; Disable Watchdog
    25  000000             	.Code_Option	High_Clk	4M_X'tal	; Crystal/Resonator: 2Mhz~10Mhz
    26  000000             	.Code_Option	Fcpu		#0     ; Fcpu = High_Clk/1
    27  000000             	.Code_Option	Security	Enable
    28  000000             	
    29  000000             //}}SONIX_CODE_OPTION
    30  000000             
    31  000000             	include		define.asm
    32  000000             .list
    33  000000             .DATA
    34  000000             
    35  000000             	org	0h				;Bank 0 data section start from RAM address 0x000
    36  0000 D             	AccBuf		ds	1		;Accumulater buffer
    37  0001 D             	PflagBuf	ds	1		;PFLAG buffer
    38  000002             	
    39  0002 D             	Keyinbuf	ds	1		;按键
    40  0003 D             	Keychkbuf	ds	1
    41  0004 D             	Keycvtbuf	ds	1
    42  0005 D             	Keyoldbuf	ds	1
    43  0006 D             	Keychat		ds	1
    44  000007             ;	aplcode		ds	1
    45  0007 D             	csxtable	ds	1	;csx的表值	
    46  0008 D             	gearbuf		ds	1	;输出档位值
    47  0009 D             	inputcount	ds	1	;哪一个控制脚
    48  00000A             	
    49  00000A             ;	wingbuf		ds	1	;左右翼档位
    50  00000A             ;	empennagebuf	ds	1	;尾翼档位
    51  00000A             ;	screwbuf	ds	1	;螺旋桨档位
    52  00000A             ;	swingbuf	ds	1	;摆尾档位
    53  000A D             	wingbuf1	ds	1	;左右翼档位1
    54  000B D             	empennagebuf1	ds	1	;尾翼档位1
    55  000C D             	screwbuf1	ds	1	;螺旋桨档位1
    56  000D D             	swingbuf1	ds	1	;摆尾档位1
    57  00000E             
    58  00000E             ;	wingbuf2	ds	1	;左右翼档位1
    59  00000E             ;	empennagebuf2	ds	1	;尾翼档位1
    60  00000E             ;	screwbuf2	ds	1	;螺旋桨档位1
    61  00000E             ;	swingbuf2	ds	1	;摆尾档位1
    62  00000E             
    63  000E D             	samebuf1	ds	1
    64  000F D             	samebuf2	ds	1
    65  0010 D             	samebuf3	ds	1
    66  0011 D             	samebuf4	ds	1
    67  000012             
    68  000012             	
    69  0012 D             	leveh		ds	1	;接收信号的高电平计数值
    70  0013 D             	level		ds	1	;接收信号的低电平计数值
    71  0014 D             	levecount	ds	1	;接受信号计数值的中间变量
    72  0015 D             	timerswing	ds	1	;摆尾输出振荡波形的计数值
    73  0016 D             	timerempennage	ds	1	;尾翼输出振荡波形的计数值
    74  0017 D             	timerwing	ds	1	;机翼输出振荡波形的计数值
    75  0018 D             	timerscrew	ds	1	;螺旋桨输出振荡波形的计数值
    76  000019             	
    77  000019             	
    78  000019             	
    79  000019             ;	tempmaxh	ds	1
    80  000019             ;	tempmaxl	ds	1
    81  000019             ;	tempmidh	ds	1
    82  000019             ;	tempmidl	ds	1
    83  000019             ;	tempminh	ds	1
    84  000019             ;	tempminl	ds	1
    85  000019             ;	tempvalh	ds	1
    86  000019             ;	tempvall	ds	1
    87  000019             ;	tempcount	ds	1
    88  000019             	
    89  000019             ;	tablebufh	ds	1	;查表值
    90  000019             ;	tablebufl	ds	1	;
    91  000019             	
    92  0019 D             	tablecount	ds	1	;查表的计数值
    93  00001A             ;	tablecountbak	ds	1	;上一次的计数值
    94  00001A             ;	samecount	ds	1	;跟上一次相同的次数
    95  00001A             ;	countbuf	ds	1	;最终结果值
    96  00001A             	
    97  00001A             ;	tmrf1		ds	1
    98  00001A             ;	tmrf2		ds	1
    99  00001A             ;	tmrt1		ds	1
   100  00001A             ;	tmrt2		ds	1
   101  00001A             ;	temp6		ds	1
   102  00001A             		
   103  001A D             	timer1800us	ds	1
   104  001B D             	timer5ms	ds	1
   105  001C D             	timer500ms	ds	1
   106  00001D             ;	timer1s		ds	1
   107  00001D             ;	timer1m		ds	1
   108  00001D             ;	timercount	ds	1	;时间计数
   109  00001D             ;	timertable	ds	1	;定时时间
   110  00001D             	
   111  00001D             	
   112  00001D             		
   113  001D D             	pulsecount1	ds	1	;低电平计数
   114  001E D             	pulsecount2	ds	1	;高电平计数
   115  00001F             				
   116  001F D             	r1		ds	1	;延时
   117  0020 D             	r2		ds	1
   118  000021             	
   119  000021             ;//	temp0		ds	1
   120  000021             ;//	temp1		ds	1
   121  000021             	
   122  0021 D             	flag		ds	1
   123  0022 D             	flag1		ds	1
   124  0023 D             	flag2		ds	1
   125  000024             ;//	flag3		ds	1
   126  000024             ;---------
   127  000024             ;飞机各控制脚输出
   128  000024             ;//set by carman
   129  0024 D             	wingbuf		ds	1	;控制左右翼高电平输出宽度
   130  0025 D             	empennagebuf	ds	1	;控制尾翼高电平输出宽度
   131  0026 D             	screwbuf	ds	1	;控制螺旋桨高电平输出宽度
   132  0027 D             	swingbuf	ds	1	;控制摆尾高电平输出宽度
   133  000028             ;------
   134  000028             ;可以通过设定以下RAM来改变各高电平宽度
   135  0028 D             	wingloadbuf	ds	1	;重新载入左右翼高电平控制信号
   136  0029 D             	empennageloadbuf ds	1	;重新载入尾翼高电平控制信号
   137  002A D             	screwloadbuf	ds	1	;重新载入螺旋桨高电平控制信号
   138  002B D             	swingloadbuf	ds	1	;重新载入摆尾高电平控制信号
   139  00002C             ;-----
   140  002C D             	winglowbuf	ds	1	;控制左右翼低电平输出宽度
   141  002D D             	empennagelowbuf	ds	1	;控制尾翼低电平输出宽度
   142  002E D             	screwlowbuf	ds	1	;控制螺旋桨低电平输出宽度
   143  002F D             	swinglowbuf	ds	1	;控制摆尾低电平输出宽度
   144  000030             ;*************** Define flag ***************
   145  000030             ;时间标志
   146  E 00000021         	t5msflag1	equ	flag.0
   147  E 00010021         	t5msflag2	equ	flag.1
   148  E 00020021         	t5msflag3	equ	flag.2
   149  E 00030021         	t5msflag4	equ	flag.3
   150  E 00040021         	t1800usflag	equ	flag.4
   151  E 00050021         	t200usflag	equ	flag.5
   152  E 00060021         	t500msflag	equ	flag.6
   153  E 00070021         	t5msflag	equ	flag.7
   154  000030             	
   155  000030             	
   156  E 00000022         	csxenbflag		equ	flag1.0	;是否检测csx的信号
   157  E 00010022         	winghighflag		equ	flag1.1	;机翼是否输出振荡波的标志
   158  E 00020022         	empennagehighflag	equ	flag1.2	;尾翼是否输出振荡波的标志
   159  E 00030022         	screwhighflag		equ	flag1.3	;螺旋桨是否输出振荡波的标志
   160  E 00040022         	swinghighflag		equ	flag1.4	;摆尾是否输出振荡波的标志
   161  E 00050022         	errorflag		equ	flag1.5	;
   162  000030             ;	singleflag		equ	flag1.6	;遥控接收信号的中断标志
   163  E 00070022         	firstflag		equ	flag1.7	;第一个接收信号的标志
   164  000030             	
   165  E 00000023         	keystatflag		equ	flag2.0
   166  E 00010023         	t18msflag		equ	flag2.1
   167  000030             ;---------
   168  000030             ;飞机各控制脚状态输出切换
   169  000030             ;//set by carman
   170  E 00020023         	wingstatflag		equ	flag2.2	;=0:high output,=1:low output
   171  E 00030023         	empennagestatflag	equ	flag2.3
   172  E 00040023         	screwstatflag		equ	flag2.4
   173  E 00050023         	swingstatflag		equ	flag2.5
   174  000030             
   175  000030             ;	t0count		equ	#230;231
   176  E 00000005         	samecontant		equ	#5	;解码得到相同的次数
   177  000030             ;----------------------------------------------
   178  000030             ;-------------constant define------------------
   179  000030             
   180  000030             ;*************Port define**************************
   181  000030             
   182  E 000000D0                 singleflag	equ     p0.0	;遥控接收脚
   183  E 000100D1         	ptwing		equ	p1.1	;机翼
   184  E 000000D1         	ptscrew		equ	p1.0	;螺旋桨
   185  E 000200D1         	ptempennage	equ	p1.2	;尾翼
   186  E 000300D1               	ptswing		equ     p1.3	;摆尾
   187  000030             	
   188  E 000000D5                	ptcsx1		equ	p5.0	;前后陀螺仪控制信号	
   189  E 000100D5         	ptcsx2		equ	p5.1	;
   190  E 000200D5         	ptcsx3		equ	p5.2	;
   191  E 000300D5         	ptcsx4		equ	p5.3	;
   192  E 000400D5         	ptcsy1		equ	p5.4	;左右陀螺仪控制信号
   193  E 000500D5         	ptcsy2		equ	p5.5	;
   194  E 000600D5         	ptcsy3		equ	p5.6	;
   195  E 000700D5         	ptcsy4		equ	p5.7	;
   196  000030             		
   197  000030             	
   198  000030             ;*********Micro define as following****************
   199  000030             	NOTBIT		macro bit
   200  000030             			b0bts0 bit
   201  000030             			jmp $+3
   202  000030             			b0bset bit
   203  000030             			jmp $+2
   204  000030             			b0bclr bit
   205  000030             			endm
   206  000030             
   207  000030             	IFLT16		expand mem1,val1,val2,adr			;mem<val val-->adr
   208  000030             			local flt00,flt10,flt20,flt30
   209  000030             			mov a,mem1+1
   210  000030             			cmprs a,val2
   211  000030             			jmp flt10
   212  000030             			mov a,mem1
   213  000030             			cmprs a,val1
   214  000030             			jmp flt20
   215  000030             			jmp flt30
   216  000030             		flt20:
   217  000030             			b0bts1 fc
   218  000030             			jmp adr
   219  000030             			jmp flt30
   220  000030             		flt10:
   221  000030             			b0bts1 fc
   222  000030             			jmp adr
   223  000030             		flt30:
   224  000030             			endm
   225  000030             
   226  000030             
   227  000030             ;***********************************************
   228  000000             .code
   229  000000             	org	0h
   230  000000   8010(2)  	jmp	start
   231  000001             	
   232  000008             	org	08h
   233  000008   810A(2)  	jmp	interruptSub
   234  000009             	
   235  000010             	org	10h
   236  000010             
   237  000010             	include		main.asm
   238  000010             ;***********************************************
   239  000010             start:
   240  000010   0000(1)  	nop
   241  000011   C02A(2)  	call		PortInitial
   242  000012             ;//	call		RAMInitial
   243  000012             ;//	call		SysInitial
   244  000012             ;//	call		pdelay100ms
   245  000012   C02A(2)  	call		PortInitial
   246  000013   C019(2)  	call		RAMInitial
   247  000014   C03F(2)  	call		SysInitial
   248  000015             ;***********************************************
   249  000015             ;//	b0bclr	fgie
   250  000015             mainloop:
   251  000015             ;//	jmp	mainloop
   252  000015             ;-----------------------------------------------
   253  000015             ;//test mode
   254  000015             looplow:
   255  000015             /*
   256  000015             	b0bclr	ptwing
   257  000015             	mov_	r1,#80
   258  000015             	call	Pdelay10us
   259  000015             	mov	a,#2
   260  000015             	add	r2,a
   261  000015             	mov	a,r2
   262  000015             	cmprs	a,#19
   263  000015             	jmp	$+3
   264  000015             	mov	a,#1
   265  000015             	mov	r2,a
   266  000015             	mov	a,r2
   267  000015             	mov	r1,a	
   268  000015             	b0bset	ptwing
   269  000015             ;//	mov_	r1,#1
   270  000015             	call	Pdelay10us
   271  000015             	b0bclr	ptwing
   272  000015             	nop
   273  000015             */
   274  000015             ;------
   275  000015             /*
   276  000015             	b0bclr	ptwing
   277  000015             	mov_	r2,#160
   278  000015             	call	Pdelay100us	;50us
   279  000015             	b0bset	ptwing
   280  000015             	mov_	r2,#50
   281  000015             	call	Pdelay100us	;50us
   282  000015             */
   283  000015             ;//	jmp	looplow
   284  000015             	
   285  000015             ;-----------------------------------------------	
   286  000015   2D5A(1)  	mov	a,#5ah
   287  000016   1FCC(1)  	mov 	wdtr,a
   288  000017   C1EC(2)  	call	mnint
   289  000018             ;//	call	mnkey
   290  000018             ;//	call	mnapp
   291  000018   8015(2)  	jmp	mainloop
   292  000019             	
   293  000019             ;***********************************************
   294  000019             ;***********************************************
   295  000019             ;***********************************************
   296  000019             RAMInitial:
   297  000019   2B84(1)  	clr	Y    				;Select bank 0
   298  00001A   2D2F(1)  	mov	A,#0x2f
   299  00001B   2F83(1)  	b0mov	Z,A				;Set @YZ address from 7fh
   300  00001C             
   301  00001C             ClrRAM10:
   302  00001C   2BE7(1)  	clr	@YZ				;Clear @YZ content
   303  00001D   2683(1+S)  	decms	Z  				;z = z - 1 , skip next if z=0
   304  00001E   801C(2)  	jmp	ClrRAM10
   305  00001F   2BE7(1)  	clr 	@YZ				;Clear address 0x00
   306  000020             ;--------------------set some content----------------
   307  000020             ;设定各控制脚归零点
   308  000020   2D21(1)  	mov	a,#33
   309  000021   2F24(1)  	b0mov	wingbuf,a
   310  000022   2F28(1)  	b0mov	wingloadbuf,a	
   311  000023             ;//	mov	a,#33		
   312  000023   2F25(1)  	b0mov   empennagebuf,a	
   313  000024   2F29(1)  	b0mov	empennageloadbuf,a
   314  000025             ;//	mov	a,#33	
   315  000025   2F26(1)  	b0mov   screwbuf,a
   316  000026   2F2A(1)          b0mov	screwloadbuf,a
   317  000027             ;//     b0mov	a,#20	
   318  000027   2F27(1)          b0mov   swingbuf,a
   319  000028   2F2B(1)  	b0mov   swingloadbuf,a	

⌨️ 快捷键说明

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