#include <pic.h>
unsigned char temp;
//延时子程序
void delay()
{
unsigned int k;
for(k=0;k<300;k++);
}
//---------------------------------------------
//主程序
void main()
{
TRISB=0x00; //B口输出
SPBRG=0X06; //设置波特率为9600BPS,我配置项里是选择HS的
TXSTA=0X24; //使能串口发送,选择高速波特率
RCSTA=0X90; //使能串口工作,连续接收
RCIE=0X1; //使能接收中断
GIE=0X1; //开放全局中断
PEIE=0X1; //使能外部中断
while(1) //等待中断
{
switch(temp)
{
case 0x01:PORTB=0x01;break;
case 0x02:PORTB=0x02;break;
case 0x03:PORTB=0x04;break;
case 0x04:PORTB=0x08;break;
case 0x05:PORTB=0x0C;break;
}
delay();
}
}
//--------------------------------------------
//中断函数
void interrupt usart(void)
{
if(RCIF) //判断是否为串口接收中断
{
RCIF=0;
temp=RCREG; // 接收数据并存储
TXREG=temp; // 返送接收到的数据 //把接收到的数据发送回去
}
}
网上看到后自己改了下,在串口调试器里输入01一点都没反应,连RCREG内都没数据,是不是程序有问题?