找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9082|回复: 21
打印 上一主题 下一主题
收起左侧

51单片机如何接收16位数据呢

  [复制链接]
跳转到指定楼层
楼主
ID:225054 发表于 2017-10-10 10:11 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
学到串口通信了,现在需要从上位机发送一个16位的数据在数码管上显示出来,接收部分该怎么写呢?(我的思路是建一个数组缓存接收到的数据等16位数据接收完成了后在读取出来,然后数码管显示,但不知道该怎么写缓存数组啊,求大神给个例程)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:238216 发表于 2017-10-10 11:07 | 只看该作者
//′®¿úéèÖà 11.05920M 2¨ìØÂê9600        T11¤×÷·½ê½Îa1 ×÷Îa2¨ìØÂê·¢éúÆ÷
void uart_init_com()          
{
  TMOD=0x20;
  PCON=0x00;
  SCON=0x50;
  TH1=0xfd;
  TH1=0xfd;
  TR1=1;
}
main函数:
unsigned char com_buf[6] ;
while(1)
      {
              com_buf[x] = USART_Receive();
            if(com_buf[x]=='\r')//接收以回车结束
           break;      
       。。。显示函数
        x++;   
      }

评分

参与人数 1黑币 +1 收起 理由
小魔兽哈登 + 1 很给力!

查看全部评分

回复

使用道具 举报

板凳
ID:225054 发表于 2017-10-10 12:29 来自手机 | 只看该作者
egang 发表于 2017-10-10 11:07
//′úéè 11.05920M 2¨ìê9600        T11¤×÷·ê ...

谢谢大神
回复

使用道具 举报

地板
ID:111634 发表于 2017-10-10 14:51 | 只看该作者
USART_Receive()?????谢什么?
回复

使用道具 举报

5#
ID:111634 发表于 2017-10-10 14:54 | 只看该作者
收就收!收好后就存!存好后就显示!看样子你一点基础都没有,建议先学点基础再说。
回复

使用道具 举报

6#
ID:238305 发表于 2017-10-10 15:33 | 只看该作者
接受的时候考虑包头
回复

使用道具 举报

7#
ID:225054 发表于 2017-10-10 17:35 来自手机 | 只看该作者
zl2168 发表于 2017-10-10 14:54
收就收!收好后就存!存好后就显示!看样子你一点基础都没有,建议先学点基础再说。

请老师指点,谢谢
回复

使用道具 举报

8#
ID:225054 发表于 2017-10-10 17:36 来自手机 | 只看该作者
wdz 发表于 2017-10-10 15:33
接受的时候考虑包头

能否给个例程,我参考下?谢谢
回复

使用道具 举报

9#
ID:238372 发表于 2017-10-10 19:19 | 只看该作者

//′®¿úéèÖà 11.05920M 2¨ìØÂê9600        T11¤×÷·½ê½Îa1 ×÷Îa2¨ìØÂê·¢éúÆ÷
void uart_init_com()         
{
  TMOD=0x20;
  PCON=0x00;
  SCON=0x50;
  TH1=0xfd;
  TH1=0xfd;
  TR1=1;
}
main函数:
unsigned char com_buf[6] ;
while(1)
      {
              com_buf[x] = USART_Receive();
            if(com_buf[x]=='\r')//接收以回车结束
           break;      
       。。。显示函数
        x++;   
      }
回复

使用道具 举报

10#
ID:238216 发表于 2017-10-10 22:37 | 只看该作者
unsigned char USART_Receive( void )
{
    uchar buf =0;
        while(!RI);
          RI=0;
        buf=SBUF;
        return buf ;
}

void uart_init_com()         
{
  TMOD=0x20;
  PCON=0x00;
  SCON=0x50;
  TH1=0xfd;
  TH1=0xfd;
  TR1=1;
}
#define N 20
main函数:
...
unsigned char x=0;
unsigned char com_buf[N] ;
...
while(1)
      {
              com_buf[x] = USART_Receive();
            if(com_buf[x]=='\r')//接收以回车结束
           break;
        x++;   
      }
      
       。。。加显示函数

回复

使用道具 举报

11#
ID:154868 发表于 2017-10-11 00:59 | 只看该作者
把接收的数据 转存到数组,显示的时候调出来不就行了
回复

使用道具 举报

12#
ID:111634 发表于 2017-10-11 11:05 | 只看该作者
w322405 发表于 2017-10-10 17:35
请老师指点,谢谢

80C51串行通信
实例77  双机串行通信方式1
实例77 双机通信方式1.rar (40.4 KB, 下载次数: 13)


实例78  双机串行通信方式2 实例78 双机通信方式2.rar (46.57 KB, 下载次数: 5)
实例79  双机串行通信方式3 实例79 双机通信方式3.rar (45.3 KB, 下载次数: 4)
实例16  单片机与PC机虚拟串行通信 实验16 与PC机虚拟串行通信.rar (151.41 KB, 下载次数: 7)

Proteus仿真一下,确认有效。以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。

回复

使用道具 举报

13#
ID:123289 发表于 2017-10-11 23:04 | 只看该作者
收两个字节后拼装一下,不就是16位了吗?
回复

使用道具 举报

14#
ID:225054 发表于 2017-10-11 23:57 来自手机 | 只看该作者
yzwzfyz 发表于 2017-10-11 23:04
收两个字节后拼装一下,不就是16位了吗?

给个例程好吗?我搞了好久还是没搞明白,高手们给的例程我都看的云里雾里
回复

使用道具 举报

15#
ID:225054 发表于 2017-10-12 08:35 来自手机 | 只看该作者
yzwzfyz 发表于 2017-10-11 23:04
收两个字节后拼装一下,不就是16位了吗?

我想用串口接收0~65536但是收到的数合并起来后是乱码
回复

使用道具 举报

16#
ID:18297 发表于 2017-10-12 11:16 | 只看该作者
1.如附件。
2、功能发送16进制字符,高位在前,低位在后。
3、如发送01 FF,接收后显示01 FF。

仿真说明.jpg (128.17 KB, 下载次数: 96)

仿真说明

仿真说明

aking.rar

155.12 KB, 下载次数: 62

回复

使用道具 举报

17#
ID:238835 发表于 2017-10-12 11:47 | 只看该作者
循环就收两个
回复

使用道具 举报

18#
ID:238825 发表于 2017-10-12 13:54 | 只看该作者
分段接收
回复

使用道具 举报

19#
ID:144951 发表于 2017-10-12 14:55 | 只看该作者
接受的时候考虑包头
回复

使用道具 举报

20#
ID:238928 发表于 2017-10-12 17:12 | 只看该作者
感谢分享!
回复

使用道具 举报

21#
ID:238928 发表于 2017-10-12 17:12 | 只看该作者
感谢楼主的分享!
回复

使用道具 举报

22#
ID:238974 发表于 2017-10-12 20:19 | 只看该作者
谢谢楼主
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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