通过PC端的串口助手发送一个十六进制数据到单片机,并且在与PORTB连接的8个二极管灯上显示出来。
以下是我的程序:
/****************接收一个字符*******************************/
uchar receive(void)
{
while(!(UCSRA&(1<<RXC)));
return UDR;
data_temp=UDR;
}
/*********************二极管显示**************************/
void extract(void)
{
DDRB=0xFF; //设PD口为输出
PORTB=UDR;
}
/*******************主程序****************************/
void main(void)
{
CLI(); //总中断禁止
init_devices();
SEI(); //总中断允许
receive();
extract();
while(1) //循环等待中断处理
{
}
}
初始化和变量定义应该都没问题,但是好像单片机无法接受数据,灯也不亮
求前辈指教!
改成PORTB=data_temp;也不行