【蓝桥杯-单片机】基础模块:数码管

本文详细介绍了8051单片机中的数码管显示原理,包括位选和段选的区别,共阳极和共阴极数码管的控制方法。重点讲解了数码管的静态和动态显示,以及如何使用定时器实现动态显示,包括定时器的配置、中断服务函数的编写和中断控制寄存器的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【蓝桥杯-单片机】基础模块:数码管

01 数码管原理图

在这里插入图片描述
在这里插入图片描述

从图2可知,位选和段选最终都接到了D0.7口;从图1可知,对应D0.7的是P0口。因此P0口是数据口,数据应该往P0口写。
但是位选和段选都是写入P0口。P0=0xA4,如何设置为段选?利用锁存器实现。
在这里插入图片描述
令P2.6=1,写入段选数据;令P2.6=0,关闭,数据存进去了。
令P2.7=1,写入位选数据;令P2.7=0,关闭,数据存进去了。

//数码管显示函数
void Seg_Disp(unsigned char wela,dula)
{
   
	P0 = 0x00; //消影
	P2_6 = 1;
	P2_6 = 0;	
	
	P0 = Seg_Wela[wela];
	P2_7 = 1;
	P2_7 = 0;		
	
	P0 = Seg_Dula[dula];
	P2_6 = 1;
	P2_6 = 0;	
}

什么是位选和段选

  • 位选(Digit Select):
    位选是指在多位数码管中选择哪一位进行显示。例如,4位数码管就有4个位选引脚,通过控制这些引脚的电平状态,可以选择显示哪一位的数字。位选的常见方式是通过一个计时器或者控制芯片,轮流地激活每一位,以达到依次显示多个数字的效果。
    位选引脚一般用W0、W1、W2等表示,其中W0对应最低位,W1对应次低位,以此类推。

  • 段选(Segment Select):
    段选是指选择数码管的哪一段(LED)亮起来,以显示对应数字的哪一部分。例如,7段数码管的每一段可以表示数字0-9中的一部分。段选通常使用BCD码(二进制编码十进制)或其他编码方式,将要显示的数字转化为对应的段选信号。
    段选引脚一般用a、b、c、d、e、f、g等表示,对应数码管的7个LED段。

  • DP是数码管中的一种特殊段,它代表小数点(Decimal Point)。在一些数码管中,除了表示数字0到9的七个段(a到g),还包括一个用于显示小数点的额外段,即DP段。

在这里插入图片描述
这里的h即DP。

共阳极数码管和共阴极数码管的区分

共阳极数码管和共阴极数码管是两种常见的数码管类型,它们在工作原理和控制方式上有一些区别:
在这里插入图片描述

(1)共阳极数码管(Common Anode):

共阳极数码管中,所有的LED段的阳极(正极)都是连接在一起的,而每个LED段的阴极(负极)则分别连接到不同的引脚。
控制时,通过给某一段的阴极引脚接通电流,同时将共阳极引脚设置为高电平,该段就会被激活,显示相应的数字或字符。

(2)共阴极数码管(Common Cathode):

共阴极数码管中,所有的LED段的阴极(负极)都是连接在一起的,而每个LED段的阳极(正极)则分别连接到不同的引脚。
控制时,通过给某一段的阳极引脚接通电流,同时将共阴极引脚设置为低电平,该段就会被激活,显示相应的数字或字符。

主要区别在于共阳极数码管是通过通电阴极(负极)来激活LED段,而共阴极数码管是通过通电阳极(正极)来激活LED段。

例如:假设以下是一个共阴极数码管(共阴极引脚设置为低电平激活),如果我要显示数字2,对8个段选线的电平设置(从h->a)为10100100,转换为16进制为0xA4。即设置段选为0xA4就可以让数码管显示数字2

在这里插入图片描述

02 代码

(1)数码管静态显示

普通代码(直接在while循环里写)

		P0 = 0x00; //消影
	    P2_6 = 1;
		P2_6 = 0;	
		
		P0 = 0xfe;//访客(数据)来了
		P2_7 = 1;//位码门打开
		P2_7 = 0;//位码门关闭,防止别人进来
		
		P0 = 0x5b;//访客(数据)来了
		P2_6 = 1;//段码门打开
		P2_6 = 0;//段码门关闭,防止别人进来(这是用锁存器实现的)

模块化编程:

/* 变量声明区 */
unsigned char Seg_Wela[6] =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

verse_armour

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值