实例目的
实例目的:掌握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
要求如图

-
-
-
-
-
-
-
-
-
-
#include "config.h"
-
-
-
#define LEDCON 0x00000200 // P0.9引脚控制LED,低电平点亮
-
#define KEY 0x00008000 // P0.15引脚连接按键
-
-
-
-
-
-
-
void WaitKey(void)
- {
- uint32 i;
- while(1)
- {
-
- while((IO0PIN & KEY) != 0);
-
- for(i = 0; i < 50000; i++);
-
-
-
-
-
-
-
- if((IO0PIN & KEY) == 0)
- {
- break;
- }
- }
-
-
- while((IO0PIN & KEY) == 0);
- }
-
-
-
-
-
-
int main(void)
- {
- PINSEL0 = 0x00000000;
- PINSEL1 = 0x00000000;
-
- IO0DIR |= LEDCON;
-
- while( 1 )
- {
- IO0SET |= LEDCON;
- WaitKey( );
-
- IO0CLR = LEDCON;
- WaitKey( );
-
- }
- }
转载:http://blog.csdn.net/gatieme/article/details/21593485