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 实验现象

动态数码管

相关推荐
星辰pid2 小时前
STM32控制四自由度机械臂(SG90舵机)(硬件篇)(简单易复刻)
stm32·单片机·嵌入式硬件·机械臂
威桑3 小时前
STM32 专有名词缩写整合
stm32·单片机·嵌入式硬件
星源~4 小时前
tree 命令集成到 Git Bash:可视化目录结构的指南
git·单片机·物联网·嵌入式·项目开发
SKYDROID云卓小助手5 小时前
无人设备遥控器之自动调整编码技术篇
人工智能·嵌入式硬件·算法·自动化·信号处理
所念皆星海9115 小时前
图灵完备之路(数电学习三分钟)----数据选择器与总线
嵌入式硬件·通信·数电
智者知已应修善业6 小时前
【51单片机节日彩灯控制器设计】2022-6-11
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
开-悟7 小时前
嵌入式编程-使用AI查找BUG的启发
c语言·人工智能·嵌入式硬件·bug
许白掰9 小时前
【stm32】HAL库开发——CubeMX配置RTC,单片机工作模式和看门狗
stm32·单片机·嵌入式硬件·学习·实时音视频
DIY机器人工房10 小时前
0.96寸OLED显示屏 江协科技学习笔记(36个知识点)
笔记·科技·stm32·单片机·嵌入式硬件·学习·江协科技
国科安芯10 小时前
【AS32系列MCU调试教程】SPI调试的常见问题解析
单片机·嵌入式硬件·性能优化·硬件架构·硬件工程