用户工具

站点工具


侧边栏

抱歉,您没有权限增加页面
4.单片机入门教程:12.数码管驱动

单片机入门教程之数码管驱动

一:实验原理
何为数码管?就是能显示数字的管子。数码管由多个发光二极管组成,封装在一个塑料块里,有八个段组成8字形和点,可以显示数字和小数点。每个段对应一个发光二极管。按能并排显示多少个8,分为1位2位4位等。数码管又分为共阳极和共阴极,把所有发光二极管的正极连在一起做一个脚的叫共阳数码管,负极连在一起的叫共阴数码管。有了数码管你就可以做个时钟了,如下:

数码管显示方法分为静态显示和动态显示两种,先来理解一下如何让数码管静态显示

看上图,如何让数码管显示一个8,就拿共阴数码管来说,先把共阴极CC接地,然后再给ABCDEFG七段都加上电压,这样LED点亮就显示了一个8字了。我们把ABCDEFG接到单片机的IO口上,对应IO口输出高电平,就可以改变数字了。当有两位数码管的时候再接上八个IO口来驱动这八个段,这就是静态显示。

还有一种方法就是动态显示,不管你是几位的数码管,只要把所有的段都并联起来,接上八个IO口一起控制,然后每一位的共阴极各用一个IO口来控制亮与不亮。

原理是这样的,拿2位数码管来说,让它显示51,先让第一位点亮,延时一会,然后输出第一位的段码5,再让第一位不亮,延时一会。再让第二位的亮,延时一会,再输出第二位的段码1,再关闭第二位,延时一会。即让每一位的数码管轮流点亮,轮流送段码显示,由于两位数码管点亮的时间不同但间隔只有几毫秒,由于人眼暂留效应,看到两位都是亮的而显示不同的数字。不太理解的先有个概念,看下面的代码就容易明白了。

板子上用的是两位共阴数码管,原理图如下:

二:代码演示与解说
实验现象:2位共阴数码管动态扫描,显示51两个数字。

注:本代码工程文件在stc51 discovery开发板【实验例程】【进阶实验】【实验三十六】

代码解说:
只看第16行吧,这里是把共阴数码管0-F的段码都写出来放在数组里以供查询,你要想显示5,就查询DigiTable[5]正好对应5的段码,段码的十六进制表达方法如下,1为点亮,0为熄灭。

4.单片机入门教程/12.数码管驱动.txt · 最后更改: 2017/03/07 14:34 由 wawooo