为了区别不同的信号,在数字系统中,用二进制数码0和1按一定的规律组成二进制代码分配给不同的信号,称为编码。用于编码的电路,称为编码器。常用的编码器有普通编码器和优先编码器两类。
(1)普通编码器
普通编码器有二进制编码器和二-十进制编码器。用n位二进制代码表示N=2n个对象的电路为二进制编码器,用4位二进制代码表示0、1、2、3、4、5、6、7、8、9这10个阿拉伯数字的电路为二-十进制编码器。下面以二进制编码器为例介绍普通编码器的编码过程。
【例10.4.2】 设计一二进制编码器,需要对I0—I7 8个信号进行编码,3位二进制代码为Y2 Y1 Y0。
解 (1)依据题意列写编码表见表10.4.3。
表10.4.3 3位二进制编码器真值表
(2)依据编码表写出逻辑函数式
(3)依据逻辑函数式画出逻辑图
3位二进制编码器逻辑图如图10.4.6所示。由真值表可知,当某一个输入信号为高电平1时,3个输出端Y2、Y1、Y0的值组成与该信号对应的一组3位二进制代码,这种状态也称高电平有效。例如,当I4=1,其余为0时,输出为100。需要指出,图中对I0的编码是隐含的,即当I1—I7均为0时,输出000就是I0的编码。因此,图中没有画出I0对应的非门。
由于输入为8个信号,输出为3位二进制代码,因此为二进制编码器,又称8线-3线编码器。同理,2位、4位二进制编码器又称4线-2线、16线-4线编码器。
图10.4.6 3位二进制编码器图
图10.4.7 优先编码器74LS148
(2)优先编码器
普通编码器同一时刻只允许有一个信号请求编码,输入信号之间是互相排斥的。而优先编码器同一时刻允许多个信号请求编码,但编码器只对优先级别最高的信号进行编码,信号的优先级别根据实际需要来确定。常用的集成优先编码器有74LS148(8线-3线优先编码器)和74LS147(10线-4线优先编码器)。74LS148的逻辑符号和外引线图如图10.4.7所示。(www.xing528.com)
表10.4.4 74LS148功能表
74LS148功能表见表10.4.4。由表10.4.4可知:
①输入信号为低电平有效,输出的是该信号对应的反码。为最高优先级为最低优先级。当时,不管其他输入端是0还是1,输出只对编码,且输出是该信号对应的反码=000,原码为111。其余类推……只有当都为1,=0时,输出才对编码,对应输出为
②输入使能端,编码器正常工作,编码器不工作;输出使能端用于电路扩展。
③输出有效标志端时,编码器输出有效。第1行、第2行和最后一行,输出状态都是111,但由指明最后一行表示的输出111有效,是对0信号的编码,而第1行和第2行表示输出无效。
利用编码器的使能端可进行电路功能扩展。例如,图10.4.8用两片8线-3线编码器组成16线-4线编码器,在图中4位输出为B3—B0。
图10.4.8 两片74LS148组成16线-4线编码器
当输入数据线8~15均无输入(均为1)时,其高8位芯片=0,B3为0,同时又使低8位芯片的,允许低8位芯片工作。当低8位芯片的输入数据线0~7中有一个为低电平时,其输出经反相器作为B2—B0。
如数据输入线8~15中有一个为低电平,则高8位芯片,B3为1,同时使低8位芯片的,禁止低8位芯片工作。高8位芯片输出经反相器作为B3—B0中的低3位。F作为整个电路的输出有效标志位,高电平有效。
(3)编码器应用举例
优先编码器的应用非常广泛,常用于优先中断系统和键盘编码等。下面举例说明。
【例10.4.3】 某医院有7个病房,室内设有紧急呼叫开关,1号病房的优先级别最高,其控制开关为K1,其他病房的级别依次递减,7号病房的优先级别最低,其控制开关为K7。
解 该电路采用8线-3线优先编码器74LS148编码。74LS148的7号数据端优先级别最高,0号优先级别最低,并且输入端低电平有效,输出的是反码。因此,各病房的呼叫开关应设计成按下输出低电平0,断开输出高电平1,并且把1号病房的开关信号接到编码器的6号输入端,编码输出为001,其余类推,7号病房的开关信号接到编码器的0号输入端,编码输出为111。当7个病房中有若干个请求呼叫开关合上时,编码器的输出为当前相对优先级别最高的病房的代码,完成优先权的要求。其电路如图10.4.9所示。
图10.4.9 例10.4.3逻辑图
由于74LS148的输出端为1表示有输入,0表示没有输入。在本例中没有病房按下呼叫按钮时,按照设计要求,编码应为000,而74LS148编码器将输出111,产生错误代码。因此,利用与门配合74LS148的输出端实现此控制。在没有病房按下呼叫按钮时,输出0,电路编码输出为000。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。