数字电路设计--BIN 到 BCD 码的转换电路

网上有一个求助,要求:
  输入 4 位二进制码 (0~15),输出为 BCD 码,BCD 码用数码管显示。
题目链接:点击查看

常识:
  十进制数是绝大多数人常用的数字。
  但是在数字电子技术、计算机技术中,却常用二进制代码来表示数字。

  表示数字的二进制代码,有许多种不同的形式。
  表示数字最常见的二进制码,是 8421 码。

  用四位二进制的代码,表示一位十进制数字,称为 BCD 码。
  BCD 码也有许多形式,最常见的是 8421BCD 码。

  用 8421 码可以方便的进行加减乘除运算,而不需要进行什么转换。
  运算的结果,通常还是
8421 码

  用 8421BCD 码,则便于显示十进制数。

  把计算的结果(8421 码)以十进制显示出来,就需要做一个转换。
  这就是把
8421 码转换成 8421BCD 码

  它们的对应关系如下表所示。

 ----------+-------------------------
           |    二 进 制 码
  十进制数 +----------+--------------
           |  8421 码 |  8421BCD 码
 ----------+----------+--------------
      0    |   0000   |  0000 0000
      1    |   0001   |  0000 0001
      2    |   0010   |  0000 0010
      3    |   0011   |  0000 0011
      4    |   0100   |  0000 0100
      5    |   0101   |  0000 0101
      6    |   0110   |  0000 0110
      7    |   0111   |  0000 0111
      8    |   1000   |  0000 1000
      9    |   1001   |  0000 1001
     10    |   1010   |  0001 0000
     11    |   1011   |  0001 0001
     12    |   1100   |  0001 0010
     13    |   1101   |  0001 0011
     14    |   1110   |  0001 0100
     15    |   1111   |  0001 0101
 ----------+----------+--------------

可以看出:
 4 位 8421 码 对应的 8421BCD 码 是 8 位的二进制码。
 
0 ~ 9 的 8421 码 8421BCD 码 的关系,非常简单,几乎没有什么变化。
 
10~15 的 8421 码,加上 6,才能变成 8421BCD 码

这就是说,要进行转换,关键是要判断 4 位 8421 码 是否大于 9,大于就加 6,否则就不加。
 这个过程称为【十进制调整】。

十进制调整的真值表、卡诺图、逻辑表达式,推导如下:

     真值表
 ----------+-----------+-----------
   十进  |  8421 码  | 转换方法
     制数   |A3 A2 A1 A0|    F 
 ----------+-----------+-----------
      0    |  0 0 0 0  |  
      1    |  0 0 0 1  |  不
      2    |  0 0 1 0  |  用
      3    |  0 0 1 1  |  变
      4    |  0 1 0 0  |  换
      5    |  0 1 0 1  |  ,
      6    |  0 1 1 0  |  或
      7    |  0 1 1 1  |  加
      8    |  1 0 0 0  |  零
      9    |  1 0 0 1  | 
 - - - - - + - - - - - + - - - - -
     10    |  1 0 1 0  |
     11    |  1 0 1 1  |  需
     12    |  1 1 0 0  |  要
     13    |  1 1 0 1  |  加
     14    |  1 1 1 0  |  六 
     15    |  1 1 1 1  |  
 ----------+-----------+----------

   卡诺图
        \ A1A0
   A3A2 \ 0 0 0 1 1 1 1 0
      +---+---+---+---+
    0 0 |   |   |   |   |
      +---+---+---+---+
    0 1 |   |   |   |   |
      +---+---+---+---+
    1 1 | 1 | 1 | 1 | 1 |
      +---+---+---+---+
    1 0 |   |   | 1 | 1 |
      +---+---+---+---+

  逻辑表达式:
    F = A3·A2 + A3·A1.

电路设计:
 设计这样的转换电路,需要使用一个加法器芯片,可以选用 74LS283。
 还需要两个与门、一个或门。以及显示电路的器件。

话不多说,直接上图。

电路原理介绍:
 74LS283 是 4 位的加法器,功能如下:
  C4S3S2S1S0 = A3A2A1A0 + B3B2B1B0 + C0。
 其中:A3A2A1A0 和 B3B2B1B0 是两个加数;
    C0 是 来自低位的进位。
    C4S3S2S1S0 是 5 位的和。

 74LS283 相加的过程也可用下面的竖式来说明:

      A3 A2 A1 A0
    + B3 B2 B1 B0
    +       C0
  -----------
      C4 S3 S2 S1 S0

 针对本题目,可将:
  4 位 8421 码当做一个加数 A3A2A1A0;
   0 或 6,当做另一个加数 B3B2B1B0。
 究竟是加 0 还是加 6,是由两个与门、一个或门来判断的。
  判断电路输出的 0、1,送到 B2 B1,即可形成 0000 或 0110。

 74LS283 输出的 S3S2S1S0 就是个位数的 8421BCD 码
       由 C4 输出的,就是
十位数的 8421BCD 码

 之后,再用七段码译码器芯片 (74LS48) 和共阴数码管来显示。

电路使用方法:
 在图中的左边有 4 个拨动开关,用于输入
8421 码
 操作者设定了 4 位二进制码后,本电路就立即显示出等值的十进制数。
 图中输入的是:1101,显示就就是十进制数:1 3 。


 用硬件来实现十进制调整,是比较 “古老” 的方法。
 用单片机驱动数码管,就可以显示十进制数。
 如果想要吧单片机内部
二进制 (8421) 码,变换到 8421BCD 码,只需执行一条指令:
  DA   A,
 即可完成十进制调整

--本文完--

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值