历史上的今天
返回首页

历史上的今天

今天是:2025年02月15日(星期六)

2019年02月15日 | (C51学习二)点亮数码管

2019-02-15 来源:eefocus

1.什么是数码管


如图所示,这是二位的数码管


一个数码管,要有8个LED灯控制他显示是什么数字,7个LED控制数字,1个LED控制小数点。如上图


2.共阴极和共阳极



如上图,对于一个数码管,共阴极就是 组成数码管的二极管的阴极是连在一起的,想点亮数码管,就在单片机的对应 I/O 口给高电平。


共阳极就是 组成数码管的二极管的阳极是连在一齐的,想点亮数码管,就在单片机的对应 I/O 口给低电平。


3.让数码管显示数字原理



如上图,abcdefg分别控制数码管的8条led灯,如我要显示数字 8 ,则要把abcdefd全点亮,如上图右边,就是把abcdefg都置高电平。


3.段选和位选



如上图所示,上面八根线(a,b,c,d,e,f,g,dp)控制数码管显示的数字是多少,叫做段选


下面四根线,控制四个数码管中,哪一个数码管被点亮,叫做位选


位选的意义:


由第一点的知识可知,控制一个数码管的亮灭,需要8个LED灯,换言之,控制一个数码管,就要用掉8个 I/O口,控制5个数码管就要用掉40个I/O口,


I/O口的资源没有那么多,所以引入了位选,有了位选以后,只需要8个I/O口控制数码管的段选(数码管显示什么数字)就好,至于让哪一个数码管亮,就由位选来做。


4.用锁存芯片74HC573实现段选和位选。



如上图所示,是一片74HC573芯片,这片芯片的作用是锁住输入的值,(D1~D8为输入端,Q1~Q8为输出端),C段(就是上图的11引脚)为片选段。


当C段为1时,输出端=输入端,当C段为0时,当输入端改变,输出端也不会改变了,达到了锁存的作用



如图所示,上图是共阴数码管的原理图,从原理图可知,一块74HC573控制段选,另一块74HC573控制位选,分别接到最小系统的P2.6和P2.7引脚


由于是共阴极,所以位选置0时,数码管会亮


5.代码实现


我们显示数字时,为了方便,我们可以下载一个 数码管计算器 ,百度数码管计算器即可。可以快速显示 响应数字怎么引脚怎么设置



如上图,显示3 就是把对应8位 I/O口组 设置为 0x4F



#include

sbit WE=P2^7;

sbit DU=P2^6;

 

void main()

{

DU=1;

P0=0x4f; //让数码管显示数字3

DU=0;


WE=1;

P0=0xfe;//让第一个数码管点亮,1111 1110

WE=0;

while(1);

}


推荐阅读

史海拾趣

Corex Intervest Inc公司的发展小趣事

在技术创新和产品创新的基础上,Corex Intervest Inc公司开始积极拓展市场。公司通过参加国际电子展览、与各大电商平台合作等方式,不断提升品牌知名度和影响力。同时,公司还注重与客户的沟通与合作,根据客户需求定制产品方案,赢得了客户的广泛信任和好评。

Chyao Shiunn Electronic Industrial Ltd公司的发展小趣事

随着市场竞争的加剧,Chyao Shiunn意识到品质管理的重要性。公司开始加强产品质量的控制,从原材料的采购到生产流程的每一个环节都严格把关。同时,公司还加大了品牌宣传力度,通过参加行业展会、举办技术研讨会等方式提升品牌知名度。这些举措不仅提高了公司的市场份额,也增强了客户对公司的信任。

无锡友达公司的发展小趣事

无锡友达电子有限公司自2002年成立以来,就致力于半导体集成电路设计领域。在初创阶段,公司凭借对高性能模拟和数模混合集成电路的深刻理解,迅速推出了多款性能优异的功放、电源等系统方案。这些产品在电视机、音响设备等领域的广泛应用,为公司赢得了市场的初步认可。通过不断的技术创新,无锡友达逐渐在电子行业崭露头角。

EIC [EIC discrete Semiconductors]公司的发展小趣事

在竞争激烈的电子行业中,EIC公司深知供应链管理和成本控制的重要性。公司建立了完善的供应链管理体系,与供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和质量的可靠性。同时,EIC还通过优化生产流程、提高生产效率等措施,不断降低生产成本,提升产品的竞争力。

FINECHIPS公司的发展小趣事

FINECHIPS公司自成立以来,始终将技术创新视为企业发展的核心驱动力。公司投入大量资源于研发部门,专注于集成电路(IC)和电子元器件的技术创新。在某一关键时期,FINECHIPS成功研发出一款高性能、低功耗的模拟开关芯片,该芯片凭借其卓越的性能迅速获得市场认可,不仅在国内市场占据一席之地,还成功打入国际市场,为公司带来了显著的品牌影响力和市场份额增长。

Altitude Technology公司的发展小趣事

在电子行业中,创新是企业永恒的主题。Altitude Technology始终坚持以创新驱动发展,不断推出新产品、新技术。公司建立了一支高效的研发团队,不断跟踪行业最新动态和技术趋势,确保公司在技术创新方面始终走在前列。正是这种持续创新的精神,使得Altitude Technology在电子行业中保持了长久的竞争力。


以上五个故事均基于虚构的Altitude Technology公司进行创作,旨在展示一个电子行业企业在不同发展阶段可能遇到的挑战和机遇,以及如何通过技术创新、市场拓展和合作共赢等方式实现持续发展。请注意,这些故事并非基于真实事件,因此可能与实际情况存在出入。

问答坊 | AI 解惑

2009年电子设计大赛赛前热门元器件搜索(欢迎上传)

本帖最后由 paulhyde 于 2014-9-15 09:34 编辑 2009年电子设计大赛赛前热门元器件搜索(欢迎上传),对本版友重大贡献者,可以获得30~100芯币! 基本元器件参考 类型 型号 参数 特点 普通运放 OP07 低噪声,高精度,500mW,单路 ...…

查看全部问答>

18B20为何不成功

以下是我读18b20的程序: float get_temp()       {            uchar a,b,c;            uint temp;            &nbs ...…

查看全部问答>

想在LCD里面增加个24小时制

      用的是飞思卡尔的单片机,里面是没有时钟模块的。最麻烦的问题是如果掉电了还要时钟模块继续工作,这样的话是不是肯定要增加干电池?    还有,如果总是发送时间信号给LCD现实的话,单片机是不是忙的过来?…

查看全部问答>

怎么用c++ 获得ActiveSync连接状态

如题,有没有相应的事件呢? c#下用这个开源的OpenNETCF.Desktop.Communication可以方便的获得。 在vc++下怎么操作呢? 我重新编译了OpenNETCF.Desktop.Communication这个,用com的方法没有实现成功。 虽然能生产tlb文件,但是用com方法调用的 ...…

查看全部问答>

'findstr' 不是内部或外部命令,也不是可运行的程序

在创建wince平台时,编译时,出现SMDK2410 - 1 error(s), 0 warning(s),在build.log出现:\'findstr\' 不是内部或外部命令,也不是可运行的程序 或批处理文件。…

查看全部问答>

向高手求教EVC4连接不上模拟器的问题,有详细说明,急盼eeworld上的高手帮忙!!!!!

我的WinCE开发平台的环境设置: PC操作系统:Windows Xp home; evc环境:evc4+sp3+sp4+ActiveSync4.5+standardsdk+standardsdk4.2+ppc2003sdk+Windows mobile second edtion image+EmuAsConfig; 问题一:一开始创建工程的时候,选择ppc2003的Appwi ...…

查看全部问答>

堆栈指针问题~~大家来分析下

W77E58 chip 程序中我将SP设置为#60h,程序可以执行 但我将sp设置成#0C0h后,软件仿真可以全速,但硬件仿真,所有函数调用均不能正常返回,ram对应区域为FF,函数返回地址没有入栈 大家分析下可能的原因,谢谢…

查看全部问答>

谁有lm3s9792 PCB板啊?

本帖最后由 paulhyde 于 2014-9-15 09:14 编辑 谁有lm3s9792 PCB板啊?谁有lm3s9792 PCB板啊?谁有lm3s9792 PCB板啊?  …

查看全部问答>

cyclone三个系列的引脚图

那位仁兄有cyclone的引脚图啊,什么都缺啊 ,先谢谢了…

查看全部问答>

有关锂电池组保护板均衡充电基本工作原理了解

本帖最后由 qwqwqw2088 于 2017-4-17 10:19 编辑 本文介绍的是有关锂电池组保护板均衡充电基本工作原理,在采用单节锂电池保护芯片设计的且具备均衡充电能力的锂电池组保护板,示意图如图1所示。其中:1为单节锂离子电池;2为充电过电压分流放电 ...…

查看全部问答>