一、BCD码定义
4位二进制数字共有16种组合,其中0000B~100IB为8421的基本代码系统,1010B~1111B未被使用称为非法码或冗余码。10以上的所有十进制数至少需要二位8421码字(即8位二进制数字)来表示,而且不应出现非法码;否则就不是真正的BCD数。因此,BCD数是由BCD码构成的,是以二进制形式出现的,是逢十进位的,但它并不是一个真正的二进制数,因为二进制数是逢二进位的。例如: 十进制数45的BCD形式为01000101B,而它的等值二进制数为00101101B(2DH)。
既然每4位二进制代码代表一个十进制数,那么假设这4位二进制数用片 代表,则0 ~9可对应表示为表中形式。
由布尔运算: ,
得:,即,与非关系
根据上述的公式设计如下电路:
假设关闭开关5,输出,为1,输出为0,输出为1,输出为0
二、BCD码拨盘的接口设计方法
①静态接口方式
若要输出5,即让右端的单片BCD码拨盘显示0101,由于接线方式是弱下拉(在I/O口没有输出高电平时,默认输入低电平),就需要单片机8031的四个I/O口分别为:0101。
②动态接口方式
当系统需要输入N位十进制数时,可以选N片拨盘拼楼,但如按上图接法,需要占用4N根I/O口线。为节省I/0口线,可以采用动态接口方法,下图示出了8031通过P1口扩展4片BCD码拨盘的接口电路
低扫描:第一、任意时刻扫描线中,只有一条为低电平;第二、在扫描过程中,扫描线需要周期性地依次为低电平。
高扫描:与低扫描相反。
上图采用低扫描的方式,