📄 xx.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 + -