导航
I 原理分析
II 实战操作
I 原理分析
1. 为什么叫8*8数码管呢?不是因为有8个数字为8的晶体管哦,看原理图是有8个被分为了a、b、c、d、e、f、g、dp八个led灯的数码管;
2. 这里采用的数码管的8个led灯为共阴极(见下图);
展开后
结合预补知识点1、2,我们引出并尝试解决第一个问题:
Q1:由原理图P0端控制数码管,P0端八位(P0.0—P0.7)是怎么操控64个LED的呢?
A1:这个问题从原理图一看便知:八个数码管的a阳极是并联,当P0的0位对a输出信号时,八个数码管都能得到信号且都是高电平,因此我们得到预补知识点:
3. 哪个数码管亮取决于哪个共阴极(LED1-8分别为8个共阴极)为低电平;
4. 数码管显示哪个数取决于P0口的输入信号。
下面我们来解决第二个问题:
Q2:如何让指定的数码管显示指定的数字?
A2:不难发现,要指定数码管我们只需控制指定数码管对应的共阴极为低电平即可;指定的数字我们只需让P0口输入信号做出改变即可,因此我们从两方面进行分析:
①. 如何让指定的数码管里8个LED共阴极为低电平:
我们注意到8个数码管的8个共阴极分别连接到138译码器上,因此不得不翻出它的一些详细信息:
不难发现38原来是3输入-8输出的意思;其中A0-A2为输入,Y0-Y7(即刚开始原理图中的LED1-LED8)为输出。那么现在目的很明确:控制A0-A2的输入使LED1-LED8中特定一个引脚输出低电平。于是俺翻出了它的真值表
我们发现了规律:A0-A2三位数组成的二进制数转化成十进制数,设这个数为n,那么代表输出端Yn就为低电平。Deal!
②:如何控制P0口输出信号使其转化为指定数:
原理我们已经理解:数字0就是a、b、c、d、e、f灯亮,g、dp灯灭,参见这篇文章中分析的对端口的操作,数字0对应的就是0011 1111,十六进制转化为
II 实战操作
懂了上面的原理,下面的事情就好办了。我们直接进行实战操作:
由上面的分析,我觉得让其中一个数码管显示特定数已经so easy了,不再演示。
效果演示:
我们知道:A0-A2的值必须固定,因此我们没有办法做到让8个数码管同时亮,那我是怎么让他们显示我的生辰八字的呢?
想的没错,我再一次用人类的视觉特性骗了大家:
我们先让一个数码管显示数,然后第二个,短短几毫秒一个循环,咱也反应不过来,可不就被骗了吗?
贴代码:
在线留言(留言后专人第一时间快速对接)
已有 926 名客户选择了我们