在我们设计单片机电路的时候,单片机的 IO 口数量是有限的,有时并满足不了我们的设计需求,比如我们的 STC89C52 一共有32个 IO 口,但是我们为了控制更多的器件,就要使用一些外围的数字芯片,这种数字芯片由简单的输入逻辑来控制输出逻辑,比如 74HC138 这个三八译码器,图3-15是 74HC138 在我们原理图上的一个应用。
图3-15 74HC138 应用原理图
从这个名字来分析,三八译码器,就是把3种输入状态翻译成8种输出状态。从图3-15所能看出来的,74HC138 有1~6一共是6个输入引脚,但是其中4、5、6这三个引脚是使能引脚。使能引脚和我们前边讲 74HC245 的 OE 引脚是一样的,这三个引脚如果不符合规定的输入要求,Y0 到 Y7 不管你输入的1、2、3引脚是什么电平状态,总是高电平。所以我们要想让这个 74HC138 正常工作,ENLED 那个输入位置必须输入低电平,ADDR3 位置必须输入高电平,这两个位置都是使能控制端口。不知道大家是否记得我们第二课的程序有这么两句 ENLED = 0;ADDR3 = 1;就是控制使这个 74HC138 使能的。
这类逻辑芯片,大多都是有使能引脚的,使能符合要求了,那下面就要研究控制逻辑了。对于数字器件的引脚,如果一个引脚输入的时候,有0和1两种状态;对于两个引脚输入的时候,就会有00、01、10、11这四种状态了,那么对于3个输入的时候,就会出现8种状态了,大家可以看下边的这个真值表——图3-16,其中输入是 A2、A1、A0 的顺序,输出是从Y0、Y1......Y7 的顺序。
图3-16 74HC138 真值表
从图3-16可以看出,任一输入状态下,只有一个输出引脚是低电平,其他的引脚都是高电平。在前面的电路中我们已经看到,8个 LED 小灯的总开关三极管 Q16 基极的控制端是 LEDS6,也就是 Y6 输出一个低电平的时候,可以开通三极管 Q16,从右侧的希望输出的结果,我们可以推导出我们的 A2、A1、A0 的输入状态应该是110,如图3-17。
图3-17 LED 小灯整体电路图
那么我们再整体捋一遍点亮 LED 小灯的过程,首先看 74HC138,我们要让 LEDS6 为低电平才能导通三极管 Q16,所以 ENLED = 0;ADDR3 = 1;保证 74HC138 使能。然后 ADDR2 =1; ADDR1 = 1; ADDR0 = 0;这样保证了三极管 Q16 这个开关开通,5 V 电源加到 LED 上。
而 74HC245 左侧是通过 P0 口控制,我们让 P0.0 引脚等于0,就是 DB_0 等于0,而右侧 DB0 等于 DB_0 的状态,也是0,那么这样在这一排共8个 LED 小灯当中,只有最右侧的小灯和 5 V 之间有压差,有压差就会有电流通过,有电流通过我们的 LED2 就会发光了。
74HC245 左侧我们可以看出来,是直接接到 P0 口上的,而 74HC138 的 ADDR0 ~ ADDR3接在何处呢?来看图3-18。
图3-18 显示译码与步进电机的选择跳线
跳线是大家以后经常会接触到的一个器件,它就是2根或者3根靠在一起的排针,然后可以用一个叫作跳线帽的东西连接其相邻的2根针。它的作用就是起到导线的作用,我们可以通过跳线帽来实现连接线的切换。如图3-19。
图3-19 跳线实物图
从图中可以看出,跳线帽本身可以占2个针的位置,现在是把右侧和中间的针连到了一起,这样实现的就是图3-18中的 P1.0 和 ADDR0 连接到一起、P1.1 和 ADDR1 接一起、P1.2 和 ADDR2 接一起、P1.3 和 ADDR3 接一起。这样就可以透彻理解我们第二课的程序了。
好了,大家认真再回顾一下我们第二课的那个程序,再领悟一下这几个数字器件的用法。
关键字:单片机 74HC138 三八译码器
引用地址:
单片机中 74HC138 三八译码器的应用
推荐阅读最新更新时间:2024-03-16 15:45
力源信息:SiC/IGBT等产品产能最紧张 公司自研MCU芯片量产
1月26日,力源信息在电话会议中表示,目前最紧张的产品包括SiC、IGBT、MOS管、各类车用芯片、Image Sensor(图像传感器)等产品,主要是因为产能不足、需求旺盛影响。 其认为,这个现象与整个产业升级息息相关,随着智能化及物联化的发展,电子行业各类产品会使用比以往更多种类及数量的芯片,因此以上产品的景气度仍将持续,且这些芯片会朝着小型化、多功能集成等更高性能的方面快速发展,前景良好。 2022年,部分芯片供应缓解,工业及新能源、汽车、智能仪表等行业会持续发力导致继续紧缺。对公司而言,将会持续优化业务结构,代理更多的优质产品线、开拓更多的客户,尤其近几年国产芯片的崛起,公司也正在加速扩大国产线销售。 力源信息表示,“目前
[手机便携]
51单片机的外部中断
以前很少用外部中断,今天正好做项目要用,所以就复习了下。两个管脚INT0和INT1用来识别外部电平,以下是与之相关的两个寄存器: EX0和EX1分别是INT0和INT1的中断允许位,IT0和IT1分别是INT0和INT1的触发方式控制位,为0则是低电平触发方式,外部中断源(INTx)必须保持低电平有效,直到该中断被CPU响应,同时在该中断服务程序执行完之前,外部中断源必须被清除(比如P3.2 要变高)否则将产生另一次中断。为1时,外部中断(INTx)端口由 1 0 下降沿跳变,激活中断请求标志位IEx,向主机请求中断。IE0和IE1分别是INT0和INT1的中断标志了。
[单片机]
单片机键盘处理程序设计举例
1、键盘与单片机的连接 键盘连接 图3 单片机与键盘接口图 图4 2、通过1/0口连接。将每个按钮的一端接到单片机的I/O口,另一端接地,这是最简单的办法,如图3所示是实验板上按钮的接法,四个按钮分别接到P3.2 、P3.3、P3.4和P3.5。对于这种键各程序能采用持续查询的办法,功能就是:检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入对应的键处理。下面给出一个例程。其功能很简单,四个键定义如下: P3.2:开始,按此键则灯开始流动(由上而下) P3.3:停止,按此键则停止流动,所有灯为暗 P3.4:上,按此键则灯由上向下流动 P3.5:下,按此键则灯由下向上流动 Up
[单片机]
51单片机实验8:led点阵(1):点亮一个点
开发板led点阵模块电路图如下: 74HC595:74HC595是一个8位串行输入、并行输出的位移缓存器。芯片第11角为数据输入时钟线,上升沿有效。芯片第12脚为输出存储器锁存时钟线,上升沿有效。芯片第13脚为输出有效(低电平)。芯片第14脚为串行数据输入。 为表示出输入74HC595的8位二进制数,开发板加入了led模块(图一中绿色所示)。若要使led发光,则需将JP595接vcc。 OE为输出有效控制端,低电平有效,所以务必将JOE短接片短接到GND端。 _nop_();函数为延时一个机器周期,所对应头文件为intrins.h #include reg52.h #include intrins.h #
[单片机]
超小型的无线收发模块LT8920配置思路+单片机发射接收程序
近来一直在研究无线项目,其中的重点就是无线收发芯片,可以正常的发送接收数据了,无线项目的大难题也就解决了。于是开始收集各种无线收发芯片的资料,例如NRF24L01,CC1101,一些LoRa模块还有一些超外差无线模块等等,但是他们有着相同的问题,一是例如NRF24L01和CC1101之类的使用QFN封装的模块在自制上存在焊接困难度的问题,再就是这些模块普遍都有着过于繁杂的外围电路(一些电感电容),无法将其做到很小的体积。于是在查阅了很多资料后,有一款小巧的无线模块进入我的眼帘,就是LT8920。 先不谈他的各项参数指标相对其他模块有什么优劣,光是这个采用了SSOP16的引脚封装就使得其焊接容易了许多。并且其简洁的外围电路着实易于
[单片机]
专业工程师为你讲解ARM与单片机的区别
1、软件方面 这应该是最大的区别了。引入了操作系统。为什么引入操作系统?有什么好处嘛? 1)方便。主要体现在后期的开发,即在操作系统上直接开发应用程序。不像单片机一样一切都要重新写。前期的操作系统移植工作,还是要专业人士来做。 2)安全。这是LINUX的一个特点。LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。这在单片机的软件开发中没见到过。 3)高效。引入进程的管理调度系统,使系统运行更加高效。在传统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。 2、硬件方面 现在的8位单片机技术硬件发展的也非常得快,也出现了许多功能非常强大的单片机。但是与32ARM相比还
[单片机]
单片机系统设计与C51编程实践分享
1.1 了解单片机的能力 【规则1】设计满足要求的最精简的系统。正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。我们应该有这样一个认识,即单片机的处理能力是非常强大的。早期的PC机,其CPU(8086)处理能力和8051 相当,却能处理相当复杂的任务。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。1.2 系统可靠性至关重要 【规则2】使用看门狗。看门狗电路通常是一块在有规律的时间间隔中进行更新的硬件。更新一般由
[单片机]
一文详解80C51单片机的指令系统
指令是指示计算机执行某种操作的命令,计算机能识别执行的只能是二进制代码,以二进制代码来描述指令功能的语言,称为机器语言。 由于机器语言不便于人们识别,记忆,理解和使用,因此便对每条机器语言指令用助记符号来形象表示,这就便形成了汇编语言。 一条指令是机器语言的一个语句,包括操作码字段和操作数字段。一台计算机所具有的全部指令的集合,称为这台计算机的指令系统。 不同的微处理器,其指令系统一般是不同的。 80C51单片机指令系统共有111条指令,具体特点如下: 1)执行时间短,单机器周期指令(64条),双机器周期指令(45条),而四机器周期指令只有2条; 2)指令编码字节少,单字节指令(49条),双字节指令(45条)和最长的三字节
[单片机]