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

新手51单片机和PC通信问题求助

时间:10-02 整理:3721RD 点击:



刚学习51单片机几天想用蓝牙实现单片机的通信,然后购买了nrf24l01+的蓝牙模块还有那个串口模块,有四个引脚VCC,GND,TX,RX的那种,然后把一个插在电脑上,一个插在单片机上,控制数码管显示数字,不知道为什么不能实现,在串口助手上,能接收到发送的信息。程序写的很简单,如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void display(uchar num)
{
    P1=table[num];
    P2=0xfD;
}
void main()
{
    SCON=0X50;
    TMOD=0X20;
    TH1=0XFD;
    TL1=0XFD;
    TR1=1;
    EA=1;
    ES=1;
}
void ser()interrupt 4
{
    uchar a;
    RI=0;
    ES=0;
    a=SBUF;
    display(a);
    SBUF=a;
    while(!TI);
    TI=0;
    ES=1;
}

请各位大哥帮帮忙解决一下

现在的状态是无论电脑发送什么,都显示8

显示不要放到中断里面还行啊
中断里面的东西越少越好

单片机和pc端通信主要在于波特率的调试,你现在用的波特率应该和单片机的波特率不匹配,我上次把波特率改为2400,初值改为0xf3,你试试。

问题解决了,不是波特率的事,控制的时候应该让SBUF–48,这样就好了,谢谢回复

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

网站地图

Top