蓝桥杯之数码管

声明:代码确实写的不好,用的都是最笨的方法实现功能,不喜勿喷

操控数码管我们只需要知道选择数码管的位选和段选就可以了,这样你想要显示什么就可以显示什么了。

下面看一下蓝桥板上的数码管部分的电路图:

电路图上74HC573有两个控制端,想要控制数码管,我们首先要把锁存器的控制端打开,看电路图就明白了。

我们只需要操控74HC138译码器就行了。

操控数码管步骤:

                   第一步:打开74HC573的两个控制端

                   第二步:选择数码管片选和段选

下面看一下代码:

#include "shuma.h"
u8 shu_tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XC6,0XFF};//0XC6是英文C
char yi,er,san,si,wu,liu,qi,ba;


//第一和第二个数码管
void Display1_2(uchar yi,uchar er)
{
		P2=0XC0;//打开位选573   U8
		P0=0X01;//选择第一个数码管
		P2=0XFF;//打开段选573   U7
		P0=shu_tab[yi];
		Delay1ms();Delay1ms();
		
		P2=0XC0;//打开位选573   U8
		P0=0X02;//选择第二个数码管
		P2=0XFF;//打开段选573   U7
		P0=shu_tab[er];
		Delay1ms();Delay1ms();
}	
//第四和第五个数码管
void Display4_5(uchar si,uchar wu)
{
		P2=0XC0;//打开位选573   U8
		P0=0X08;//选择第一个数码管
		P2=0XFF;//打开段选573   U7
		P0=shu_tab[si];
		Delay1ms();Delay1ms();
		
		P2=0XC0;//打开位选573   U8
		P0=0X10;//选择第一个数码管
		P2=0XFF;//打开段选573   U7
		P0=shu_tab[wu];
		Delay1ms();Delay1ms();
}
//第三和第六个数码管
void Display3_6(uchar san,uchar liu)
{
		P2=0XC0;//打开位选573   U8
		P0=0X04;//选择第三个数码管
		P2=0XFF;//打开段选573   U7
		P0=shu_tab[san];
		Delay1ms();Delay1ms();
		
		P2=0XC0;//打开位选573   U8
		P0=0X20;//选择第四个数码管
		P2=0XFF;//打开段选573   U7
		P0=shu_tab[liu];
		Delay1ms();Delay1ms();
}

//第七和第八个数码管
void Display7_8(uchar qi,uchar ba)
{
		P2=0XC0;//打开位选573   U8
		P0=0X40;//选择第一个数码管
		P2=0XFF;//打开段选573   U7
		P0=shu_tab[qi];
		Delay1ms();Delay1ms();
		
		P2=0XC0;//打开位选573   U8
		P0=0X80;//选择第一个数码管
		P2=0XFF;//打开段选573   U7
		P0=shu_tab[ba];
		Delay1ms();Delay1ms();
}


void Delay1ms()		//@11.0592MHz
{
	unsigned char i, j;

	_nop_();
	_nop_();
	_nop_();
	i = 11;
	j = 190;
	do
	{
		while (--j);
	} while (--i);
}

数码管的操作重点在于和按键、流水灯、18B20、1302的结合,他自己本身并没有什么难点。

猜你喜欢

转载自blog.csdn.net/weixin_42994525/article/details/88103632