在单片机应用系统中,有时需要采集大量的开关信号,由于信号多且接入方式不同,使得电路较复杂,占用了单片机大量资源,数据采集软件的开发量也较大。笔者用纯数字电路设计了一个特别适合于远程大数据量采集的电路(最大可采集1024个开关量,附图所示电路可采集192个开关量)。
电路由双二进制加法计数器CD4520、译码器74LS138、缓冲驱动器74LS244等组成。NE555产生的脉冲加到计数器D1的CP1端,由于D1的Q4同时也接D1的EN2,所以D1的双计数器构成级联计数电路,其输出Q2~Q7作为开关输入量的地址送D5的输入端。Q1作为片选信号接D5,Q5~Q7接D2输入端,为D3、D4等译码器提供片选信号,而Q2~Q4接D3、D4等译码器的输入端,译码器的输出作为D7、D8等的片选信号。D7、D8等的输入接采样的开关信号(图中开关接通表示输入为低位),其输出接D6输入端。当D6片选有效时(Q1为低电位),输出的数据地址线上为开关量信号。当D5片选有效时(Q1为高电位)输出的数据地址线上为开关量信号的地址。8条数据地址线可直接接单片机P1口或通过74LS245接单片机总线,1条数据地址选择线也可直接接单片机P2或P3口。