假如有两条指令几乎同时(间隔千万分之一秒)输入单片机,那么单片机如何判断先处理哪一个?(是由随机因

假如有两条指令几乎同时(间隔千万分之一秒)输入单片机,那么单片机如何判断先处理哪一个?(是由随机因素决定?还是按某种原则决定?或者单片机不会分不出指令输入的先后,不管间隔多么小?还是别的什么原因)

你以为单片机是台式机、笔记本,可以随时感染病毒?

单片机的指令,不是写入一条、执行一条。

单片机的指令,都是预先写入,一条条存好。
复位后,顺序取出、执行。

单片机,它根本就不存在【输入指令】这个事。追问

那么,这就是说,单片机不能获得实时数据,也就不能与外部传感器相连使用了,对吗?

追答

数据,可以随时获得。
程序,是固定不变的。

数据,是存入到单片机的 RAM 里面的。
单片机的 ROM,是只读的,你存不进去。

想要变更程序,必须执行单片机专用的下载程序。
擦除原有的全部,重新写入。

单片机在工作期间,想要改变部分程序代码,基本上,
这是不可能的。
---------
有些 32 位的单片机,却允许这样做。

追问

那么,假如两个数据几乎同时输入,单片机怎样判断谁先谁后呢(比如,你喊A,我喊B,单片机几乎同时收到,那单片机能不能判断咱俩谁先喊的(距离一样近))

追答

这些,确实都是数据。
可以称之为《命令》,而不是《指令》。

---------------

外设同时送来数据,确实是有可能的。

那么,单片机先接收那一个?

是接收一个命令,就执行它所要求的操作?
然后再接收另一个?

还是两个都接收之后,挑选你认为重要的,先执行?

这些,你就不用问别人了。
这都是单片机内部的程序所决定的。

你怎么编写的程序,单片机就会怎么操作。
---------------
对于 51 单片机,有两个外部中断申请输入端,这
就是外部设备送来信息的常用通道。

假设两个外部申请同时出现,51 单片机就会先响
应《外部中断0》的申请,后响应《外部中断1》
的申请。
这个次序,叫做《自然优先级》。

优先级,还可以通过程序来修改。

程序,怎么编写的,单片机就会怎么处理外来的
数据。

追问

我想让它判断两信号谁先谁后,可以行的通吗?

追答

先到的(或者优先级别高的),就开始接收、执行该命令了。

难道你还真想要等着、等着...,非得等另一个来到之后,
再来判断两个谁先谁后?

真要这么做,程序也可以编写出来。
两个输入,条件都满足了之后,再执行某一个。

就像超声波测距,两个目标回波,收到一个,不算完,
非得收到另一个,才开始计算两者的时间差。

追问

那么两个信号间隔时间至少大于多少才能让单片机不认为这是同一个信号呢?

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-16
看程序的安排,单片机都是单一执行的,并无同时
第2个回答  2014-11-16
只要有前后(那怕差亿分之一秒),当然是执行第一个啦!
第3个回答  2014-11-16
c语言?追问

可以是c语言

第4个回答  2014-11-16
程序是写入ROM的,哪一条先执行是明确的。你所谓的“两条指令几乎同时输入”指什么?IO管脚输入状态么?追问

ROM不是只读吗

是IO输入状态

追答

单片机的运行是有机器周期的,拿51单片机来说吧,12M晶振下机器周期是1us,理论上两个IO变化的间隔大于1us的才可以分辨

相似回答