**************************************** Copyright (c) CaKen ************************************
******************************************************************************************
**文件名 : main.c
**作者 : CaKen
**版本號 : V1.0
**時間 : 2014.08.13
**功能描述 : GPIO實驗測試
******************************************************************************************
******************************************************************************************
#include "LPC17xx.h" * LPC17xx外設寄存器*/
******************************************************************************************
變量與宏定義
******************************************************************************************
#define BEEP (1 << 26) *P0.26連接蜂鳴器 */
#define KEY1 (LPC_GPIO2->FIOPIN & (1 << 10)) *P2.10連接KEY1 */
#define KEY2 (LPC_GPIO2->FIOPIN & (1 << 11)) *P2.11連接KEY2 */
#define KEY3 (LPC_GPIO2->FIOPIN & (1 << 12)) *P2.12連接KEY3 */
#define KEY4 (LPC_GPIO2->FIOPIN & (1 << 13)) * P2.13連接KEY4 */
#define BEEPOFF() LPC_GPIO0->FIODIR |= BEEP;LPC_GPIO0->FIOSET |= BEEP * 蜂鳴器關 */
#define BEEPON() LPC_GPIO0->FIODIR |= BEEP;LPC_GPIO0->FIOCLR |= BEEP * 蜂鳴器開 */
#define LED1 (1 << 0) * P2.0連接LED1 */
#define LED2 (1 << 1) * P2.1連接LED2 */
#define LED3 (1 << 2) * P2.2連接LED3 */
#define LED4 (1 << 3) * P2.3連接LED4 */
#define LED1OFF() LPC_GPIO2->FIODIR |= LED1;LPC_GPIO2->FIOSET |= LED1 * LED1關 */
#define LED1ON() LPC_GPIO2->FIODIR |= LED1;LPC_GPIO2->FIOCLR |= LED1 * LED1開 */
#define LED2OFF() LPC_GPIO2->FIODIR |= LED2;LPC_GPIO2->FIOSET |= LED2 * LED2關 */
#define LED2ON() LPC_GPIO2->FIODIR |= LED2;LPC_GPIO2->FIOCLR |= LED2 * LED2開 */
#define LED3OFF() LPC_GPIO2->FIODIR |= LED3;LPC_GPIO2->FIOSET |= LED3 * LED1關 */
#define LED3ON() LPC_GPIO2->FIODIR |= LED3;LPC_GPIO2->FIOCLR |= LED3 * LED1開 */
#define LED4OFF() LPC_GPIO2->FIODIR |= LED4;LPC_GPIO2->FIOSET |= LED4 * LED2關 */
#define LED4ON() LPC_GPIO2->FIODIR |= LED4;LPC_GPIO2->FIOCLR |= LED4 * LED2開 */
******************************************************************************************
** Function name: GPIO_Init
** Descriptions: GPIO初始化
** input parameters: 無
** output parameters: 無
** Returned value: 無
******************************************************************************************
void GPIO_Init (void)
{
LPC_PINCON->PINSEL0 &= ~(0x03 << 26); * 配置P0.26為GPIO */
LPC_PINCON->PINSEL4 &= 0XF00FFF00; * 配置P2.0~P2.3和P2.10~P2.13為GPIO */
LPC_GPIO0->FIODIR |= BEEP; * 配置P0.11即BEEP為輸出 1 */
LPC_GPIO2->FIODIR |= 0X000000FF; * 配置P2.0~P2.3為輸出 1 */
LPC_GPIO2->FIODIR &= 0XFFC3FFFF; * 配置P2.10~P2.13為輸入 0 */
}
*******************************************************************************************
** Function name: main
** Descriptions: 用戶程序入口函數,P0.26腳控制蜂鳴器,
** 每按下KEY1,蜂鳴器響一聲
** input parameters: 無
** output parameters: 無
** Returned value: 無
********************************************************************************************
int main (void)
{
SystemInit(); * 系統初始化 */
GPIO_Init(); * GPIO始化 */
while (1) {
if (KEY1 == 0) { * 如果KEY1按下,蜂鳴器鳴叫 */
BEEPON();
LED1ON();
} else { * 松開則停止蜂鳴 */
BEEPOFF();
LED1OFF();
}
if (KEY2 == 0) {
LED2ON();
} else { /松開則LED2滅 */
LED2OFF();
}
if (KEY3 == 0) {
LED3ON();
} else {
LED3OFF();
}
if (KEY4 == 0) {
LED4ON();
} else {
LED4OFF();
}
}
}