打印
[51单片机]

串口通讯

[复制链接]
1208|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大家好,本人学习单片机通讯,发送01点亮一个灯,再次发送熄灭。程序中不需要单片机发送数据给电脑,可是每次用串口调试助手发送01之后,就会都到6个数据,不知道为什么,请高手指点。晶振是11.0592,波特率9600,程序如下:
#include<reg52.h>

#define        uchar        unsigned char
#define        uint                unsigned int

sbit        LED0 = P1^0;
sbit        LED1 = P1^1;
sbit        LED2 = P1^2;
sbit        LED3 = P1^3;
sbit        LED4 = P1^4;
sbit        LED5 = P1^5;
sbit        LED6 = P1^6;
sbit        LED7 = P1^7;

void        Init_Uart(void)
{
        TMOD = 0x20;
        TH1 = 0xFD;
        TL1 = 0xFD;
        TR1 = 1;
        SCON = 0x50;
        PCON = 0;
        EA = 1;
}

void main(void)
{
        uchar i = 0;
        Init_Uart();
        while(1)
                {
                        while(!RI);
                        RI = 0;
                        i = SBUF;
                        switch(i)
                                {
                                        case 0x01: LED0 = ~LED0;break;
                                        case 0x02: LED1 = ~LED1;break;
                                        case 0x03: LED2 = ~LED2;break;
                                        case 0x04: LED3 = ~LED3;break;
                                        case 0x05: LED4 = ~LED4;break;
                                        case 0x06: LED5 = ~LED5;break;
                                        case 0x07: LED6 = ~LED6;break;
                                        case 0x08: LED7 = ~LED7;break;
                                }
                }
}

相关帖子

沙发
xg3469| | 2014-8-1 21:50 | 只看该作者
邪门了,没看到你程序里给SBUF赋值。先换个其它的串口助手试试,再查查程序,你用的是STC吗?

使用特权

评论回复
板凳
caoye87|  楼主 | 2014-8-1 22:18 | 只看该作者
xg3469 发表于 2014-8-1 21:50
邪门了,没看到你程序里给SBUF赋值。先换个其它的串口助手试试,再查查程序,你用的是STC吗? ...

是STC89C52单片机,我换了个串口调试助手,同样返回六个数据,只不过是数据变成了六个20。我用的是USB转串口线,会不会是这根线不好额。

使用特权

评论回复
地板
xg3469| | 2014-8-1 22:35 | 只看该作者
不好说,有示波器就看看TXD上有没有脉冲,若没有,可考虑串口线,若有,考虑程序和串口线。供你参考。

使用特权

评论回复
5
ayb_ice| | 2014-8-2 08:08 | 只看该作者
把串口线发送与接收短接,自测试一下就知道了

使用特权

评论回复
6
伊泽瑞拉| | 2014-8-2 09:13 | 只看该作者
串口和你下位机的波特率不一致时会出现这种情况    你检查下    不谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

20

帖子

0

粉丝