初学PROTUES,做了个两个单片机通讯的模拟,有些问题,请大帮帮忙,谢谢啊!
//发送程序,通过SBUF口发送 0X56
#include <reg51.h>
main()
{
TMOD= 0x20;
SM0=0;
SM1=1;
REN=1;
PCON=0;
TH1 =0XFD;
TL1 =0XFD;
TR1=1;
SBUF=0X56;
}
//接受程序,P1口接受SBUF数据
#include <reg51.h>
main()
{
TMOD= 0x20;
SM0=0;
SM1=1;
REN=1;
PCON=0;
TH1 =0XFD;
TL1 =0XFD;
TR1=1;
while(1)
{
P1=SBUF;while(!RI);RI=0;
}
}
问题1: 这个程序有没有什么错误啊?为什么接受单片机P1口的值一直在晃动。
问题2: 我看书上写发送还要加一条程序,就在SBUF赋值后面, P1=SBUF;while(!TI);TI=0;但如果加上这条程序就无法显示了。
问题3:SBUF的数据加上,是不是就一直存在了?需要while(1)循环码?
问题4:如果做一个电脑与单片机通讯,应该如何改进呢?图片找不到了,记得就是两个单片机P3.0/RXD与P3.1/TXD相互连接,波特率为9600.晶振11.0592)
|
|