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

相关推荐
南無忘码至尊2 分钟前
Unity学习90天-第2天-认识键盘 / 鼠标输入(PC)并实现WASD 移动,鼠标控制物体转向
学习·unity·c#·游戏开发
sp_fyf_20244 分钟前
【大语言模型】OpenVLThinkerV2:面向多领域视觉任务的通用型多模态推理模型
人工智能·深度学习·学习·语言模型·transformer
路过羊圈的狼12 分钟前
STM32使用SFUD (Serial Flash Universal Driver) 串行 Flash 通用驱动库驱动W25Q128
stm32·单片机·嵌入式硬件
被考核重击15 分钟前
基础算法学习
学习·算法
creator_Li15 分钟前
Kafka 全面技术笔记
笔记·学习·kafka
楼田莉子17 分钟前
设计模式:构造器模式
开发语言·c++·后端·学习·设计模式
南境十里·墨染春水21 分钟前
linux学习进展 进程
linux·运维·学习
sp_fyf_202423 分钟前
【大语言模型】 语言模型学习什么以及何时学习?隐式课程假说
人工智能·学习·语言模型
星辰即远方23 分钟前
UI学习2
学习·ui
LCG元27 分钟前
多MCU通信:STM32F1通过I2C/SPI实现数据同步与控制
stm32·单片机·嵌入式硬件