电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

38译码器驱动数码管电路图

2017-05-30 12:27分类:电子技术 阅读:

 

运用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<reg51.h>

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
P0端口是段码口,操控要闪现的数字
P1端口是38译码器的端口,经过com端操控第几个数码管作业
*/

/* 查验38译码器的位码
c b a
000 Y0输出低电平 第1个数码管作业 对应十六进制数0x1
001 Y1输出低电平 第2个数码管作业 对应十六进制数0x2
010 Y2输出低电平 第3个数码管作业 对应十六进制数0x3
011 Y3输出低电平 第4个数码管作业 对应十六进制数0x4
100 Y4输出低电平 第5个数码管作业 对应十六进制数0x5
101 Y5输出低电平 第6个数码管作业 对应十六进制数0x6
110 Y6输出低电平 第7个数码管作业 对应十六进制数0x7
111 Y7输出低电平 第8个数码管作业 对应十六进制数0x8

*/
unsigned char duanma[8]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
//段码
unsigned char weima[8]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7}; //38译码器的位码
unsigned char i=0;
while(1)
{
for(i=0;i<=7;i++)
{
P1=weima[i]; //38译码器的位码
P0=duanma[i]; //八个数码管的段码
delay();
P0=0; //消隐
}
}
}
试验总结:
(1)运用38译码器便是为了节约IO口,假定IO口够用能够不运用38译码器。
(2)动态数码管的阳极接在P0这个IO端口上,操控数码管闪现的数字,阴极接在38译码器的八个输出引脚上Y0-Y7,Y0-Y7由38译码器的ABC三个输入引脚操控。操控哪个数码管作业。
(3)查验数码管的段码和38译码器的位码。
(4)先剖析原理图看怎样接线,再看38译码器的数据手册看它怎样作业。终究编程。
(5)偏重试验剖析进程,而十分识自身,多总结学习办法。

上一篇:lm567调制解调电路图

下一篇:肖特基二极管压降多少

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部