当前位置:首页 >> 小学教育 >>

IO接口实验


I/O接口实验
? 实验目的 ? 实验设备 ? 实验内容 ? 实验原理 ? 实验参考程序

电子科技大学嵌入式软件工程中心

I/O接口实验
? 实验目的
– 熟悉ARM芯片I/O口编程配置方法。 – 通过实验掌握ARM芯片I/O口控制LED显示 的方法。

电子科技大学嵌入式软件工程中心



I/O接口实验
? 实验设备
–硬件:PC机,华邦W90P710开发板 套件。 –软件:Lambda IDE集成开发环境, Windows 2000/NT/XP。

电子科技大学嵌入式软件工程中心

I/O接口实验
? 实验内容
– ARM芯片I/O口通常都是与其它引脚复用的。 熟悉ARM芯片I/O口的编程方法,熟悉华邦 W90P710芯片I/O口配置寄存器。 – 编程实现W90P710实验板上的发光二级管LED 的8盏灯依次亮灭。

电子科技大学嵌入式软件工程中心

实验原理
? W90P710芯片上共有71个多功能引脚,它们可分为 7组: ? PORT0:5个I/O引脚GPIO[4:0] ? PORT1:10个I/O引脚 GPIO[29:20] ? PORT2:5个I/O引脚GPIO[51:42] ? PORT3:5个I/O引脚GPIO[67:60] ? PORT4:5个I/O引脚 GPIO[59:52],GPIO[70:68] ? PORT5:5个I/O引脚 GPIO[19:5] ? PORT6:5个I/O引脚 GPIO[41:30]
电子科技大学嵌入式软件工程中心

实验原理
? 每个端口都可以通过软件配置寄存器来 满足不同系统和设计的需要,在运行程 序前,必须先对每个用到的引脚的功能 做出配置。 ? 本实验的所用的LED[7:0]分别对应GPIO 端口的GPIO[59:52],低电平有效。即只 要将GPIO[59:52]设置为低电平, LED[7:0]就会点亮。

电子科技大学嵌入式软件工程中心

实验原理
? GPIO_CFG4
– GPIO PORT4配置寄存器,由于在 W90P710中,许多引脚是复用的。在使用 该引脚之前,需要对它的功能属性做好配置 。通过读写该寄存器即可实现这个功能。它 的各个位属性如表1-1所示:

电子科技大学嵌入式软件工程中心

实验原理
表 1-1 31:24 Reserved 23:16

Reserved
PT4CFG7 PT4CFG3

PT4CFG10
15:8 PT4CFG6 7:0 PT4CFG2

PT4CFG9
PT4CFG5 PT4CFG1

PT4CFG8
PT4CFG4 PT4CFG0

电子科技大学嵌入式软件工程中心

实验原理
对PT4CFG0~PT4CFG7的说明如表1-2所示: 表 1-2
PT4C FG0~ 7 PORT 4_0~7 11
Name Type

10
Name Type Name

01
Type

00
Name Type

Reserved

VD8~1 5

O

D16~23

I/O

GPI I/O O52~ 59

电子科技大学嵌入式软件工程中心

实验原理
? 在系统默认的情况下,PT4CFG0~7的值为01 ,即默认选择的功能为数据总线D[23:16], 应将它们设置为00,选择功能为GPIO52~59 以直接控制LED。 ? GPIO_DIR4 GPIO PORT4 方向控制与上拉使能寄存器, 在本实验中需要将数据方向设置为输出, 上拉电阻使能,已使LED接受到数据信号。 它的各个位属性如表1-3所示:
电子科技大学嵌入式软件工程中心

实验原理
表1-4 31:27 Reserved 26:24 PUPEN[10:8]

23:16
PUPEN[7:0] 15:11 10:8

Reserved
7:0 OMDEN4[7:0]

OMDEN4[10:8]

PUPEN与OMDEN的含义如表1-4所示:
电子科技大学嵌入式软件工程中心

实验原理
表 2-4 PUPEN[26: 16] 上拉电阻使能位, 1=enable,0=disable。

OMDEN4[ 数据输出模式使能,1=enable,0=disable。仅当 10:0] 设置为GPIO模式时,使能才有效。

? GPIO_DATAOUT4 GPIO PORT4数据输出寄存器,向该寄存器中写入数据, 那么数据会直接反映到设置的端口,即GPIO[59:52]。以控 制LED灯的亮灭。它的寄存器控制位情况如表2-5所示:
电子科技大学嵌入式软件工程中心

实验原理
表 2-5 31:24 Reserved 23:16 Reserved 15:11 Reserved 7:0 DATAOUT [7:0] DATAOUT [10:8]分别对应GPIO[70:68],DATAOUT [7:0]对 应GPIO[59:52]。
电子科技大学嵌入式软件工程中心
10:8
DATAOUT [10:8]

实验参考程序
/******************定义控制寄存器的地址***********************/ #define GPIO_CFG4 *(volatile unsigned int *)0xfff83040 #define GPIO_DIR4 *(volatile unsigned int *)0xfff83044 #define GPIO_DATAOUT *(volatile unsigned int *)0xfff83048 /************************声明点灯函数*************************/ void light(int i); /*******************************主函数************************/ int main() { int i=0; unsigned int value ;

电子科技大学嵌入式软件工程中心

实验参考程序
value = GPIO_CFG4 ; /*暂存GPIO_CFG4寄存器的的初始值 */ GPIO_CFG4 = value & (0x0000) ; /*将PORT4的引脚设置为 GPIO[59:52]模式*/ value = GPIO_DIR4 ; /*暂存GPIO_DIR4寄存器的的初始值*/ GPIO_DIR4 = value | (0x00ff00ff) ; /*将引脚GPIO[59:52]设置 为电阻上拉,输出模式 */ value = GPIO_DATAOUT ; /*暂存GPIO_DATAOUT寄存器的的 初始值 */ GPIO_DATAOUT = value |(0xff); /*先全部熄灭,将引脚设置为高 电平 */ while(1) /*无限循环亮灯*/

电子科技大学嵌入式软件工程中心

实验参考程序
{ light(i%8); i++; } return 1; } void light(int i) /* 亮灯函数 点亮第i盏灯*/ { GPIO_DATAOUT=(~(0x1<<i))&(0xff); /*修改寄存器值 点亮第i盏灯*/ for(i=0;i<100000;i++){} /*延时循环,增加亮灯时间*/ }

电子科技大学嵌入式软件工程中心


相关文章:
更多相关标签: