标题: 单片机与pc通信程序问题求助 显示结果不对 [打印本页]

作者: 玄子    时间: 2021-4-12 15:38
标题: 单片机与pc通信程序问题求助 显示结果不对
如下所示是代码,发现发送16进制的数据0x30,接收到的也是0x30.但是单片机的显示不是0x30,而是显示0xc0。为了验证这个,加了if判断发送0x30时是否在单片机内部数据为0xc0,结果真的是这样。请问一下这是怎么回事??

#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar ch;

void main (void)
{
    SCON = 0x50;
    PCON = 0x00;               
    TMOD = 0x20;         
    TH1  = 0xfd;
          TL1  = 0xfd;
    TR1   = 1;                        
    EA    = 1;            
    ES    = 1;                 
while (1)   ;                  
}

void serial(void) interrupt 4
{
        ES=0;
        RI=0;
        ch=SBUF;
        SBUF=ch;
        while(TI==0);
        TI=0;
        if(ch==0xc0)
        {
        P1=0xfe;
        }
        else
        {
        P1=0x00;
        }
        ES=1;        
}


作者: 玄子    时间: 2021-4-12 15:39
按上面这个程序,我发送0x30,接受到的是0x30,但单片机显示的0xfe
作者: 人人学会单片机    时间: 2021-4-12 16:58
串口1打印程序 可以打印3个十六位的变量 波特率9600 http://www.51hei.com/bbs/dpj-201660-1.html

串口发送 不需要while死等 串口接收执行软件复位 http://www.51hei.com/bbs/dpj-200927-1.html




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