单片机第四课:数码管显示原理详解——普中单片机指南

数码管显示        

        上一次我们学习了如何运用矩阵按键,今天,我们就来学习单片机一个新的模块数码管,同时学习如何控制数码管显示。

所需材料清单:

软件:Keil uVision5(程序编写软件)

           stc-isp(烧录软件)

硬件:普中单片机开发板

           USB数据线(用于供电和编程)

一、单个数码管

① 结构组成 

        一个数码管是由a、b、c、d、e、f、g、dp八个二极管组成,八个LED的相同一端连接在一起,另一端引脚引出来作为控制端口。

② 工作方式 

        共阳数码管:所有阳极连接在一起接高电平,通过控制阴极的低电平来点亮对应的段。

        共阴数码管:所有阴极连接在一起接低电平,通过控制阳极的高电平来点亮对应的段。

图1

③ 工作原理 

        如图2为一个共阳极数码管,要使数码管显示不同的数字,只需要将对应的LED灯点亮即可。例如我们想要显示数字“6”,则需要将“a、f、g、e、d、c”这6个LED点亮,“b、dp”这2个LED熄灭即可显示数字“6”。

图2

二、多位数码管

① 结构组成

        在普中单片机上用的是两组4位数码管,多位数码管所有线码端共用1个I/O口,该图12、9、8、6端是位码端,用于控制哪个数码管显示。

 图3

② 多位数码管的连接方式 

        (1)静态显示:是指数码管直接显示特定的数字。每一位数码管的段选线(控制段亮灭的线)都需要独立的I/O口来控制,这种方式简单但占用大量I/O口。

        (2)动态显示:通过将所有数码管的段选线并联,利用位选线(控制哪一位数码管有效的线)来动态切换显示内容。这种方式利用人眼的视觉暂留效应,通过快速切换显示内容,使人感觉所有数码管同时亮起。

③ 位选段选 

        在使用时,需要程序选定使用哪几个数码管,这就是“位选”;需要程序数码管显示什么数字,这就是“段选”。

④ 138译码器  

图4 

        单片机上的的8个数码管连向138编码器的输出端,138编码器可以将八个端口控制的数码管转变为3个端口控制,138编码器的输入端由P2的引脚接入。当我们想控制其中一个数码管数码管时,可以通过P2来控制。例如我想控制第4个数码管,就需要在P2利用二进制输入100(4的二进制)来控制。

⑤ 数码管显示数字或字母时芯片引脚的状态值  

 图5

控制P0的状态值来控制数码管具体显示哪个数字(二进制转为十六进制来控制)

若显示数字“0”,则abcdef亮,状态值为00111111(指十六进制0x3f)

显示数字“1”,bc亮,状态值00000110(指十六进制0x06)

显示数字2~9以此类推。

显示字母“A”,abcefg亮,状态值01110111(指十六进制0x77)

显示字母“B”,cdefg亮,状态值01111100(指十六进制0x7c)

显示其他字母以此类推。

三、数码管的控制

① 静态数码管显示控制

        第一步:首先新建工程,点击左上角的Project,选择新建工程。

图6

        第二步:开始编写代码。

 图7

第三步:点击编译按钮,若出现0Error 0Warning就是完成啦。接着就是烧录程序看效果。

 图8

 

效果展示:(第六个数码管显示数字“0”)

图9

② 动态数码管显示控制

与静态数码管显示的区别:

        若我们直接将两个子函数连接起来想达到同时出现数字的效果,会造成多个数码管同时显示,产生错位的现象。为了解决这种现象,我们要使数码管的“消影”。

产生错位的原因:

        没有消影时单片机的运行是(位选→段选→位选→段选)。由于单片机的运行很快,会导致段选的数据蹿到下一个位选,造成两个数据重叠。所以我们要在段选后加一个清零。(位选→段选→清零→位选→段选)。为了避免每一次使用都要在子函数添加清零,可以选择在子函数中添加延迟后清零,这样子的操作就称为数码管“消影”。

对Niexe子函数进行修改,添加清零的过程。

图10

对主函数进行修改,添加子函数Niexe使多个数码管发亮。

图11

效果展示:

图12

学完矩阵按键和数码管,那让我们将其联动起来吧!

要求:前四位数码管在对应的矩阵按键按下时显示对应的数字。如按下第16位按键时数码管显示数字“0016”。后四位数码管在200ms的间隔实现自增,满60归0。(实现效果如0..1..2..3..4..5.. .60..0..1)

总 结

        在每次学习中,收获到新知识就算是一次成功,一次突破。今天我们学习了单片机数码管的静态显示和动态显示,不仅是对单片机新模块的开发和实践,更是激发了对单片机的好奇心。在今后的学习中我们不会忘记学习时的激情和好奇,同时在学习结束后要进行复习和练习才能更好的掌握新知识。

若文章有出现纰漏还请大佬指正

作者:lhy

作者:LL工作室

物联沃分享整理
物联沃-IOTWORD物联网 » 单片机第四课:数码管显示原理详解——普中单片机指南

发表回复