找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机IO口设置为输入口 接收24位的二进制数 提取有用数据 求思路

[复制链接]
跳转到指定楼层
楼主
ID:499004 发表于 2019-6-2 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好:
       51单片机设置为IO口输入状态,这个口接收24位的二进制数,我想提取有用的数据,再进行另一个输出口,操作程序的思路是什么?谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2019-6-2 17:51 | 只看该作者
发送,接收数据尽量选用标准协议比如232,485,spi,I2c,不要自搞一套,难度比较大。
回复

使用道具 举报

板凳
ID:511890 发表于 2019-6-2 18:06 | 只看该作者
如果知道接收数据的具体脉冲宽度,那么直接用这个脉冲宽度接收24个bit就行。如果只知道大概的脉冲宽度,就用比它大的频率接收存储,然后再处理。频率接收存储完整的脉冲。然后再处理。这个可以参考红外遥控器接收示例来做。
回复

使用道具 举报

地板
ID:57512 发表于 2019-6-2 19:13 | 只看该作者
软件模拟IIC协议行不咯?还是一个IO口实现数据传输?
回复

使用道具 举报

5#
ID:499004 发表于 2019-6-3 08:52 | 只看该作者
xuyaqi 发表于 2019-6-2 17:51
发送,接收数据尽量选用标准协议比如232,485,spi,I2c,不要自搞一套,难度比较大。

谢谢   
回复

使用道具 举报

6#
ID:499004 发表于 2019-6-3 08:53 | 只看该作者
太空将军 发表于 2019-6-2 19:13
软件模拟IIC协议行不咯?还是一个IO口实现数据传输?

一个IO口实现接收,提取有用数据后,用另一个IO口往外发
回复

使用道具 举报

7#
ID:499004 发表于 2019-6-3 08:53 | 只看该作者
幻剑心 发表于 2019-6-2 18:06
如果知道接收数据的具体脉冲宽度,那么直接用这个脉冲宽度接收24个bit就行。如果只知道大概的脉冲宽度,就 ...

谢谢   是否有类似的程序段?
回复

使用道具 举报

8#
ID:282850 发表于 2019-6-3 10:07 | 只看该作者
给你一个类似程序,刚好也是24位,你可参考电子称24位AD芯片HX711的程序。
下边是一个通用的简单程序,我完善过数字滤波,丢弃无效位,为不影响使用,发下边这个参考。
见 for(i=0;i<24;i++)关键部分。

//AD HX711 称重AD转换芯片的参考程序
#include <reg52.h>
sbit ADD0=P1^5;
sbit ADSK=P0^0;
unsigned long Count()
{
unsigned long Count;
unsigned char i;
ADSK=0;
Count=0;
while(ADDO);
for(i=0;i<24;i++)
  {
   ADSK=1;
   Count=Count<<1;
   ADSK=0;
   if(ADDO)Count++;
   }
  Count=Count^0x800000;
  ADSK=0;
  return(Count);
}

HX711_icpdf.pdf

215.2 KB, 下载次数: 7

回复

使用道具 举报

9#
ID:497670 发表于 2019-6-3 10:58 | 只看该作者
以前做过白光通讯的程序,类似这样的操作
回复

使用道具 举报

10#
ID:517466 发表于 2019-6-3 13:50 | 只看该作者
可以啊,P0,P1,P2作为输入口,24Bit输入,P3口输出。并行输出(8Bit),或者串口输出都可以。
回复

使用道具 举报

11#
ID:499004 发表于 2019-6-3 20:00 | 只看该作者
f556 发表于 2019-6-3 10:07
给你一个类似程序,刚好也是24位,你可参考电子称24位AD芯片HX711的程序。
下边是一个通用的简单程序,我 ...

非常感谢您的答复
回复

使用道具 举报

12#
ID:499004 发表于 2019-6-3 20:01 | 只看该作者
suncat0504 发表于 2019-6-3 13:50
可以啊,P0,P1,P2作为输入口,24Bit输入,P3口输出。并行输出(8Bit),或者串口输出都可以。

不是并行输出口,是一个IO口作为输入,一个IO口作为输出
回复

使用道具 举报

13#
ID:123289 发表于 2019-6-4 09:37 | 只看该作者
1、你打算用几个口接收数据?
2、你打算用几个口发送数据?
定下来之后,就好操作了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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