⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.h

📁 此程序为51,可以接收红外遥控,读温度18b20.非常好懂.欢迎下载
💻 H
字号:
//--------------------------------------------------
//18b20
//		作者:闵运华
//		qq:121758163
//--------------------------------------------------

#define 	A段	 	1 左移 0
#define 	B段		1 左移 2
#define 	C段		1 左移 6
#define 	D段		1 左移 4
#define 	E段		1 左移 3
#define 	F段		1 左移 1
#define 	G段		1 左移 7
#define 	H段		1 左移 5

#define	 	第一点		5
#define		第二点		13
#define	 	第三点		21
#define		第四点		29

#define 	字符0		A段 或 B段 或 C段 或 D段 或 E段 或 F段 
#define 	字符1		B段 或 C段   
#define 	字符2		A段 或 B段 或 D段 或 E段 或 G段 
#define 	字符3		A段 或 B段 或 C段 或 D段  或 G段 
#define 	字符4		B段 或 C段 或 F段 或 G段
#define 	字符5		A段 或 C段 或 D段 或 F段 或 G段
#define 	字符6		A段 或 C段 或 D段 或 E段 或 F段 或 G段
#define 	字符7		A段 或 B段 或 C段 
#define 	字符8		A段 或 B段 或 C段 或 D段 或 E段 或 F段 或 G段
#define 	字符9		A段 或 B段 或 C段 或 D段 或 F段 或 G段
#define 	字符A		A段 或 B段 或 C段 或 E段 或 F段 或 G段
#define 	字符B		C段 或 D段 或 E段 或 F段 或 G段
#define 	字符C		A段 或 D段 或 E段 或 F段 
#define 	字符D		B段 或 C段 或 D段 或 E段 或 G段
#define 	字符E		A段 或 D段 或 E段 或 F段 或 G段
#define 	字符F		A段 或 E段 或 F段 或 G段


#define 	字符G		A段 或 E段 或 F段 或 G段
#define 	字符H		A段 或 E段 或 F段 或 G段
#define 	字符I		A段 或 E段 或 F段 或 G段
#define 	字符J		A段 或 E段 或 F段 或 G段
#define 	字符K		A段 或 E段 或 F段 或 G段
#define 	字符L		A段 或 E段 或 F段 或 G段
#define 	字符M		A段 或 E段 或 F段 或 G段
#define 	字符N		A段 或 E段 或 F段 或 G段
#define 	字符O		A段 或 E段 或 F段 或 G段
#define 	字符P		A段 或 E段 或 F段 或 G段
#define 	字符Q		A段 或 E段 或 F段 或 G段
#define 	字符R		A段 或 E段 或 F段 或 G段
#define 	字符S		A段 或 E段 或 F段 或 G段
#define 	字符T		A段 或 E段 或 F段 或 G段
#define 	字符U		A段 或 E段 或 F段 或 G段
#define 	字符V		A段 或 E段 或 F段 或 G段
#define 	字符W		A段 或 E段 或 F段 或 G段
#define 	字符X		A段 或 E段 或 F段 或 G段
#define 	字符Y		A段 或 E段 或 F段 或 G段
#define 	字符Z		A段 或 E段 或 F段 或 G段
#define 	字符负号	G段
#define 	字符正号	A段 或 E段 或 F段 或 G段
#define 	字符空		0

#define		当前LED八的个数		4


unsigned char code 字符码表[]={	字符0,字符1,字符2,字符3,字符4,字符5,字符6,字符7,字符8,字符9,
				字符A,字符B,字符C,字符D,字符E,字符F,字符G,字符H,字符I,字符J,
				字符K,字符L,字符M,字符N,字符O,字符P,字符Q,字符R,字符S,字符T,
				字符U,字符V,字符W,字符X,字符Y,字符Z,字符负号,字符正号,字符空
				};	//数码管段码表

enum 
{
	字符_0 = 0,
	字符_1,
	字符_2,
	字符_3,
	字符_4,
	字符_5,
	字符_6,
	字符_7,
	字符_8,
	字符_9,
	字符_A,
	字符_B,
	字符_C,
	字符_D,
	字符_E,
	字符_F,
	字符_G,
	字符_H,
	字符_I,
	字符_J,
	字符_K,
	字符_L,
	字符_M,
	字符_N,
	字符_O,
	字符_P,
	字符_Q,
	字符_R,
	字符_S,
	字符_T,
	字符_U,
	字符_V,
	字符_W,
	字符_X,
	字符_Y,
	字符_Z,
	字符_负号,
	字符_正号,
	字符_空
};

void 显示数据(unsigned int 需显示的数值);
void 显示温度(unsigned int 需显示的数值);
void 亮点(unsigned char 需亮的点);
void 灭点(unsigned char 需灭的点);
void 显示字符(unsigned char 地址,unsigned char 字符数据);

unsigned char 显示区[4];
//点亮当前点
void 亮点(unsigned char 需亮的点)
{
	显示区[需亮的点 / 8] &=  ~(1<<(需亮的点 % 8));
}


//灭掉当前点
void 灭点(unsigned char 需灭的点)
{
	显示区[需灭的点 / 8] |=  1<<(需灭的点 % 8);
}



//显示字符
void 显示字符(unsigned char 地址,unsigned char 字符数据)
{
	if(地址 < 当前LED八的个数)
	{
		显示区[地址] &= H段;
		显示区[地址]|=~字符码表[字符数据];
	}
}
//显示字符
void 显示字符串(unsigned char 地址,unsigned char *字符串地址)
{
	char i;
	for(i = 0 ; i < 当前LED八的个数 ; i++)
		显示字符(i,字符串地址[i]);
}

//显示十六进制数
void 显示数据(unsigned int 需显示的数值)
{
	显示字符(0,(需显示的数值 >> 12) & 0x0f);
	显示字符(1,(需显示的数值 >> 8) & 0x0f);
	显示字符(2,(需显示的数值 >> 4) & 0x0f);
	显示字符(3,(需显示的数值 )& 0x0f);
	灭点(第三点);
	灭点(第二点);
}

void 显示温度(unsigned int 需显示的数值)
{
	
	if((需显示的数值 & 0x8000) )
	{
		//此表示此数为负数
		需显示的数值 ^= 0xffff;		//取反
		需显示的数值++;
		显示字符(0,字符_负号);
		需显示的数值 <<= 4;		//将整数部分放入高八位,小数部分放在低八位的高四位
	}
	else
	{
		需显示的数值 <<= 4;		//将整数部分放入高八位,小数部分放在低八位的高四位
		if((需显示的数值 >> 8) > 99)
		{
			显示字符(0,((需显示的数值 >> 8) / 100) & 0x0f);	//整数部分的百位
		}
		else
		{
			显示字符(0,字符_空);
		}
	}
	
	显示字符(1,(((需显示的数值 >> 8) / 10) % 10) & 0x0f);	//整数部分的十位
	显示字符(2,((需显示的数值 >> 8) % 10 ) & 0x0f); 	//整数部分的个位
	亮点(第三点);
	灭点(第二点);
	显示字符(3,((((需显示的数值 >> 6)&0x03) * 25) / 10) & 0x0f);	//小数点位
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -