怎么检测300个点的高低电平

[复制链接]
3919|11
 楼主| gdmgb520 发表于 2009-10-27 13:46 | 显示全部楼层 |阅读模式
电子刚入门。请教大家怎么检测300个点的高低电平,或者说开关的开断。
huangqi412 发表于 2009-10-27 13:52 | 显示全部楼层
一起还是分散...
DONGXU 发表于 2009-10-27 14:46 | 显示全部楼层
扩展数字口到300个,8位机一次测8个口,16位机一次测16个口,32位机一次测32个口,
 楼主| gdmgb520 发表于 2009-10-27 15:09 | 显示全部楼层
一起还是分散...
huangqi412 发表于 2009-10-27 13:52

应该算分散的吧。就是相当于300个独立按键,要看哪个键接通或断开。
 楼主| gdmgb520 发表于 2009-10-27 15:12 | 显示全部楼层
扩展数字口到300个,8位机一次测8个口,16位机一次测16个口,32位机一次测32个口,
DONGXU 发表于 2009-10-27 14:46


用8位的at89s51,用74hc151来扩展行不行?另外加74hc244做总线驱动。六位地址线,一个完整IO口做数据采集。
用定时器中断进行数据采集,每50毫秒进行一次。

行吗?
xiaotao_82 发表于 2009-10-28 16:04 | 显示全部楼层
提个方案供大家讨论:把这些开关量当做并行的信号,给转成串行的。前提是给这些开关量分组编号。
 楼主| gdmgb520 发表于 2009-11-9 13:50 | 显示全部楼层
我现在用的是74hc244做驱动,74hc151来选通数据
P00——P05做地址线,P20——P27做数据输入端
 楼主| gdmgb520 发表于 2009-11-9 14:01 | 显示全部楼层
吧320个数据分成8组(8个采集板),每组40个,每块板用5+1快74hc151,每块板每次往外送一个数据,所以P0口的00——05从000000变到111111(0x00到0x29)就可以吧320个数据读入。
由于C51数组元素不能是位变量,所以8个数据作为一个字节来存放。
当然给这 320个开关量编号(1-320),那么第一个数组元素dat[0]存放的就是1号,41号,81号,121号,161号,201号,241号,281号这八个数据。数组dat下标为0——39,共40个元素。

大家看看,这样是否合理。
TDC_01 发表于 2009-11-13 23:34 | 显示全部楼层
分时点阵扫描,具体怎么做,方式很多种,如果你用8位机,选成38行*8列的好像做起来舒服些。一次读入8列。读38次就好了。
wangyujiao 发表于 2009-11-14 07:51 | 显示全部楼层
ls正解 省时省IO
iC921 发表于 2009-11-14 14:41 | 显示全部楼层
16×20或8×38(或8×40)的矩阵扫描,应该都可以
 楼主| gdmgb520 发表于 2009-11-17 09:50 | 显示全部楼层
谢谢各位,由于我用的是51,所以用了8*40的方案,就是像我八楼说的那样做的,用的芯片也是那样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

452

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部