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

📄 led.c

📁 我自己整理的单片机4*4键盘最简扫描算法
💻 C
字号:
#include <reg52.h>
#include "type.h"
#include "led.h"

UCHAR vBuffer[MAX_LED];
UCHAR code LED_Table[]={
//0   1   2    3    4    5    6    7    8    9   
0X3F,0X6,0X5B,0X4F,0X66,0X6D,0X7D,0X7,0X7F,0X6F,
//a   b    c    d    e    f    null
0X77,0X7C,0X39,0X5E,0X79,0X71,0xff};


void InitLED(void)
{
	UCHAR i;
	for ( i = 0 ; i < MAX_LED ; i ++)
	{
		vBuffer[i] = LED_NULL;
	}
}

void SetLED(UCHAR idx , UCHAR d)
{
	if ( idx >= MAX_LED ) idx = 0;
	vBuffer[idx] = d;
}

void ShowByte(UCHAR idx , UCHAR d)
{
	if ( idx >= MAX_LED ) idx = 0;
	vBuffer[idx] = d&0x0f;
	idx ++;
	if ( idx >= MAX_LED ) idx = 0;
	vBuffer[idx] = d>>4;
}


void LED_Server(void)
{
	static UCHAR idx;
	UCHAR  rt;
	idx ++;
	if ( idx >= MAX_LED ) 
	{
		idx = 0;
	}

#if LED_STYLE == LED_COM_K
	LED_SEG = 0xff;
	LED_IDX = ~(1<<idx);
	rt = vBuffer[MAX_LED - idx - 1];
	if (rt == LED_NULL ) 
	{
		LED_SEG = 0XFF;
	}
	else
	{
		LED_SEG = ~(LED_Table[rt]); 
	} 
#endif
#if LED_STYLE == LED_COM_A
	LED_SEG = 0;
	LED_IDX = ~(1<<idx);
	rt = vBuffer[MAX_LED - idx - 1];
	if (rt == LED_NULL ) 
	{
		LED_SEG = 0;
	}
	else
	{
		LED_SEG = (LED_Table[rt]); 
	}
#endif
}

⌨️ 快捷键说明

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