微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于LPC1114的学习型红外遥控器

基于LPC1114的学习型红外遥控器

时间:08-10 来源:互联网 点击:

  一、LPC11XX GPIO操作

2010年3月8日,一个让我:(作者,非本人:)刻骨铭心的日子,38妇女节,收到婷婷的电路板非常高兴,盼望半年之久的LPC CM0终于拿到了。

在此对婷婷的表示衷心的感谢,感谢党,感谢人民给我这次学习机会。闲话少说,进入正题。

LPC11XX我就不介绍了。学习型红外遥控器也不介绍了。有不懂的地方大家可以baidu一下。

本设计就是采用LPC1114+OLED+红外接收头构成一个学习型红外遥控器,

安装LPCxpress,后插入LPC-Link 自动识别,

系统多出一个

然后打开11XX的例程,正常安装路径在C:\nxp \lpcxpresso_3.1\Examples\LPC1000\LPC11xx下

文件名字 LPCXpresso1114_v1.00.zip

然后点击GPIO程序,打开GPIOtest.c开始学习。

发现和普通的 8位机真的相差很多,用了很多类似函数(库)的东西。

别的不管,先来个最简单的闪烁灯。

找到函数

功能:(设置 GPIO口方向),参数(端口号,位,输入或输出(0入1出))

GPIOSetDir( PORT0, 1, 0 );

GPIOSetValue()

一个是设置端口方向,一个是设置输出的值,直接调用就可以了。

下面是我的程序,本人菜鸟一只,程序也不会写,希望大家拍砖的话,别往死里拍,呵呵。

用的是P32的口。输出1的时候点亮LED。

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

* gpiotest.c: main C entry file for NXP LPC11xx Family Microprocessors

*

* Copyright(C) 2008, NXP Semiconductor

* All rights reserved.

*

* History

* 2009.12.07 ver 1.00 Preliminary version, first Release

*

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

#include "LPC11xx.h" /* LPC11xx Peripheral Registers */

#include "gpio.h"

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

** Main Function main()

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

int main (void)

{

/* Basic chip initialization is taken care of in SystemInit() called

* from the startup code. SystemInit() and chip settings are defined

* in the CMSIS system_.c file.

*/

uint32_t a=60000;

GPIOInit();

GPIOSetDir(PORT3,2,1);

while(1)

{

a=160000;

while(a--);

GPIOSetValue(PORT3,2,0);

a=160000;

while(a--);

GPIOSetValue(PORT3,2,1);

}

/* use port0_1 as input event, interrupt test. */

GPIOSetDir( PORT0, 1, 0 );

/* port0_1, single trigger, active high. */

GPIOSetInterrupt( PORT0, 1, 0, 0, 0 );

GPIOIntEnable( PORT0, 1 );

/* use port1_1 as input event, interrupt test. */

GPIOSetDir( PORT1, 1, 0 );

/* port0_1, single edge trigger, active high. */

GPIOSetInterrupt( PORT1, 1, 0, 0, 0 );

GPIOIntEnable( PORT1, 1 );

/* use port2_1 as input event, interrupt test. */

GPIOSetDir( PORT2, 1, 0 );

/* port0_1, single edge trigger, active high. */

GPIOSetInterrupt( PORT2, 1, 0, 0, 0 );

GPIOIntEnable( PORT2, 1 );

/* use port3_1 as input event, interrupt test. */

GPIOSetDir( PORT3, 1, 0 );

/* port0_1, single edge trigger, active high. */

GPIOSetInterrupt( PORT3, 1, 0, 0, 0 );

GPIOIntEnable( PORT3, 1 );

while( 1 );

}

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

** End Of File

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

[最后修改于2010-03-10 12:51:40]

使用Keil MDK +ULink2开发LPC11XX

LPCXpresso软件虽然不错,但还是没有常用的KEIL IAR 顺手,怎么说也是用惯了,一狠心,买了个ULINK2,从今天开始使用MDK +ULink2开发LPC1114。

先来介绍一下软件部分,使用新版本 MDK 410B(www.mcu123.com有下载),无缝支持LPC1114,安装完软件后,ulink2插到电脑usb口可以自动识别,新建工程,选NXP LPC1114 301 芯片,一路下来没什么问题,关键是ULINK2的配置。

上图。

由于LPC11XX不支持JTAG ,所以只能用图中的SW方式了。

硬件方面,LPC1114的板子需要修改,把LPC-LINK和LPC1114要断开,就是电路图J4的部分,把PCB划开后,焊上2.54间距排针,

以后想用LPCXpresso软件带LPC-link的话跳线就可以用了。一举两得。

上图。

在来个图。和闪

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top