diff --git a/include/led.h b/include/led.h new file mode 100644 index 0000000..4ee7ad9 --- /dev/null +++ b/include/led.h @@ -0,0 +1,39 @@ +//=========================================================================== +// Organization : Individual developer +// Filename : led.h +// Author : Feng Bohan +// Create Time : 01:45:11 2024-07-15 +// Last Modified: 01:45:11 2024-07-15 +// Abstract : +//-------------------------------------------------------------------------- +// Description: +// +//-------------------------------------------------------------------------- +// Modification History: +//-------------------------------------------------------------------------- +// Rev Date Who Description +// --- ---- --- ----------- +// 0.0.01 2024-07-15 Feng Bohan initial version +//=========================================================================== +#ifndef LED_H +#define LED_H + +#include "public.h" + +#define LED P2 +#define LED0 P2_0 +#define LED1 P2_1 +#define LED2 P2_2 +#define LED3 P2_3 +#define LED4 P2_4 +#define LED5 P2_5 +#define LED6 P2_6 +#define LED7 P2_7 + +u8 led_on(u8 led); +u8 led_off(u8 led); +u8 led_toggle(u8 led); +void led_all_on(void); +void led_all_off(void); + +#endif diff --git a/src/led.c b/src/led.c new file mode 100644 index 0000000..8b054c7 --- /dev/null +++ b/src/led.c @@ -0,0 +1,126 @@ +//=========================================================================== +// Organization : Individual developer +// Filename : led.c +// Author : Feng Bohan +// Create Time : 01:49:36 2024-07-15 +// Last Modified: 01:49:36 2024-07-15 +// Abstract : +//-------------------------------------------------------------------------- +// Description: +// +//-------------------------------------------------------------------------- +// Modification History: +//-------------------------------------------------------------------------- +// Rev Date Who Description +// --- ---- --- ----------- +// 0.0.01 2024-07-15 Feng Bohan initial version +//=========================================================================== +#include "led.h" + +/******************************************************************************* +* 函 数 名 : led_on +* 函数功能 : 点亮指定的LED +* 输 入 : LED号 +* 输 出 : 0 成功,其他失败 +*******************************************************************************/ +u8 led_on(u8 led) +{ + //低电平点亮LED + switch(led) + { + case 0: LED0 = 0; break; + case 1: LED1 = 0; break; + case 2: LED2 = 0; break; + case 3: LED3 = 0; break; + case 4: LED4 = 0; break; + case 5: LED5 = 0; break; + case 6: LED6 = 0; break; + case 7: LED7 = 0; break; + default: return led; // 错误的LED号 + } + return 0; // 成功 +} + +/******************************************************************************* +* 函 数 名 : led_off +* 函数功能 : 熄灭指定的LED +* 输 入 : LED号 +* 输 出 : 0 成功,其他失败 +*******************************************************************************/ +u8 led_off(u8 led) +{ + //高电平熄灭LED + switch(led) + { + case 0: LED0 = 1; break; + case 1: LED1 = 1; break; + case 2: LED2 = 1; break; + case 3: LED3 = 1; break; + case 4: LED4 = 1; break; + case 5: LED5 = 1; break; + case 6: LED6 = 1; break; + case 7: LED7 = 1; break; + default: return led; // 错误的LED号 + } + return 0; // 成功 +} + +/******************************************************************************* +* 函 数 名 : led_toggle +* 函数功能 : 切换指定的LED的状态 +* 输 入 : LED号 +* 输 出 : 0 成功,其他失败 +*******************************************************************************/ +u8 led_toggle(u8 led) +{ + //切换LED的状态 + switch(led) + { + case 0: LED0 = !LED0; break; + case 1: LED1 = !LED1; break; + case 2: LED2 = !LED2; break; + case 3: LED3 = !LED3; break; + case 4: LED4 = !LED4; break; + case 5: LED5 = !LED5; break; + case 6: LED6 = !LED6; break; + case 7: LED7 = !LED7; break; + default: return led; // 错误的LED号 + } + return 0; // 成功 +} + +/******************************************************************************* +* 函 数 名 : led_all_on +* 函数功能 : 点亮所有LED +* 输 入 : 无 +* 输 出 : 无 +*******************************************************************************/ +void led_all_on(void) +{ + LED0 = 0; + LED1 = 0; + LED2 = 0; + LED3 = 0; + LED4 = 0; + LED5 = 0; + LED6 = 0; + LED7 = 0; +} + +/******************************************************************************* +* 函 数 名 : led_all_off +* 函数功能 : 熄灭所有LED +* 输 入 : 无 +* 输 出 : 无 +*******************************************************************************/ +void led_all_off(void) +{ + LED0 = 1; + LED1 = 1; + LED2 = 1; + LED3 = 1; + LED4 = 1; + LED5 = 1; + LED6 = 1; + LED7 = 1; +} \ No newline at end of file