📄 led.c
字号:
//[LED.c]小灯驱动----------------------------------------------------------*
//本文件包含: *
// (1)LEDInit:定义控制小灯的MCU的I/O引脚为输出 *
// (2)LED_L_A:驱动小灯"亮"、"暗" *
//硬件连接: *
// (1)本处的小灯是一个发光二极管,由MCU的I/O引脚控制 *
// (2)控制引脚=高电平时,小灯"暗";反之,小灯"亮" *
//-------------------------------------------------------------------------*
//头文件
#include "LED.h" //小灯驱动头文件
//LEDInit:定义控制小灯的MCU引脚为输出--------------------------------------*
//功 能:定义控制小灯的MCU引脚为输出,并使小灯初始为暗 *
//参 数:无 *
//返 回:无 *
//-------------------------------------------------------------------------*
void LEDInit(void)
{
Light_D |= 0xff; //令小灯引脚为输出
Light_P |= 0x00;
Delay(5000);
Light_P |= 0xff; //初始时,小灯"暗"
}
const INT8U LED_Table[]=
{
'1',0xfe,'2',0xfc,'3',0xf8,'0',0x7c,
'4',0xf0,'5',0xe0,'6',0xc0,'N','N',
'7',0x80,'8',0x00,'9',0x7e, //'C',
//0xE7,'*',0xD7,'0',0xB7,'#',0x77,'D',
0x00
};
INT8U LED_def(INT8U fv)
{
INT8U KeyPress;
INT8U i;
INT8U j;
i = 0;
while (1)
{
j = LED_Table[i];
//与0(定义表结束标志)相比较
if (j == 0) //=0,即表中无次定义值
{
KeyPress = 0x55; //返回0xFF
break;
}
else
{
//与键值相比较
if(j == fv) //找到
{
KeyPress = LED_Table[i+1]; //取键定义值
break;
}
else
{
i += 2; //指向下一个键值,继续判断
}
}
}
return KeyPress; //返回键定义值
}
void LED_B (INT8U value)
{
Light_P = value;
}
//LED_L_A:驱动小灯"亮"、"暗"-----------------------------------------------*
//功 能:根据flag的值控制小灯的亮和暗 *
//参 数:flag(flag='A',小灯暗;flag='L',小灯亮) *
//返 回:无 *
//-------------------------------------------------------------------------*
void LED_L_A(INT8U flag,INT16S num)
{
if (flag == 'A')
Light_P |= 1<<num; //小灯"暗"
else if (flag == 'L')
Light_P &= ~(1<<num); //小灯"亮"
}
void LED_T(INT8U dir) //循环亮灯,左或者右
{
INT16S n;
switch(dir)
{
case 'L':
case 'l':
for(n=0;n<8;n++)
{
LED_L_A('L',n); //小灯亮
Delay(500); //延时
LED_L_A('A',n); //小灯暗
Delay(500); //延时
}
break;
case 'R':
case 'r':
for(n=7;n>=0;n--)
{
LED_L_A('L',n); //小灯亮
Delay(500); //延时
LED_L_A('A',n); //小灯暗
Delay(500); //延时
}
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -