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

📄 led.c

📁 arm7 AD0804 test source code
💻 C
字号:
#include "..\inc\led.h"
#include "..\inc\console.h"


#define	ESC_KEY		0x1b

//声明总线地址
volatile U16 * LedDBuffer = (volatile U16 *)(0x2000000);
volatile U16 * LedSBuffer = (volatile U16 *)(0x2000000);

static U8 SHOWDATA[21]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x76,0x01,0x40,0x08,0x73};				//共阴

void Clr_led(void);

/* W(0) W(1) W(2) .(3) T(4) X(5) M(6)
 C(7) U(8) .(9) C(10) O(11) M(12)*/
U8 ZI_MO[]=
{
0xF8,0x07,0x3C,0xF0,0x3C,0x07,0xF8,0x00,/*"W",0*/

0xF8,0x07,0x3C,0xF0,0x3C,0x07,0xF8,0x00,/*"W",1*/

0xF8,0x07,0x3C,0xF0,0x3C,0x07,0xF8,0x00,/*"W",2*/

0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,/*".",3*/

0x80,0x80,0x80,0xFF,0x80,0x80,0x80,0x00,/*"T",4*/

0x81,0xC3,0x24,0x18,0x24,0xC3,0x81,0x00,/*"X",5*/

0xFF,0x70,0x0E,0x03,0x1E,0x60,0xFF,0x00,/*"M",6*/

0x3C,0x42,0x81,0x81,0x81,0xC3,0x66,0x00,/*"C",7*/

0xFE,0x01,0x01,0x01,0x01,0x01,0xFE,0x00,/*"U",8*/

0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,/*".",9*/

0x3C,0x42,0x81,0x81,0x81,0xC3,0x66,0x00,/*"C",10*/

0x00,0x7E,0xC3,0x81,0x81,0xC3,0x7E,0x00,/*"O",11*/

0xFF,0x70,0x0E,0x03,0x1E,0x60,0xFF,0x00,/*"M",12*/
};
/***************************************************
函数名:void Test_led(void)
****************************************************/
void Test_Pled(void)
{
	U8 i;

	for(i=1;i<9;i++)
	{
		sysUtilsLightLed(i,TRUE);
		sysUtilsUSecDelay(500000);	
	}
	for(i=1;i<9;i++)
	{
		sysUtilsLightLed(i,FALSE);
		sysUtilsUSecDelay(500000);	
	}

	/*
	sysUtilsLightLed(LED1,TRUE);
	sysUtilsLightLed(LED2,TRUE);
	sysUtilsLightLed(LED3,TRUE);
	sysUtilsLightLed(LED4,TRUE);
	sysUtilsLightLed(LED5,TRUE);
	sysUtilsLightLed(LED6,TRUE);
	sysUtilsLightLed(LED7,TRUE);
	sysUtilsLightLed(LED8,TRUE);
	
	sysUtilsLightLed(LED1,FALSE);
	sysUtilsLightLed(LED2,FALSE);
	sysUtilsLightLed(LED3,FALSE);
	sysUtilsLightLed(LED4,FALSE);
	sysUtilsLightLed(LED5,FALSE);
	sysUtilsLightLed(LED6,FALSE);
	sysUtilsLightLed(LED7,FALSE);
	sysUtilsLightLed(LED8,FALSE);*/
}
//测试数码管
void Test_led(void)
{
	U8 j;
	while(!( kbhit() && (getkey()==ESC_KEY)))
	{
		//点阵屏测试
		for(j=0;j<6;j++)
		{
			//*LedSBuffer=~(1<<j);		//打开第j个数码管显示
			*LedDBuffer=((~(1<<j))<<8)+SHOWDATA[j];	//点亮第j段
			sysUtilsUSecDelay(2000);	//延时1ms
		}
	}
	Clr_led();		//关闭数码管显示
}

//x 第几个数码管
//data 要显示的数据
//P 是否加小数点
void Show_Led(U8 x,U8 data,U8 P)
{
	*LedDBuffer=((~(1<<x))<<8)+SHOWDATA[data]+P*0x80;	//点亮第j段
}
//关闭跑马灯显示
void Clr_Pled(void)
{
	sysUtilsLightLed(LED_ALL,FALSE);
}
//数码管关闭
void Clr_led(void)
{
	*LedSBuffer=0xffff;		//关闭数码管显示
}
//点阵清屏
void Clr_DZ(void)
{
	Send_595(0xffff);		//点阵清屏
}
/******************************************
函数:void Test_DZ(void)
功能:点阵屏测试
*******************************************/
void Test_DZ(void)
{
	U8 i,j;

	for(j=0;j<8;j++)
	{ 		
		*LedDBuffer=((1<<j)|0xff00);		//点亮第j段
	 	for(i=0;i<8;i++)
	 	{
	 		Send_595(~(1<<i));	//
	 		sysUtilsUSecDelay(100000);//延时100ms
	 	}
	 	Clr_DZ();			//清屏
	}

}

//循环显示"WWW.TXMCU.COM"
void Show_WWW(void)
{

	U8 i=0,j=0,t;
	for(i=0;i<104;i++)
	{
		for(t=0;t<10;t++)
		{
			for(j=0;j<8;j++)
			{ 		
				*LedDBuffer=(ZI_MO[j+i]|0xff00);
				//Send_595(~(1<<i));//低电平点亮
									//取字模时取反码
				Send_595(~(1<<(7-j)));
				sysUtilsUSecDelay(500);	//延时10ms
				Clr_DZ();			//清屏
			}
		}
	}
}
//继电器测试
void Test_Relay(void)
{
	U8 i;
	for (i=0;i<5;i++)
	{
		rPDATC |=MASK_BIT(12);
		sysUtilsUSecDelay(500000);
		rPDATC &=~MASK_BIT(12);		
		sysUtilsUSecDelay(500000);
	}
}
/***************************************************
 参数:dwLedNo   指定对哪个LED操作
     :bLight    指定点亮或者熄灭.TRUE 点亮,FALSE熄灭
****************************************************/
void sysUtilsLightLed (U32 dwLedNo, BOOL bLight)
{
	if(dwLedNo==LED_ALL)
	{
		if(bLight==TRUE)
			rPDATD&=~(0xff);
		else
			rPDATD|=0xff;
	}
	else
	{
		if(bLight==TRUE)
			rPDATD&=~(1<<(dwLedNo-1));
		else
			rPDATD|=(1<<(dwLedNo-1));
	}
 }

⌨️ 快捷键说明

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