数码管的显示

静态数码管显示

数码管有两种一种的负电压促发,一种是正电压促发,上图是单数码管的引脚

上图是数码管模组的引脚,采用了引脚复用技术

咱们这个单片机由8个单数码管,所以要用上38译码器,如下图

74138使能端,单片机上电直接就默认接通了

74HC245的作用是稳定输入输出,数据缓冲作用,DIR表示方向默认给了正电压,就是左边流向右边,后面是电阻,COM表示线路公共

静态代码如下

c 复制代码
#include <REGX52.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(6,3);	
	while(1)
	{
		
	}
}

0X3F = 0011 1111b,从dp,g,f,e,d,c,b,a

动态数码管显示

有较强重影,主要是因为选模块和选数码管的代码不同步,然后数据就会串

所以需要delay函数来延迟

c 复制代码
#include <REGX52.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];	
	Delay(1);				
	P0=0x00;    //每次选完模块,就把模块里面的数码管清零				
}

void main()
{
	while(1)
	{
		Nixie(1,1);		
		Nixie(2,2);		
		Nixie(3,3);		
	}
}
相关推荐
张海森-1688207 小时前
两个char 类型变量,如何相互赋值
单片机
SUNNYSPY0018 小时前
75N120-ASEMI户用储能PCS专用75N120
单片机
piaoyiren8 小时前
单片机串口控制单路共阳极数码管
单片机·嵌入式硬件·51单片机
南山电子nscn8 小时前
友顺科技UTC UR56XX系列在18V高压输入与1µA级超低功耗之间实现了出色的平衡
科技·单片机·嵌入式硬件·低压差线性稳压器
嵌入式-老费10 小时前
esp32开发与应用(与stm32f103工控板配合之上篇)
stm32·单片机·嵌入式硬件
周洲083012 小时前
裸机程序 vs RTOS架构深度对比|嵌入式项目选型标准、源码实战、优缺点全解析
stm32·嵌入式硬件
M海洋13 小时前
Ubuntu dialout 串口权限授权
linux·单片机·ubuntu
piaoyiren13 小时前
51单片机播放音乐
单片机·嵌入式硬件·51单片机
执迷不悟82313 小时前
51单片机
单片机·嵌入式硬件·51单片机
zjxtxdy14 小时前
TIM输入捕获
单片机·嵌入式硬件