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

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

3天内不再提示

基于单片机的数码管电路设计

CHANBAEK 来源:郎哥编程课堂 作者: 郎宏林 2023-10-31 14:57 次阅读

前面一课通过流水灯实验,学会了流水灯电路模型设计,掌握了循环移位和时间延迟算法的程序编写。本次实验完成数码管显示电路模型设计和编程,在实验过程中,学习数码管显示电路设计、数码管循环显示数字的算法。

认识数码管

数码管是半导体发光器件,用于显示数字、字母、简单图形符号等内容。数码管基本单元是发光二极管,数码管内部由多个发光二极管管构成,多个发光二极管在同一时间的不同状态,组合为不同的数字、字母或图形符号。

数码管型号多样,有单位数码管、双位数码管、四位数码管、八位数码管等等,单位数码管仅能显示一个数字、字母或图形符号,多位数码管可以显示多个数字、字母或图形符号。实际上,多位数码管都可以由单位数码管构成,例如4个单位数码管可以构成四位数码管。

不管将几位数码管连在一起,数码管的显示原理都是一样的,都是靠点亮内部的发光二极管来发光,下面我们来看看单位数码管是如何显示数字的。

单位数码管一般由7个发光二极管组成,有共阴,共阳两种,八个引脚,七个引脚接7个发光二极管,一个引脚是公共端,若共阴,该引脚接地,若共阳,该引脚接电源的正极。

图片

单位数码管内部基础电路如上图所示,显示一个数字需要7个小段,每个小段需要一个发光二极管,因此数码管的引脚至少为8个,其中7个引脚分别接二极管的正极或负极,另外1个引脚为公共端,若数码管为共阴极,该引脚接地,若数码管为共阳极,该引脚接电源。

对于共阳极数码管来说,7个发光二极管的正极连接在一起形成公共端,该公共端接电源,负极分别接单片机的I/O端口,当我们给数码管任一个阴极低电平时,对应的这个发光二极管就点亮了。例如:若需要数码管显示数字0,g引脚送低电平,其它引脚送高电平,这样数码管就显示数字0了;若需要数码管显示数字8,将所有引脚(公共端除外)送入低电平,数码管就显示数字8了。因此,若需要数码管显示数字,只需要给发光二极管引脚送入低电平或高电平就可以了。

数码管电路设计

本次实验设计要求通过单片机P0口控制数码管循环显示数字0 ~ 9,实验需要用到单位数码管器件。在“Pick Devices”对话框搜索关键词“7SEG”,选择“7SEG-MPX1-CA”型号的数码管,该数码管是7段共阳极数码管,可以显示数字0~9和小数点,它有9个引脚,8个引脚用于连接P0口的8位端口,1个引脚为公共端,连接电源的正极。

图片

数码管内部发光二极管点亮时,大约需要几个毫安以上的电流,而且电流不可过大,电流过大可能会烧毁发光二极管,因此需要在P0端口和数码管引脚之间接入限流电阻,限流电阻值不能太大,也不能大小。限流电阻的阻值计算过程如下:一个发光二极管的额定电压一般是1.5~2.5V,电阻不大于50欧姆,电流约为0.04A,单片机引入的电源电压为5V,限流电阻的阻值约为R=U/I=5/0.04=125欧姆。计算值仅是个近似值,可以选择100~500欧姆以内的阻值。

电路设计如下图所示:

图片

数码管编程

让数码管循环显示数字0 ~ 9,需要对数字0~9进行编码,对应数字的编码值用于控制P0各端口的电平输出,从而控制数码管内部各发光二极管的状态,显示出编码对应的数字。

“7SEG-MPX1-CA”型号的数码管数字0~9的编码为:

unsigned char led[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

0xC0为数字0的编码,其二进制数为11000000,该值送入单片机P0口,P0口的第7、6端口为高电平,5、4、3、2、1、0端口为低电平,与5、4、3、2、1、0端口连接的发光二极管被点亮,与7、6端口连接的发光二极管为熄灭状态,其中端口7位小数点,端口6位g段,显示数字0。

0xF9为数字1的编码,其二进制数为11111001,该值送入单片机P0口,P0口的7、6、5、4、3、0端口为高电平,与其连接的发光二极管为熄灭状态,P0口的2、1端口为低电平,与其连接的发光二极管被点亮,即b、c段点亮,显示数字1。

同学们可以自行分析2~9数字的编码。C程序代码如下:

#include < reg51.h >
#include < stdio.h >
unsigned char led[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delay(unsigned int millisecond)
{
       unsigned int i,j;
       for(i=millisecond;i >0;i--)
              for(j=120;j >0;j--);
}
void main(void)
{
    unsigned int i;
while(1)
        {
               for(i=0;i< 10;i++)
               {
                            P0 = led[i];
                            delay(500);
               }
        }
 }

led[]为数字0~9编码数组,delay()为时间延迟函数,在main()函数内部,使用while循环让程序持续执行,在while循环内部,使用for循环遍历led[]数组,获取每个数字的编码,并将编码赋值给P0。

实验小结

通过这次实验,了解了数码管显示数字和字符的原理,学会了数码管显示电路设计,掌握了数码管显示控制编程技术。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632689
  • 电路设计
    +关注

    关注

    6664

    文章

    2426

    浏览量

    203196
  • 数码管
    +关注

    关注

    32

    文章

    1874

    浏览量

    90919
  • 显示电路
    +关注

    关注

    6

    文章

    97

    浏览量

    33179
  • 流水灯
    +关注

    关注

    21

    文章

    432

    浏览量

    59633
收藏 人收藏

    评论

    相关推荐

    完成单片机与LED数码管的接口电路设计以及程序设

    实验目的和任务目的:利用“模块化单片机教学实验平台”,加深对单片机与LED数码管的接口电路设计以及程序设计的理解。任务:完成单片机与LED
    发表于 11-23 07:52

    8051单片机数码管电路

    8051单片机数码管电路
    发表于 09-28 11:55 233次下载
    8051<b class='flag-5'>单片机</b><b class='flag-5'>数码管</b><b class='flag-5'>电路</b>图

    学51单片机数码管部分

    带您从零学51单片机数码管部分 目录1 数码管应用2 数码管内部结构及硬件原理图3 数码管硬件设计方法4
    发表于 02-10 14:36 155次下载

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

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

    51单片机数码管显示学号

    51单片机数码管显示学号,学学数码管吧。初学者多看看。
    发表于 04-05 16:15 54次下载

    数码管的介绍和使用51单片机应用数码管的程序免费下载

    本文档的主要内容详细介绍的是数码管的介绍和使用51单片机应用数码管的程序免费下载。
    发表于 07-05 17:41 5次下载
    <b class='flag-5'>数码管</b>的介绍和使用51<b class='flag-5'>单片机</b>应用<b class='flag-5'>数码管</b>的程序免费下载

    STC12C2052AD单片机控制的数码管时钟程序及电路

    STC12C2052AD单片机控制的数码管时钟,数码管是共阳4位时钟数码管,由于使用单片机真驱,电路
    的头像 发表于 09-18 17:12 1.1w次阅读

    单片机学习----数码管显示原理及应用代码规划

    单片机学习----数码管显示原理及应用代码规划内容:一、数码管显示原理二、如何用万用表检测数码管的引脚排列三、数码管
    发表于 11-10 18:46 22次下载
    <b class='flag-5'>单片机</b>学习----<b class='flag-5'>数码管</b>显示原理及应用代码规划

    基于单片机的LED数码管循环移位显示

    的联合仿真运行,最终对单片机仿真有初步的认识。通过本篇文章了解并熟悉8位数码管电路结构、与单片机的连接方
    发表于 11-11 15:06 16次下载
    基于<b class='flag-5'>单片机</b>的LED<b class='flag-5'>数码管</b>循环移位显示

    单片机--LED 数码管实验

    实验目的和任务目的:利用“模块化单片机教学实验平台”,加深对单片机与LED数码管的接口电路设计以及程序设计的理解。任务:完成单片机与LED
    发表于 11-14 19:21 19次下载
    <b class='flag-5'>单片机</b>--LED <b class='flag-5'>数码管</b>实验

    单片机零基础入门(8-1)学会单片机数码管,这篇文章就够了,一文吃透数码管---数码管如何定义引脚?数码

    单片机零基础入门(8-1)学会单片机数码管,这篇文章就够了,一文吃透数码管---数码管如何定义引脚?数码
    发表于 11-25 18:36 38次下载
    <b class='flag-5'>单片机</b>零基础入门(8-1)学会<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>

    单片机数码管显示

    单片机数码管显示
    发表于 09-19 17:36 5次下载

    基于单片机数码管电子钟Proteus程序

    基于单片机数码管电子钟Proteus仿真设计
    发表于 05-22 15:46 5次下载

    单片机数码管驱动学习笔记

    51单片机数码管驱动笔记
    发表于 11-06 17:23 1次下载

    单片机是如何控制数码管显示各种字符的?

    单片机控制数码管显示各种字符的过程是一个相对复杂的过程,涉及到硬件电路设计和软件编程两个方面。下面我将详细介绍单片机如何控制数码管显示各种字
    的头像 发表于 12-13 10:47 2058次阅读