51单片机应用开发---数码管的控制应用

server/2024/11/14 15:18:37/

实现目标

1、掌握数码管结构、驱动原理及应用;

2、掌握数码管段码表推导;

3、会编程让开发板8个数码管动态显示。


一、什么是数码管?

1.数码管定义

数码管,也称为LED数码管,基本单元是发光二极管(LED)。分为七段数码管和八段数码管(多一个小数点DP)。数码管在我们生活中无处不在,比如家用电磁炉、洗衣机、冰箱等显示应用,还有电子表的时间显示,都使用了数码管的相应原理。

          

1.1 数码管的引脚定义:

数码管的笔端:


上图为一个数码管的笔端图,笔端分为A、B、C、D、E、F、G、DP 8段,也就是由8个LED组成的,点亮前7段既可点亮一个数字,DP一般用于表示小数点。

2.数码管分类

数码管按其个数可分为单个数码管、多个数码管;按其公共极连接情况可分为共阴极和共阳极数码管

(1)  数码管按连接个数分

  • 单个数码管

                           

一个数码管是由a、b、c、d、e、f、g、dp八个二极管组成,8个LED一端接在一起,另一端引脚引出来。二极管如果阳极连在一起,就是共阳极数码管,阴极连在一起,就是共阴极数码管。

  • 多个数码管

               

上图所示的是四个数码管,在使用时,需要程序选定使用哪几个数码管,这就是“位选”,选定数码管后再对选定的数码管进行操作,其操作与单个数码管的操作一致(接下来还会进一步详解),这就是“段选”。

(2)数码管公共极按照连接情况分

共阳数码管:所有LED的阳极连接到一起形成一个公共阳极接VCC,单片机需要控制某段LED的阴极为低电平时,相应LED就会点亮

共阴数码管:所有LED的阴极连接到一起形成一个公共阴极接GND,单片机需要控制某段LED的阳极为高电平,相应LED会点亮。注:单片机上IO口的电压不足以驱动数码管的LED,因此共阴数码管的阳极一般并不直接连到单片机的IO上,而是中间再接一个电源。

3.数码管显示原理

(1)  共阳数码管显示的字符码推导:

如上图,是一个共阳极数码管,要使数码管显示不同的数字,只需点亮对应LED即可。如:数码管显示“0”,则a、b、c、d、e、f 六个LED亮,g、dp  这俩个LED灭,即可显示“0”。

(2) 数码管码表

共阳数码管:

unsigned char  gsmg_code[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

共阴数码管:

unsigned char  gsmg_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

二、数码管驱动方式

2.1 静态驱动显示

静态驱动 是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

(1)优势:是驱动简单直接,好编程
(2)缺陷:每一个数码管需要1个端口,单片机的端口不够用

2.2 动态驱动显示

动态驱动 是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

(1)优势:IO占用少
(2)缺陷:显示亮度不够,编程相对复杂

首先了解一些必要知识
1、多位数码管是扫描显示,也就是同一时刻只有一个数码管显示
2、视觉暂留效果:第一个数码管显示完,第二个数码管接着显示,接着后面数码管一次显示,当显示(扫描)足够快的时候,人眼是看不到闪烁的,就认为多个数码管是同时显示的
3、多位数码管只能同时显示多个一样的数字,要显示不同数字需要扫描显示

显示实例:

比如,用8个数码管要显示12345678,你看起来8个数码管是同时亮的,其实同一时刻只有一个数码管是亮的。我们把时间放慢,看看数码管都发生了什么变化:
1、第1毫秒

2、第二毫秒

3、第三毫秒

4、第四毫秒  5、第五毫秒  6、第六毫秒  7、第七毫秒

8、第八毫秒

当数码管的扫描频率大于50hz的时候人眼是基本分不清的,也就是你的扫描8个数码管的周期控制在20ms内就可以实现动态显示不闪烁。

三、数码管驱动芯片(普中开发板)

开发板上,数码管的驱动需要两个芯片,一个是 74HC138译码器,另一个是74HC245双向数据缓冲器。

3.1  74HC138译码器

74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。

3.2  74HC245双向数据缓冲器

74HC245兼容TTL器件引脚的高速CMOS总线收发器(bustransceiver),典型的CMOS型三态缓冲门电路,八路信号收发器。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。主要应用于大屏显示,以及其它的消费类电子产品中增加驱动。

管脚定义
74HC245的引脚包括输出使能(OE),方向控制(DIR),A组输入/输出(A0-A7),B组输入/输出(B0-B7),电源(VDD)和(GND)。
 

管脚说明
下表是74HC245所有管脚的功能说明

 74HC245真值表

真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。
H代表高电平,L代表低电平,X代表随机电平(可高可低)

四、程序设计

4.1 第一个数码管显示数字“0” (静态驱动)

#include <REGX52.H>sbit A1 = P2^2;
sbit B1 = P2^3;
sbit C1 = P2^4;void  main()
{//位选控制:哪一个数码管工作C1 = 0;B1 =0;A1 =0;//数码管1工作//段选控制:要显示什么P0 = 0X3f; //显示0  段码对应 P07->DP ... P01->B, P00->Awhile(1){}}

注:普中开发板的数码管为共阴数码管。

4.2  8个数码管从左至右显示数字“12345678” (动态驱动)

五、实验效果

六、仿真实现


总结


http://www.ppmy.cn/server/119712.html

相关文章

接口测试(十二)

一、前台、后台、数据库三者关系 fiddler抓包是抓取客户端 --> 服务端 发送的的请求接口 开N个网页&#xff0c;只要有对后端发送请求&#xff0c; fiddler是无差别抓取 F12只抓取当前页面的数据 二、接口概念 接口是什么&#xff1f;— 传递数据的通道 测试系统组件间接口…

MVCC机制解析:提升数据库并发性能的关键

MVCC机制解析&#xff1a;提升数据库并发性能的关键 MVCC&#xff08;Multi-Version Concurrency Control&#xff09; 多版本并发控制 。 MVCC只在事务隔离级别为读已提交(Read Committed)和可重复读(Repeated Read)下生效。 MVCC是做什么用的 MVCC是为了处理 可重复读 和…

Redis的持久化和高可用性

目录 一、淘汰策略 1、背景 2、淘汰策略 二、持久化 1、背景 2、fork进程写时复制机制 3、Redis持久化方式 1、aof 2、rdb 三、高可用 1、主从复制 2、Redis哨兵模式 3、Redis cluster集群 一、淘汰策略 1、背景 首先Redis是一个内存数据库&#xff0c;将所有数…

VirtualFlow算例 | 水库大坝溃坝数值模拟

为充分利用水资源,人们在天然河流上修建了水库大坝,以达到调控洪水、发电、灌溉、供水、通航、旅游、渔业养殖等目的&#xff0c;水库大坝对人类社会和经济的发展起到了极其重要的推动作用&#xff0c;但是一旦由于某种原因发生溃坝失事&#xff0c;对下游所造成的生命和财产损…

蓝桥杯2024省C

P10898 [蓝桥杯 2024 省 C] 拼正方形 题目描述 小蓝正在玩拼图游戏&#xff0c;他有 7385137888721个 22的方块和 10470245 个 11 的方块&#xff0c;他需要从中挑出一些来拼出一个正方形&#xff0c;比如用 3 个 22 和 4 个 11 的方块可以拼出一个 44 的正方形&#xff0c;用…

深入Android UI开发:从自定义View到高级布局技巧的全面学习资料

在Android开发的世界中&#xff0c;UI设计和实现是吸引用户的关键。本文将为您介绍一套全面的Android UI开发学习资料&#xff0c;包括详细的学习大纲、PDF文档、源代码以及配套视频教程&#xff0c;旨在帮助您从自定义View到高级布局技巧&#xff0c;全面提升您的UI开发技能。…

YOLOv9改进策略【注意力机制篇】| 2024 SCI TOP FCAttention 即插即用注意力模块,增强局部和全局特征信息交互

一、本文介绍 本文记录的是基于FCAttention模块的YOLOv9目标检测改进方法研究。FCAttention是图像去雾领域新提出的模块能够有效整合全局和局部信息、合理分配权重的通道注意力机制,使得网络能够更准确地强调有用特征,抑制不太有用的特征,在目标检测领域中同样有效。 专栏目…

政务安全运营核心能力模块

采集能力 提供收集云安全、网络安全、数据安全、应用安全、终端安全、密码安全日志的能力&#xff0c;形成安全数据的大集中&#xff0c;为支撑全面风险感知和安全管控提供数据基础。 威胁分析能力 通过威胁情报、威胁分析模型等&#xff0c;基于对大量历史数据持续进化不断…