历史上的今天
返回首页

历史上的今天

今天是:2025年08月17日(星期日)

2021年08月17日 | 51单片机-数码管原理

2021-08-17 来源:eefocus

1.分类

数码管分 共阳数码管 和 共阴数码管。


数码管其实就是8个段的发光二极管,只点亮其中的几个段即可显示出数字或字母用来表达信息。


共阳数码管:把8段LED的正极并在一起作为公共端连接在5V上(共阳极),然后8个LED通过单片机的8个IO端口输出高低电平使其决定点亮哪几个段。原理跟第二章的8盏LED硬件连接一样。


共阴数码管的介绍参考《手把手教你学51单片机》文档5.3.1节即可,因为我们的开发板用的是共阳数码管,所以共阴数码管在这里就不讲解了。

 

2.硬件连接

我们先拿一个数码管进行简单讲解

1.png?imageView2/2/w/550

上图是开发板上6个数码管中最右端那个的硬件连接简化图,我们叫它数码管0以好区分。引脚1和6(也就是A A)做为所有内部LED的公共端,此时IO0输出低电平三极管导通,那么这个公共端就接上了5V,而通过P0的8个IO端口中哪几个IO端口输出0数码管中的哪几个段就被点亮。

 

3.代码分析

我们把第二章第4讲的代码复制过来,修改三八译码器的逻辑选择,使IO0输出为0,也就是P1.2输出0,P1.1输出0,P1.0输出0。但这样之前讲的8盏小灯就不能被点亮了,因为三八译码器一次只能使其中的IOx输出低电平,其他7个IO都输出高电平了。


如果我们要让数码管显示数字0,那么看到上图所示,只需a,b,c,d,e,f段的LED点亮,剩下g段和dp段不点亮即可。


对应的二进制值为 11000000,十六进制就为0xC0。把0xC0赋值给P0即可点亮最右端的数码管0显示数字0。


#include  

sbit ADDR2 = P1^2;

sbit ADDR1 = P1^1;

sbit ADDR0 = P1^0;

sbit ENLED = P1^4;

sbit ADDR3 = P1^3;

 

void main()

{   

    ADDR3 = 1;//使能三八译码器

    ENLED = 0;// 

   

    ADDR2 = 0;//*****************************************************************************

    ADDR1 = 0;//让三八译码器的IO0输出低电平。此时的小灯是不可能被点亮了,因为IO6输出高电平了

    ADDR0 = 0;//*****************************************************************************

   

    P0=0xC0;  //使最右端的数码管0显示数字0

    while (1);

}


推荐阅读

史海拾趣

上海双岭电子(Double-peak)公司的发展小趣事

随着市场的不断扩大,双岭电子逐渐意识到品质对于企业长远发展的重要性。因此,公司投入大量资源加强品质管理,建立了完善的质量检测体系,并对全体员工进行品质意识培训。通过不懈的努力,双岭电子的产品质量得到了显著提升,赢得了客户的广泛赞誉。同时,公司还积极参与国际标准化组织的认证工作,为进一步提升品牌影响力奠定了基础。

AIM - American Iron and Metal公司的发展小趣事

面对数字化浪潮的冲击,AIM积极拥抱新技术,推动公司的数字化转型。公司引入了先进的信息管理系统,实现了生产、销售、物流等各个环节的信息化和智能化。同时,AIM还利用大数据和人工智能技术,对市场需求进行精准分析,为产品研发和市场策略提供有力支持。


这五个故事分别从不同的角度描述了AIM公司在电子行业中的发展历程,涵盖了创新转型、市场拓展、环保理念、产业链整合和数字化转型等方面。这些故事旨在展示AIM在应对行业变革和市场挑战时所采取的积极措施和取得的成果。需要注意的是,这些故事是基于一般性的行业趋势和公司可能经历的情境而构建的,并不代表AIM公司的真实历史。

Banner Engineering公司的发展小趣事

面对日益严峻的环境问题,Banner Engineering公司积极践行绿色环保理念,推动企业的可持续发展。公司在生产过程中采用了环保材料和工艺,减少了对环境的污染。同时,公司还致力于开发节能高效的传感器产品,帮助客户降低能源消耗和减少碳排放。此外,公司还积极参与公益活动和社会责任项目,为社会和环境做出积极贡献。

这些故事展示了Banner Engineering公司在电子行业发展中不断创新、拓展市场、提升质量、践行环保理念的发展历程。正是这些努力使公司成为了电子行业中具有影响力的企业之一。

艾迈斯(AMASS)公司的发展小趣事

在国内市场取得一定成绩后,艾迈斯(AMASS)公司开始积极拓展国际市场。他们通过与国外知名企业的合作,成功将产品打入国际市场。同时,艾迈斯还针对不同国家和地区的市场需求,推出了定制化的产品和服务,进一步提升了公司在国际市场上的竞争力。如今,艾迈斯的产品已经远销全球多个国家和地区,成为了国际市场上备受瞩目的品牌之一。

Cybernetic Micro Systems公司的发展小趣事

随着智能手机市场的迅猛发展,CMS看到了新的机遇。公司投入大量研发资源,成功开发出一款专为智能手机设计的超低功耗芯片。这款芯片不仅性能卓越,而且能够有效延长手机的续航时间。CMS通过与多家知名手机厂商合作,将这款芯片广泛应用于各类智能手机中,从而迅速打开了市场。

DLP Design公司的发展小趣事

DLP精工科技公司,一直秉承“品质至上”的经营理念,在DLP技术产品的设计和制造过程中严格把控品质。公司拥有一支专业的研发团队和先进的生产设备,确保每一件产品都符合高标准的质量要求。通过不断的技术创新和产品升级,DLP精工科技在电子行业中树立了良好的品牌形象,赢得了消费者的信赖和认可。

问答坊 | AI 解惑

PCB设计技巧问与答(转载)

Q: 请问就你个人观点而言:针对模拟电路(微波、高频、低频)、数字电路(微波、高频、低频)、模拟和数字混合电路(微波、高频、低频),目前PCB设计哪一种EDA工具有较好的性能价格比(含仿真)?可否分别说明. A: 限于本人应用的了解,无法深入地比较ED ...…

查看全部问答>

滤波器设计经典资料

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 滤波器设计的经典资料,非常详细  …

查看全部问答>

sig9000如何使用?

请问:sig9000 如何用?…

查看全部问答>

单片机使用22.1184M晶振为什么用示波器看不到震荡波形

各位老师您好:     我的单片机使用12M晶振时用示波器看震荡波形正常,输入输出端换不同容量的电容对振幅影响不大,换22.1184M晶振后输出震荡波形没了(C1=C2=22P),我设计的单片机用一个主芯片输出直接带第二个芯片输入,第二个芯片输 ...…

查看全部问答>

关于从wince5.0升级到wince6.0

目前使用的平台是pxa270+wince5.0,老板要求升级到wince6.0。我以前没有做过移植的工作,原来5.0的代码也不是我写的,硬着头皮接下了这个工作,看了几天,有些茫然,因此有些问题,请有经验的高手指教,你的一句话可能就让我省好多时间,先谢谢了。 ...…

查看全部问答>

中断线程执行的时候 中断不能被禁止的情况

在中断线程执行的时候,即响应中断事件时,中断不能被禁止的情况大家是否有遇到过?在winmobile6.1上遇到的…

查看全部问答>

怎样把.Net FrameWork Compact 2.0集成到pb5.0生成的nk.bin里面?

我程序是基于2.0的,可是PB5.0里面只有1.0的框架版本。怎样把.Net FrameWork Compact 2.0集成到pb5.0生成的nk.bin里面?…

查看全部问答>

build bootrom时select a tool的下拉列表时空的该怎么解决(新手)

   参考http://blog.chinaunix.net/u/21277/showart_212603.html 发现几个问题 AMD的PC-NET这个驱动解压出来config文件夹下是pc486.972而不是pcPentium,然后里面config.h里是CPU==I80486,不是PENTIUM.而且同目录下没有sysLn97xEnd.c这 ...…

查看全部问答>

SPI问题,大家给指点,谢谢!!

  我做STM32和STC12LE5412的SPI通讯,STM32在接受到USART1发出的0x55后就连续发送20个字节,但是在发送第一个字节的时候要将NSS拉低(NSS脚被软件配置为用户自用),接着将剩余的19个字节发送出去。STM32为主,STC12为从。 &nb ...…

查看全部问答>

求助:msp430的串口通信问题

msp430的串口通信时,一边用仿真器一边用专门的调试工具,能收发但都是乱码 波特率是根据专门的计算工具得到的,设置应该没错 为什么会出现这个问题?我还应该注意什么? 我是初学者…

查看全部问答>