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

📄 led6show.c

📁 51的计算器很好的啊
💻 C
字号:
//*************************************************************************************************
//*************************************************************************************************
//**<程序名>:LED动态扫描子函数。																 **
//**<功能>:	unsigned char * pucLedNum(unsigned long ulNumber);  							 **
//**			计算一个在000000到999999之间的数的每位数字并存储在数组中.并返回数组的首地址		 **
//**			void vShowOneNum(unsigned char ucOneNum,unsigned char ucOrder);					 **
//**			输入一个数字以及所要显示的位置,在LED相应位置上显示相应数字.						 **	 
//*************************************************************************************************
//*************************************************************************************************


//*************************************************************************************************
//*																								  *
//*			 ******************************头文件及宏定义**************************				  *
//*																								  *
//*************************************************************************************************
#include <at89x51.h>
#define LEDCHAR P1			//LED 字符I/O 口,P1.0~7对应A~DP
#define LEDSELECT P0		//LED 选择I/O口.   P2.0~5对应LED的1~6


//*************************************************************************************************
//*																								  *
//*			  ********************************全局变量******************************			  *
//*																								  *
//*************************************************************************************************
unsigned  char code uca_LEDCode[]=
			{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,	//0,1,2,3,4,5,6,7,8,9
			 0x88,0x83,0xC6,0xA1,0x86,0x84,0xFF,0x8C};		//A,B,C,D,E,F,空格,P

unsigned char code uca_LEDSelect[]={0x01,0x02,0x04,0x08,0x10,0x20};	
					//分别点亮第6,5,4,3,2,1号灯.

unsigned char uca_LedNum[6];			
					//存放数字的各个位


//*************************************************************************************************
//*																								  *
//*			  ********************************函数实现******************************			  *
//*																								  *
//*************************************************************************************************
unsigned char * pucLedNum(unsigned long ulNumber)
{
	if(ulNumber>999999)
		ulNumber=999999;
	if(ulNumber<0)
		ulNumber=0;
	uca_LedNum[5] = ulNumber/100000;

	uca_LedNum[4] = (ulNumber-100000*(long)uca_LedNum[5])/10000;

	uca_LedNum[3] = (ulNumber-100000*(long)uca_LedNum[5]-10000*(long)uca_LedNum[4])/1000;

	uca_LedNum[2] = (ulNumber-100000*(long)uca_LedNum[5]-10000*(long)uca_LedNum[4]
					-1000*(long)uca_LedNum[3])/100;

	uca_LedNum[1] = (ulNumber-100000*(long)uca_LedNum[5]-10000*(long)uca_LedNum[4]
					-1000*(long)uca_LedNum[3]-100*(long)uca_LedNum[2])/10;

	uca_LedNum[0] = (ulNumber-100000*(long)uca_LedNum[5]-10000*(long)uca_LedNum[4]
					-1000*(long)uca_LedNum[3]-100*(long)uca_LedNum[2]-10*(long)uca_LedNum[1]);

	return uca_LedNum;
}



void vShowOneNum(unsigned char ucOneNum,unsigned char ucOrder)
{
	LEDSELECT=0;
	LEDCHAR=uca_LEDCode[ucOneNum];
	LEDSELECT=uca_LEDSelect[ucOrder-1];
}


⌨️ 快捷键说明

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