微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机串口通信 问题

单片机串口通信 问题

时间: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个

上一篇:DYP-ME007使用
下一篇:为甚麽灯点不亮呢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top