找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1653|回复: 17
收起左侧

51单片机为什么不能同时检测多个传感器

  [复制链接]
ID:1065536 发表于 2023-9-13 17:07 来自手机 | 显示全部楼层 |阅读模式
利用51单片机连接温度传感器,烟雾传感器,人体红外传感器,利用GSM模块发短信,当系统执行到某一个传感器时,就会去发短信,但是发短信用的时间有点久,程序就会卡在这里不能干其他事,有什么方法可以解决吗?想要这种效果我检测到了烟雾在发短信的同时,也可以继续检测其他两个传感器的情况?希望大佬指点一下,小白一个。
回复

使用道具 举报

ID:883242 发表于 2023-9-13 19:22 | 显示全部楼层
其实还有个更严重的问题,你检测一个传感器就发一条,你的钱包受得了吗?
回复

使用道具 举报

ID:771630 发表于 2023-9-13 19:49 | 显示全部楼层
依靠串口中断和轮询的方式进行GSM的处理,或者使用合宙系列的GSM Cat.1模块编写luat代码,单片机只需要发送短信内容,剩下的GSM模块自己处理
回复

使用道具 举报

ID:213173 发表于 2023-9-13 20:11 | 显示全部楼层
时间片轮询
回复

使用道具 举报

ID:1065536 发表于 2023-9-14 08:34 来自手机 | 显示全部楼层
XLinliY.Zhang 发表于 2023-9-13 19:49
依靠串口中断和轮询的方式进行GSM的处理,或者使用合宙系列的GSM Cat.1模块编写luat代码,单片机只需要发送 ...

谢谢,我用了SIN900A这个模块
回复

使用道具 举报

ID:1065536 发表于 2023-9-14 08:35 来自手机 | 显示全部楼层
wulin 发表于 2023-9-13 20:11
时间片轮询

感谢大佬指点
回复

使用道具 举报

ID:1034262 发表于 2023-9-14 16:05 | 显示全部楼层
这些都是简单任务,为什么不能?那是你的编程思想的问题,没有多任务概念(多线程、时间片等等)。
你上一个RTOS看看。
回复

使用道具 举报

ID:47541 发表于 2023-9-14 16:46 | 显示全部楼层
本身单片机执行程序也是一个一个来的,只不过太快你感觉不到而已
回复

使用道具 举报

ID:690831 发表于 2023-9-14 20:12 | 显示全部楼层
用两个芯片,一个负责检测,一个负责发送,芯片间用串口通讯
回复

使用道具 举报

ID:584814 发表于 2023-9-15 08:16 | 显示全部楼层
51单片机为什么不能同时检测多个传感器 ?因为原始设计就没这个能力。
但,单片机轮流检测10个传感器,可能也只需10微秒。
也许对你来说,1微秒也不是实时,实时就是要同步,但就传感器件本身来说就呵呵
回复

使用道具 举报

ID:101869 发表于 2023-9-15 08:43 | 显示全部楼层
首先有点久这个是什么概念  1秒还是100秒  任何单片机都是一行一行执行代码 做不到真正意义的实时,不知道你对时间有多高要求,看你这项目也就是个家用安防报警  这点任务1秒内肯定都能完成啊
回复

使用道具 举报

ID:1083996 发表于 2023-9-16 08:55 | 显示全部楼层
有的单片机能双工模式的
回复

使用道具 举报

ID:206581 发表于 2023-9-16 20:53 | 显示全部楼层
可以的,采用多线程
回复

使用道具 举报

ID:1083996 发表于 2023-9-20 18:11 | 显示全部楼层
可以的啊,弄过16路巡检的,没发现异常啊
回复

使用道具 举报

ID:155507 发表于 2023-9-20 18:54 | 显示全部楼层
小白菜c 发表于 2023-9-14 08:34
谢谢,我用了SIN900A这个模块


你可以试试这一个使用定时器节拍进行任务调度例程。


53-通过定时器周期性调度任务综合例程.zip
这一个例程基于STC8H为主控芯片的实验箱进行编写测试。
使用Timer0的16位自动重装来产生1ms节拍,程序使用这个节拍进行任务调度.
每个任务设置相应的调度周期,根据设置的周期时间执行任务函数.
下载时, 选择时钟 24MHz (可以在配置文件"config.h"中修改).


STC8H8K64U实验箱-V9.6程序包 2023/8/16,STC8H新实验箱程序
STC8H8K64U实验箱-V9.6程序包




53-通过定时器周期性调度任务综合例程.zip

42.78 KB, 下载次数: 1

53-通过定时器周期性调度任务综合例程.zip

回复

使用道具 举报

ID:468209 发表于 2023-9-20 19:29 来自手机 | 显示全部楼层
让每个传感器检测完成后先分别保存在一个变量里 等全部检测确认完成标志后再打包所数据发送
回复

使用道具 举报

ID:879348 发表于 2023-9-21 08:32 | 显示全部楼层
rtos系统就是干这个的,51有些迷你的系统可以用
回复

使用道具 举报

ID:811253 发表于 2023-9-21 23:21 | 显示全部楼层
分时复用,把每个任务分开时间片来执行即可。再把所有传感器要发送的信息汇总成一个消息队列,这样依次一个个利用GSM模块发出去。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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