单片机中74HC138三八译码器的应用

在我们设计单片机电路的时候,单片机的 IO 口数量是有限的,有时并满足不了我们的设计需求,比如我们的 STC89C52 一共有 32 个 IO 口,但是我们为了控制更多的器件,就要使用一些外围的数字芯片,这种数字芯片由简单的输入逻辑来控制输出逻辑,比如 74HC138这个三八译码器,图 3-15 是 74HC138 在我们原理图上的一个应用。


[img]http://dl2.iteye.com/upload/attachment/0096/6120/a131558b-3711-3223-b07d-07972dcd30dc.jpg[/img]


[img]http://dl2.iteye.com/upload/attachment/0096/6124/259b9538-91aa-3c95-9779-fb046734a433.jpg[/img]

[img]http://dl2.iteye.com/upload/attachment/0096/6126/41afdd09-0155-3182-b746-937797c93c89.jpg[/img]
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于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译码器的工作原理及其应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值