51单片机入门—共阳数码管的静态显示

发布者:快乐的小鸟最新更新时间:2022-06-13 来源: eefocus关键字:51单片机  共阳数码管  静态显示 手机看文章 扫描二维码
随时随地手机看文章

共阳数码管的原理图

数码管的类型

CT107D单片机综合实训平台上使用的数码管是F3461BH,倒数第2个字母是“B”,说明这个数码管是共阳类型的,如果该字母为“A”则为共阴类型。不同类型的数据管,其段码数组是截然不同的。


数码管中的位选和段选

F3461BH是一个4位8段的数码管,其中a、b、c、d、e、f、g、dp引脚分别对应8个段码,该8个引脚通过74HC573锁存器与单片机的P0端口相连。另外有com1~com4四个公共控制脚


138译码器和74HC573锁存器

在操控数码管显示的过程中也离不开74HC138译码器和74HC573锁存器(138译码器的作用主要决定使用哪个锁存器)

在这里插入图片描述

在这里插入图片描述

代码:


#include "reg52.h"  


sbit HC138_A = P2^5;    

sbit HC138_B = P2^6;    

sbit HC138_C = P2^7;    


//数码管的段码数组  code形式不会占据RAM区的资源 

unsigned char code SMG_Duanma[18] = 

    {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

     0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,

     0xbf,0x7f};


void Delay(unsigned int time)

{

    while(time--);

      while(time--);

}



/*void Init74HC138(unsigned char n)// 选择通道  即选择哪个锁存器 

{

    switch(n)

    {

        case 4:

            HC138_A = 0;

            HC138_B = 0;

            HC138_C = 1;

            break;

        case 5:

            HC138_A = 1;

            HC138_B = 0;

            HC138_C = 1;

            break;

        case 6:

            HC138_A = 0;

            HC138_B = 1;

            HC138_C = 1;

            break;

        case 7:

            HC138_A = 1;

            HC138_B = 1;

            HC138_C = 1;

            break;

        case 8:

            HC138_A = 0;

            HC138_B = 0;

            HC138_C = 0;

            break;

    }

}*/

//优化 

void Init74HC138(unsigned char n)// 选择通道  即选择哪个锁存器 

{

    switch(n)

    {

        case 4:

        P2=(P2 & 0x1f) |0x80;

            break;

        case 5:

        P2=(P2 & 0x1f) |0xa0;

            break;

        case 6:

        P2=(P2 & 0x1f) |0xc0;

            break;

        case 7:

        P2=(P2 & 0x1f) |0xe0;

            break;

       /* case 8:

        P2=(P2 & 0x1f) |0x80;

            break;*/

    }

}

//按位显示 

void DispaySMG_Bit(unsigned char value, unsigned char pos)//数码管的值和位置  按位显示 

{

    char i;

    Init74HC138(6);//Y6C锁存器 控制com口 

    P0 = (0x01 << pos);//0x01时 com1是高电平 公选段必须是是高电平 

    Init74HC138(7);

    P0 = value;//显示的数值 

}


//全部显示 

void DispaySMG_Static()

{

    unsigned char i,j;

    for(i = 0; i < 8; i++)//一共有八位数码管 

    {

        for(j = 0; j < 10; j++)

        {

            DispaySMG_Bit(SMG_Duanma[j],i);//每一位依次显示0~10 

            Delay(60000);

        }

    }

    

    Init74HC138(6);

    P0 = 0xff;//公选端全部打开,高电平 

    for(i = 0; i < 16; i++)

    {

        Init74HC138(7);

        P0 = SMG_Duanma[i];//全部依次显示0~F 

        Delay(60000);

    }

}

//主函数 

void main()

{

        while(1)

        {

            DispaySMG_Static();

        }

}

关键字:51单片机  共阳数码管  静态显示 引用地址:51单片机入门—共阳数码管的静态显示

上一篇:51单片机——共阳数码管的动态显示
下一篇:51单片机入门—蜂鸣器和继电器

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

MCS-51单片机的串行口及串行通信技术
数据通信的基本概念 串行通信有单工通信、半双工通信和全双工通信3种方式。 单工通信:数据只能单方向地从一端向另一端传送。例如,目前的有线电视节目,只能单方向传送。 半双工通信:数据可以双向传送,但任一时刻只能向一个方向传送。也就是说,半双工通信可以分时双向传送数据。例如,目前的某些对讲机,任一时刻只能一方讲,另一方听。 全双工通信:数据可同时向两个方向传送。全双工通信效率最高,适用于计算机之间的通信。 此外,通信双方要正确地进行数据传输,需要解决何时开始传输,何时结束传输,以及数据传输速率等问题,即解决数据同步问题。 实现数据同步,通常有两种方式,一种是异步通信,另一种是同步通信。 异步通信 在异步通信中,数据一帧一帧地传送。每一
[单片机]
MCS-<font color='red'>51单片机</font>的串行口及串行通信技术
C-51单片机最简单静态数码管显示数字
单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等,其中七段数码管显示器是常用的显示器,常用来显示设备的运行状态, 可以显示各种数字和字符,分共阴极和共阳极两种,内部电路如图1所示。 让某一数码管显示某一数字只需要 P1=0X**; // ** 表示点亮的位置 P2=0X**; // ** 表示点亮的数字 直接上代码 #include reg51.h void main() { while(1) { P1=0Xfb; P2=0X5b; //共阴极 }
[单片机]
C-<font color='red'>51单片机</font>最简单<font color='red'>静态</font>数码管<font color='red'>显示</font>数字
基于AT89S51单片机的动态数码显示设计
1. 实验任务 如图所示,AT89S51单片机 P0端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。 2. 电路原理图 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3. 把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘”区域中的SP1端口上; 4. 程序设计内容
[单片机]
基于AT89S<font color='red'>51单片机</font>的动态数码<font color='red'>显示</font>设计
基于AT89C51单片机的温度测控系统硬件模块设计
本文主要介绍的基于AT89C51单片机的温度测控系统中最重要的一环:硬件模块设计。以下是该温度测控系统中各个模块及其工作原理。 1 温度检测模块 该系统温度测量部分采用DALLAS公司生产的一线式数字温度传感器DS18B20,它具有微型化、低功耗、高性能抗干扰能力、测量范围广、强易配处理器等优点,DS18B20可直接将温度转化成串行数字信号给单片机处理,它具有三引脚TO-92小体积封装形式,温度测量的范围为-55~+125℃,测温分辨率可达到0.062 5℃。 2 4×4行列式按键模块 该系统采用4×4行列式矩阵按键输入,其中除了0~9这10个相应数字温度按键外,还设计了温度重设按键、确定按键、零下温度选择按键和小数点按键等
[单片机]
51单片机学习——4--数码管显示
数码管静态显示原理 显示器及其接口 单片机系统中常用的显示器有: 发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、TFT液晶显示器等。LED显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。 LED数码管根据LED的不同接法可以分为2类:共阴和共阳。 使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。我们实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。 0x
[单片机]
<font color='red'>51单片机</font>学习——4--数码管<font color='red'>显示</font>
掌握方法与技巧轻松学习51单片机
单片机是微机的一种,现时有8051、AVR、ARM7、ARM9等系列,其中 “8051”是源自于Intel公司的MCS-51系列芯片,但目前不同生产厂商都以其兼容芯片为主,如Ateml公司的89C51/89S51系统,宏晶公司的STC89C52RC。本文所述的正是宏晶的STC89C52RC,该芯片烧写简单,只用通过宏晶的工具通过串口MAXRS232的TX、RX脚位就可以将程序烧录到芯片,是一个非常不错的嵌入式入门基础,教程多、51系列的学习板普遍就是采用STC89C52RC的芯片,可见其通用性很广,那怎样才能快速学习8051单片机呢。 学习51系列的CPU需要记忆脚位功能,我学习的时候得益于其简单的熟记方法,脚位的功能与位置掌握
[单片机]
掌握方法与技巧轻松学习<font color='red'>51单片机</font>
51单片机课程设计:基于MQ-3的酒精浓度报警器
本程序用于将MQ-3上读取到的模拟信号转换为对应的数字信号,经51单片机处理后,在数码管显示,同时具有报警功能,当检测值高于预警值,蜂鸣器报警。除了可以检测MQ-3酒精浓度模块的AD值,也适用于MQ系列的其他模块,原理基本都相同,都是将读取到的AD值转换为数字信号,程序修改后,如果接线方法正确,可以在吉林农业大学51开发板上完美运行,相关工程文件以及开发板对应的电路图见最下方附件。 关于粘贴复制乱码的问题:如果程序复制到Keil编译器上出现注释乱码,可以先建一个.c文件,也就是说不在keil里面编辑,然后用记事本打开.c文件,将源码复制进去,再在keil中添加文件即可。 /*************************
[单片机]
51单片机应用系统软件设计经验
  在进行应用系统的总体设计时,软件设计和硬件设计应统一考虑,相结合进行。当系统的 电路 设计定型后,软件的任务也就明确了 ,系统中的软件是根据系统功能要求设计的。   一般地讲,软件的功能可分为两大类。一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色。由于应用系统种类繁多,程序编制者风格不一,因此应用软件因系统而异。尽管如此,作为优秀的系统软件还是有其共同特点和其规律的。设计人员在进行程序设计时应从以下几个方面加以考虑:   根据软件功能要求,将系统软件分成若干个相对独立的部分,根据它们之间的联系和时间上的
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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