历史上的今天
返回首页

历史上的今天

今天是:2025年04月02日(星期三)

正在发生

2020年04月02日 | c51单片机数码管的控制

2020-04-02 来源:eefocus

电路图

注:实际中,我单片机的74HC573电路接法与P0端接反了


138译码器资料:https://pan.baidu.com/s/1COTcutsnMxMSc8tq0M2yVw 密码:1jww


138译码器的真值表:

74HC573资料:https://pan.baidu.com/s/1b5OJXniyd6gODyf_eA_sXA 密码:m7zx


如果学过数电,上面可以简单看下。如果没有,建议学过数电后再接触单片机,也可以直接看下面。


过程


一、  首先,得知道如何正确点亮一个数码管(静态显示)。


数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见数码管有10跟管脚。其中有两个公共端,根据内部发光二极管的接线形式可分为共阴极和共阳极两种。使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。参照下图:

通过给每个管脚高低电平即可控制数码管的亮灭。还是举个例子吧,以共阴极数码管为例,让数码管显示数字0,只要abcdef六个管脚输入一个高电平即可让数码管显示数字0,此时用十六进制即为0011 1111(dp、g、f、e、d、c、b、a)0x3f。将上面的0x3f送入74HC573锁存器,锁存器再送到数码管,即点亮数码管。(来自:https://blog.csdn.net/fanyuqa/article/details/47395333)。本次使用的是共阴极。


二、上面知道如何点亮一个数码管。下面接着介绍,点亮8个数码管中的哪一个。


这就要用到138译码器。其中,G1=vcc,G2A=G2B=0,买来的电路已经默认接好。上面的电路中,ABC分别P22,P23,P24;


如果,P22=0,P23=0,P24=1(0代表低电平,1代表高电平),即001,对应真值表为4。即第4序号的数码管被选中。


会了选中点亮某个数码管,就可以开始写程序了。


#include "reg52.h"  

typedef unsigned int uint;   

typedef unsigned char uchar;

 

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

 

uchar code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

 

void main()

{

LSA=0;

LSB=0;

LSC=0;

P0=smgduan[0];

}

程序比较简单,有两个地方要注意。


1、不能直接令P2^2=0;


2、code+数组后,数组不能改变。https://zhidao.baidu.com/question/121263820.html


这里有个静态数码管的视频,讲的挺好:https://pan.baidu.com/s/1I7Gz55NCO_yqopAWOr07QA 密码:3p7r


3、动态数码管,在静态数码管的基础上,只是每次让不同的数码管被点亮。当间隔时间很短时,人眼睛分辨不出来,就会感觉同时在亮。


#include

typedef unsigned int uint;

typedef unsigned char uchar;

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

uchar out[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

 

void delay(uint num)

{

while(num--);

}

 

void display()

{

u8 i;

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

{

switch(i) //位选,选择点亮的数码管,

{

case(0):

LSA=0;LSB=0;LSC=0; break;//显示第0位

case(1):

LSA=1;LSB=0;LSC=0; break;//显示第1位

case(2):

LSA=0;LSB=1;LSC=0; break;//显示第2位

case(3):

LSA=1;LSB=1;LSC=0; break;//显示第3位

case(4):

LSA=0;LSB=0;LSC=1; break;//显示第4位

case(5):

LSA=1;LSB=0;LSC=1; break;//显示第5位

case(6):

LSA=0;LSB=1;LSC=1; break;//显示第6位

case(7):

LSA=1;LSB=1;LSC=1; break;//显示第7位

}

P0=out[i];//发送段码

delay(100); //间隔一段时间扫描

P0=0x00;//消隐

}

}

 

void main()

{

while(1)

{

display(); 

}

}


动态数码管视频教程:https://pan.baidu.com/s/1fLopEJvdCpouLziTaSWxmg 密码:7szd

推荐阅读

史海拾趣

Hamlin ( Littelfuse )公司的发展小趣事

故事一:市场定位与技术创新

HAHN - Elektrobau GmbH & Co KG公司自成立以来,便在电子行业中找到了自己的独特定位,专注于生产面向特定应用的特种变压器线圈。起初,公司通过深入研究市场需求,发现传统变压器线圈在特定应用中存在效率低下、体积过大等问题。于是,HAHN投入大量资源进行技术研发,优化产品设计,成功开发出了一系列高效、紧凑的特种变压器线圈,迅速赢得了市场的认可。这一举措不仅巩固了公司在电子行业中的地位,也为后续的发展奠定了坚实的基础。

故事二:合作与共赢

在发展过程中,HAHN深知合作的重要性。公司积极与上下游企业建立紧密的合作关系,共同推动技术进步和产业升级。例如,HAHN与多家知名电子制造商建立了长期合作关系,共同开发新产品,优化生产工艺。通过这些合作,HAHN不仅获得了宝贵的市场信息和技术支持,还成功地将自身产品打入了更广阔的市场领域。同时,公司还积极与供应商和分包商合作,通过优化供应链管理,降低了生产成本,提高了生产效率,实现了共赢发展。

故事三:全球化战略

随着电子行业的全球化趋势日益明显,HAHN也开始了自己的全球化战略。公司不仅在欧洲市场取得了显著成绩,还积极向亚洲、北美等市场扩张。为了更好地服务全球客户,HAHN在多个国家和地区设立了分支机构,并建立了完善的销售和服务网络。通过这些举措,HAHN成功地将自己的产品和服务推向了全球市场,进一步提升了品牌知名度和市场份额。

故事四:品质与服务的双重保障

在电子行业中,品质和服务是企业生存和发展的关键。HAHN深知这一点,因此始终将品质和服务放在首位。公司建立了严格的质量控制体系,对每一个环节都进行严格的把关,确保产品质量达到最高标准。同时,公司还注重提升客户服务水平,建立了专业的客户服务团队,为客户提供全方位、个性化的服务。这些举措不仅赢得了客户的信赖和好评,也为公司赢得了更多的业务机会。

故事五:持续研发与创新

面对日新月异的电子行业技术,HAHN始终保持着高度的敏锐性和前瞻性。公司不断加大研发投入,引进高端人才和先进设备,致力于新技术、新产品的开发。通过持续的研发和创新,HAHN不断推出具有自主知识产权的新产品和技术方案,为电子行业的发展注入了新的活力。同时,公司还积极参与行业标准的制定和修订工作,推动行业技术进步和产业升级。这些努力不仅提升了公司的核心竞争力,也为公司的可持续发展奠定了坚实的基础。

Blue Giga公司的发展小趣事

为了扩大市场份额和提升品牌影响力,Blue Giga积极寻求与各行业领导者的合作。它与微软、谷歌、英特尔等知名企业建立了战略合作伙伴关系,共同推动物联网和无线连接技术的发展。这些合作不仅为Blue Giga带来了更多的商业机会,也提升了其在行业中的地位。

德丰(DEFOND)公司的发展小趣事

德丰电创科技股份有限公司(简称“德丰电创”)自1984年成立以来,从一个东莞的洪梅电器厂逐步发展为一家专业从事开关制造到电子电路模块、机电一体化集成模组等多元化产品的大型港资实业公司。公司凭借多年的产品研发和高端制造经验,以及完善的供应链管理体系,成功在家用电器、电动工具、汽车等多个市场领域占据一席之地。德丰电创的发展历程充满了不断的技术创新和市场扩张,其产品质量和服务得到了全球客户的广泛认可。

Elpakco Inc公司的发展小趣事

Elpakco Inc公司深知,企业的成功离不开社会的支持和帮助。因此,公司始终将履行社会责任作为企业的重要使命。公司积极参与环保、公益等活动,努力减少生产过程中的环境污染和资源浪费。同时,公司还注重员工的成长和发展,为员工提供良好的工作环境和福利待遇,让员工在为企业创造价值的同时,也能实现个人的成长和发展。

Digital公司的发展小趣事

DIALIGHT公司的故事始于1938年的纽约布鲁克林,当时该公司专注于为飞机生产仪表板灯。随着技术的不断进步和市场的变化,公司在1971年,即LED推出仅一年后,推出了他们的第一个LED产品。这一举措标志着DIALIGHT正式从传统的飞机仪表板灯制造转向LED照明技术的研发和应用。从此,DIALIGHT彻底改变了LED的用途,将其广泛应用于世界各地的交通控制、指示灯、结构塔和工业场所,为全球提供了优质的照明解决方案。

弘凯光电(BRIGHTEK)公司的发展小趣事

2021年,弘凯光电在江苏南通投资建设了集成智慧光源项目,总投资额高达10亿元。这一项目的建成,不仅大幅提升了公司的产能和效率,更为汽车照明、智能家居、3C电子等LED高端应用领域提供了高品质的产品。项目的成功投产,标志着弘凯光电在光电半导体领域的技术实力和市场地位得到了进一步提升。

问答坊 | AI 解惑

单片机典型应用一例-DS18B20应用详解

用DS18B20制作的网络型温度传感器资料这是用AT89C2051和DS18B20制作的网络型温度传感器,可以用RS232总线向电脑发送测量的温度,或用RS485总线实现网络通信。压缩包中包含有用Protel画的原理图,源程序,说明书和实物图片。特别是DS18B20的测量程序 ...…

查看全部问答>

学linux不错的教材

学linux不错的教材…

查看全部问答>

ADS7846驱动程序的诡异问题

我用的是ADS7846,做 PXA270平台的驱动,2.4.21的内核 由于内核本身不带 7846的驱动,我添加了ADS7846.C程序,并将其注册成input类型的驱动 内核启动后,我在7846初始化函数里的打印信息都能看到,启动成功后我用测试程序可以打开/dev/input/even ...…

查看全部问答>

CE上如何调用Smartphones下的Connection Manager函数,如ConnMgrEnumDestinations

我想调用ConnMgrEnumDestinations、ConnMgrMapURL这些函数。 查阅MSDN,要求是 Smartphone: Windows Mobile 2002 and later OS Versions: Windows CE 3.0 and later Header: connmgr.h Library: cellcore.lib 所以在工程中加入connmgr.h、cel ...…

查看全部问答>

小弟在windows ce.net 4.2下做GPS导航软件,但没开发经验,请求各位大虾给点意见

windows ce.net 4.2下做GPS导航软件,现在想做一个很简单的功能,就是把当前的位置在PDA标示出来? 由于小弟没开发经验,请求各位大虾给点意见。采取什么方法最合适???谢谢了!!!…

查看全部问答>

LED分光分色的几大 要点

,LED应用产品尤其是半导体照明产品对大功率LED需求越来越旺,同时对LED的品质要求也越来越高,其主要表现在以下几个方面:   1.正向电压测试:正向电压的范围需在电路设计的许可范围内,很多客户设计驱动发光管点亮都以电压方式电量,正向电压 ...…

查看全部问答>

CPLD中程序运行不正常

       做了个小东西,CPLD和单片机之间通信,刚开始弄好后,运行很好, 不管怎么断电,复位等都不会出什么问题,但是东西放一点时间后,再开机 就运行不正常了,是CPLD中的问题,感觉程序跑飞了一样,不知是什么 ...…

查看全部问答>

STR912+UCOS+TCPIP问题——版主

我有一个项目使用STR912,移植了UCOS+TCPIP,在ADS下编译调试都没有问题,想换到IAR下,结果编译始终通不过,老是告诉我汇编文件里CODE32是错误指令,是怎么回事啊? 编译结果.JPG (101.66 KB) 下载次数:1 2010-5-25 1 ...…

查看全部问答>

菜鸟看LM3S811评估板

看到坛子里面有LM3S811的评估板,赶紧上网下载个说明书,为了锻炼英语水平,为了和我一样的菜鸟的幸福,特翻译部分内容,以飨坛友,高手就可以掠过了。       首先这是一款ARM处理器的评估板。最好不要拿来当普通的51单片机用 ...…

查看全部问答>