嵌入式实验报告.docx

上传人:b****6 文档编号:7421968 上传时间:2023-05-11 格式:DOCX 页数:29 大小:1.82MB
下载 相关 举报
嵌入式实验报告.docx_第1页
第1页 / 共29页
嵌入式实验报告.docx_第2页
第2页 / 共29页
嵌入式实验报告.docx_第3页
第3页 / 共29页
嵌入式实验报告.docx_第4页
第4页 / 共29页
嵌入式实验报告.docx_第5页
第5页 / 共29页
嵌入式实验报告.docx_第6页
第6页 / 共29页
嵌入式实验报告.docx_第7页
第7页 / 共29页
嵌入式实验报告.docx_第8页
第8页 / 共29页
嵌入式实验报告.docx_第9页
第9页 / 共29页
嵌入式实验报告.docx_第10页
第10页 / 共29页
嵌入式实验报告.docx_第11页
第11页 / 共29页
嵌入式实验报告.docx_第12页
第12页 / 共29页
嵌入式实验报告.docx_第13页
第13页 / 共29页
嵌入式实验报告.docx_第14页
第14页 / 共29页
嵌入式实验报告.docx_第15页
第15页 / 共29页
嵌入式实验报告.docx_第16页
第16页 / 共29页
嵌入式实验报告.docx_第17页
第17页 / 共29页
嵌入式实验报告.docx_第18页
第18页 / 共29页
嵌入式实验报告.docx_第19页
第19页 / 共29页
嵌入式实验报告.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式实验报告.docx

《嵌入式实验报告.docx》由会员分享,可在线阅读,更多相关《嵌入式实验报告.docx(29页珍藏版)》请在冰点文库上搜索。

嵌入式实验报告.docx

嵌入式实验报告

重庆大学

学生实验报告

 

实验课程名称嵌入式系统

开课实验室创新实验室

学院光电工程学院年级研2012级

专业仪器仪表工程领域

学生姓名学号

开课时间2014至2015学年第1学期

 

总成绩

教师签名

 

开课学院、实验室:

光电学院创新实验室实验时间:

2014年4月23日

课程

名称

嵌入式系统实验

实验项目

名称

TiLM3S9B96

开发试验

实验项目类型

验证

演示

综合

设计

其他

指导

教师

成绩

一、实验目的

1、了解微控制器LM3S9B96的性能。

2、掌握LM3S9B96IO口输入输出编程方法。

二、实验原理

LM3S9B96是TI公司的基于ARMCortex-M3的32位MCU,具有先前8位和16位MCU的价格成本,CPU工作频率80MHz,100DMIPS性能,ARMCortexSysTick定时器,片内具有高达50MHz的256KB单周期闪存和96KB单周期SRAM,内部ROM加载了StellarisWare软件,具有扩展的外设接口和串行接口。

1、验证性实验

把存在外部RAM里的图像解压缩并显示在320x240的屏幕上,并且实现“拖动”的效果。

验证性实验程序主要分为三个部分:

图像读取,图像解码,图像显示。

工程文件的main()函数所在文件为showjpeg.c,主要函数的调用与功能如下表所示。

 

2、设计性实验

下图为LM3S9B96与LED1灯和SW1按键的连接原理图,设计C程序,实现LM3S9B96处理器的PF3口控制评估板上的LED1灯(即为“附1.1LM3S9B96评估板外观”中“UserLED”)的亮灭,并用SW1按键(附1.1评估板上标有“UserSwitch”的按键)实现两种闪烁模式的切换,两种模式的区别是LED灯闪烁的频率不同,并用示波器观察PF3输出的波形,记录波形的频率。

 

LM3S9B96用户手册为“Datasheet-LM3S9B96-中文版.pdf”,寄存器设置参考该手册,设计程序用到以下寄存器:

(1)运行模式时钟门控控制寄存器;

(2)GPIO方向寄存器;

(3)GPIO数字使能寄存器;

(4)GPIODATA数据寄存器;

(5)上拉电阻选择寄存器;

(6)驱动选择寄存器。

其中IO口为输入需要设置

(1)、

(2)、(3)、(5)、(6)这5个寄存器;IO口为输出需要设置

(1)、

(2)、(3)、(4)这4个寄存器,设置PF3输出为“1”的方法示例:

#defineSYSCTL_RCGC2_R(*((volatileunsignedlong*)0x400FE108))

//0x400FE108为运行模式时钟门控控制寄存器地址

#defineGPIO_PORTF_DIR_R(*((volatileunsignedlong*)0x40025400))

//0x40025400为PF口的方向寄存器地址

#defineGPIO_PORTF_DEN_R(*((volatileunsignedlong*)0x4002551C))

//0x4002551C为GPIO数字使能寄存器地址

#defineGPIO_PORTF_DATA_R(*((volatileunsignedlong*)0x400253FC))

//0x400253FC为GPIODATA数据寄存器地址

三、使用器材

PC机,示波器,LM3S9B96实验评估板,USBA型公口转MiniB型5Pin数据线1条(即电脑连接MP3等设备的数据线),5VDC电源。

四、实验步骤

1、验证性实验

(1)连接实验设备:

●跳线冒连接“Power”到ICDI,以使用USB接口供电。

●把USBA型公口转MiniB型5Pin数据线的MiniB接口插在J13处,另一端连接计算机的USB接口。

(2)按照如下步骤打开showjpeg例程,下载程序,运行程序。

①点击“开始->程序->IARSystems->EmbeddedWorkbenchforARM5.40->EmbeddedWorkbench),运行IAR软件。

②打开Workspace。

③选择jpeg工程,并打开。

④编译链接工程,选择菜单Project->RebuildAll。

⑤选择窗口中右上角的“DownloadandDebug”绿色按钮,下载目标文件。

选择Debug->go或点击按钮全速运行程序。

观察LM3S9B96实验评估板上液晶屏,若液晶无显示,则需要按一下下开发板上的“RESET”复位键,液晶上便会出现图像,可用手指拖动移动图像

五、实验过程原始记录(数据、图表、计算等)

1、下面为设计性实验的主要程序部分。

voidmain()

{

SYSCTL_RCGC2_R=0x00000120;//设置PF3为输出

GPIO_PORTF_DIR_R=0x08;

GPIO_PORTF_DEN_R=0x08;

GPIO_PORTJ_DEN_R=0x80;

While

(1)

{

if(GPIO_PORTJ_DATA_R==0x00)//读取按键的值

flag++;

if((flag%2)==0)

{

GPIO_PORTF_DATA_R|=0x08;//点亮LED灯

for(i=0;i<40000;i++);

GPIO_PORTF_DATA_R=0x00;//灭LED灯

for(i=0;i<40000;i++);

}

else

{

GPIO_PORTF_DATA_R|=0x08;//点亮LED灯

for(i=0;i<400000;i++);

for(i=0;i<400000;i++);

GPIO_PORTF_DATA_R=0x00;//灭LED灯

for(i=0;i<400000;i++);

for(i=0;i<400000;i++);

}

}

}

六、实验结果及分析

1、验证性实验:

LM3S9B96实验评估板的液晶屏上出现一副图像,可用手指拖动移动图像。

2、设计性实验:

程序全速运行后,LED灯以一定的频率缓慢地闪动;按下按键SW1后,LED灯又以另外一种频率快速地闪。

若再按一次SW1,则LED灯又按照第一种频率闪,如此循环。

并用示波器观察PF3输出的波形如下图所示。

七、思考题回答

LM3S9B96和51单片机相比,IO口输入输出编程有何区别?

答:

同51单片机相比,LM3S9B96的IO口输入输出编程多了对时钟门控控制寄存器、IO的方向寄存器、数字使能寄存器、上拉电阻使能寄存器和驱动选择寄存器等的编程,而51单片机仅仅只需对一个类似数据寄存器的P#寄存器直接赋值和读取即可。

 

教师签名:

年月日

开课学院、实验室:

光电学院创新实验室实验时间:

2014年4月30日

课程

名称

嵌入式系统实验

实验项目

名称

Android应用程序

开发实验

实验项目类型

验证

演示

综合

设计

其他

指导

教师

成绩

一、实验目的

1、了解Eclipse软件的使用。

2、掌握简单的安卓应用编写步骤,熟悉android软件开发流程。

二、实验原理

Android是Google开发的基于Linux平台的、开源的、智能手机操作系统。

Android包括操作系统、中间件和应用程序,由于源代码开放,Android可以被移植到不同的硬件平台上。

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。

通过使用AndroidEclipse插件,可以在Eclipse环境中构建Android应用程序。

1、验证性实验

通过Eclipse编写android程序,实现一个计算器功能。

2、设计性实验

创建一个工程,设计一个显示个人基本信息的应用程序。

要求:

创建一个Activity,设置一个以自己名字命名的按键,点击按键后,跳转到另一

个界面,界面显示自己的基本信息。

三、使用器材

android开发平台-------Eclipse软件,一台android手机。

四、实验步骤

1、验证性实验

以下介绍如何使用Eclipse创建一个应用程序,实现计算器功能。

(1)创建工作文件夹:

在E盘下创建名为workspace的文件夹,在此文件夹下创建名为activity01的文件夹。

(2)打开Eclipse开发工具并创建工程:

选择File—New—androidapplicationproject。

在ApplicationName,ProjectName中填写Activity_01(注意首字母最好大写),点击Next。

(3)去掉CreateProjectinWorkspace前面的勾选,选择之前创建的文件夹,点击Next。

(4)此处为更改应用软件图标操作,不做修改,点击Next。

(5)此处为更改应用软件主题操作,不做修改,点击Next。

(6)设置工程名称,如图进行修改后,点击Finish。

(7)点击最左侧窗口中的“Restore”按钮,打开src中的Activity01,可以看到如图所示窗口。

若已经看到左侧的浏览窗口,此步骤忽略。

(8)右键com.example.activity_01,选择New—Class,在Name中输入ResultActivity,点击finish。

(9)双击打开ResultActivity.java,在publicclassResultActivity语句后面输入extendsActivity。

(10)将鼠标放在报错的Activity之上,选择第一个Import’Activity’(android.app)。

(11)打开左侧浏览窗口中的res—values—strings.xml,点击窗口下面的strings.xml,输入

result

乘以

计算

退出

关于

注:

该步骤的目的是编写字符串,做后续的引用。

(12)编辑布局文件:

打开res—layout—main.xml,删除下图中选中的语句。

 

输入以下代码:

android:

id="@+id/factorOne"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

layout_alignParentTop="true"

/>

android:

id="@+id/symbol"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

gravity="center_horizontal"

android:

layout_below="@id/factorOne"

/>

android:

id="@+id/factorTwo"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

layout_below="@id/symbol"

/>

android:

id="@+id/calculate"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

layout_below="@id/factorTwo"/>

注释:

android:

id="@+id/factorOne"表示定义该控件的ID,为后续引用

android:

layout_width="fill_parent"表示该控件的宽度为充满屏幕宽度

android:

layout_height="wrap_content"表示该控件的高度为自动匹配

android:

gravity="center_horizontal"表示该控件显示的内容为水平居中android:

layout_alignParentTop="true"表示该控件在父控件的上部

android:

layout_below="@id/factorOne"表示该控件在factorOne控件的下部

(13)建立第二个布局文件。

选择左侧窗口中的res—layout,右键layout—new—file,在Filename中输入result.xml点击finish。

(14)将main.xml中的文本复制到result.xml中后将中间控件部分的代码删除,如下图所示,如有报错,点击保存便会消失。

(15)在result.xml中添加控件布局。

输入以下代码:

android:

id="@+id/result"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

gravity="center_horizontal"

android:

textSize="50sp"

/>

(16)对四个控件进行声明:

打开activity01.java,输入以下代码:

privateEditTextfactorOne;

privateEditTextfactorTwo;

privateTextViewsymbol;

privateButtoncalculate;

输入之后如果报错,就在上面输入:

importandroid.widget.*

(17)根据控件的ID来取得代表控件的对象:

在activity01.java中的publicvoidonCreate内部输入:

factorOne=(EditText)findViewById(R.id.factorOne);

factorTwo=(EditText)findViewById(R.id.factorTwo);

symbol=(TextView)findViewById(R.id.symbol);

calculate=(Button)findViewById(R.id.calculate);

如果报错,打开“main.xml”,保存一下main.xml可以解决。

(18)为symbol和calculate设置显示的值,接着上面的位置输入代码:

symbol.setText(R.string.symbol);

calculate.setText(R.string.calculate);

(19)最后几行选中的代码和大括号可以删除,也可不删。

对按钮设置监听器,在activity01中输入以下代码:

ClassCalculateListenerimplementsOnClickListener{}

鼠标放在报错处,点击第一个Import,如下图:

鼠标放在另一个报错处CalculateListener点击第一个Add后,得到如下图。

(20)对按钮绑定监听器。

在Activity01.java中输入:

calculate.setOnClickListener(newCalculateListener());

(21)在Activity01.java中获得两个EditText控件的值,并且将这两个值存放Intent

对象当中,使用Intent对象来启动resultActivity。

输入如下代码:

StringfactorOneStr=factorOne.getText().toString();

StringfactorTwoStr=factorTwo.getText().toString();

Intentintent=newIntent();

intent.putExtra("one",factorOneStr);

intent.putExtra("two",factorTwoStr);

intent.setClass(Activity01.this,ResultActivity.class);

Activity01.this.startActivity(intent);

报错后点击Import‘Intent’(android.content)。

(22)打开ResultActivity.java,在publicclass下面一行点击鼠标右键选择source—Override/ImplementMethods。

在如上窗口中选择onCreate(Bundle),点击OK。

(23)在ResultActivity.java中输入下面两段代码,注意位置。

privateTextViewresultView;

setContentView(R.layout.result);

resultView=(TextView)findViewById(R.id.result);

Intentintent=getIntent();

StringfactorOneStr=intent.getStringExtra("one");

StringfactorTwoStr=intent.getStringExtra("two");

intfactorOneInt=Integer.parseInt(factorOneStr);

intfactorTwoInt=Integer.parseInt(factorTwoStr);

intresult=factorOneInt*factorTwoInt;

resultView.setText(result+"");

有2处报错,分别在报错处点击弹出窗口中选择Import。

(24)对ResultActivity进行声明。

双击打开左侧窗口中的AndroidManifest.xml,然后点击下部最右边的标签AndroidManifest.xml

name=".ResultActivity"/>

(25)在Activity01工程上单击右键,选择RunAs—1AndroidApplication

等待约30s后虚拟机启动完毕,看到如上界面:

解锁界面,activity01程序便会自动运行,若不运行,找到该程序双击打开即可。

看到了我们设计的界面,在两个框中输入相应的数字,点击计算后可以得到结果。

2、设计性实验

(1)按照步骤

(1)—(6)建立一个新的工程。

(2)按照步骤(8)(9)(10)新建一个activity,并进行相应的操作。

(3)按照步骤(11)进行字符串的添加,为后续引用做准备,这里主要用到“名字,性别,国籍,籍贯,学校等信息”。

(4)按照步骤(12)的提示进行布局,控件的设置,添加一个Button控件。

(5)按照步骤(13)—(15)建立第二个xml文件,并对布局,控件进行设置,主要用到了五个TextView控件,在xml文件中控件的布局可以参考下图“姓名”的布局,text1为该控件的id,id名称可以更改。

性别、国籍、学校、籍贯控件可以按照此格式进行设计布局。

另外,从第二个控件开始,需要添加android:

layout_below="@id/text1"语句设置控件的位置,该语句表示该控件在id为text1的控件下方。

(6)按照步骤(16)对button控件进行声明。

注意button控件声明语句中的calculate应修改为Button的控件的id。

(7)按照步骤(17)使button控件能够显示。

注意语句中两处的calculate应修改为Button

的控件的id。

(8)按照步骤(18)对button控件显示的内容为“王大锤”。

注意语句calculate.setText(R.string.calculate)中第一个calculate应修改为Button的控件的id,第二个calculate应修改为设计性实验步骤(3)中已经定义的“王大锤”的名称。

(9)按照步骤(19)(20)对button控件设置监听器。

注意calculate应修改为Button的控件的id。

(10)按照步骤(21)设置intent(跳转)命令。

其中中只用到了以下三句(注意Activity01与ResultActivity的名称要分别与第一个java文件的名称和第二个java文件的名称相同):

Intentintent=newIntent();

intent.setClass(Activity01.this,ResultActivity.class);

Activity01.this.startActivity(intent);

(11)按照步骤(22)(23)对新建的activity进行设置。

代码只用到(注意other为第二个布局文件的名称):

setContentView(R.layout.other);

(12)按照步骤(24)对新建的activity进行声明。

注意ResultActivity要与第二个java文件名称相同。

(13)按照后续步骤进行验证。

(14)设计程序运行结果示例:

 

五、实验过程原始记录(数据、图表、计算等)

FunctionMain:

publicstaticclassPlaceholderFragmentextendsFragment{

privateButtonMybutton;

publicPlaceholderFragment(){

}

@Override

publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,

BundlesavedInstanceState){

ViewrootView=inflater.inflate(R.layout.fragment_main,container,false);

Mybutton=(Button)rootView.findView

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2