产品选型

单片机 数码管计算 如何用单片机控制数码管(带原理图程序注释)

小编 2024-11-24 产品选型 23 0

如何用单片机控制数码管(带原理图程序注释)

说起数码管这个器件时,你可能会对它产生好奇,是怎样控制它显示数字字母的,也许正是因为这个好奇心驱使我们总想去了解它使用它。

数码管:由多个发光二极管封装在一起组成8字结构,引线已在内部完成,我们只需引出他们的各个笔画,公共电极。数码管实际上由七个发光二极管组成“8”字型结构,加上小数点就是8个,这些段位分别由a,b,c,d,e,f,g,dp来表示。

数码管(图片来源于网络)

数码管(图片来源于网络)

数码管(图片来源于网络)

在市场上可以分为两种数码管,分别为共阳极,共阴极,共阳极顾名思义就是把LED的正极端连在一块,在点亮的时候只需要把另一端通过单片机的指令让其接地即可,共阳极也是如此(本篇中为共阴极)。

原理图如下:

原理图

原理图

在单片系统中扩展LED数码管多用共阳极数码管,原因就是选用共阴极数码管在用单片机驱动时,所用的驱动功率较大,共阳极就避免了这个问题,在使用的时候为了避免电流过大,还需在每个字段要串联一个电阻。

但是在使用的时候由于数码管端口较多,想要控制多个数码管的话,还需加74H573锁存器,在本篇讲解中使用该锁存器,数码管采用共阴极。

74H573

原理图

如果想让上图中第一个数码管显示字母'b',则只需要控制相应的位拉高(既c,d,e,f,g),其余为低电平即可,转化成二进制就是0111 1100。

控制代码如下

#include <reg52.h>

sbit duan=P2^6;//定义段选

sbit wei=P2^7;//定义位选

main()

{

P0=0x07;//0111 1100--b

duan=1;//锁存IC失能

duan=0;

P0=0xfe;//1111 1110

wei=1;//锁存IC使能

wei=0;

while(1);

}

在程序中出现断选和位选,所谓断选就是控制数码管显示什么,位选是控制哪一个数码管亮,文章中是想让第一个数码管点亮,在程序中只需让第一个数码管是低电平,其余是高电平即可,转化为二进制就是1111 1110,另外程序中还有让断选或位选等于0和等于1的那句话,这可以理解为锁存器的启动,这样可以把数据写进去而且后期不能随便修改。

小伙伴们你们学会了吗?敢不敢来试试,点亮第三个数码管,显示数字9,把你的答案写在评论区,分享一下吧!

单片机实例:六位显示数码管时钟((附闹钟设置,源码,原理图)

从左到右的开关控制分别为:秒设置、分设置、时设置、进入时间设置(设置时间需要按一下这个再按前面3个按键设置)、闹钟设置(通过前面3个按键设置)、保存设置(设置完成后按下保存并退出)。

时钟可以显示到秒位

数码管用的是共阴,共阳的话加三极管闲麻烦,没加。数码管a~g接的P0口,没用10K排阻上拉,试了下觉得亮度太低了,就都换成了2K的作为上拉。

有兴趣的可以给加上温度传感器,可以显示温度(我这里面就没加了)初学单片机没多久,欢迎大佬指导。材料如下:89C52*1 4位数码管*1+2位数码管*1(当然如果有六位的也可以直接用,找不到其他数码管了就这么混搭了) 有源蜂鸣器*1(试过无源,但时间计算过于占用资源导致发声不是很完美,大佬可以改一下) 轻触开关*7(1个用于复位,其余六个用于设置) + 自锁开关*1 电池*1 + 5V稳压*1

单 片 机 时 钟 源 码 程 序--戳可见--->51单片机六位显示数码管时钟实例(带闹钟设置,源码,原理图)

相关问答

单片机 .速度来回答(43)在共阳极 数码管 使用中,若要仅显示...

[最佳回答](45)C.模拟量到数字量的转换和采样/保持

单片机 数码管 接线需要什么?

单片机和数码管接线要限流电阻。单片机和数码管接线要限流电阻。

单片机 如何驱动 数码管 ?

驱动数码管:静态显示,动态扫描两种方式。设置全局变量a,把a拆成个位十位以参数形式传给数码管显示函数。按键:方法1:主函数中查询K1、K2是否被按下(注...

c51 单片机数码管 怎么调?

你好,c51单片机数码管调节需要以下步骤:1.定义端口。在c51单片机中,需要定义数码管控制端口,如P0、P1等。2.确定数码管类型。不同类型的数码管,其控制方...

51 单片机数码管 动态显示从右往左?

这是四位数码管从右从左流动显示,像滚动字幕一样的。用不着矩阵按键哪。其实程序很简单,没那么复杂。程序如下#include这是四位数码管从右从左流动显示,像滚...

单片机 仿真 数码管 怎么找?

要找单片机仿真数码管,你可以在电子元器件市场或在线电子商务平台上搜索。在搜索框中输入关键词,如“单片机仿真数码管”或“数字显示模块”,然后浏览结果。...

51 单片机 8个 数码管 初始显示“87654321”,然后用8个独立按键分别控制这8个 数码管 ,每按一?

你好!可以根据你的硬件连接具体情况完成编程你好!可以根据你的硬件连接具体情况完成编程

单片机 数码管 显示时位控和段控的信号怎么输进来?

显示分静态/动态2种,动态需定时循环刷新位控码和段码,静态时不用段码一般由2种方式驱动,一种是并口直接驱动或者并口加锁存器驱动,一种是串口转并口驱动这...

单片机 与MAX7219 数码管 显示程序?

修改显示函数,当前面为0时不显示。7219打开硬件译码时,写入0xf就是不显示,如:write_7219(1,0xF);就是第一个数码管不显示。这样只要在函数show_number_7219中...

单片机 数码管 如何形成压降?

拿8段1位数码管做例子。8段指有8个LED,如果是共阴极的,那这8个LED的负极连在一起,正极不连。8个LED的8个正极分别连一个限流电阻,再接到单片机一个IO引脚上。...

猜你喜欢