最新西安邮电大学嵌入式实验报告.docx
- 文档编号:1231388
- 上传时间:2022-10-19
- 格式:DOCX
- 页数:15
- 大小:270.71KB
最新西安邮电大学嵌入式实验报告.docx
《最新西安邮电大学嵌入式实验报告.docx》由会员分享,可在线阅读,更多相关《最新西安邮电大学嵌入式实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
最新西安邮电大学嵌入式实验报告
西安邮电大学
(计算机学院)
课内实验报告
实验名称:
专业名称:
软件工程
班级:
1101班
学生姓名:
学号(8位):
指导教师:
李宥谋
实验日期:
2013年12月25日
实验一流水灯实验
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;i<8;i++)
{
IO1CLR=DISP_TAB[i]<<18;
DelayNS(50);
IO1SET=0xffffffff;
}
DelayNS(10);
if((IO0PIN&KEY)==0)//测试KEY按键
for(i=0;i<8;i++)
{
IO1CLR=DISP_TAB2[i]<<18;
DelayNS(50);
IO1SET=0xffffffff;
}
DelayNS(10);
}
return(0);
}
实验二蜂鸣器实验
一.实验目的及实验环境
1.实验目的
●掌握LPC2131工程模板的使用。
●掌握EasyJTAG仿真器的安装和使用。
●能够在EasyARM教学实验开发平台上运行第一个程序。
●熟悉LPC2000系列ARM7微控制器的GPIO控制。
2.实验环境
●硬件:
PC机一台
LPC2131教学实验开发平台一套
●软件:
Windows98/XP/2000系统,ADS1.2集成开发环境。
二.实验内容
P0.7管脚控制EasyARM教学实验开发平台上的蜂鸣器报警。
三.方案设计
①启动ADS1.2IDE集成开发环境,选择ARMExecutableImageforlpc2131工程模板建立一个工程BeepCon_C。
②在user组里编写主程序代码main.c。
③选用DebugInRam生成目标,然后编译链接工程。
④将EasyARM教学实验开发平台上的P0.7管脚与Beep跳线短接gde台ngtheng______________________________________________________________________________________________________。
⑤选择Project->Debug,启动AXD进行JTAG仿真调试。
⑥全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。
⑦单击ContextVariable图标按钮(或者选择ProcessorViews->Variables)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。
选择SystemViews->DebuggerInternals即可打开LPC2000系列ARM7微控制器的片内外寄存器窗口。
⑧可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。
四.测试数据及运行结果
五.总结
1.实验过程中遇到的问题及解决办法;
本次实验刚开始时,刚把板子接到电脑上,什么操作都还没进行,蜂鸣器就开始响了,而且停不下来,我也不知道是什么问题,之前从来没遇到过,最后不得不将老师请过来。
原来是之前板子里嵌入的程序没有运行完,所以才会出现这种情况,只要将板子里的程序清干净就可以了。
2.对设计及调试过程的心得体会。
本次实验设计过程相较于之前的流水灯实验稍微复杂一些,但我并没有害怕,而是反复试验,最终将程序调试成功。
通过此次实验,我觉得在实验过程中坚持很重要,无论实验中遇到了什么问题,都不能轻易放弃,一定要克服阻碍,继续向前。
六.附录:
源代码(电子版)
#include"config.h"
#defineBEEPCON1<<7//P0.7引脚控制Beep,低电平蜂鸣
voidDelayNS(uint32dly)
{
uint32i;
for(;dly>0;dly--)
{
for(i=0;i<5000;i++);
}
}
intmain(void)
{
PINSEL0=0x00000000;//设置管脚连接GPIO
IO0DIR=BEEPCON;//设置I/O为输出
while
(1)
{
IO0SET=BEEPCON;//BEEPCON=1
DelayNS(200);
IO0CLR=BEEPCON;//BEEPCON=0
DelayNS(200);
}
return(0);
}
实验三外中断实验
一.实验目的及实验环境
1.实验目的
学习LPC2000系列ARM7微控制器的向量中断控制器及外中断的应用技术。
2.实验环境
●硬件:
PC机一台
LPC2131教学实验开发平台一套
●软件:
Windows98/XP/2000系统,ADS1.2集成开发环境。
二.实验内容
主程序闪烁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,蜂鸣器就会转换静音或鸣响状态。
四.测试数据及运行结果
五.总结
1.实验过程中遇到的问题及解决办法;
实验第一次运行时,蜂鸣器一直处于鸣响状态,及时按了按键,蜂鸣器还是一直鸣叫,不产生外中断。
后来仔细检查了程序,发现原来是忘记使能EINT0中断了,加上VICIntEnable=1<<0x0e代码,程序就能正常运行了。
2.对设计及调试过程的心得体会。
通过本次实验,我复习了中断的有关知识,了解了LPC2000向量中断控制器VIC的工作原理与编程细节,掌握了外中断技术的基本使用与编程。
对于LPC2000系列ARM7微控制器的向量中断控制器及外中断的应用技术有了更加深刻的认识。
六.附录:
源代码(电子版)
#include"config.h"
#defineBEEPCON1<<7//P0.7引脚控制Beep,低电平蜂鸣
#defineLED11<<18//P1.18引脚控制LED1,低电灯亮
voidDelayNS(uint32dly)
{uint32i;
for(;dly>0;dly--)
{
for(i=0;i<5000;i++);
}
}
void__irqIRQ_Eint0(void)
{
if((IO0SET&BEEPCON)==0)//反转BEEPCON管教输出状态
IO0SET=BEEPCON;
else
IO0CLR=BEEPCON;
while((EXTINT&0x01)!
=0)
EXTINT=0x01;//清除EINT0中断标志
VICVectAddr=0x00;//通知VIC中断处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 西安 邮电大学 嵌入式 实验 报告