#include <stdio.h>
#include "HardwareProfile.h"
#if defined(PIC_USE_RS485)
void RS485_Init(void)
{
RS485_DIR_IO = Receive;
RS485_DIR_TRIS = 0;
RS485_RX_TRIS = 1;
RS485_TX_TRIS = 0;
/* SPBRG = DIVIDER;
RCSTA = (NINE_BITS|0x90);
TXSTA = (SPEED|NINE_BITS|0x20);*/
//SPBRG=25; //波特率为 9600 Baud Rate = Fosc/(16*(SPBRG+1))
SPBRG=64;
BRGH=1; //高速波特率使能位
TXEN=1; //发送允许
CREN=1; //连续接收选择位
SPEN=1; //串行口使能位
TXIE=0;
RCIE=0; //接收中断使能开启
TXIF=0;
RCIF=0;
PEIE=1;
GIE=1;
}
void RS485_Putch(BYTE byte)
{
/* output one byte */
while(!TXIF) /* set when register is empty */
continue;
RS485_DIR_IO = Send;
TXREG = byte;
while(!TRMT) /* set when register is empty */
;
RS485_DIR_IO = Receive;
}
BYTE RS485_Getch(void)
{
/* retrieve one byte */
while(!RCIF) /* set when register is not empty */
continue;
RCIF = 0;
return RCREG;
}
BYTE RS485_RW(void)
{
BYTE temp;
RS485_Putch(temp = RS485_Getch());
return temp;
}
#endif
本文关键字:源程序 PIC单片机,单片机-工控设备 - PIC单片机
上一篇:PIC16C74单片机显示程序