LPC2124--GPIO按键控制LED灯的闪烁

发布者:RainbowMelody最新更新时间:2018-06-18 来源: eefocus关键字:LPC2124  GPIO  按键控制  LED灯 手机看文章 扫描二维码
随时随地手机看文章

实例目的

实例目的:掌握Proteus软件的使用及调试方法,学习IO编程。
实例内容:
 学习使用Proteus、ADS、Keil for ARM软件,掌握绘制原理及编译程序。
 键盘输入,当检测到有按键输入时,对发光二极管进行取反控制。使用
I/O口输入方式对按键进行扫描。
实例步骤:
 在Proteus中绘制原理图。
 在Keil for ARM中输入程序,并编译通过。
 加载ELF程序,观察仿真结果。
 采用KEIL for ARM与PROTEUS的整合方式联调。

知识点概括

LPC2000系列作为 “微控制器”,其GPIO特性就显得很
重要。它具有如下的特性:
①可以独立控制每个GPIO口的方向(输入/输出模式);
②可以独立设置每个GPIO的输出状态(高/低电平);
③所有GPIO口在复位后默认为输入状态。


LPC2114/2124微控制器具有两个端口--P0和P1,可以作为GPIO使用的引脚数为46个。
LPC2210/2212/2214微控制器还包含另外两个端口--P2和P3,这个两个端口与外部存储器总线复用,当它们全部作为GPIO使用时,GPIO引脚数多达112个


GPIO与控制寄存器的关系


相关寄存器描述



GPIO引脚值寄存器-IOxPIN


GPIO方向控制寄存器-IOxDIR:


GPIO输出置位寄存器-IOxSET:


GPIO输出清零寄存器-IOxCLR:


注意

①引脚设置为输出方式时,输出状态由IOxSET和IOxCLR中最后操作的寄存器决定;
②大部分GPIO输出为推挽方式(个别引脚为开漏输出),正常拉出/灌入电流均为4mA(短时间极限值40mA);
③复位后默认所有GPIO为输入模式。。

实例描述

功能:键盘输入.当检测到有按键输入时,对发光二极管进行取反控制 使用I/O口输入方式对按键进行扫描

平台:NXP-LPC2124

环境:Keil4 + Proteus7

要求如图

/******************************************************************************/  

/*  This file is part of the uVision/ARM development tools                    */  

/*  Copyright KEIL ELEKTRONIK GmbH 2002-2004                                  */  

/*******************************************************************************        

*File:Main.c 

*功能: 键盘输入.当检测到有按键输入时,对发光二极管进行取反控制 

*      使用I/O口输入方式对按键进行扫描 

*******************************************************************************/  

  

#include   "config.h"  

  

  

#define     LEDCON           0x00000200   // P0.9引脚控制LED,低电平点亮  

#define     KEY              0x00008000   // P0.15引脚连接按键  

  

/******************************************************************************* 

*名称:WaitKey() 

*功能:等待一个有效按键.本函数有去抖功能 

*******************************************************************************/  

  

void WaitKey(void)  

{    

    uint32 i;  

    while(1)  

    {   

        // 当按下P0.15以后会输出低电平, P0.15位为0  

        while((IO0PIN & KEY) != 0);          // 等待按键按下, IO0PIN & KEY) != 0表示IO0PIN的P0.15不是0, 标识没有按下  

          

        for(i = 0; i < 50000; i++);          // 延时消抖   

        // 电路中的脉冲可能不稳定, 也就是说可能出现, 电平瞬时反转的情况  

        // 而且按下的过程, 由于两块电极有一定的抖动, 这段时间电平不稳定,   

        // 因此应该写程序消除电极抖动产生的影响  

        //   

        // 我们开始先判断电极P0.15是不是按下了, 如果按下了, 就延时一定时间再判断P0.15是不是按下了[p0.15 == 0]  

        // 如果两次检测都P0.15 == 0我们才认为是一个有效的按下事件  

          

        if((IO0PIN & KEY) == 0)              // 如果IO0PIN的P0.15位引脚为0, 说明按下了P0.15  

        {     

            break;                          // 停止等的闪烁  

        }  

    }  

     

    // 只有当用户松开以后, LED灯才应该亮  

    while((IO0PIN & KEY) == 0);              // 等待按键放开  

}  

  

/******************************************************************************* 

*名称:main() 

*功能:读取按键,控制LED闪烁 

*******************************************************************************/  

int main(void)  

{   

    PINSEL0 = 0x00000000;                   // 设置所有引脚连接GPI0[功能选择]  

    PINSEL1 = 0x00000000;                   //   

  

    IO0DIR  |= LEDCON;                       // 设置LED控制口为输出,其它I/O为输入[将P0.9置1, P0.9用于输出]  

      

    while( 1 )  

    {   

        IO0SET |= LEDCON;                   // 将P0.9引脚设置为输出高电平 = 1[LED灯暗]  

        WaitKey( );  

                                            //  将P0.9引脚设置为输出低电平 = 0[LED灯亮]  

        IO0CLR = LEDCON;  

        WaitKey( );  

  

    }  

 }  


关键字:LPC2124  GPIO  按键控制  LED灯 引用地址:LPC2124--GPIO按键控制LED灯的闪烁

上一篇:STM32F4定时器 -- 定时中断
下一篇:STM32F030, 使用嘀嗒定时器Systick实现LED闪烁

推荐阅读最新更新时间:2024-03-16 16:05

STM32F103_GPIO输入输出快速初始化
main.c文件 #include sys.h #include delay.h #include gpio.h uint8_t GetCNState; int main(void) { delay_init(); //延时函数初始化 GPIO_Quick_Init(GPIOA_Pin0,GPIO_Mode_Out_PP,1); //初始化A0为推挽输出模式,开始电平为1 GPIO_Quick_Init(GPIOB_Pin1,GPIO_Mode_Out_PP,0); //初始化B1为推挽输出模式, 开始电平为0 GPIO_Quick_Init(GPIO
[单片机]
LED灯具智能驱动系统设计方案
 0 引言 LED照明是全球节能的主流,而大功率LED 照明更是今后世界的照明发光系统的主流趋势。大功率LED具有亮度高、节能环保、安全性和稳定性高等特点,比传统光源节电60% ~ 70%. 传统的声光控延时控制器能很好地实现对灯的控制,在光线黑暗时或晚上来临时,能有效地实现“人来灯亮,人去灯熄” , 但由于其开关用的是继电器之类的机械控制器,所以在人流量多的地方由于频繁的开关,较容易损坏。 根据市场上的现有的大功率LED射灯产品,设计了可应用于走廊、楼梯、教室等场所的智能照明系统。 该系统采用24 V /3 A 开关电源供电,下级可分布多路LED智能照明模块(见图1)。控制器采用AT89C2051,恒流驱动采用PT41
[嵌入式]
教你如何用一个GPIO数字接口也能测量温度的简单方式
在关注机器健康和其他物联网(IoT)解决方案的现代应用中,随着检测功能的日趋普及,对更简单的接口以及更少的I/O和更小的器件尺寸的需求也随之增长。连接到单个微处理器或FPGA的器件密度不断增加,而应用空间(以及由此导致的I/O引脚数量)却受到限制。在理想情况下,所有应用都需要一个ASIC来提供小巧的集成式解决方案。 Q:如果系统中的FPGA/微处理器上只剩下一个GPIO,该如何进行模拟测量? A:可以使用电压-频率 转换器 代替模数转换器。 在关注机器健康和其他物联网(IoT)解决方案的现代应用中,随着检测功能的日趋普及,对更简单的接口以及更少的I/O和更小的器件尺寸的需求也随之增长。连接到单个微处理器或FPGA的器件
[测试测量]
教你如何用一个<font color='red'>GPIO</font>数字接口也能测量温度的简单方式
该怎么判断LED灯珠的好坏
我们都知道,LED灯珠根据类型可以分为直插式灯珠、贴片式灯珠,还有大功率LED,以及cob灯珠这四大类。这几种灯珠的封装方式不同,功率上也有所不同。那么,该如何判断LED灯珠的好坏呢?看看东莞鑫优威光电科技的解答吧! 1、肉眼观察判断法∶如果LED灯珠有外观烧伤,或里面的芯片发黑,那是LED灯珠物理损坏。 2、如果手头有干电池,可以采用2颗1.5V电池:串联成3V,正反接一下,不亮就是坏的简易方法来判断LED灯珠好坏。 3、万用表测量判断LED灯珠好坏的方法。 a、用万用表红笔与LED灯珠正极接触点相连接,万用表黑笔与负极接触点相连接,当LED灯珠微亮就是好的,否则就可能是坏了。 b、用数字万用表则用二极管测量挡测
[测试测量]
该怎么判断<font color='red'>LED灯</font>珠的好坏
STM32学习之GPIO与SYSTICK使用+软件仿真
简介:小弟也是刚刚学习STM32,有什么不懂的还望大师们指点。以下程序是利用SYSTICK作为延时程序使GPIOA_Pin0产生1S的电压变化。初学,也就会这些了,拿出来与大家分享一下。 #include stm32f10x_conf.h void delay_ms(u32 ms); 声明延时函数 void GPIO_Config(void); 声明GPIO配置函数 int main(void) 主程序 { SystemInit(); 初始化系统时钟默认72MHZ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); 使能GPIOA时钟 GPIO_Config(); 调用GP
[单片机]
STM32学习之<font color='red'>GPIO</font>与SYSTICK使用+软件仿真
欧司朗携手英飞凌为斯里兰卡渔民提供100盏LED灯
英飞凌科技股份公司(FSE:IFX / OTCQX:IFNNY)和欧司朗光电半导体有限公司都大力支持可持续发展和环境保护。与欧司朗合作伙伴网LED Light for you携手合作,德国公司Diana Electronic Systems为全球自然基金(Global Nature Fund)开发出应用于斯里兰卡的高能效LED灯。当地渔民夜间捕鱼时,将使用高能效LED灯代替污染环境的煤油灯。 斯里兰卡共有8.5万渔民,其中许多都以夜间在红树林沼泽地捕虾为生。 渔民利用煤油灯光吸引虾,然后用结构精密的篮子进行捕捉。尽管捕虾方式具有可持续性,但渔民采用的煤油灯却给环境带来了危害。泄漏的煤油会污染水质和虾产卵地;此外,这些
[电源管理]
初学MSP430——按键中断控制小灯翻转
** /* * Copyright (c)... * All rights reserved. * * 文件名称:main.c * 文件标识:NO * 硬件描述:开发板上P1.3接按键,P1.0接了LED(用跳线帽连接)。 * 功能描述:每次按下按键后,控制P1.0、P1.6 LED闪烁情况 * * 当前版本:V1.0 * 作者:输入作者(或修改者)名字 * 完成日期:2015年2月6日 * * 取代版本:NO * 原作者:TI * 完成日期:2013-4-8 */ #include MSP430G2553.h //-----在main()函数前提前申明子函数----- void P1_IODect();
[单片机]
介绍两种LED灯具寿命试验方法
LED光源 的最大特点就是寿命长,可达到50000~100000小时,长时间的监测其光衰情况是不实际的,因此,本标准将通过一种加速寿命试验的方法来预测 LED灯具 的寿命。 适用范围 本标准适用于各类LED灯具的寿命 测试 ,不包含灯具的 电源 部分的测试。 技术要求 把LED灯具的光输出为初始光输出的70%作为寿命判断失效的指标。 试验方法一 结温是影响 LED 光衰减的重要原因。结温的升高会使LED光衰很快。LED在高电流下工作会产生更多得热量,从而加速老化。 本试验方法采用不同的 驱动 电流,选取5只LED灯具,在25℃环境温度下,用不同电流进行加速寿命试验,得出
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved