交通灯keil程序加2位数码管_51单片机开发基础3——数码管显示实验

3.1 数码管工作原理

       数码管是一种利用LED的显示器件,普通的数码管在内部集成了八个数码管,分别组成了对应的段,由于数字只需要七个段就可以,所以有的数码管内部只有七段,称为七段数码管,八段数码管的多余的段被用在小数点上,形成了可以显示小数点数据的显示器件。

       根据数码管内部的连接方式,所以数码管又分为共阳数码管(低电平点亮)与共阴数码管(高电平点亮),共阳数码管内部是将所有LED的正极接在一起组成的公共端接电源+5V,只需要控制对应的LED负极就可以显示数字, 所以共阳级低电平才能点亮,共阴极与共阳级刚好相反,共阴极数码管内部将LED的负极接在一起形成公共端接地 0V,只需要控制对应的LED正极就能够显示数字,所以共阴极数码管高电平点亮。共阳极数码管与共阴极数码管内部结构如下图所示。

f2ffeb7a67f83c28fb99f5d816a55279.png

    由于数码管内部同样是LED组成的,所以理论上需要在每个LED上加一个限流电阻,限流电阻的取值在100~330Ω上。

       所谓的数码管段码的实质就是利用单片机一组端口驱动八个LED,只要能点亮对应的LED,那么数字就会显示出来,所以段码是一些二位16进制组成的数据,常用的数码管接法计算出来的段码如下表所示。

数码管内部连接

共阳

共阴

小数点接单片机

最高位

最低位

最高位

最低位

0

0x40

0x02

0xBF

0xFD

1

0x79

0x9E

0x86

0x61

2

0x24

0x24

0xDB

0xDB

3

0x30

0x0C

0xCF

0xF3

4

0x19

0x98

0xE6

0x67

5

0x12

0x48

0xED

0xB7

6

0x02

0x40

0xFD

0xBF

7

0x78

0x1E

0x87

0xE1

8

0x00

0x00

0xFF

0xFF

9

0x10

0x08

0xEF

0xF7

3.2 数码管的静态显示

3.2.1 原理图

8a88b52f92786a49bbc7e9b8d112efd3.png

3.2.2 例程分析

b41575275994f922b05055d5562494f4.png

这段例程和GPIO实验中的总线输出操作部分的代码是一样的,唯一的区别就是29行,数组里面的数据改成了之前上面的段码,因为原理图中数码管采用了Dp接单片机最高位的连接方式,选用的是共阳极数码管,所以这个数据可以直接从表里面获取。

3.3 数码管的动态显示

3.3.1 动态显示原理

       1位数码管只能显示1位数字,但是如果需要显示多位数字就需要多个数码管同时工作,这也是数码管的缺点,那就是显示的数字越多,数码管就越多,占用的端口也就越多,那么,弥补这种缺点的方法就是数码管的动态显示,所谓动态显示,就是依次向每位数码管送出字形码的同时控制公共端的电平,每一位数码管之间利用延时程序进行延时,当延时程序非常短时,由于发光管的余辉和人眼视觉暂留作用,此时我们的人眼就分辨不出位与位之间有延时存在,此时就感觉各位数码管同时都在显示。

       所谓视觉暂留现象即视觉暂停现象(Persistenceofvision,Visualstayingphenomenon,durationofvision)又称“余晖效应”,1824年由英国伦敦大学教授皮特‘马克’罗葛特在他的研究报告《移动物体的视觉暂留现象》中最先提出:人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

       下图所示是一个2位的数码管结构。

5acf8f0700b51f333e84119224178293.png

3.3.2 原理图

50e3213eb36526f0f07bc18364bcecba.png

3.3.3 例程分析

615fccc127eeb1c8eabf5fa841b94af4.png

第28行:建立一个一维数组存储数码管的段码,由于原理图中的数码管是共阳极数码管,且DP接P0最高位,根据表中的数据可以计算出数码管的段码

第29行:数码管控制端口,由于两个数码管的公共端接在了P2.0和P2.1,所以先给P2.0加高电平,P2.1加低电平,将段码显示在第一个数码管,经过一段时间后,将P2.0加低电平,P2.1加高电平,更新段码显示在第2个数码管上

第32行:P2先控制数码管的公共端,选中第1个数码管

第33行:P0送入段码,显示在第1个数码管上

第34行:延时等待一段时间,达到视觉暂留的目的

第36行:P2再控制数码管的公共端,选中第2个数码管

第37行:P0送入段码,显示在第2个数码管上

第38行:延时等待一段时间,达到视觉暂留的目的

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页