专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

LPC1768之GPIO输入和输出配置基础例程

作者:未知   来源:CaKen的空间   点击数:  更新时间:2014年08月17日   【字体:

 **************************************** 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();
         }
     }
 }
 
 
关闭窗口