VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2861|回复: 13

一个简单的单片机程序,各位帮忙

[复制链接]

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-4 17:30:01 | 显示全部楼层 |阅读模式
我在PC机上用串口调试助手发送 1 到单片机,但显示出来的却是 0xF4,发送2显示出来的是 0xF5,发送3显示出来的还是0xF5,发送4显示出来的又变成了0xF4,而我认为发出1应该显示的是0x01 ,2 就是0x02 (我是把收到的数据赋到P2口用发光二极管显示) 相关程序如下   这个程序应该没问题的吧 望高手指教

#include <reg51.h>
#include <string.h>

unsigned char ch;


void init_serialcomm()
{
        SCON=0x50;                //serial mode 1,8-bit UART,enable ucvr
        TMOD=0X20;                //timer 1,mode 2,8-bit reload
        PCON=0x80;                //SMOD=1
        TH1=0xF4;                        //Baud:4800  fosc=11.0592M
        IE=0x90;                        //Enable Serial Interrupt
        TR1=1;               // timer 1 run
}

//串口接收中断函数
void serial () interrupt 4 using 3
{
        if(RI)
      {       
        RI=0;
        ch=SBUF;
      }       
}

main()
{
        init_serialcomm();  //初始化串口
        while(1)
                {       
                        P2=ch;
                               
                }
}
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-9 12:00:02 | 显示全部楼层
速率对吗?

你的配置是9600bps,快了一倍
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-1-17 15:54:01 | 显示全部楼层
谢谢 但还是存在问题 不管我发什么数字,高四位显示的始终是0111 低四位显示倒没问题,比如我发 1 ,他显示 01110001 .可发大写字母 A ,却变成了10000001
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-28 10:15:02 | 显示全部楼层
前两天的收发程序搞定啦?
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-4-14 20:15:02 | 显示全部楼层
还没呢 现在试了个最简单的接受程序 发现收到的数据高四位还是有问题
我是在做毕业设计
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-5-9 00:00:02 | 显示全部楼层
PC机发送1,是不是发送的1的ASCII码?就是调试助手有可能是发送的'1'字符,而不是0x01。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-5-27 14:00:01 | 显示全部楼层
楼主的程序没问题的,我试了下,是正常的。发送1,显示00110001,发送2显示00110010。
我用的89c51,22.1184M,波特率为9600
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-7 08:30:01 | 显示全部楼层
我才发现输入 1 ,是以字符'1'发送的呵呵
是不是晶振的问题,我用的是12M,算了下误差超过8%
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-6-7 22:15:01 | 显示全部楼层
呵呵,其实有些时候都是所谓的小问题吧
   还是仔细点比较好啊,记得我老师带我毕设的时候,让我最记忆忧心的一句话就是:
    细节论成败!
不过还是恭喜你,终于好用了啊!
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-6-8 11:30:01 | 显示全部楼层
我还是比较惦念前两天的那个程序,应该是buffer[]定义的问题,
        谁有条件再试一下吧,好用了给点分,呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表