51单片机学习——动态数码管显示

目的:让数码管在多个位置显示不同的数据。

消影

数码管扫描时,位选 段选 位选 段选 位选 段选

在从段选到位选时,可能会发生串位的问题,为了避免这种情况,需要在段选之后加入一个清零。

即:位选 段选 清零 位选 段选 清零 位选 段选 清零

cs 复制代码
#include <REGX52.H>

//(0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00)

void Delay(unsigned int xms)	//@11.0592MHz
{
	unsigned char data i, j;

//	_nop_();
	while(xms--)
	{
		i = 2;
		j = 199;
		do
		{
			while (--j);
		} while (--i);
	}
	
}

unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void Nixie(unsigned char Location,Number)//NixieTube数码管
{
	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);//稳定显示1ms,直接清零数码管会显示的比较暗
	P0 = 0x00;//清零,0x00表示空
}

void main()
{
/*	在第四个数码管显示6
	//P2位选(位置选择) P0段选(字形选择)
	P2_4 = 1;//138译码器从高位到低位为CBA
	P2_3 = 0;
	P2_2 = 0;
	P0 = 0x7D;//数据高位对端口高位,例如一个数是12345,那么1就是数据高位,p07是端口高位,所以从P07往前读,一个数字的第一位才是最高位*/

//	Nixie(2,3);静态时仅扫描一次 动态需要一直扫描所以移到循环内
	while(1)
	{
//需要进行消影,先选位置,但是位置还残留着上一个函数的数字
		Nixie(1,1);
//		Delay(200);
		Nixie(3,2);
//		Delay(200);
		Nixie(5,3);
//		Delay(200);
	}
}

单片机驱动方式

单片机直接扫描:硬件设备简单,但会耗费大量的单片机CPU时间

专用驱动芯片:内部自带显存、扫描电路,单片机只需告诉它显示什么即可。

TM1640

只需要两根线就可以控制16个数码管显示任意数字。

74HC595移位寄存器

通过三根数据线和两根电源线就可以控制八个数码管,虽然也会耗费单片机CPU的扫描时间但是可以节省单片机的I/O口。

注:本文出自对bilibili江协科技51单片机入门教程[4-2]动态数码管显示 内容的学习笔记。

相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
starlaky4 天前
Django入门笔记
笔记·django
勇气要爆发4 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
勇气要爆发4 天前
吴恩达《LangChain LLM 应用开发精读笔记》2-Models, Prompts and Parsers 模型、提示和解析器
android·笔记·langchain
别催小唐敲代码4 天前
嵌入式学习路线
学习
Lester_11014 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元4 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133974 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315204 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件