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动态数码管显示 内容的学习笔记。

相关推荐
LCG元11 分钟前
STM32 USB HID 自定义免驱设备开发:从报告描述符到上位机 64 字节收发实战
stm32·单片机·嵌入式硬件
MartinYeung518 分钟前
[论文学习]MCPTox:面向真实世界MCP服务器的工具投毒攻击基准测试
运维·服务器·学习
Chen—LSN20 分钟前
C语言——数据在内存中的存储
c语言·开发语言·经验分享·笔记
Hello_Damon_Nikola21 分钟前
HT2813从入门到精通
单片机·嵌入式硬件·物联网
math_hongfan24 分钟前
事务下单与状态流转:ArkTS 的 JOIN 联表在鸿蒙订单里实战
android·学习·华为·harmonyos
weixin_431600441 小时前
NestJS 入门(9):连上数据库,SQL 写在哪?
数据库·后端·sql·学习·nest.js
举手1 小时前
Epoll模型
linux·c++·学习
天空'之城1 小时前
单片机基础核心知识点汇总(二)
单片机·嵌入式硬件
MartinYeung51 小时前
[论文学习]JBShield:通过激活概念分析与操纵防御大语言模型越狱攻击
人工智能·学习·语言模型
恒锐丰-罗生1 小时前
宽压降压电源新选择|CN8610 60V/1A 异步降压芯片,车载 / 工业 IoT 一站式解决方案
嵌入式硬件·硬件工程