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

📄 xx.h

📁 pic16f76的GPS接收处理代码 还有串口模拟程序
💻 H
字号:
/*	Transmit and Receive port bits */
#define		SERIAL_PORT	PORTC
#define		SERIAL_TRIS		TRISC
#define		TX_PIN			0
#define		RX_PIN			1

/*	Xtal frequency */
#define		XTAL			20000000

/*	Baud rate	*/
#define		BRATE			9600
//#define		BRATE			600
/*	Don't change anything else */
#define		SCALER			10000000
#define		ITIME			4*SCALER/XTAL	/* Instruction cycle time */
#if BRATE > 1200
#define		DLY				3				/* cycles per null loop */
#define		TX_OHEAD 		13				/* overhead cycles per loop */
#else
#define		DLY				9				/* cycles per null loop */
#define		TX_OHEAD		14
#endif
#define		RX_OHEAD		12				/* receiver overhead per loop */

#define		DELAY(ohead)	(((SCALER/BRATE)-(ohead*ITIME))/(DLY*ITIME))

static bit	TxData@(unsigned)&SERIAL_PORT*8+TX_PIN;/* Map TxData to pin */
static bit	RxData@(unsigned)&SERIAL_PORT*8+RX_PIN;	/* Map RxData to pin */
/**/
#define		INIT_PORT		SERIAL_TRIS = 1<<RX_PIN		/* set up I/O direction */
//void	adinitial(void);

/*ser*/
#define			SerStart		0xAD
#define			SerStop		0xED
#define			SUCCESS	1
#define			ERROR		0
unsigned int		TimeWait;
unsigned char	RxBufffer[12];
unsigned char	TxBufffer[15];
unsigned char	RxFlag;
unsigned char	GetOneChar;
unsigned char 	InputFlag ;
unsigned char	receive_count;

void				PutChar(unsigned char c);
unsigned char	GetChar(void);
unsigned char	GetCommand(unsigned char Num);
void				PutString(unsigned char *DataBuf,unsigned char Num);

void IntSer(void);
void ComOutChar(unsigned char OutData);
void ComOutStr(unsigned char *Str,unsigned int strlen);
void interrupt SerReceive(void);

#define	UARTRxMAXLEN		20
#define	UARTTxMAXLEN		20
#define	INDEXMAXLEN		1
//
#define	DOT				0x0E	
unsigned char		TxDataLen;					/*-要发送的数据长度-*/
struct UartData
{
	unsigned char	UartRxIndex[2];				/*终端命令标示字符,固定为 "CM" (二个字节)43 4D此处用和来表示 */
	unsigned char	UartRxDealIndex;			/*命令码(一个字节)*/
	unsigned char	UartRxDealLen;				/*数据长度(一个字节)*/
	unsigned char	UartRxBuf[UARTRxMAXLEN];	/*数据*/
	unsigned char	UartRxVerify[2];				/*校验和,自CMD起至VERIFYCODE之前所有字节的累加和,
													用两个字节的16进制表示(转换成可见字符)*/

	unsigned char	UartTxIndex[2];				/*邮箱命令提示符,固定为"AP" (二个字节)41 50*/
	unsigned char	UartTxDealIndex;			/*命令码(一个字节)*/
	unsigned char	UartTxDealLen;				/*数据长度(一个字节)*/
	unsigned char	UartTxBuf[UARTTxMAXLEN];	/*数据*/
	unsigned char	UartTxVerify[2];				/*校验和,自CMD起至VERIFYCODE之前所有字节的累加和,
													用两个字节的16进制表示(转换成可见字符)*/

	unsigned char	UartEnd[2];					
};
//bank1	struct UartData Uart0Data;
bank1 unsigned char 		Ser_buffer[20];
unsigned char	CheckRxData(void);
void		CheckTxData(void);
unsigned char	UartData_To_SerBuf(void);
unsigned char HexToChar(unsigned char Data);

void	Delay(unsigned int number);
void	TXData(unsigned char *tx_data,unsigned char a);
void	intil(void);
bit		txflag;
void 	interrupt uart(void);
bank1 	unsigned char ser_buffer[16];

unsigned char	receive_count;

void ComOutChar(unsigned char OutData);
void ComOutStr(unsigned char *Str,unsigned int strlen);

void _delay_ms(char a);


void DelayMain(unsigned int number);

/*BCD码转换*/
unsigned int HEX2BCD(unsigned char hex_data);

⌨️ 快捷键说明

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