0
点赞
收藏
分享

微信扫一扫

在WORD中设置公式居中编号右对齐设置方式

水墨_青花 2024-02-08 阅读 19

目录

一.前置操作

1.LED数码管介绍

2.位选的基本概念

3. 1位数码管的引脚(10个)定义(应用【位选】概念)

4. 4位1体数码管的引脚(12个)定义

5.138译码器

(5.1)138译码器的作用

(5.2)138译码器的使能端

(5.3)138译码器的输出端

(5.4)138译码器的输入端

6.74HC245芯片(双向数据缓冲器)

(6.1)74HC245芯片的作用

(6.2)74HC245芯片的使能端【OE(LE)引脚】

(6.2)74HC245芯片的方向选择端【DIR引脚】

(6.2.1)[J21跳线帽]
(6.2.2) 数码管模块为什么要加上74HC245芯片?

7.104电容

8. 4位1体排阻部分(限流电阻)

二.基本的静态数码管显示

1.总结步骤:怎么样让某盏灯显示数字

2.根据原理图,确定LED第几个亮的位选(注意:数据端位对应端口端位,即高位对高位)

3.根据原理图,确定LED数字的段选(注意:数据端位对应端口端位,即高位对高位)

4.代码演示

#include <REGX52.H>

void main()
{
//138译码器
	P2_2=1;
	P2_3=0;
	P2_4=1;
	

	P0=0x7D;
		while(1)
		{

		}

}

三.自定义的静态数码管显示(代码演示)

#include <REGX52.H>

unsigned char smgduan[17]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
					0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

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=smgduan[Number];

}


void main()
{
		Nixie(2,2);//控制第几个灯亮什么数字
		while(1)
		{
		}
}

四.自定义的动态数码管显示

1.视觉暂留原理

2.消影问题

2.利用自定义延时函数封装(代码演示)

#include <REGX52.H>

unsigned char smgduan[17]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
					0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

void Delay(unsigned int xms)		
{
	unsigned char i, j;

	while(xms)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	   xms--;
	}
	
}

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=smgduan[Number];
			
			Delay(1);//Á¢¿ÌÇå0ÊýÂë¹Ü»á±äµÃºÜ°µ
      P0=0x00;//ÏûÓ°
}


void main()
{
		
		while(1)
		{
			Nixie(1,1);
			Delay(20);
			Nixie(2,2);
			Delay(20);
			Nixie(3,3);
			Delay(20);
			Nixie(2,2);
			
		}
}
举报

相关推荐

0 条评论