文档介绍:实验二 I/O接口实验
[实验目的]
[实验仪器]
:PC机操作系统Win98、Win2000或WinXP,Keil for ARM(MDK)集成开发环境
[实验原理]
根据LPC2000系列ARM芯片的特点,可以将P0口的功能设置为GPIO,用来驱动LED等设备或者接受矩阵键盘的输入等。
[实验内容]
设计一个ARM驱动LED的电路,使用LPC2000的GPIO功能,编写一个LED跑马灯程序,并且在Proteus上仿真运行。
[预备知识]
LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。
GPIO
TXD0
PWM1输出
通过引脚连接模块PINSELx控制引脚功能
表示寄存器中某两位的设定值
如PINSEL0[1:0]=01时,连接TXD0
00
保留
EINT2
RI
GPIO
31:30
00
保留
EINT1
CD
GPIO
29:28
00
保留
DTR
GPIO
27:26
00
保留
DSR
GPIO
25:24
00
保留
CTS
GPIO
23:22
00
保留
RTS
GPIO
21:20
00
EINT3
PWM6
RxD1
GPIO
19:18
00
保留
PWM4
TxD1
GPIO
17:16
00
EINT2
PWM2
SSEL0
GPIO
15:14
00
保留
MOSI0
GPIO
13:12
00
保留
MISO0
GPIO
11:10
00
保留
SCK0
GPIO
9:8
00
EINT1
SDA
GPIO
7:6
00
保留
SCL
GPIO
5:4
00
EINT0
PWM3
RxD0
GPIO
3:2
00
保留
PWM1
TxD0
GPIO
1:0
复位值
11
10
01
00
引脚名称
PINSEL0
外部存储器寄存器描述——PINSEL0
表示寄存器中的控制位
如[9:8]表示PINSEL0寄存器的第9和8位
[实验步骤]
参考实验一建立ARM的GPIO电路,图中使用P0口的低八位驱动八个发光二极管,元件参数及种类分别见图及表
元件
元件参数
Res1~8
51欧
Cap1~4
22P(仿真时候没有影响)
晶振1,2
(仿真时候没有影响)
LED
红绿黄蓝颜色的各两个
使用Keil MDK软件和C语言编写LED的驱动程序:
按照实验一创建一个Keil项目,项目名称叫GPIO,不过在提示下图时候选择是,而不是否。此处使用Keil提供的汇编启动文件来启动arm处理器,不再使用自己编写的汇编语言了。
创建项目后界面如下:
在项目配置的界面下,linker页按如下设置,不按照实验一的设置进行。其余的设置按照实验一设定。
双击打开 ,见下图
这个文件有两种编辑方式,一种是使用文本方式,就是上图中的TextEditor。另一种是菜单界面的配置方式Configuration Wizard,用来配置ARM处理器的运行时候的设置。点击Configuration Wizard(上图的编辑区的下方)如下图
按照图上设置,取消锁相环的设置。(同样的方式也可以设置其它选项,大家做实验的时候可以分别展开各个选项查看并熟悉一下,以后实验备用)。
新建一个文本文件,,并添加到该项目中。按照如下操作进行:
弹出如下窗口
像该文本中添加代码
在文本编辑区中右击一下,选择Insert ‘#include <>’
然后添加C语言函数的框架,见下图
点击保存为gpi