好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

嵌入式系统实验报告

嵌入式系统实验报告 本文关键词:嵌入式系统,实验,报告

嵌入式系统实验报告 本文简介:嵌入式实验报告实验一LED灯显示实验一.实验目的1.熟悉arm开发板基本组成电路,并通过配套教材熟悉arm芯片特性。了解ADS1.2软件使用,并会用该软件编译调试开发板。2.了解H—JTAG软件原理,利用教材中提供的LED测试程序,完成实验。二.实验器材PC机一台,周立功开发板一块三.实验原理Eas

嵌入式系统实验报告 本文内容:

嵌入式实验报告

实验一

LED灯显示实验

一.

实验目的

1.

熟悉arm开发板基本组成电路,并通过配套教材熟悉arm芯片特性。了解ADS1.2软件使用,并会用该软件编译调试开发板。

2.

了解H—JTAG软件原理,利用教材中提供的LED测试程序,完成实验。

二.

实验器材

PC机一台,周立功开发板一块

三.实验原理

EasyARM2103开发板提供了4个绿色发光二极管用作显示,电路如图1.1所示。显示电路采用了灌电流的方式来驱动发光二极管,由于微控制器LPC2103

I/O口提供的灌电流大于其拉电流,采用此驱动方式可以保证二极管发光的亮度。

1.1

Led电路原理

四.

实验内容及步骤

1.

下面以GPIO的测试程序为例,熟悉EasyJTAG-H软件的使用方法,程序功能设计为控制单路LED闪烁,硬件电路如图1.1所示。

2.

打开示例工程。示例工程路径:配套光盘内容->光盘内容v1.00->3.EasyARM2103安装手册->GPIO

Test,将此文件夹复制到其它目录下打开,要求存放目录必须无中文路径,如图5.13所示。打开文件夹后,建议用户先删掉“GPIO_Test_Data”文件夹,然后双击打开“GPIO

Test.mcp”文件,即打开示例工程。

3.

点击“user”文件夹,打开main.c文件,见到示例代码

4.

选择低速GPIO,控制LED灯闪烁,示例程序如程序清单所示。此示例操作需要短接JP4的P0.17,输出控制LED1。

5.

编译连接工程。项目目标栏处选择DebugInFlash模式,然后编译连接工程。

如图所示为工程窗口中的DebugRel

Settings…

工程设置,如地址设置、输出文件设置、编译选项等,Synchronize

Modificatinte同步修改日期,检查工程中每个文件的修改日期,若(如使用其辑源文件),则在h栏标记“√”

Linker

生成的Image

一般包括三个区域:代码段、数据段和BSS

段。需要通

过Linker

设置这三个段的基址。通常BSS

段是紧接着数据段(RW)之

后,因此

只要设置代码段(RO)和数据段(RW)的基址就可以了。根据芯片资料中提

供的器件映射地址来填写。

6.

仿真调试

。将计算机并口与EasyJTAG-H仿真器相连,然后再将EasyJTAG-H仿真器的JTAG接口连接到EasyARM2103目标板上,打开H-JTAG,检测到芯片内核信息后,选择Auto

Download选项,此时会自动启动H-Flasher软件,选择目标芯片的型号,将当前的配置信息保存起来,建议将配置信息保存到安装路径下的Hconfig文件夹内。

7.

Make

(快捷键为F7);

启动AXD进行调试Run

启动AXD进行调试,并直接利用Project

Inspector

工程检查,查看和配置工程中源

文件的

,发现有更新它编辑器编Touch;

编译连接

8.

设置完成后,关闭H-JTAG

Server和H-Flasher(注意:不能使用Exit项关闭)。启动AXD,打开【Options】->【Configure

Target.】,弹出Choose

Target窗口,点击“ADD”添加仿真器的驱动程序,在添加文件窗口选择如D:/Program

Files/H-JTAG

目录下的H-JTAG

.dll,点击“打开”即可。

9.

在AXD环境点击运行,即可看到led亮。

AXD运行调试工具条如图3.14所示,调试观察窗口工具条如图3.15所示,文件操作工具条如图所示。

运行调试工具条

提高部分:改变led显示位置,重新编译链接,使led灯亮。

源代码如下:#include

“config.h“#

define

LED1

1

0;

uiDly--){

for(i

=

0;

i

光盘内容v1.00->3.EasyARM2103安装手册->GPIO

Test,将此文件夹复制到其它目录下打开,要求存放目录必须无中文路径,如图5.13所示。打开文件夹后,建议用户先删掉“GPIO_Test_Data”文件夹,然后双击打开“GPIO

Test.mcp”文件,即打开示例工程。

3.

点击“user”文件夹,打开main.c文件,见到示例代码

4.

编译连接工程。项目目标栏处选择DebugInFlash模式,然后编译连接工程。

5.

仿真调试

。将计算机并口与EasyJTAG-H仿真器相连,然后再将EasyJTAG-H仿真器的JTAG接口连接到EasyARM2103目标板上,打开H-JTAG,检测到芯片内核信息后,选择Auto

Download选项,此时会自动启动H-Flasher软件,选择目标芯片的型号,将当前的配置信息保存起来,建议将配置信息保存到安装路径下的Hconfig文件夹内。

6.

设置完成后,关闭H-JTAG

Server和H-Flasher(注意:不能使用Exit项关闭)。启动AXD,打开【Options】->【Configure

Target.】,弹出Choose

Target窗口,点击“ADD”添加仿真器的驱动程序,在添加文件窗口选择如D:/Program

Files/H-JTAG

目录下的H-JTAG

.dll,点击“打开”即可。

7.

为实现嵌套中断,修改main.c函数,重复上述步骤。

8.

在AXD环境点击运行,即可看到主程序led亮。通过中断按键,使其他led灯亮。

附源代码如下:

#include

“config.h“#define

LED

1

<<

17

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

Function

name:

Eint0IRQ*

Descriptions:

外部中断0服务程序*

input

parameters:

无*

ouput

parameters:

无*

Returned

value:

无********************************************************************************************************/

void

__irq

Eint0IRQ(void)

{

/*

进入中断取反LED/

if

((IO0PIN

/*

熄灭发光二极管/

}

else

{

IO0CLR

=

1

<<

17;

/*

点亮发光二极管/

}

while((IO0PIN

/*

等待按键松开/

EXTINT

=

0x01;

/*

清中断标志/

VICVectAddr

=

0x00;

/*

通知VIC中断处理结束/

}

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

Function

name:

main*

Descriptions:

P0.16低电平触发外部中断主函数*

input

parameters:

无*

ouput

parameters:

无*

Returned

value:

无********************************************************************************************************/

int

main

(void)

{

PINSEL1

=

PINSEL1

PINSEL1

=

PINSEL1

|

0x01;

/*

设置P0.16为外部中断0管脚/

PINSEL1

=

PINSEL1

/*

设置P0.17为GPIO功能/

IO0DIR

=

LED;

/*

设置P0.17为输出/

IO0SET

=

LED;

/*

设置输出为高电平/

IRQEnable();

/*

IRQ中断使能/

EXTMODE

=

0x00;

/*

设置外部中断为低电平触发/

EXTPOLAR

=

0x00;

VICIntSelect

=

0

<<

14;

/*

选择EINT0为FIQ中断/

VICVectCntl0

=

0x20

|

14;

/*

将外部中断0分配给向量中断0/

VICVectAddr0

=

(uint32)Eint0IRQ;

/*

设置中断服务程序地址/

VICIntEnable

=

1

<<

14;

/*

使能EINT0中断/

EXTINT

=

0x01;

/*

清除EINT0中断标志/

while(1);

return

0;

}

TAG标签: