51单片机学习三 关于静态数码管的使用

发布者:平和心态最新更新时间:2022-07-29 来源: csdn关键字:51单片机  静态数码管  COM 手机看文章 扫描二维码
随时随地手机看文章

单片机芯片型号 STC89C516


需求


需要知识


1.有关数码管


数码管是一种半导体发光器件,其基本单元是发光二极管。就是若干个二极管拼出来的。数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点( DP),这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为 1 位、 2 位、 3 位、 4 位、 5 位、6 位、7 位等数码管。


2.共阳极数码管和共阴极数码管


按单元连接方式可分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管, 共阳数码管在使用时将公共极 COM 接到一定电压(5v), 某一字段发光二极管的阴极为低电平时,相应字段就点亮, 当某一字段的阴极为高电平时, 相应字段就不亮。共阴数码管反之。


其实就是,八个条形的发光二极管焊在一起,阴极或阳极也一起连接,当另一边给出一个信号,让二极管的另一边有规律的接电,使需要的二极管亮起来,就可以组成数字了。


3.关于如何亮起来

在这里插入图片描述

(中间图为共阴极内部原理图,右图为共阳极内部原理图)


我们看这张图 :


一位数码管的引脚是 10 个,显示一个 8 字需要 7 个小段,另外还有一个小数点,所以其内部一共有 8 个小的发光二极管,最后还有一个公共端。多数生产商为了封装统一,单位数码管都封装 10 个引脚,其中第 3 和第 8 引脚是连接在一起的。它们的公共端又可分为共阳极和共阴极。


先看共阴极的:

8个发光二极管的阴极在数码管内部连接在一起,阳极是独立的, 通常在设计电路时一般把阴极接地。


给数码管的任意一个阳极加一个高电平时,对应的这个发光二极管就点亮了。 如果想要显示出一个 8 字,并且把右下角的小数点也点亮的话,可以给 8个阳极全部送高电平,如果想让它显示出一个 0 字,可以除了给第“g,dp” 这两位送低电平外, 其余引脚全部都送高电平, 这样它就显示出 0 字了。


但共阴二极管有一些不足


首先是需要注意增加单片机 IO 口驱动电流,因为共阴数管是要靠单片机 IO 口输出电流来点亮的,但单片机 I/O 口难以输出稳定的、 如此大的电流, 所以数码管与单片机连接时需要加驱动电路,可以用上拉电阻的方法或使用专门的数码管驱动芯片,比如 74HC573、74HC245 等,其输出电流较大,电路接口简单,可借鉴使用。

其次,数码管的非公共端往往接在 IC 芯片(可以理解为单片机的CPU)的 I/O 上,而 IC 芯片的驱动电流往往是比较小的,如果采用共阴极数码管,它的驱动端在非公共端, 就有可能受限于 IC 芯片输出电流不够而显示昏暗,要外加上拉电阻或者是增加三极管加大驱动能力,更为麻烦。


而 IC 芯片的输入电流范围比较大,可以将驱动数码管的工作交到公共端(一般接驱动电源),加大驱动电源的功率自然要比加大 IC 芯片 I/O口的驱动电流简单许多,也能减轻主芯片的负担。所以共阳数码管使用更多。


再来看共阳二极管的显示原理:


其内部 8 个发光二极管的所有阳极全部连接在一起,电路连接时,公共端接高电平,因此要点亮发光管二极管,就需要给阴极送低电平,此时显示数字的编码与共阳极编码是相反的关系。


注意,数码管内部发光二极管点亮时,也需要 5mA 以上的电流,而且电流不可过大,否则会烧毁发光二极管。开发板的静态数码管使用的是共阳极数码管,不仅要防止数码管电流过大,同时要防止流经数码管的电流集中到单片机时电流不能过大,否则会损坏主芯片。


4.关于静态与动态显示

LED 数码管显示器工作方式有两种:静态显示方式和动态显示方式。


静态显示是每个数码管段必须接一个 8 位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用 CPU 时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高,比如使用 4 个静态数码管,那么就得 32 个 IO 来控制。


动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。


6.开发板上的显示


开发板上使用的是一个共阳数码管,即 8 个 LED 的阳极全部并联一起引出如果要让共阳数码管显示数字0,即对应的段给低电平,其他的段给高电平。


下面给出共阴和共阳数码管的 0-F 段码数据表,如下所示:

在这里插入图片描述
在这里插入图片描述

它们的数据正好是相互取反的值。比如共阴数码管数字 0 段码:0x3f,其二进制是:0011 1111,取反后为:1100 0000,即为 0XC0。其他段码依此类推。

该段码数据由来,是将 a 段作为最低位,b 段作为次低位,其他按顺序类推,dp 段为最高位,共 8 位,正好和51 单片机的一组端口数一样,因此可以直接使用某一组端口控制数码管。

在软件设计里一般用一个数组表示,如显示0


......

//定义一个数组记录共阴数码管码表

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

P0=~faguang[0]; //因为单片机用的是一个共阳的数码管,这里取反,当然前面定义一个共阳的也可以


硬件设计

开发板上的数码管

在这里插入图片描述

静态数码管的控制管脚并未直接连接到 51 单片机的 IO 上,而是连接到 J8 端子上。由于使用的是共阳数码管,公共极接VCC,所以在数码管控制端可加一个限流电阻,阻值为 470 欧(471)。

如果要想 51单片机控制静态数码管,就必须将单片机管脚通过导线连接到 J8 端子上。因此需使用一根8Pin排线将单片机的管脚与J8端子连接。由于静态数码管模块电路是独立的, 所以使用任意单片机管脚都可以。

这里使用P0 组的 8 个 IO 管脚。


注意:要想让前面段码在静态数码管显示,就必须保证 P0 口的 P00 与 A 段到 P0 口的 P07 与 DP 段依次顺序连接,不能交叉,否则数据就会错位。

在这里插入图片描述

软件编程


之前学的实现点亮,for函数实现循环,延时函数实现停留1s,按键控制实现重置(把数组索引数重新赋值为0)


代码与注释如下


#include "reg52.h"   //单片机头文件和一些c语言功能的头文件

#include


sbit k1=P1^0;  //定义p1^0端口为k1,把k1和p1^0连起来


typedef unsigned int u16;

typedef unsigned char u8; //定义一些数据类型


u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

u8 i;


void keydelay() //@12.000MHz 按键延迟消除抖动函数

{

unsigned char i, j;


i = 20;

j = 113;

do

{

while (--j);

} while (--i);

}


void delay() //@12.000MHz   数码管显示延迟1s函数

{

unsigned char i, j, k;


_nop_();

i = 8;

j = 154;

k = 122;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}


void main ()

{

while(1)  //保持循环运行

{

for(i=0;i<10;++i){ 

P0=~smgduan[i];  //显示控制

delay(); //延迟1s

if(k1==0)   //这里是按键,检测按键是否落下

{

keydelay(); //消除抖动

if(k1==0){   //再次检测按键是否落下

i=-1;  //把数码管显示复位

}

while (!k1); //检测按键松开

}

}

}

}


效果预览

在这里插入图片描述

资料参考:百度百科,晋中51单片机开发攻略

关键字:51单片机  静态数码管  COM 引用地址:51单片机学习三 关于静态数码管的使用

上一篇:51单片机学习四 串口通信
下一篇:51单片机学习一 点亮LED实验

推荐阅读最新更新时间:2024-11-13 20:31

51单片机播放音乐程序
给大家分享下51单片机播放音乐简谱的函数库: /********************************************* SOUND PLAY FOR 51MCU COPYRIGHT (c) 2005 BY JJJ. -- ALL RIGHTS RESERVED -- File Name: SoundPlay.h Author: Jiang Jian Jun Created: 2005/5/16 Modified: NO Revision: 1.0 *********************************
[单片机]
51单片机端口
p0:8位双向I/O口,作输出时能驱动8个TTL,漏极开路型端口 p1:8位双向I/O口,作输出时可驱动4个TTL,带有内部上拉电阻 p2:8位双向I/O口,作输出时可驱动4个TTL,带有内部上拉电阻 p3:8位双向I/O口,作输出时刻驱动4个TTL,带有内部上拉电阻 p0-p3:端口置1时,作输入用。 上拉电阻:通常用4.7-10k的电阻接Vcc电源,把电平拉高 下拉电阻:通常用4.7-10k的电阻接GND线上,把电平拉低
[单片机]
以AT89C51单片机为核心的数显超声波测距仪设计
超声波由于其指向性强、能量消耗缓慢、传播距离较远等优点,而经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场。例如:液位、井深、管道长度等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测控系统的研制上也得到了广泛的应用。本文介绍一种以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。 1 超声波测距原理 1.1 超声波发生器 超声波是一种频率超过20kHz的机械波。为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波
[单片机]
以AT89C<font color='red'>51单片机</font>为核心的数显超声波测距仪设计
MCS_51单片机与8255A的接口设计
所谓可编程的接口芯片是指其功能可由微处理机的指令来加以改变的接口芯片,利用编程的方法,可以使一个接口芯片执行不同的接口功能。目前,各生产厂家已提供了很多系列的可编程接口,MCS-51单片机常用的两种接口芯片是8255以及8155。 8255和MCS-51相连,可以为外设提供三个8位的I/O端口:A口、B口和C口,三个端口的功能完全由编程来决定。 1.  8255的内部结构和引脚排列 下图7为8255的内部结构和引脚图。 (1)A口、B口和C口。A口、B口和C口均为8位I/O数据口,但结构上略有差别。A口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲/锁存器组成。B口由一个8位的数据输出缓冲/锁存器和一个8位的
[单片机]
MCS_<font color='red'>51单片机</font>与8255A的接口设计
Qualcomm发布三款全新骁龙处理器
Qualcomm Incorporated(NASDAQ: QCOM)近期宣布,其子公司Qualcomm Technologies, Inc.发布三款全新下一代高通骁龙 处理器:骁龙625、435和425。 这三款全新处理器通过利用包括摄像头、视频、游戏及连接等在内的定制开发技术,旨在为更广泛的智能手机生态系统提供部分最顶级的高端用户体验。 全新的三款骁龙处理器都集成了领先技术,包括LTE载波聚合、骁龙全网通、支持MU-MIMO的802.11ac、双摄像头图像信号处理器(ISP)、提高通话可靠性的Qualcomm TruSignal 技术、针对传感器中枢的低功耗音频的Qualcomm Hexagon DSP 满足Andr
[网络通信]
51单片机 HC05蓝牙模块学习
一、注意事项 1、烧写程序时,要把蓝牙tx,rx信号线拔掉,对烧写程序有影响。 2、执行HC05集命令时,均以rn结尾。串口中断若选择“发送新行”时,不用添加rn。原理相同。 二、准备软硬件 1、硬件:单片机STC89C52RC开发板,蓝牙模块HC05 2、软件:串口工具SSCOM3.3,手机蓝牙客户端 三、蓝牙模块HC05端口定义(6引脚) state——蓝牙连接状态,未连接输出低,连接后输出高 TX——信号发 RX——信号收 GND——地 +5V EN——使能端,需要进入AT模式时接3.3V,接单片机i/o引脚即可,高电平 四、进入AT模式进行参数和状态的设置 两种工作模
[单片机]
康佳特推出基于COM-HPC Mini 模块的 3.5 英寸应用载板
通往定制高端 3.5 英寸系统的更快、更可持续的途径 2024/4/12 领先的嵌入式和边缘计算技术领先供应商德国康佳特,响应其近期推出的 aReady. 策略,推出首款板级产品。全新 3.5 英寸 conga-HPC/3.5-Mini 载板专为空间受限的强固型高性能安全工业物联网 (IIoT) 应用而设计,基于 COM-HPC Mini 模块,支持 -40℃ 到 +85℃扩展温度范围,可立即部署到工业应用中。 与 aReady.COM 版本的 conga-aCOM/mRLP COM-HPC Mini 模块结合使用时,会预先安装虚拟机管理程序 (Hypervisor)和配置操作系统 。用于安全性 IIoT
[嵌入式]
康佳特推出基于<font color='red'>COM</font>-HPC Mini 模块的 3.5 英寸应用载板
单片机编程-如何快速零基础到入门51单片机(一)
要学习单片机,首先我们了解一些计算机的基本概念和基础操作,然后了解电路及其元器件的基本理论,为我们学习更高级的单片机入门IT和信息技术行业打下一定的基础。 本次我们先学习普中51单片机开发板,这块开发板能在淘宝上买到,而且这种板子也算是比较便宜的了,大概十几块钱,先声明我们和淘宝卖板子的店家没有任何关系,只是告诉大家购买的地方。 华维单片机编程:免费领!单片机入门到高级开挂学习路径(附教程+工具)37 赞同 · 8 评论文章 然后我们还一台需要Windows电脑,XP win7.8.10都是可以的操作都是大同小异的,但是特别说明下就是苹果的电脑好像不行,因为我们接下来使用的这个keil5软件没有苹果的版本,如果你的电
[单片机]
单片机编程-如何快速零基础到入门<font color='red'>51单片机</font>(一)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved