51单片机学习--数码管显示

首先实现静态数码管显示

SMG表示共阴极 ,要让第三位显示数字6,需要LED6端口接0,即Y5=0,5的二进制为101,按P2_4 到 P2_2 的顺序接,则CBA分别接101

然后在数码管另一端,需要点亮的接上1,根据原理图一一对应即可

得到P0_0 到 P0_7 依次为1011 1110

所以P0的十六进制为0111 1101 == 7D


功能:使第三位显示数字6

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



void main()
{
	P2_4 = 1; //C
	P2_3 = 0; //B
	P2_2 = 1; //A
	
	P0 = 0x7D;

	while(1)
	{
		
	}
}


将这个功能封装成函数,指定位置显示指定数字

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

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

void Nixie(unsigned char Location, 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];
}

void main()
{
	Nixie(7, 2);

	while(1)
	{
		
	}
}


在点亮某位数码管后,因为切换的太快会产生错位重影,所以每次都要将P0归零来消影,在极快的速度下依次显示123,视觉上得到同时亮起的123,这就是动态数码管显示

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

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

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

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


void Nixie(unsigned char Location, 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) //依次显示123,因为太快所以看起来是同时亮的
	{
		Nixie(1, 1);
		Delay(2);
		Nixie(2, 2);
		Delay(2);
		Nixie(3, 3);
		Delay(2);
	}
}
相关推荐
爱学习的小郑13 分钟前
IC验证学习
学习
田径他爸来了13 分钟前
嵌入式学习第32天(epoll)
学习
a76659890031 分钟前
MBTI能预测考试成绩吗?性格偏好不能替代学习条件分析
学习·生活
Nomarsgo1 小时前
生产车间产线巡检解决方案:基于联控 Lionconit PTC-1006 工业手持平板电脑打造移动化、数字化车间巡检终端
单片机·嵌入式硬件·电脑
智购科技无人售货机厂家1 小时前
2026自动售货机出货口防夹手设计:从红外检测到电机反转的工程实践~YH
大数据·linux·单片机·嵌入式硬件·微信
2601_966799041 小时前
酷嗨米J300:多平台同步直播的硬件级解法,一台相机三路输出不卡顿
嵌入式硬件
MartinYeung52 小时前
[论文学习]大语言模型越狱的机械可解释性:基于内部归因图的分析
人工智能·学习·语言模型
CHENKONG_CK2 小时前
晨控CK-FR08系列与欧姆龙NX系列PLC配置MODBUSTCP例程使用手册
网络·单片机·嵌入式硬件
XiHongShi20162 小时前
51基础学习视频分享(2),三极管,点亮LED灯
单片机·学习
边境悍匪3 小时前
springboot常用注解
java·spring boot·学习