嵌入式GPIO实验.doc
文本预览下载声明
西安郵電 目: GPIO、定时器设计实验
院系名称: 电子信息学院
专业名称: 电子与通信工程
班 级: 电研12
学生姓名: 武永仙
学 号: 1202810056
指导教师: 王忠民
设计起止时间: 2013年月日~20年月日LPC2000 系列ARM7 微控制器的定时器0的基本设置及匹配输出应用。
3、学习ARM汇编语言程序设计 ,包括GPIO和定时器的设计,及在EasyARM2131上进行调试和运行。
二、实验内容
硬件:嵌入式实验平台一套、仿真器一个、PC 机一台。
软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套
控制嵌入式实验箱上的LED 轮流点亮。
三、概要设计
S3CRRB0X 芯片上共有71个多功能I/O 引脚,他们分别为7 组I/O 端口:
2个9 位I/O 端口(端口E 和F)
2个8 位I/O 端口(端口D 和G)
1个16 位I/O 端口(端口C)
1个10 位I/O 端口(端口A)
1个11 位I/O 端口(端口B)
每组端口都可以通过软件配置寄存器来满足不同系统合设计的需要。在运行主程序之前,必须先对每一个用到的引脚的功能进行设置。如果某些引脚的附庸功能没有使用,那么可以先将该引脚设置为I/O 口。
S3C44B0X 芯片与端口相关的寄存器:
(1)端口控制寄存器(PCONA~G):在S3C44B0X 芯片中,大部分引脚是使用多路复用的,所以要确定每个引脚的功能。PCONn(端口控制寄存器)能够定义引脚功能。如果PG0~PG7 作为掉电模式下的唤醒信号,那么这些端口必须配置成中断模式。
(2)端口数据寄存器(PDATA~G):如果端口定义为输出口,那么输出数据可以写入PDATn 中相应的位;如果端口定义为输入口,那么输入数据可以从PDATn 相应的位中读入。
(3)端口上拉寄存器(PUPC~G):通过配置端口上拉寄存器,可以使该组端口与上拉电阻连接或断开。当寄存器中相应位配置为0 时,该引脚接上拉寄存器;当寄存器中相应位配置为1 时,该引脚不接上拉电阻。
(4)外部中断寄存器(EXTINT):通过不同的信号方式可以使8个外部中断被请求。EXTINT 寄存器可以根据外部中断的需求,将中断触发信号配置为低电平触发,高电平触发,下降沿触发,上升沿触发和边沿触发几种方式。
四、详细设计
1.启动ADS1.2,使用ARM Execuatable Image 工程模板新建一个工程;
2.添加两个组INC 和SRC;
3.将INC 文件夹下所有文件添加到组INC 中;
4.将SRC 文件夹下所有文件添加到组SRC 中;
5.建立源文件test5.C,编写实验程序,添加到工程中;
6.编译链接选项的设置同前面实验;
7.编译链接工程,点击Debug 按钮,启动AXD 进行调试;
8.连续点击step in 按钮,单步运行程序。
9.理解并掌握本实验原理及程序。
流水灯实验流程如下图所示:
五、调试过程,设计技巧及体会
8个LED灯依次实现:全部熄灭后,再全部点亮,依次逐个点亮,依次逐个叠加,依次逐个递减,两个靠拢后分开从两边叠加后递减。
蜂鸣器定时器0.5s定时,实现蜂鸣器每隔1s,响一次0.5s。
通过这次试验,我学会了ADS硬件仿真的设置和调试,实验板的连接,建立C语言工程,掌握了I/O端口相关寄存器的使用。实验过程中遇到一些问题如下载蜂鸣器定时控制后,蜂鸣器没有响,由于没有接P0.7的跳线造成的。每次重新下载程序编译过程中,须要进行Remove Object code,再重新make检测,以免产生错误。
六、附录:
1 流水灯实验
#include config.h
/* LED8~LED1 8个LED分别由P1.25~P1.18控制 */
const uint32 LEDS8 = (0xFF 18); // P1[25:18]控制LED8~LED1,低电平点亮
void DelayNS (uint32 dly)
{ uint32 i;
for ( ; dly0; dly--)
for (i=0; i50000; i++);
}
** 函数名称 :main()
** 函数功能 :流水灯显示实验。
** 调试说明 :连接跳线JP12至LED8~LED1。
*******************************************************************************************/
/* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */
cons
显示全部