微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机学习之4-数码管

51单片机学习之4-数码管

时间:11-30 来源:互联网 点击:

)))/256;

TL0=(65536-Time)%256;//(65536-(50000/(12*(1/12))))%256;

EA=1;//开启总中断

ET0=1;//开启定时器0中断

TR0=1;//启动定时器0

while(1)

{

if(aa==20)//50ms*20=1000ms=1s

{

aa=0;

g++;//个位自增

if(g==10)

{

s++;//十位自增

g=0;

}

if(s==10)

{//百位自增

b++;

s=g=0;

}

if(b==10)

b=s=g=0;

}

ShowTime(table[b],table[s],table[g]);

}

}

/********数码管显示函数********/

voidShowTime(ucharbai,ucharshi,ucharge)

{

//显示百位

dual=1;

P0=bai;

dual=0;

P0=0xff;

weal=1;

P0=0xfe;

weal=0;

delay(YsTime);

//显示十位

dual=1;

P0=shi;

dual=0;

P0=0xff;

weal=1;

P0=0xfd;

weal=0;

delay(YsTime);

//显示个位

dual=1;

P0=ge;

dual=0;

P0=0xff;

weal=1;

P0=0xfb;

weal=0;

delay(YsTime);

}

/********延时函数********/

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

/********中断函数每50ms触发一次********/

voidtimer0()interrupt1

{

TH0=(65536-Time)/256;

TL0=(65536-Time)%256;

aa++;

}

也有采用BCD-7段译码芯片:共阳型的74LS48、74LS49、CD4511。共阴的74LS46、74LS47、CD4513。

第十二集

霖锋教程中的是两个四位一体共阴型数码管,通过一片74HC573芯片控制两个四位数码管的段选,通过一片74HC138芯片选择位数码管(即位选)。

74HC138的引脚说明:



先把一些简单的引脚说一下:

GND接地、VCC接电源正极。

E1、E2:低电平有效,如果其中一个为高电平则无法操控芯,Y0—Y7输出全高电平。

E3:高电平有效,如果为低电平则无法操控芯片,Y0—Y7输出全高电平。

如果要控制芯片首先是VCC和GND接电源,E1、E2低电平或接低,E3高电平。

下面这三个引脚是比较重要的:

A组IO口是输入,Y组端口是输出。

A0、A1、A2是用来控制Y0—Y7输出电平状态,往里面输入八进制数即可指定Y0—Y7中其中一个为低电平。例如想要Y5为低电平,那么5的八进制为101,只需要给A2=1、A1=0、A0=1,即可让Y5为低电平。想要Y3为低电平,那么3的八进制为011,只需要给A2=0、A1=1、A0=0即可。

记住,A组IO只是控制Y组的某一IO输出低电平而已,其余都为高电平。

教程中有八位数码管,所有刚好Y组全部都用上。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top