74hc138控制共阳数码管 74hc138驱动共阳数码管显示详解
74hc138推动共阳数码显示管你知晓有多少呢?74hc138推动共阳数码显示管的形式是什么呢?文中关键有关74hc138推动共阳数码显示管的详细介绍。
数码显示管的基础详细介绍
数码显示管电路原理图
这也是非常常用的数码显示管的电路原理图,大家木板上一共有6只数码显示管。前面拥有LED灯泡的学习培训,数码显示管学习培训便会简单的多了。从图1可以看出去,数码显示管一共有a,b,c,d,e,f,g,dp这八个段,而事实上,这八个段每一段全是一个LED灯泡,因此数码显示管便是由八个LED灯泡所构成的。大家看一下数码显示管內部框架图。
数码显示管分成共阳数码显示管和共阴数码显示管,说白了的共阴数码显示管就是8只LED灯泡的负极是接在一起的,也就是负极是公用端,由阳极氧化来调节灯泡是不是亮灭。同样,共阳数码显示管便是阳极氧化是收到一起的,大伙儿能够认真科学研究下面的图1。仔细的朋友也会发觉,数码显示管上面有两个com,事实上便是大家数码显示管的公共性端。为什么有两个,我自己觉得,一方面有两个能够具有对称性的实际效果,恰好是10个脚位,此外一个层面,公共性端根据的工作电流很大,大家中学就读过,并联电路电流量之和相当于总电流量,用两个com能够把公共性电流量均值到两个脚位上来,减少路线承载的电流量。
从大家木板的原理图上就可以看出去,大家常用的数码显示管是共阳数码显示管,如下图所示。
共阳数码显示管电源电路
74hc138操纵共阳数码显示管
从上文我们知道,她们的com是收到了正级上,当然,和LED灯泡电源电路相近,也是由74HC138操纵了三极管的通断来调节全部数码显示管的电流量,大家先看来DS1这一数码显示管。电路原理图上能够看出去,操纵DS1的三极管是Q17,操纵Q17的针脚是LEDS0,相匹配到74HC138上面便是Y0端輸出。
74HC138控制电路
大家如今的效果是让LEDS0这一脚位輸出低电频,坚信我们现在可以单独依据前面学得的信息把ADDR0,ADDR1,ADDR2,ADDR3,ENLED这4个键入情况写出去,如今大伙儿不能懒惰,都去依据138的指南去写一下,不用你牢记这种结果,可是碰到就写一次,锻练过几回后,碰到类似集成ic自身就晓得如何去解决困难了。
数码显示管一般 是用于表明数据的,大家木板上的6个数码显示管,习惯性上大家称作6位,那操纵位挑选的便是74HC138了。而数码显示管內部的八个LED灯泡大家称作数码显示管的段,那麼数码显示管的段挑选(即此段的亮灭)是根据P0口操纵,历经74HC245推动,那样全部线路就完成了。
74hc138操纵共阳数码显示管程序流程
#include //包括存储器的元件库
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main()
{
unsigned char j = 0;
unsigned int i = 0;
ENLED = 0;
ADDR0 = 0;
ADDR1 = 0;
ADDR2 = 0;
ADDR3 = 1; //74HC134开启三极管Q17
while(1) //程序流程无限循环
{
P0 = 0xF9; //开启数码显示管b和c段
}
}
数码显示管的静态数据表明
从上文大家认识到74HC138与此同时一次只有让一个輸出口为低电频,也就是在一个时时刻刻内,大家只有让一个数码显示管表明,自始至终选通数码显示管而且能够依据大家的P0系统总线的讯号来更改这一数码显示管的值,我们可以明白为数码显示管的静态数据表明。
数码显示管静态数据表明是相匹配动态展示来讲的,静态数据表明针对一两个数码显示管还好,好几个数码显示管,静态数据表明完成的作用就没了。这堂课大家先用一个数码显示管的静态数据表明来完成一个简洁的计时器,为一二节课的动态展示奠定基础。
先来详细介绍一个51单片机的关键词code。大家前面课程内容界定自变量的情况下,一般使用unsigned?char或是unsigned?int这两个关键词,那样理解的变数全是放到大家的51单片机的RAM中,我们在系统中能够随便去更改这一自变量的值。可是也有一种参量,我们在程序流程时要应用,可是却不开展对这一值的更改,这类值我们可以加一个code关键词装饰一下,装饰结束后,这一值便会储存到大家的系统室内空间flash中,那样能够大大的减少大家单片机设计的RAM的需求量,终究大家的RAM室内空间相对比较小,而程序流程室内空间是挺大的。
数码显示管的静态数据表明程序流程:
#include //包括存储器的元件库
sbit LED = P0^0;
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
unsigned char code LedChar[] = {
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8e
}; //用二维数组来储存数码显示管真值表,下一课详解二维数组
void main()
{
unsigned char counter = 0;
unsigned char j = 0;
ENLED = 0; ADDR0 = 0; ADDR1 = 0;
ADDR2 = 0; ADDR3 = 1; P0 = 0XFF; //74HC138和P0复位一部分
TMOD = 0x01; //设定计时器0为方式1
TH0 = 0xB8;
TL0 = 0x00; //定正值初始值
TR0 = 1; //开启计时器0
while(1)
{
if(1 == TF0) //分辨计时器0是否外溢
{
TF0 = 0;
TH0 = 0xB8; //外溢后,再次取值
TL0 = 0x00;
counter ;
if(50 == counter) //分辨计时器0外溢是不是做到50次
{
counter = 0; //counter清0,再次记数
P0 = LedChar[j ]; //把二维数组里的相匹配值赠给P0
if(16 == j) //当表明到F后,归0从头开始
{
j = 0;
}
}
}
}
}
总结
有关74hc138操纵共阳数码显示管的讲解就到这儿了,若有存在的不足热烈欢迎纠正。
下一篇:大功率可控硅好坏怎么判断