标题: 关于单片机串口收发字符串问题,串口没有任何反应 [打印本页]

作者: hecc    时间: 2020-12-5 07:50
标题: 关于单片机串口收发字符串问题,串口没有任何反应
编译没有问题,但上位机没有显示,泪目了,,,,

#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit rxd=P3^0;
sbit txd=P3^1;
uint rec=0,flag=0;
uchar Fes[]="11111";
void ckinit();
void Fes_display(uint rrec);
void dispString(uchar *fes);
void Fes_search(uint mo,uint dd);
void send_byte(uchar by);
void send_string(uchar *p);

void main()
{
   ckinit();
   while (1)
   {
           if(flag==1)
        {        
                Fes_display(rec);
                send_string(Fes);
                flag=0;
           }
        }
}

void ckinit()
{
   TMOD = 0x20;
   TR1 = 1;
   SM0 = 0;
   SM1 = 1;
   REN = 1;
   EA = 1;
   ES = 1;
}

void ser() interrupt 4
{
  uint temp=0;
  if(RI)
  {
   RI = 0;
   temp = SBUF;
   rec=temp;
     flag=1;
  }
}

void Fes_display(uint rrec)
{
        uint mmo,ddd;
        mmo=rrec/100;
        ddd=rrec%100;
        Fes_search(mmo,ddd);
}
/*void PutString(uchar *TXStr)  
{               
    ES=0;     
     while(*TXStr!=0)
    {                     
        SBUF=*TXStr;
        while(TI==0);
        TI=0;   
        TXStr++;
    }
     ES=1;
}   
*/
void dispString(uchar *fes)
{
        uint y=0;
        while(*fes!=0)
        {                     
                Fes[y]=*fes;
                fes++;
                y++;
        }
}

void Fes_search(uint mo,uint dd)
{
        
        if ( mo == 1 && dd == 1 ){dispString("Ôaμ©");}
        else        if ( mo == 2 && dd == 14 ){dispString("Çéè˽ú");}
        else        if ( mo == 3 && dd == 8 ){dispString("¸¾Å®½ú");}               
        else        if ( mo == 3 && dd == 12 ){dispString("Ö2ê÷½ú");}                                             
        else        if ( mo == 4 && dd == 1 ){dispString("óTè˽ú");}//4               
        else        if ( mo == 4 && dd == 8 ){dispString("¸′»î½ú");}                                             
        else        if ( mo == 5 && dd == 1 ){dispString("àí¶ˉ½ú");}//5               
        else        if ( mo == 5 && dd == 4 ){dispString("ÎåËÄÇàÄê½ú");}                                             
        else        if ( mo == 6 && dd == 1 ){dispString("¶ùíˉ½ú");}//6
        else        if ( mo == 8 && dd == 1 ){dispString("½¨¾ü½ú");}//8
        else        if ( mo == 9 && dd == 10 ){dispString("½ìê|½ú");}//9
        else        if ( mo == 10 && dd == 1 ){dispString("1úÇì½ú");}//10
        else        if ( mo == 12 && dd == 24 ){dispString("ƽ°2ò1");}
        else        if ( mo == 12 && dd == 25 ){dispString("ê¥μ®½ú");}
}


void send_byte(uchar by)
{
    SBUF = by;
        SBUF = 1;
    while(!TI);
    TI = 0;      
}

void send_string(uchar *p)
{
        ES=0;
    while(*p!= '\0')
        {
                send_byte(*p);
                p++;
    }
    ES=1;
}



作者: chenyiji    时间: 2020-12-6 23:54
嘶哥们是不是漏了波特率





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1