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

📄 adsbin.c

📁 ADS-B接收机DIY全套资料
💻 C
📖 第 1 页 / 共 2 页
字号:
/*********************************************************************
 * FileName:        adsbin.c
 * Dependencies:    See INCLUDES section below
 * Processor:       PIC18
 * Compiler:        C18 2.30.01+
 * Company:         sprut
 * Copyright:       2007-2010 Joerg Bredendiek (sprut)
 *
 *
 ********************************************************************/

/*
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */



/** I N C L U D E S **********************************************************/
#include <p18cxxx.h>
#include <usart.h>
#include "system\typedefs.h"
#include "system\usb\usb.h"
#include "io_cfg.h"             // I/O pin mapping

#include "delays.h"
//#include "system\interrupt\interrupt.h"
#include "user\user.h"
#include "user\adsbin.h"


/** V A R I A B L E S ********************************************************/
#pragma udata


/** D E C L A R A T I O N S **************************************************/
#pragma code


// 0x2E ... 0x34 ...0x39 ... 0x3B
// AAA0 ... AAA6 ...AAA11 ... AAA13
char adsb_in(void)
{
	_asm
	BRA	M04252

// Fehler im Datenblock
M0423E:
	BSF	INTCON, GIEH, A
M0424E:
	BRA	M04254				// Return falls 0x16=0		



// Einstieg: gerufen von 03F46
// Fehler im Header
M04252:
	BSF	INTCON, GIEH, A
M04254:
	BCF	PORTC, 1, A			// HDR_OUT
	//BTFSC	0x16, 0, 1		// wird gesetzt wenn usart was empfaengt
	DECFSZ	adsbLoopL, F, A	// 255 erfolglose Leseversuche, danach zurueck
	BRA		M0425C
	DECFSZ	adsbLoopH, F, A
	BRA		M04254
	RETURN	1				// true,  Fehler, nichts empfangen

// Einlesen : ist das ein Header  ?
M0425C:
	BCF	INTCON, GIEH, A
	BTFSC	PORTC, 0, A
	BTFSS	PORTC, 0, A
M04262:
	BRA	M04252	
M04264:
	MOVF	TMR1L, W, A
	MOVWF	Zeit, 1			//MOVWF	0x18, 1	
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M0426E:
	BRA	M04252	
M04270:
	NOP		
	NOP		
	NOP		
	BTFSC	PORTC, 0, A
	BTFSS	PORTC, 0, A
M0427A:
	BRA	M04252	
M0427C:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M04286:
	BRA	M04252	
M04288:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M04292:
	BRA	M04252	
M04294:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M0429E:
	BRA	M04252	
M042A0:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M042AA:
	BRA	M04252	
M042AC:
	NOP		
	NOP		
	NOP		
	BTFSC	PORTC, 0, A
	BTFSS	PORTC, 0, A
M042B6:
	BRA	M04252	
M042B8:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M042C2:
	BRA	M04252	
M042C4:
	NOP		
	NOP		
	NOP		
	BTFSC	PORTC, 0, A
	BTFSS	PORTC, 0, A
M042CE:
	BRA	M04252	
M042D0:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M042DA:
	BRA	M04252	
M042DC:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M042E6:
	BRA	M04252	
M042E8:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M042F2:
	BRA	M04252	
M042F4:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M042FE:
	BRA	M04252	
M04300:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M0430A:
	BRA	M04252	
M0430C:
	NOP		
	NOP		
	NOP		
	BTFSS	PORTC, 0, A
	BTFSC	PORTC, 0, A
M04316:
	BRA	M04252	


// es folgt der Datenblock
// 5 Bit Format-Number
// DF00		00000	56 bit
// DF04		00100	56 bit
// DF05		00101	56 bit
// DF11		01011	56 bit

// DF16		10000	112 bit
// DF17		10001	112 bit
// DF19		10011	112 bit
// DF20		10100	112 bit
// DF21		10101	112 bit
// DF22		10110	112 bit
// DF24		11000	112 bit
//
// das erste Bit unterscheidet zwischen 56 und 112 bit

M04318:
	NOP		
	BCF	PORTC, 2, A
	BSF	PORTC, 1, A
	RRCF	PORTC, W, A
	RLCF	AAA0, F, 1
	CLRF	Lang, 1					// 56 oder 112 bit noch unbekannt	//CLRF	0x14, 1	
	BTFSC	AAA0, 0, 1				// Test 56 oder 112 Bit ?
	INCF	Lang, F, 1				// 112 Bit : 0x14=1					//INCF	0x14, F, 1	
M04328:
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA0, W, 1
	ANDLW	0x01	
	BZ	M0423E						// Fehler im Datenblock
	NOP		
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA0, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA0, W, 1
	ANDLW	0x01	
	BNZ	M0434C	
	BRA	M0423E	
M0434C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA0, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA0, W, 1
	ANDLW	0x01	
	BNZ	M04364	
	BRA	M0423E	
M04364:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA0, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA0, W, 1
	ANDLW	0x01	
	BNZ	M0437C	
	BRA	M0423E	
M0437C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA0, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA0, W, 1
	ANDLW	0x01	
	BNZ	M04394	
	BRA	M0423E	
M04394:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA0, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA0, W, 1
	ANDLW	0x01	
	BNZ	M043AC	
	BRA	M0423E	
M043AC:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA0, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA0, W, 1
	ANDLW	0x01	
	BNZ	M043C4	
	BRA	M0423E	
M043C4:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA0, F, 1
	NOP		
	NOP		
	NOP		
	BSF	ADCON0, 1, A
	MOVF	PORTC, W, A
	XORWF	AAA0, W, 1
	ANDLW	0x01	
	BNZ	M043DC	
	BRA	M0423E	
M043DC:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA1, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA1, W, 1
	ANDLW	0x01	
	BNZ	M043F4	
	BRA	M0423E	
M043F4:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA1, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA1, W, 1
	ANDLW	0x01	
	BNZ	M0440C	
	BRA	M0423E	
M0440C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA1, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA1, W, 1
	ANDLW	0x01	
	BNZ	M04424	
	BRA	M0423E	
M04424:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA1, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA1, W, 1
	ANDLW	0x01	
	BNZ	M0443C	
	BRA	M0423E	
M0443C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA1, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA1, W, 1
	ANDLW	0x01	
	BNZ	M04454	
	BRA	M0423E	
M04454:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA1, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA1, W, 1
	ANDLW	0x01	
	BNZ	M0446C	
	BRA	M0423E	
M0446C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA1, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA1, W, 1
	ANDLW	0x01	
	BNZ	M04484	
	BRA	M0423E	
M04484:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA1, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA1, W, 1
	ANDLW	0x01	
	BNZ	M0449C	
	BRA	M0423E	
M0449C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA2, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA2, W, 1
	ANDLW	0x01	
	BNZ	M044B4	
	BRA	M0423E	
M044B4:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA2, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA2, W, 1
	ANDLW	0x01	
	BNZ	M044CC	
	BRA	M0423E	
M044CC:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA2, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA2, W, 1
	ANDLW	0x01	
	BNZ	M044E4	
	BRA	M0423E	
M044E4:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA2, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA2, W, 1
	ANDLW	0x01	
	BNZ	M044FC	
	BRA	M0423E	
M044FC:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA2, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA2, W, 1
	ANDLW	0x01	
	BNZ	M04514	
	BRA	M0423E	
M04514:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA2, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA2, W, 1
	ANDLW	0x01	
	BNZ	M0452C	
	BRA	M0423E	
M0452C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA2, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA2, W, 1
	ANDLW	0x01	
	BNZ	M04544	
	BRA	M0423E	
M04544:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA2, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA2, W, 1
	ANDLW	0x01	
	BNZ	M0455C	
	BRA	M0423E	
M0455C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA3, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA3, W, 1
	ANDLW	0x01	
	BNZ	M04574	
	BRA	M0423E	
M04574:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA3, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA3, W, 1
	ANDLW	0x01	
	BNZ	M0458C	
	BRA	M0423E	
M0458C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA3, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA3, W, 1
	ANDLW	0x01	
	BNZ	M045A4	
	BRA	M0423E	
M045A4:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA3, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA3, W, 1
	ANDLW	0x01	
	BNZ	M045BC	
	BRA	M0423E	
M045BC:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA3, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA3, W, 1
	ANDLW	0x01	
	BNZ	M045D4	
	BRA	M0423E	
M045D4:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA3, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA3, W, 1
	ANDLW	0x01	
	BNZ	M045EC	
	BRA	M0423E	
M045EC:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA3, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA3, W, 1
	ANDLW	0x01	
	BNZ	M04604	
	BRA	M0423E	
M04604:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA3, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA3, W, 1
	ANDLW	0x01	
	BNZ	M0461C	
	BRA	M0423E	
M0461C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA4, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA4, W, 1
	ANDLW	0x01	
	BNZ	M04634	
	BRA	M0423E	
M04634:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA4, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA4, W, 1
	ANDLW	0x01	
	BNZ	M0464C	
	BRA	M0423E	
M0464C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA4, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA4, W, 1
	ANDLW	0x01	
	BNZ	M04664	
	BRA	M0423E	
M04664:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA4, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA4, W, 1
	ANDLW	0x01	
	BNZ	M0467C	
	BRA	M0423E	
M0467C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA4, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA4, W, 1
	ANDLW	0x01	
	BNZ	M04694	
	BRA	M0423E	
M04694:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA4, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA4, W, 1
	ANDLW	0x01	
	BNZ	M046AC	
	BRA	M0423E	
M046AC:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA4, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA4, W, 1
	ANDLW	0x01	
	BNZ	M046C4	
	BRA	M0423E	
M046C4:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA4, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA4, W, 1
	ANDLW	0x01	
	BNZ	M046DC	
	BRA	M0423E	
M046DC:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA5, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA5, W, 1
	ANDLW	0x01	
	BNZ	M046F4	
	BRA	M0423E	
M046F4:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA5, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA5, W, 1
	ANDLW	0x01	
	BNZ	M0470C	
	BRA	M0423E	
M0470C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA5, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA5, W, 1
	ANDLW	0x01	
	BNZ	M04724	
	BRA	M0423E	
M04724:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA5, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA5, W, 1
	ANDLW	0x01	
	BNZ	M0473C	
	BRA	M0423E	
M0473C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA5, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA5, W, 1
	ANDLW	0x01	
	BNZ	M04754	
	BRA	M0423E	
M04754:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA5, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA5, W, 1
	ANDLW	0x01	
	BNZ	M0476C	
	BRA	M0423E	
M0476C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA5, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA5, W, 1
	ANDLW	0x01	
	BNZ	M04784	
	BRA	M0423E	
M04784:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA5, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA5, W, 1
	ANDLW	0x01	
	BNZ	M0479C	
	BRA	M0423E	
M0479C:
	NOP		
	RRCF	PORTC, W, A
	RLCF	AAA6, F, 1
	NOP		
	NOP		
	NOP		
	NOP		
	MOVF	PORTC, W, A
	XORWF	AAA6, W, 1
	ANDLW	0x01	
	BNZ	M047B4	
	BRA	M0423E	
M047B4:
	NOP		

⌨️ 快捷键说明

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