1 前言
由于BCD 拨码盘方便、直观、实用,易于操作等诸多优点,广泛应用于参数设置的监
测仪表,机械机床等设备上,具有很大的应用空间。但是,由于每个BCD 拨码盘需要许多
数据接口线,如果我们需要多位的数值设置,则需要多个数据线,如采用直接连接,须扩展
多个端口,造成接线太多,成本增加,电路复杂。当我们将多个拨码盘数据线接在同一个数
据总线上面时,如果拨码盘不能进行有效的电气隔离,拨码盘之间数据会相互影响,导致数
据读入错误,甚至由于逻辑电平冲突,使得整个控制系统无法运行。我们在塑窗焊机控制器
的设计中,利用非门逻辑电路和二极管的单向导电性,经多次试验改进,形成以下电路(如
图1 所示),很好的解决了这个问题。
2 电路分析
图1 中的74ALS06 是集电极开路高压输出的六反相缓冲器/驱动器,用来选中拨码盘并
吸收较大电流,8 个1K 电阻起限流作用。图2 为BCD 拨码盘的内部原理图。1、2、4、8
图1 接口电路
四个端子为数据端,com 为公共端,当拨码盘窗口显示的数值不为0 时,其数据线将有一位
或几位与com 端接通。例如当拨码盘输出为5 时,1、4 端就与com 接通。现将二极管的作用分析如下:首先是没有二极管的情况。下面以图1 中1#、2# 两个拨码盘为例来说明。当P1.4 输出为高电平,P1.5 输出为低电平时,1# 拨码盘被选中。假设1# 拨码盘的输出值是5,而2# 是7,这时读入单片机的数据并不是我们想要的5,而是7。也就是说在这种输出端直接相接的情况下,拨码盘之间相互影响。
如果我们采用继电器等器件电气隔离,则会造成成本增加,设计及控制繁琐。其次是接二极管之后的情况。在图1 中我们仍以1#、2# 拨码盘为例来分析。当1# 拨码盘以低电平被选中,而2# 以高电平被禁止时,假设1# 拨码盘的值仍是5,而2# 仍是7。这时1# 拨码盘1、4 端子上的二极管导通,P10、P12 为低电平;2# 拨码盘由于其com 端为高,故其1、2、4 端子也为高,这时其1、4 端子上的二极管处于反向截止状态,从而保证2# 拨码盘的高电平输出不再受1# 拨码盘低电平输出的影响,因此读入单片机的数据也
有了保证。
3 软件设计
该流程图仅是以1# 拨码盘为例,读取其他三个的方法与之相同。在读数之前,必须将
P1 口低四位置高,为读数做准备。当值大于9 时,说明拨码盘出现故障,这时采取相应的
报警措施。四个拨码盘都读完之后,根据实际情况,再加以处理计算。
4 后记
该电路在塑窗焊机控制器上已得到成功的应用,它用4 根线替代了原有的16 根数据线。
由于塑窗焊机需要设置加热时间和保压时间,分别需要两位的时间参数,所以使用了4 片拨
码盘。当所需拨码盘较多时,可使用译码器来扩展选通线,扩展方便。该方法的软件编制也
比较容易。
A Circuit of Multi_BCD_code_wheel in the SCM System
周素茵 程卫波 王雅静