单片机串口通信 问题
时间:10-02
整理:3721RD
点击:
代码如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P0^0;
unsigned char flag,a,i,b;
//uchar code table[]="I get ";
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void main()
{
init();
while(1)
{
if(flag==1)
{
ES=0;
// for(i=0;i<6;i++)
// {
// SBUF=table;
// while(!TI);
// TI=0;
// }
SBUF=b;
while(!TI);
TI=0;
ES=1;
flag=0;
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
b=a;
flag=1;
}
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\376355685\QQ\WinTemp\RichOle\5L9}5XB(9T2LY%_O_BS`G4V.jpg

这是通过另一个软件模拟的。
有没有高手告知一哈其中奥妙。
怎样才能让其显示出说发送的数据。


串口发送代码写在中断函数里。
不得行啊!
太抓狂了!来自: Android客户端
我试过你的程序,能正常显示哦~~
对不起,经过验证。上面的是用protues模拟的时候出现的情况。我今天用keil直接调试的时候就不会出现上述情况。是不是我的protues设置有问题?
另外有没有比较好的这方面的交流QQ群之类的,介绍一个,谢谢!
你那接收和发送的字符都是char型,改成int型试试,这个问题应该是数据定义的问题,自己试试
问一个弱弱的问题:单片机AT89c51为例,一次最多可以收发多少个字符?
我在keil上试了,貌似只能发一个?来自: Android客户端
为什么不用仿真芯片在keil试试看呢
可以用for循环连续发送N个
