51单片机需要采集16路信号,但是直接接I/O口的话就需要16个I/O口,所以为了节省单片机的I/O口资源,想通过扩展,暂时本人有两种方案:
一,通过8-3线编码器,从来没有这样做过,不知道能不能行得通,希望前辈指教;
二,通AD采样,具体的方法还不是很清楚;
不知道各位有什么高见,希望能予以指导,先谢谢大家的慷慨相助!
1楼
0
0
回复
一,通过8-3线编码器,从来没有这样做过,不知道能不能行得通,希望前辈指教;
二,通AD采样,具体的方法还不是很清楚;
不知道各位有什么高见,希望能予以指导,先谢谢大家的慷慨相助!
-
-
zhuyanmei 发表于 2011/8/8 9:27:17
51采集的模拟信号与模拟信号的路数无关,仅与模拟信号A/D变换以后的位数有关,即A/D以后的位数。2楼 回复本楼
最靠谱的方法是利用51的总线。只有给两个地址就可以了。2个373或者573,或者245。只要是直通且有输出使能即可。我们暂称之为A、B。A、B的进端,两片就是16个,分别接到你的待检测数字信号上,A、B的输出端,并行接到51的数据总线上,A的输出使能端,接51的某个地址M1译码加读有效,B的输出使能端,接51的另一个地址M2加读有效。
这样,你读M1,就获得了前8个外部状态,读M2就获得了后8个状态。使用的都是复用信号线,只是占用了两个地址而已。
我感觉你是想采集外部的16路数字信号,如果是模拟信号,另当别论。
引用 zhuyanmei 2011/8/8 9:27:17 发表于2楼的内容