实验1011Word格式.docx

上传人:b****5 文档编号:19893386 上传时间:2023-01-11 格式:DOCX 页数:11 大小:145.05KB
下载 相关 举报
实验1011Word格式.docx_第1页
第1页 / 共11页
实验1011Word格式.docx_第2页
第2页 / 共11页
实验1011Word格式.docx_第3页
第3页 / 共11页
实验1011Word格式.docx_第4页
第4页 / 共11页
实验1011Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验1011Word格式.docx

《实验1011Word格式.docx》由会员分享,可在线阅读,更多相关《实验1011Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

实验1011Word格式.docx

2015年10月28日

GPIO输出控制实验1

一、实验目的

1、掌握LPC2200专用工程模板的使用。

2、掌握EasyJTAG仿真器的安装和使用。

3、能够在MagicARM2200-S教学实验开发平台上运行第一个程序(无操作系统)。

4、熟悉LPC2000系列ARM7微控制器的GPIO控制。

二、实验内容及要求

(一)实验内容

控制MagicARM2200-S教学实验开发平台上的蜂鸣器报警。

先使用片外RAM(MT45W4MW16芯片)进行调试,调试通过后将程序固化到片外FLASH(SST39VF160芯片),然后脱机运行。

(二)实验要求

1、仔细阅读参考文献[1]第5.7节的LPC2000管脚连接模块,第5.9节的GPIO。

2、仔细阅读本书第1章的内容,了解MagicARM2200-S教学实验开发平台的硬件结构,注意蜂鸣器的相关控制电路。

3、仔细阅读产品光盘附带文档《ADS集成开发环境及仿真器应用》或其它相关资料,了解ADS1.2集成开发环境、LPC2200专用工程模板、EasyJTAG仿真器的应用。

三、实验设备及软件

硬件:

PC机一台;

MagicARM2200-S教学实验开发平台一套

软件:

Windows98/XP/2000系统,ADS1.2集成开发环境

四、实验原理

如何在MagicARM2200-S上运行第一个程序。

1、安装ADS1.2。

运行在ADS目录下Setup.exe,开始安装ADS1.2。

按照安装软件的提示安装,与其它软件安装操作方法基本一致。

2、了解ADS1.2。

使用ADS1.2建立工程,编译链接设置,调试操作等,更详细的使用方法参考ADS1.2的在线帮助文档或相关资料。

3、连接EasyJTAG仿真器和MagicARM2200-S教学实验开发平台。

将EasyJTAG仿真器的25针接口通过并口延长线与PC机的并口连接,将EasyJTAG仿真器的20针接口通过20PIN连接电缆接到MagicARM2200-S教学实验开发平台的J3上,打开实验箱电源。

4、EasyJTAG仿真器的安装与应用。

参考产品光盘附带文档《ADS集成开发环境及仿真器应用》的内容。

5、添加工程模板。

6、用工程模板建立第一个工程。

使用LPC2200专用工程模板建立工程(比如ARMExecutableImageforMagicARM2200工程模板),然后在user组中的main.c中编写程序代码。

7、编译链接工程,若有错误,则修改程序,然后再次编译。

8、仿真调试第一个工程正确设置MagicARM2200-S教学实验开发平台上的跳线。

9、启动AXD进行仿真调试。

五、实验过程及步骤

1、连接EasyJTAG仿真器和MagicARM2200-S教学实验开发平台,然后安装EasyJTAG仿真器的驱动程序(若已经安装过,此步省略)。

2、为ADS1.2增加LPC2200专用工程模板(若已增加过,此步省略)。

3、启动ADS1.2,使用ARMExecutableImageforMagicARM2200工程模板建立一个工程BeepCon_C。

4、在user组中的main.c中编写主程序代码。

5、选用DebugInExram生成目标,如图2.15所示,然后编译链接工程。

图2.15选择生成目标

6、见图2.16,短接MagicARM2200-S教学实验开发平台上的蜂鸣器跳线JP7。

断开CF卡跳线JP13、GPIO接口J17。

图2.16蜂鸣器连接电路

7、选择【Project】->

【Debug】,启动AXD进行JTAG仿真调试(需要正确设置仿真器,参考产品光盘附带文档《ADS集成开发环境及仿真器应用》)。

注意:

使用DebugInExram生成目标时,使用片外RAM进行仿真调试,建议AXD设置HaltMode选择Haltprogram,AuxOption选择EraseFlashwhenneed。

在AXD中设置仿真器参考如图2.17所示。

图2.17片外RAM调试的仿真器设置

8、若JTAG连接出错,或AXD主窗口没有显示Startup.S源程序,按产品光盘附带文档《ADS集成开发环境及仿真器应用》介绍的方法进行处理。

9、全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。

10、单击ContextVariable图标按钮(或者选择【ProcessorViews】->

【Variables】)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。

选择【SystemViews】->

【DebuggerInternals】即可打开LPC2000系列ARM7微控制器的片内外设寄存器窗口。

11、可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。

12、当仿真调试通过后关闭AXD,在ADS1.2集成开发环境中选用RelOutChip生成目标,然后编译链接工程。

13、选择【Project】->

【Debug】,启动AXD进行JTAG仿真调试。

此时EasyJTAG仿真器将会把程序下载到片外FLASH上(需要正确设置仿真器,见图2.18。

具体参考产品光盘附带文档《ADS集成开发环境及仿真器应用》)。

14、按MagicARM2200-S教学实验开发平台上的RST复位键,观察程序是否能脱机运行。

15、实验结束后,在AXD中设置仿真器为片外RAM调试方式的设置,以便于后面实验的正确操作。

五、主要代码及运行结果

主要代码:

GPIO输出控制实验1的参考程序:

/********************************************************************

*文件名:

main.c

*功能:

蜂鸣器控制。

对蜂鸣器B1进行控制,采用软件延时方法。

*使用I/O口直接控制,采用灌电流方式。

*说明:

短接蜂鸣器跳线JP7。

断开CF卡跳线JP13、GPIO接口J17。

********************************************************************/

#include"

config.h"

#defineBEEPCON0x00000080//P0.7引脚控制B1,低电平蜂鸣

*名称:

DelayNS()

长软件延时。

*入口参数:

dly延时参数,值越大,延时越久

*出口参数:

voidDelayNS(uint32dly)

{uint32i;

for(;

dly>

0;

dly--)

{

for(i=0;

i<

5000;

i++);

}

main()

控制蜂鸣器蜂鸣。

intmain(void)

PINSEL0=0x00000000;

//设置管脚连接GPIO

IO0DIR=BEEPCON;

//设置I/O为输出

while

(1)

IO0SET=BEEPCON;

//BEEPCON=1

DelayNS(15);

IO0CLR=BEEPCON;

//BEEPCON=0

return(0);

六、心得体会

(一)思考

1、为什么这个实验的工程不需要设置链接地址?

(提示:

LPC2200专用工程模板已集成了启动代码、编译选项和链接地址设置等等)

答:

LPC2200专用工程模板已集成了启动代码、编译选项和链接地址设置。

2、在实验参考程序中,如何控制蜂鸣器报警的速度?

直接更改程序最后的那两个延迟函数DelayNS()中的参数的大小,便可更改蜂鸣器报警的速度和其间隔的时间。

3、在LPC2000系列ARM7微控制器中,有哪两个管脚作GPIO输出时需要外接上拉电阻?

SS和EL。

(二)体会

这次实验,对LPC2200专用工程模板的使用更加熟悉了,还有EasyJTAG仿真器的安装和使用,而且能够在MagicARM2200-S教学实验开发平台上运行第一个程序(无操作系统),还熟悉了LPC2000系列ARM7微控制器的GPIO控制。

但这次实验还是遇到了很大的问题,仿真不太会,导致实验的进行有很大的阻碍。

GPIO输出控制实验2

熟悉LPC2000系列ARM7微控制器的GPIO控制。

使用GPIO口控制8个LED流水灯显示。

2、仔细阅读本书第1章的内容,了解MagicARM2200-S教学实验开发平台的硬件结构,注意键盘及LED显示电路。

硬件:

四、实验过程及步骤

1、启动ADS1.2,使用ARMExecutableImageforMagicARM2200工程模板建立一个工程LEDCon_C。

2、在user组中的main.c中编写主程序代码。

3、选用DebugInExram生成目标,然后编译链接工程。

4、见图2.19,短接MagicARM2200-S教学实验开发平台上LED跳线JP5。

5、选择【Project】->

6、单步运行程序,通过LED1~LED8的显示判断输出是否正确。

全速运行程序,观察LED1~LED8的显示。

图2.19LED连接电路

GPIO输出控制实验2的参考程序:

LED显示控制。

*通过GPIO直接控制8个LED产生流水灯效果

短接LED跳线JP5。

*这个警告可忽略,C2892E:

signedconstantoverflow

#defineLED11<

<

16//P1.16

#defineLED21<

17//P1.17

#defineLED31<

18//P1.18

#defineLED41<

19//P1.19

#defineLED51<

20//P1.20

#defineLED61<

21//P1.21

#defineLED71<

22//P1.22

#defineLED81<

23//P1.23

#defineLEDCON0x00ff0000

constuint32DISP_TAB[8]={0xff01ffff,0xff02ffff,0xff04ffff,0xff08ffff,

0xff10ffff,0xff20ffff,0xff40ffff,0xff80ffff};

长软件延时

根据表DISP_TAB来控制LED显示。

{uint8i;

PINSEL1=0x00000000;

IO1DIR=LEDCON;

//配置LED控制I/O方向

8;

i++)

IO1CLR=DISP_TAB[i];

//输出LED显示数据

DelayNS(10);

//延时

IO1SET=0xffffffff;

六、心得体会

1、在实验参考程序中,#defineLED41<

31这种表达式对于I/O操作有什么方便的地方?

方便写程序,位操作方便,而且不用计算LED4对应端口的地址。

2、如何避免C2892E:

signedconstantoverflow警告?

(提示:

#defineLED41u<

31,这里u表示无符号数值)

如果用无符号的话就不用考虑符号位,就不会溢出了,比如#defineLED41u<

31,这里u表示无符号数值。

这次实验,熟悉了LPC2000系列ARM7微控制器的GPIO控制,还有LPC2000管脚连接模块,也有了一定的了解,但是,这次实验,对于仿真不太会,所以对于我来说,还是有很大的难度,在实验过程中,遇到了很多问题,不知道从何下手。

而且,这次的实验也和以前的实验有些区别。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1