跪求PIC18F4580单片机的RS232C串口通信程序,功能很简单:我在串口助手上发送什么,单片机就反馈回什么。
下面是我写的代码,在串口助手里发送1,结果接收到的是40。
#include
#pragma config OSC=HS //将振荡器模式设置为高速晶振模式
#pragma config WDT=OFF //关闭看门狗
#pragma config LVP=OFF //关闭低电压编程
#pragma config DEBUG=ON //允许程序进行调试
#pragma config MCLRE=ON //芯片复位使能开关打开
unsigned int i;
void delay();
void PORT_init();
void USART_init();
/*=====设置延时=====*/
void delay()
{
for(i=0;i<200;i++)
{ ; ; }
}
/***********端口初始化***********/
void PORT_init()
{
TRISC=0x00;
PORTC=0xff;
}
/***********串口初始化***********/
void USART_init()
{
RCONbits.IPEN=0;
INTCONbits.GIE=0; //禁止中断
SPBRG=0x19;
TXSTA=0x24;
RCSTA=0x90;
BAUDCONbits.BRG16=0;
TRISCbits.TRISC6=0;
TRISCbits.TRISC7=1;
}
/*=====主程序=====*/
void main()
{
unsigned int j=0;
PORT_init();
USART_init();
delay();
while(1)
{
if(PIR1bits.RCIF==1)
{
j=RCREG;
TXREG=j;
while(!PIR1bits.TXIF);
PIR1bits.TXIF=0;
}
}
}