8051单片机实战分析(以STC89C52RC为例) | 05 - 静态数码管驱动

发布者:陈晨5566最新更新时间:2022-05-13 来源: eefocus关键字:单片机  STC89C52RC 手机看文章 扫描二维码
随时随地手机看文章

1 数码管介绍

数码管是给我们展示数据或者信息的电子器件,它是最原始以及成本比较低。以下是数码管的实物图:

1.1 数码管的段选与位选

以下是数码管的每一段所对应的位置:


从图可以看出来,数码管共有 a、b、c、d、e、f、g、dp 这么 8 个段,而实际上,这 8 个段每一段都是一个 LED 小灯,所以一个数码管就是由 8个 LED 小灯组成的。注意 dp 这个段,它是表示一个小数点!我们看一下数码管内部结构的示意图:

数码管分为共阳和共阴两种:


共阴数码管就是 8 只 LED 小灯的阴极是连接在一起的,阴极是公共端,由阳极来控制单个小灯的亮灭。

同理共阳数码管就是阳极接在一起。

看到这里我们就不难猜出,所谓的段选就是选择要点亮数码管中 a、b、c、d、e、f、g、dp 哪些段。


我们假设有多个这样的数码管,例如本文原理图中这样:


该图中的 LED8、LED7、LED6、LED5、LED4、LED3、LED2、LED1 网络标签都是数码管的公共端口 COM,位选指的就是这里,你可以认为里面有8个数码管,在你选择好段选之后,给某个 COM 网络进行选择就相当于选择点亮某个数码管。


下面以一个例子说明:


假设我要在上图从左往右第3个数码管显示“0”,那么“0”对应段选就是点亮 a、b、c、d、e、f,对于共阴数码管,它的表示如下:

image.png

假设P0端口连接到数码管的各个段,那么给P0端口写入0x3f,再给LED6网络端口置为0电平即可。


相反地,共阳数码管把共阴数码管的位选反转一下:

image.png

给P0端口写入0xc0,再给LED6网络端口置为1。


1.2 数码管的段选表格

前面我们学习了“0”的表示,下面列出共阴数码管与共阳数码管的表格:


① 共阴数码管表格:


unsigned char code LedChar[]={

0x3F,  //"0"

    0x06,  //"1"

    0x5B,  //"2"

    0x4F,  //"3"

    0x66,  //"4"

    0x6D,  //"5"

    0x7D,  //"6"

    0x07,  //"7"

    0x7F,  //"8"

    0x6F,  //"9"

    0x77,  //"A"

    0x7C,  //"B"

    0x39,  //"C"

    0x5E,  //"D"

    0x79,  //"E"

    0x71,  //"F"

    0xff, //全亮

    0x00  //熄灭

};


② 共阳数码管表格:


unsigned char code LedChar[]={

0xc0,//0

0xf9,//1

0xa4,//2

0xb0,//3

0x99,//4

0x92,//5

0x82,//6

0xf8,//7

0x80,//8

0x90,//9

0x88,//A

0x83,//B

0xc6,//C

0xa1,//D

0x86,//E

0x8e, //F

0x00, //全亮

0xff  //熄灭

};


2 原理图

① 数码管原理图:

② 数码管的位选使用138译码器进行解析,关于这块我们可以参考这篇文章:《数字器件认识 | 74HC138三八译码器的应用》。

③ MCU原理图:

3 代码

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器


typedef unsigned int u16;   //对数据类型进行声明定义

typedef unsigned char u8;


sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;


u8 code LedChar[]={

0x3F,  //"0"

    0x06,  //"1"

    0x5B,  //"2"

    0x4F,  //"3"

    0x66,  //"4"

    0x6D,  //"5"

    0x7D,  //"6"

    0x07,  //"7"

    0x7F,  //"8"

    0x6F,  //"9"

    0x77,  //"A"

    0x7C,  //"B"

    0x39,  //"C"

    0x5E,  //"D"

    0x79,  //"E"

    0x71,  //"F"

    0xff, //全亮

    0x00  //熄灭

};



/*******************************************************************************

 * 函 数 名       : main

 * 函数功能 : 主函数

 * 输    入       : 无

 * 输    出    : 无

*******************************************************************************/

void main()

{

LSA=0;

LSB=0;

LSC=0; //控制138译码器的Y0输出低电平

P0=LedChar[0];

while(1);

}


简要分析:


整个程序实现给数码管最右边单独显示“0”,段选连接到P0引脚,位选通过138译码器进行控制。


程序定义LSA、LSB、LSC用于控制138译码器的A、B、C引脚,当三者均设置低电平,就能控制138译码器的Y0引脚输出低电平,从而达到控制位选。假设要控制Y6引脚输出低电平,即选择数码管从左到右显示第2个,则LSA=0;LSB=1;LSC=1;。如果不明白,,,看这篇文章:《数字器件认识 | 74HC138三八译码器的应用》


定义LedChar的时候使用了51 单片机的关键字 code。我们前边用到的unsigned char或者unsigned int这两个关键字,这样定义的变量都是放在我们的单片机的 RAM中,我们在程序中可以随意去改变这些变量的值。但是还有一种数据,我们在程序中要使用,但是却不会改变它的值,定义这种数据时可以加一个code关键字修饰一下,这个数据就会存储到我们的程序空间 Flash 中,这样可以大大节省单片机的 RAM 的使用量,毕竟我们的单片机 RAM 空间比较小,而程序空间则大的多。

关键字:单片机  STC89C52RC 引用地址:8051单片机实战分析(以STC89C52RC为例) | 05 - 静态数码管驱动

上一篇:8051单片机实战分析(以STC89C52RC为例) | 06 - 动态数码管驱动
下一篇:8051单片机实战分析(以STC89C52RC为例) | 04 - 蜂鸣器驱动

推荐阅读最新更新时间:2024-11-08 11:08

MSP430单片机的5种低功耗模式
5种低功耗模式分别为LPM0~LPM4(LOW POWER MODE),CPU的活动状态称为AM(ACTVE MODE)模式。其中AM耗电最大,LPM4耗电最省,仅为0.1uA。另外工作电压对功耗的影响:电压越低功耗也越低。 系统PUC复位后,MSP430进入AM状态。在AM状态,程序可以选择进入任何一种低功耗模式,然后在适当的条件下,由外围模块的中断使CPU退出低功耗模式,返回AM模式,再由AM模式选择进入相应的低功耗模式,如此类推。 工作模式的选择由状态寄存器SR中的SCG1、SCG0、OSCOFF、CPUOFF位控制。由于在CPU的头文件中对CPU内的各寄存器和模块的各种工作模式都作了详尽的定义,所以编程时尽可能的利
[单片机]
向51单片机说再见
最近在访问论坛时看到好多人在讨论51单片机,有人说51单片机应该学习,它是基础;也有人说51单片机是过时的产品,现在产品应用已经不再选用了,也就失去了学习的必要性。从最初的51单片机学起,工作多年后现在基本应用32位MCU做项目,笔者觉得是时候向51单片机说再见了。 51单片机的辉煌过去 51单片机指MCS-51系列单片机,CICS指令集。由Intel公司开发,其结构增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源,内有128个RAM单元及4K的ROM。其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前国内的51单片机市场
[单片机]
STC单片机利用IAP技术实现EEPROM设计
STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点。 知识点:ISP与IAP介绍 ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。 IAP:In Application Programable 是指在应用编程,就是片子提供一系列的机制(硬件/软件
[单片机]
STC<font color='red'>单片机</font>利用IAP技术实现EEPROM设计
贸泽备货Microchip PIC32CM Lx MCU 同时支持安全子系统和Arm TrustZone技术
贸泽备货Microchip PIC32CM Lx MCU 同时支持安全子系统和Arm TrustZone技术 2022年11月16日 – 专注于引入新品的全球半导体和电子元器件授权分销商贸泽电子 (Mouser Electronics) 即日起备货Microchip Technology的PIC32CM LE00、LS00和LS600 (PIC32CM Lx) 超低功耗MCU。 PIC32CM Lx系列拥有32位的性能、超低功耗特性,以及高达512KB闪存和64KB SRAM的存储器配置,为寻求解决物联网 (IoT)、消费、工业和医疗市场挑战的设计师提供了三种不同的产品选择。 贸泽备货的Microchip PIC32
[单片机]
贸泽备货Microchip PIC32CM Lx <font color='red'>MCU</font> 同时支持安全子系统和Arm TrustZone技术
单片机PWM调光
项目描述: 由三个按键分别控制LED的开关、变亮、变暗。灯的亮度调节采用单片机产生的PWM实现。 C语言代码如下: /*----------------------------- FileName:PWMDimming.h Function: 头文件 Author: Zhang Kaizhou Date: 2019-6-11 16:49:42 ------------------------------*/ #include reg52.h #include string.h #define uchar unsigned char #define uint unsigned int #define PERIOD 100
[单片机]
单片机在智能IC卡燃气表中的应用
随着世界计算机技术和信息技术的发展,全球的信息时代已来临,各国都在高科技领域制订适合自己的发展道路,我国政府正在致力于国民经济信息化的建设,以“金卡工程”为代表的信息化应用工程使我们加速向全球经济一体化迈进。作为金卡工程的代表,IC技术无疑是当今世界最优秀应用技术。它从早期的投币式,过渡到磁卡式,直到现在的IC卡式。IC卡即智能卡,又称集成电路卡,它将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的磁卡相似,开发IC卡技术的主要目的是实现现金支付和存兑的电子化、减少现金的流通量、实现电子商务、实现公用事业预付费等。   IC卡燃气表是近十几年发展起来的新型燃气表,一般由计量传感器电路、微功耗单片机、微功耗阀
[单片机]
<font color='red'>单片机</font>在智能IC卡燃气表中的应用
用PComm开发PC机与单片机的通信程序
摘要:介绍了分布式控制系统中上位PC机与下位单片机异步串行通信的通信协议;同时介绍了在VC++6.0环境下用PComm编写的PC机通信程序来实现上位机和下位机异步串行通信的方法,给出了PComm编程实例和下位机程序模块流程图。 关键词:分布式控制系统;异步;串行通信;PComm 在由一台PC机(上位机)和多台单片机(下位机)构成的分布式控制系统中,单片机主要负责实时数据采集,并将初步处理后的数据通过串行口传送给PC机以便由PC机串行口的命令对单片机进行控制,同时通过打印机或显示器向用户随时提供各种统计报表和整个控制过程的具体数据。在这样的分布式控制系统中,单片机与微机之间的多路通信是整个系统的关键,本文将介绍在提高通信的准
[单片机]
泰矽微发布极低成本高压MCU芯片TCHV4018L
市场背景 智能化和电动化是汽车市场发展的两大主流方向,智能化的要求对整个汽车电子电气架构提出了新的挑战。原来架构中的一些孤岛控制单元通常只需要简单的电气控制,对芯片的外部资源要求比较低,但同时又要求远端节点具有跟域控之间的通讯能力,还有部分远端节点需要具备一定的计算能力,用于对传感器采集到的数据进行本地化融合处理或对执行单元进行简单的控制并监控其运行状态。 传统的控制架构采用分立方案,具有独立的LIN收发器,供电LDO和MCU,存在控制板面积大,MCU资源过剩,总体成本高,系统可靠性差等痛点,泰矽微新发布的TCHV4018L将32位M0 MCU与LIN收发器以及LDO供电进行了单芯片集成,实现了极低成本和极高的性价比的完
[单片机]
泰矽微发布极低成本高压<font color='red'>MCU</font>芯片TCHV4018L
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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