最新西安邮电大学嵌入式实验报告Word文档格式.docx

上传人:b****4 文档编号:14149714 上传时间:2022-10-19 格式:DOCX 页数:15 大小:270.71KB
下载 相关 举报
最新西安邮电大学嵌入式实验报告Word文档格式.docx_第1页
第1页 / 共15页
最新西安邮电大学嵌入式实验报告Word文档格式.docx_第2页
第2页 / 共15页
最新西安邮电大学嵌入式实验报告Word文档格式.docx_第3页
第3页 / 共15页
最新西安邮电大学嵌入式实验报告Word文档格式.docx_第4页
第4页 / 共15页
最新西安邮电大学嵌入式实验报告Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

最新西安邮电大学嵌入式实验报告Word文档格式.docx

《最新西安邮电大学嵌入式实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新西安邮电大学嵌入式实验报告Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

最新西安邮电大学嵌入式实验报告Word文档格式.docx

实验一流水灯实验

1.实验目的及实验环境

1.实验目的

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

2.实验环境

●硬件:

PC机一台

LPC2131教学实验开发平台一套

●软件:

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

2.实验内容

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

3.方案设计

①启动ADS1.2IDE集成开发环境,选择ARMExecutableImageforlpc2131工程模板建立一个工程LedDisp_C。

②在user组里编写主程序代码main.c。

③选用DebugInRam生成目标,然后编译链接工程。

④将EasyARM教学实验开发平台上的P1.[18:

25]管脚对应与LED[1:

8]跳线短接gde台ngtheng______________________________________________________________________________________________________。

⑤选择Project->

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

⑥全速运行程序,程序将会在main.c的主函数中停止。

⑦单击ContextVariable图标按钮(或者选择ProcessorViews->

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

选择SystemViews->

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

⑧可以单步运行程序,可以设置/取消断点;

或者全速运行程序,停止程序运行,观察变量的值,判断LED1~LED8控制是否正确。

4.测试数据及运行结果

五.总结

1.实验过程中遇到的问题及解决办法;

由于本次实验较简单,且我们之前学习的微机原理课程也进行了流水灯的设计实验,所以对于本次实验,我完成地很顺利,在实验中没有遇到问题。

2.对设计及调试过程的心得体会。

本次实验是本学期该课程我们进行的第一次实验,总的来说,实验不是很难,设计过程也相对简单,其主要目的是让我们熟悉一下实验环境,并且能在实验环境下进行简单的实验操作,为之后的实验打下坚实的基础。

6.附录:

源代码(电子版)

#include"

config.h"

constuint32LEDS8=0xFF<

<

18;

//P1[25:

18]控制LED1~LED8,低电平点亮

constuint32KEY=1<

16;

//P0.16连接KEY1

constuint32DISP_TAB[10]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0xff};

constuint32DISP_TAB2[10]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0xff,0xff};

voidDelayNS(uint32dly)

{uint32i;

for(;

dly>

0;

dly--)

{

for(i=0;

i<

5000;

i++);

}

}

intmain(void)

{uint8i;

  PINSEL0=0x00;

//P0[15:

0]用作GPIO

  PINSEL1=0x00;

//P0[31:

16]用作GPIO

PINSEL2=PINSEL2&

(~0x08);

//P1[25:

16]连接GPIO

IO1DIR=LEDS8;

//设置P1[25:

18]为输出口,控制LED[7:

0]

while

(1)

if((IO0PIN&

KEY)!

=0)//测试KEY按键

for(i=0;

8;

i++)

{

IO1CLR=DISP_TAB[i]<

18;

DelayNS(50);

IO1SET=0xffffffff;

}

DelayNS(10);

KEY)==0)//测试KEY按键

for(i=0;

IO1CLR=DISP_TAB2[i]<

return(0);

}

实验二蜂鸣器实验

一.实验目的及实验环境

●掌握LPC2131工程模板的使用。

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

●能够在EasyARM教学实验开发平台上运行第一个程序。

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

二.实验内容

P0.7管脚控制EasyARM教学实验开发平台上的蜂鸣器报警。

三.方案设计

①启动ADS1.2IDE集成开发环境,选择ARMExecutableImageforlpc2131工程模板建立一个工程BeepCon_C。

④将EasyARM教学实验开发平台上的P0.7管脚与Beep跳线短接gde台ngtheng______________________________________________________________________________________________________。

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

⑦单击ContextVariable图标按钮(或者选择ProcessorViews->

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

选择SystemViews->

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

⑧可以单步运行程序,可以设置/取消断点;

或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。

四.测试数据及运行结果

本次实验刚开始时,刚把板子接到电脑上,什么操作都还没进行,蜂鸣器就开始响了,而且停不下来,我也不知道是什么问题,之前从来没遇到过,最后不得不将老师请过来。

原来是之前板子里嵌入的程序没有运行完,所以才会出现这种情况,只要将板子里的程序清干净就可以了。

2.对设计及调试过程的心得体会。

本次实验设计过程相较于之前的流水灯实验稍微复杂一些,但我并没有害怕,而是反复试验,最终将程序调试成功。

通过此次实验,我觉得在实验过程中坚持很重要,无论实验中遇到了什么问题,都不能轻易放弃,一定要克服阻碍,继续向前。

六.附录:

#defineBEEPCON1<

7//P0.7引脚控制Beep,低电平蜂鸣

{

uint32i;

PINSEL0=0x00000000;

//设置管脚连接GPIO

IO0DIR=BEEPCON;

//设置I/O为输出

while

(1)

{

IO0SET=BEEPCON;

//BEEPCON=1

DelayNS(200);

IO0CLR=BEEPCON;

//BEEPCON=0

实验三外中断实验

学习LPC2000系列ARM7微控制器的向量中断控制器及外中断的应用技术。

主程序闪烁LED,EINT使能/停止BEEP的鸣响。

1跳线LED1、Key1和Beep分别连接到P1.18、P0.16和P0.7管脚;

使用KEY1模拟外中断;

2启动ADS1.2,使用ARMExecutableImageforlpc2131工程模板建立一个工程TimeEINT_C。

3在user组中的main.c中编写主程序代码;

使用系统宏IRQEnable(),使能IRQ中断。

4装载并使能外中断;

5选用DebugInExram生成目标,然后编译连接工程。

6选择【Project】->

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

7全速运行程序,LED闪烁;

8每一次按键Key,蜂鸣器就会转换静音或鸣响状态。

实验第一次运行时,蜂鸣器一直处于鸣响状态,及时按了按键,蜂鸣器还是一直鸣叫,不产生外中断。

后来仔细检查了程序,发现原来是忘记使能EINT0中断了,加上VICIntEnable=1<

0x0e代码,程序就能正常运行了。

通过本次实验,我复习了中断的有关知识,了解了LPC2000向量中断控制器VIC的工作原理与编程细节,掌握了外中断技术的基本使用与编程。

对于LPC2000系列ARM7微控制器的向量中断控制器及外中断的应用技术有了更加深刻的认识。

7//P0.7引脚控制Beep,低电平蜂鸣

#defineLED11<

18//P1.18引脚控制LED1,低电灯亮

void__irqIRQ_Eint0(void)

{

if((IO0SET&

BEEPCON)==0)//反转BEEPCON管教输出状态

IO0SET=BEEPCON;

else

IO0CLR=BEEPCON;

while((EXTINT&

0x01)!

=0)

EXTINT=0x01;

//清除EINT0中断标志

VICVectAddr=0x00;

//通知VIC中断处理

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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