0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数码管驱动电路讲解

CHANBAEK 来源:透析之眼 作者:AdamChen 2023-11-01 17:34 次阅读

根据项目需求可以用I/O外部上拉,用来驱动数码管;也可以74HC138(38译码器)+74HC245(8路信号收发器)驱动数码管。本文会以后者为数码管驱动电路,在代码上实现数码管的显示。

驱动电路:

图片

图片

电路讲解:

1)数码管元件采用共阴数码管,如果需要某位数码管被点亮,位选引脚需要被拉成电平;

2)八个数码管有8个位选引脚,8个段选引脚。为了将节省I/O口,使用74HC138将3位(CBA)选择,转换为8位二值代码,例如CBA值为000时,Y0输出低电平,其余为高电平,由于Y0连接到数码1位选引脚(图中的LED1网络标号),数码管1被选中。

图片

3)74HC138控制的是位选引脚,而74HC245控制的是段选引脚,增强驱动能力。电路原理图中将DIR接高电平,OE接GND,使得其工作状态为An输入Bn输出。当P0输出0x00时,Bn端也会输出0x00;

图片

代码实现:

图片

1)数码管显示数值,有对应的编码(编码对应段选被点亮或不亮);

2)数码管编码按照一定的关系(一般为顺序0~F),存储在一维数组里面;

3)74HC245收发器,主要用来驱动数码管,根据数码管显示可以看做P0数据直接到达数码管;

4)调用一维数的元素,将编码值通过I/O口输出,控制段选信号,显示对应数值;

5)数字选择数码管,数字转换为38译码器的3路输入信号,选中某个数码管显示。

实现数码管显示函数:

void showsmg(uchar selsmg,uchar num){
  //选择显示数码管第几个,拆解为38译码器对应编码
  smg0 = selsmg&0x01;
  smg1 = (bit)((selsmg >>1)&0x01);
  smg2 = (bit)((selsmg >>2)&0x01);
  //将数码管编码(一维数组)赋值给P0口,显示对用数字
  P0 = table[num];


}

具体显示代码:

功能:8个(7~0)数码管,从高到底显示7~0;
/********************************************************************************
* @File name: main.c
* @Author: AdamChen
* @Version: 1.1
* @Date: 2020-08-07
* @Description: LED display 
* @contact:975805363@qq.com
********************************************************************************/


#include "reg52.h"


typedef unsigned char uchar;
typedef unsigned int uint;


uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80};
sbit smg2 = P2^4;
sbit smg1 = P2^3;
sbit smg0 = P2^2;


/*******************************************************
* Function name :delay
* Description        : 延时函数
* Parameter         :
  @ms        millisecond(毫秒)    
* Return          :None 
**********************************************************/
void delay(unsigned int ms) // ms代表需要延时的毫秒数
{
  uint x,y;
  for(x=ms;x >0;x--)
  for(y=110;y >0;y--);


}


/*******************************************************
*
* Function name :showsmg
* Description        : 数码管显示
* Parameter         :
  @selsmg      选择数码管第几个
  @num      显示数值
*        
* Return          :None 
**********************************************************/
void showsmg(uchar selsmg,uchar num){
  //选择显示数码管第几个,拆解为38译码器对应编码
  smg0 = selsmg&0x01;
  smg1 = (bit)((selsmg >>1)&0x01);
  smg2 = (bit)((selsmg >>2)&0x01);
  //将数码管编码(一维数组)赋值给P0口,显示对用数字
  P0 = table[num];


}


/*******************************************************
*
* Function name :main
* Description        : 8数码管,从高到低显示7到0。
* Parameter         :None
* Return          :None 
**********************************************************/
void main(){
  uchar i;
  while(1){
  //循环选中,8个数码管,显示7~0
    for(i=0;i< 8;i++)
    {
     showsmg(i,i);
      delay(1);
    }         
  }
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    3424

    浏览量

    105961
  • 数码管
    +关注

    关注

    32

    文章

    1882

    浏览量

    91064
  • 译码器
    +关注

    关注

    4

    文章

    310

    浏览量

    50314
  • 驱动电路
    +关注

    关注

    153

    文章

    1529

    浏览量

    108492
  • 引脚
    +关注

    关注

    16

    文章

    1193

    浏览量

    50412
收藏 人收藏

    评论

    相关推荐

    数码管驱动芯片的使用方法

    数码管驱动芯片(也称为LED驱动芯片)是一种用于控制数码管显示的集成电路。它可以将微控制器产生的数字信号转换为适合
    的头像 发表于 12-08 16:24 9963次阅读

    数码管驱动电路分享

    根据项目需求可以用I/O外部上拉,用来驱动数码管;也可以74HC138(38译码器)+74HC245(8路信号收发器)驱动数码管。本文会以后者为数码
    发表于 01-24 06:27

    LED数码管驱动电路大全

    LED数码管驱动电路大全
    发表于 06-17 16:49 1566次下载
    LED<b class='flag-5'>数码管</b><b class='flag-5'>驱动</b><b class='flag-5'>电路</b>大全

    6个数码管驱动电路

    6个数码管驱动电路
    发表于 04-08 22:36 3099次阅读
    6个<b class='flag-5'>数码管</b>的<b class='flag-5'>驱动</b><b class='flag-5'>电路</b>图

    数码管驱动方式

    数码管驱动方式   数码管要正常显示,就要用驱动电路驱动
    发表于 11-06 11:42 3963次阅读

    大尺寸数码管的动态驱动和保护电路设计

    大尺寸数码管的动态驱动和保护电路设计 引 言LED数码管是单片机系统常用的显示器件,1英寸以上的LED数码管的每个字段都是由多个发光二极
    发表于 03-29 09:16 5543次阅读
    大尺寸<b class='flag-5'>数码管</b>的动态<b class='flag-5'>驱动</b>和保护<b class='flag-5'>电路</b>设计

    点亮数码管电路

    Pl口输出到双向驱动芯片74LS245的输入端,同相驱动数码管各段,根据Pl口输出的信息,在数码管形成字符,达到用数码管显示字符的目的。
    发表于 12-13 10:35 9787次阅读
    点亮<b class='flag-5'>数码管</b><b class='flag-5'>电路</b>

    常用LED数码管驱动电路

    常用LED数码管驱动电路:
    发表于 04-06 15:31 296次下载
    常用LED<b class='flag-5'>数码管</b><b class='flag-5'>驱动</b><b class='flag-5'>电路</b>

    数码管驱动电路的作用、分类及驱动电路设计

    本文为您介绍数码管驱动电路的作用,数码管驱动电路有什么作用,
    发表于 08-05 17:50 5.4w次阅读
    <b class='flag-5'>数码管</b><b class='flag-5'>驱动</b><b class='flag-5'>电路</b>的作用、分类及<b class='flag-5'>驱动</b><b class='flag-5'>电路</b>设计

    实现动态显示效果,分析数码管驱动电路的作用及分类

    数码管驱动电路的作用主要是通过利用单片机控制LED数码管(发光二极)电路,以实现
    发表于 11-05 08:54 1w次阅读
    实现动态显示效果,分析<b class='flag-5'>数码管</b><b class='flag-5'>驱动</b><b class='flag-5'>电路</b>的作用及分类

    51汇编(六):数码管显示

    文章目录数码管驱动单位数码管数码管数码管分为共阴数码管和共阳
    发表于 11-22 09:06 10次下载
    51汇编(六):<b class='flag-5'>数码管</b>显示

    如何驱动数码管

    电子发烧友网站提供《如何驱动数码管.zip》资料免费下载
    发表于 12-19 09:37 3次下载
    如何<b class='flag-5'>驱动</b><b class='flag-5'>数码管</b>

    数码管笔记

    1.共阴极/共阳极数码管的内部组成结构2..共阴极/共阳极数码管驱动电路3.数码管显示的字符/段选/位选
    发表于 11-06 17:18 3次下载

    数码管驱动芯片原理是什么

    数码管驱动芯片是一种广泛应用于数字显示领域的电子元件,它能够将数字信号转换为可视的数字显示。 一、数码管驱动芯片概述 1.1 数码管
    的头像 发表于 08-28 16:07 832次阅读

    数码管驱动芯片引脚功能

    数码管驱动芯片是一种用于驱动数码管显示数字或字符的集成电路数码管
    的头像 发表于 08-28 16:08 893次阅读