文档详情

嵌入式GPIO实验.doc

发布:2017-08-15约3.28千字共5页下载文档
文本预览下载声明
西安郵電 目: 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
显示全部
相似文档