数电——全减器分析(用74HC138设计提示)

   全减器真值表如下:其中Ai表示被减数,Bi表示减数,Di表示本位最终运算结果,即就是低位向本位借位最终结果,Ci-1表示低位是否向本位借位,Ci表示本位是否向高位借位。

   分析:注意Ai是被减数,但有从高位借位时,借来的是1并不是指1,而是二进制数,So,借来的是2

      最后一行分析:AiBi=0,因为有从低位借位,此时不够减,需要来自高位借位(即Ci=1),借过去后是2.所以21=1(即Di=1)。

Di=Y1 * Y2 * Y4 * Y7)可以得到74HC138来表示,(注意:Ai,Bi,Ci-1的各自位权对应A2,A1,A0) Ci同理可得。

  • 15
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是基于74HC138译码器的实验C语言程序: ```c #include<reg52.h> sbit led=P2^0; //定义LED引脚 sbit s0=P1^0; //定义S0引脚 sbit s1=P1^1; //定义S1引脚 sbit s2=P1^2; //定义S2引脚 void main() { while(1) { s0=s1=s2=1; //将S0、S1、S2引脚都置为高电平 P0=0x00; //将P0口输出0 led=0; //LED亮 DelayMs(1000); //延时1秒 s0=0; //将S0引脚置为低电平 P0=0xFF; //将P0口输出FF led=1; //LED灭 DelayMs(1000); //延时1秒 s0=1; //将S0引脚置为高电平 s1=0; //将S1引脚置为低电平 P0=0xAA; //将P0口输出AA led=0; //LED亮 DelayMs(1000); //延时1秒 s1=1; //将S1引脚置为高电平 s2=0; //将S2引脚置为低电平 P0=0x55; //将P0口输出55 led=1; //LED灭 DelayMs(1000); //延时1秒 s0=0; //将S0引脚置为低电平 s1=0; //将S1引脚置为低电平 s2=0; //将S2引脚置为低电平 P0=0xFF; //将P0口输出FF led=0; //LED亮 DelayMs(1000); //延时1秒 } } void DelayMs(unsigned int ms) //延时函数 { unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<114;j++); } ``` 以上程序实现的功能是:通过74HC138译码器控制LED的亮灭。程序中通过改变S0、S1、S2三个引脚的电平来选择74HC138译码器的输出口,然后通过P0口输出控制LED的亮灭。 实验步骤如下: 1. 将74HC138译码器的S0、S1、S2三个引脚分别连接到P1.0、P1.1、P1.2三个引脚; 2. 将74HC138译码器的Y0、Y1、Y2、Y3四个输出口分别连接到LED的正极; 3. 将LED的负极连接到单片机的GND引脚; 4. 将单片机的P0口连接到74HC138译码器的A0、A1、A2三个引脚。 通过上述实验可以深入了解74HC138译码器的工作原理及其应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值