38译码器驱动数码管电路图译码器驱动数码管电路图
使用38译码器来驱动数码管来节省IO端口 (1)什么是38译码器? 38译码器有3个输入端口A、B、C和8个输出
端口Y0-Y7。由输入端口控制输出端口的值 (2)为什么要使用38译码器 回想之前的驱动动态数码管的时候,
一个段码端口控制显示的数字,一个com端口控制哪个......
使用38译码器来驱动数码管来节省IO端口
(1)什么是38译码器?
38译码器有3个输入端口A、B、C和8个输出端口Y0-Y7。由输入端口控制输出端口的值
(2)为什么要使用38译码器
回想之前的驱动动态数码管的时候,一个段码端口控制显示的数字,一个com端口控制哪个数码管工作,段码端口接8个IO引
脚,com端口接8个IO引脚。这样很浪费IO口资源,为了节省IO资源,使用38译码器接在com口,这样可以使用3个输入引脚
控制8个com端口了。J15接到J16端口。
(3)为什么3个输入端可以控制8个输出端口值?
3个输入端口,每一个端口有两种状态(0或1),3个端口可以组成8中不同的状态。
(4)3个输入端口如何控制8个输出端口?
根据74LS138芯片的数据手册查询38译码器芯片的译码表即可。
分析数据手册可以得到:
(1)G1、G2*两个端口是使能引脚,并且要想让38译码器工作,G1接高电平,G2*接低电平。所以看上面38译码器的原理图
中G1接VCC,G2*接GND。
(2)当ABC三个输入端口输入不同的值时,Y0-Y7会对应的输出低电平,回想动态数码管是共阴数码管,而38译码器Y0-Y7
默认输出高电平,这样衔接的天衣无缝。
实验分析:
第一步:八个数码管阳极接一个IO端口,来负责输出显示的数字(也就是输出对应的段码)。
第二步:八个数码管的com端分别接入38译码器的Y0-Y7引脚。由38译码器的ABC三个输入端来控制数码管的com端口从而达
到控制哪个数码管工作的目的。
第三步:根据原理图接线,J15-J16、ABC分别接P1.0、P1.1、P1.2
第四步:测出数码管的段码和38译码器的译码表。
第五步:编程。
实验代码:
#include
void delay(void)
{
unsigned char i=0,j=0;
for(i=0;i<100;i++);
for(j=0;j<20;j++);
}
void main(void)
{
/* P0.0接到 A,P0.1接到B,P0.2接到C
评论1