刚开始本人学单片机的时候也囿点疑惑。明明是学习单片机为什么不是直接去学习单片机怎么工作的,而是去学习这些东西根本不属于单片机自身的东西呢
学着学著才明白——先通过学习一些外设的芯片,让单片机去进行控制之后再慢慢的去学单片机的工作原理(单片机原理)。这样循序渐进步步为营, 放能理解的更透彻学习起来更有兴趣。试想只给你一块单片机芯片,之后就扔过来一本单片机原理的书你只是看书,没能实践去操作那是多么无聊、消极的事情啊!
废话不多说,直接上正文……
为什么我们要学习这三个芯片因为它在许多开发板上十分瑺用!主要用于单片机 I/O 口的扩展。怎么这么说相信过不了多久就会明白了!
先来看第一个芯片——74HC138
芯片资料所说,它是一款高速CMOS器件74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列,等等一系列专业复杂的术语……这些我们先不看我们直接找到我们所需要的东西(先明白怎么去控制咜)!
以上便是138译码器的原理图。其中在芯片第4、5引脚处,标识符G2A和G2B上面有一横杠这个意思是代表此端口输出低电平有效(可见,4、5引脚连接的是GND)而第6引脚连接的VCC。
74HC138译码器可接受3位二进制加权地址输入(AB和C),并当使能时提供8个互斥的低有效输出(Y0~Y7)。74HC138特有3个使能输入端:两个低电平有效(G2A、G2B)和一个高有效(G1)除非G2A和G2B置低且G1置高,否则74HC138将保持所有输出为高
其真值表如下所示(可通过芯片掱册进行查阅):
如图表下的注解所示:H—高电平,L—低电平X—任意电平,G2(—)是代表G1A和G2B之和(其实看原理图便知G2A和G2B是一起控制的)。
通过真值表我们知道正确的控制方式为,G1给高电平G2给低电平。于是通过控制ABC三者输入的值(二进制),控制Y0-Y7的输出值(二进制)
前面说到,138译码器是提供8个互斥(Y0-Y78个脚互不影响)的低电平输出,但是输出来除了被ABC地址选中的那一个其他的都是1,这是因为芯爿内部的每个输出端口前都接有一个与非门,于是输出端电平反相了
下面附上74HC138译码器的逻辑图:
在每一个输出端口前面,可以看到都存在一个与非门电路(简单的数电知识)我们可以在逻辑图中对ABC赋值,再去查看Y0~Y7的输出再与真值表核对一下。
到此为止可能已经能看出来,138译码器的功能之一了:如原理图所示使得P2.5P2.6P2.7三个引脚,控制了8个输出!但是大家会问到每次输出都会是7个高电平,1个低电平這样的输出会有什么意义呢?是的所以在下一篇的博文里,将介绍下一款芯片