51单片机——数码管(共阴)
一.数码管的工作原理
数码管的本质是led的并联,分为共阴共阳两种。共阴数码管中led的负极都连接在一起然后接地,这样如果要让led亮就只需要让单片机的I/o口输出高电平。共阳数码管是led的正极连接在一起然后接上VCC,要led亮就输出低电平。
二.数码管显示
1.芯片74HC573(1)OE为使能端,当他为低电平的时候, 锁存器开始工作;OE默认接GND。
(2)LE为锁存端,当LE为高电平的时候,Q0Q7都跟D0D7状态一样;当LE为低电平的时候,Q0Q7都锁存数据,无论D0D7怎么变化,Q0~Q7都保持锁存之前的那个状态。
(3)HC573控制数码管的段选,要点亮数码管,需将段选拉高。
2.芯片74HC138(3.8译码器)
HC138控制的是数码管(共阴)的位选,所以,想要点亮数码管就要将位选拉低。
三.数码管显示的程序
1.首先写好头文件,宏定义管脚
2.然后,我们需要定义一个数组,保存好,我们想要显示的数字(或字母)
比如这样呢,就是1~f,16个元素了。
3.然后我们简单的定义一个延时函数
4.编写数码管显示函数
需要注意的是,首先让段选拉低,熄灭所有的数码管是有必要的,然后用switch语句,case的后面一定要记得跟上break(跳出循环)。最后很重要的一点,数码管的动态显示要记得消影。动态显示实际上是一个接一个的循环的接通位选,只是延时的时间比较短,让人产生数码管在同时显示的错觉。
5.最后,main函数中记得调用数码管显示函数。