51单片机之动态数码管显示

一、硬件介绍

LED数码管是一种由多个发光二极管(LED)封装在一起,形成"8"字型的显示器件。它广泛用于仪表、时钟、车站、家电等场合,用于显示数字、字母或符号。

通过控制点亮a b c d e f g dp来显示数字,本实验开发板的数码管是两个四位一体的。

二、原理图

2.1 动态数码管

从电路图中看出,动态数码管的上端分别为LED1-8,通过控制LED1-8的电平来控制某一位的数码管显示,称之为:位选;

在数码管的下方是每个LED的8个位a,b,c,d,e,f,g,dp。通过电路与 74HC245相连,通过控制74HC245的输出来控制某一数码管显示的数字,即a-dp的哪些段,称之为:段选;

位选:控制LED1-8,用于确定8个数码管的某一位;(如第一个数码管亮)。

段选:控制a,b,c,d,e,f,g,dp,用于确定某一个数码管显示的数字;(如显示的数字为6)。

其中 74HC245芯片用来增加单片机引脚的驱动能力。

2.2 74HC138译码器

其输入端为P22-P24,输出端为LED1-LED8,为一种三通道输入、八通道输出译码器,通过P22-P24控制LED1-LED8,是一种低电平有效器件。即将3位二进制(P22-P24),译码成8种输出状态,并且一共有8个输出I/O,这8位输出的特点是:同时只有一位有效、低电平表示有效,表示选中,74HC138实现了用3根线选择8根线(8选1)的功能。

2.3 消影问题

动态数码管显示存在消影问题

导致消影问题的原因如下:

  1. 视觉暂留效应:人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间后,光的感觉才会消失,这个短暂的时间称为视觉暂留时间。在数码管动态显示中,如果刷新速度不够快,前一个显示内容的残像会在视觉上残留一段时间,导致重影现象。

  2. 刷新速度限制:数码管的刷新速度受到硬件和软件控制的影响。硬件上,如驱动电路的速度、锁存器的响应时间等;软件上,如控制程序的执行效率、延时函数的设置等,都会影响数码管的刷新速度。

  3. 数据残留:在动态显示过程中,如果前一个显示内容的数据在P0口或其他控制端口上残留,而没有及时清除,那么在下一个显示周期中,这些残留数据可能会与新数据发生冲突,导致显示异常。

解决办法:在位选和段选之间进行清零处理,即P0=0x00。

三、实验

3.1 代码示例

objectivec 复制代码
#include <REGX52.H>
unsigned char NixieTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//Êý×Ö0-9

void Delay(unsigned int xms)	//@12.000MHz
{
	unsigned char data i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}


void Nixie(unsigned char Location, unsigned char Number)  //Á½¸ö²ÎÊý£¬Ò>>¸öÊǾßÌåÄĸöÊýÂë¹Ü£¬ÁíÒ>>¸öÊÇÐèÒªÏÔʾµÄÊý×Ö
{
	switch(Location)
	{
		case 1:
			P2_4=1;P2_3=1;P2_2=1;break;
		case 2:
			P2_4=1;P2_3=1;P2_2=0;break;
		case 3:
			P2_4=1;P2_3=0;P2_2=1;break;
		case 4:
			P2_4=1;P2_3=0;P2_2=0;break;
		case 5:
			P2_4=0;P2_3=1;P2_2=1;break;
		case 6:
			P2_4=0;P2_3=1;P2_2=0;break;
		case 7:
			P2_4=0;P2_3=0;P2_2=1;break;
		case 8:
			P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];
	Delay(1);
	P0=0x00; //清零
}
void main()
{
	
	while(1)
	{
		Nixie(1,1);
		Delay(20);
		Nixie(2,2); 
		Delay(20);
		Nixie(3,3);
		Delay(20);
	}
}

3.2 实验现象

动态数码管

相关推荐
qq_459730033 小时前
4-3 MCU中ARM存储器的作用
arm开发·单片机·嵌入式硬件
重生之我是数学王子7 小时前
点亮核心板小灯 STM32U575
stm32·单片机·嵌入式硬件
end_SJ7 小时前
初学stm32 --- 定时器中断
stm32·单片机·嵌入式硬件
南城花随雪。7 小时前
单片机:实现数码管动态显示(0~99999999)74hc138驱动(附带源码)
单片机·嵌入式硬件
南城花随雪。9 小时前
单片机:实现信号发生器(附带源码)
单片机·嵌入式硬件
灵槐梦11 小时前
【速成51单片机】2.点亮LED
c语言·开发语言·经验分享·笔记·单片机·51单片机
三月七(爱看动漫的程序员)11 小时前
HiQA: A Hierarchical Contextual Augmentation RAG for Multi-Documents QA---附录
人工智能·单片机·嵌入式硬件·物联网·机器学习·语言模型·自然语言处理
新晨单片机设计12 小时前
【087】基于51单片机智能宠物喂食器【Proteus仿真+Keil程序+报告+原理图】
嵌入式硬件·51单片机·proteus·宠物·ad原理图
大风起兮1213 小时前
STM32HAL库中RTC闹钟设置时分秒,年月日
stm32·嵌入式硬件
超能力MAX13 小时前
IIC驱动EEPROM
单片机·嵌入式硬件·fpga开发