嵌入式系统实习报告

时间:2019-05-12 06:46:14下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《嵌入式系统实习报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《嵌入式系统实习报告》。

第一篇:嵌入式系统实习报告

一、嵌入式系统开发与应用概述

在今日,嵌入式ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。本章节就是将你领入ARM 的学习大门,开始嵌入式开发之旅。以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。

嵌入式微处理器技术的基础是通用计算机技术。现在许多嵌入式处理器也是从早期的pC 机的应用发展演化过来的,如早期pC 诸如TRS-80、Apple II 和所用的Z80 和6502 处理器,至今仍为低 端的嵌入式应用。在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。嵌入式处理器目前主要有Am186/88、386EX、SC-400、power pC、68000、MIpS、ARM 等系列。

在早期实际的嵌入式应用中,芯片选择时往往以某一种微处理器内核为核心,在芯片内部集成必要的ROM/EpROM/Flash/EEpROM、SRAM、接口总线及总线控制逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A 等各种必要的功能和外设。

二、实习设备

硬件:Embest EduKit-IV实验平台、ULINK2仿真器套件、pC机

软件:μVision IDE for ARM集成开发环境、Windows 98/2000/NT/Xp

三、实习目的1.初步掌握液晶屏的使用及其电路设计方法;掌握S3C2410X处理器的LCD控制器的使用;掌握通过任务调用的方法把液晶显示函数添加到uC/OS-II中;通过实验掌握液晶显示文本及图形的方法与程序设计。

2.了解S3C2410X处理器UART相关控制寄存器的使用; 熟悉ARM处理器系统硬件电路中UART接口的设计方法:掌握ARM处理器串行通信的软件编程方法。

3.掌握有关音频处理的基础知识;通过实验了解IIS音频接口的工作原理;通过实验掌握对处理器S3C2410X中IIS模块电路的控制方法;通过实验掌握对常用IIS接口音频芯片的控制方法。

4.了解μC/OS-II移植条件和内核基本结构;掌握将μC/OS-II内核移植到ARM9处理器上的方法和步骤。

四、实习要求

通过对μC/OS-II移植实验、μC/OS-II LCD显示实验、串口通信实验、IIS音频实验、液晶显示实验的学习,并将各部分内容合并,最终得出实习结果,实习要求在键盘上输入学号,在液晶显示屏上显示相应的学生信息。学生信息包括显示每个人的照片和姓名系别等,并用键控设置学生输出的顺序,输入学号就显示那个学生的信息,然后过一段时间就顺序循环播放。

移植μC/OS-II内核到ARM处理器S3C2410,在IDE中观察其运行状况编写S3C2410X处理器的串口通信程序;监视串行口UART1动作;将从UART1接收到的字符串回送显示。将从UART1接收到的字符串回送显示。

通过使用Embest EduKit-IV实验板的彩色液晶屏(800*480)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写任务函数在uC/OS-II系统中实现位图显示。在uC/OS-II中建立五个任务Tast1和Tast2,其中Tast1顺序熄灭四个LED,延迟一会在顺序点亮四个LED。Tast2在LCD屏幕上循环显示三幅图片,并打印一些文字信息和背景音乐。过使用Embest EduKit-III实验板的256 色彩色液晶屏(320x240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现:画出多个矩形框;显示ASCII字符;显示汉字字符;显示彩色位图。

五、实习步骤

1.准备实验环境

使用ULINK2仿真器连接Embest EduKit-IV实验平台的主板JTAG接口;使用Embest EduKit-IV实验平台附带的交叉串口线,连接实验平台主板上的COM2和pC机的串口(一般pC只有一个串口,如果有多个请自行选择,笔记本没有串口设备的可购买USB转串口适配器扩充);使用Embest EduKit-IV实验平台附带的电源适配器,连接实验平台主板上的电源接口。

2.串口接收设置

在pC机上运行windows自带的超级终端串口通信程序,或者使用实验平台附带光盘内设置好了的超级终端,设置超级终端:波特率115200、1位停止位、无校验位、无硬件流控制,或者使用其它串口通信程序。(注:超级终端串口的选择根据用户的pC串口硬件不同,请自行选择,如果pC机只有一个串口,一般是COM1)

3.打开实验例程

1)打开实验程序

2)运行μVision IDE for ARM软件

3)默认打开的工程在源码编辑窗口会显示实验例程的说明文件readme.txt,详细阅读并理解实验内容。

4)工程提供了两种运行方式:一是下载到SDRAM中调试运行,二是固化到Nor Flash中运行。用户可以在工具栏Select Target下拉框中选择在RAM中调试运行还是固化Flash中运行。下面实验将介绍下载到SDRAM中调试运行,所以我们在Select Target下拉框中选择UART_Test IN RAM。

5)接下来开始编译链接工程,在菜单栏“projiet”选择“Build target”或者“Rebuild all target files”编译整个工程。

6编译完成后,在输出窗口可以看到编译提示信息,比如““.SDRAMUART_Test.axf”-0 Error(s), 1 Warning(s).”,如果显示“0 Error(s)”即表示编译成功。

7)拨动实验平台电源开关,给实验平台上电,单击菜单栏Debug->Start/Stop Debug Session项将编译出来的映像文件下载到SDRAM中,或者单击工具栏“”按钮来下载。

8)下载完成后,单击菜单栏Debug->Run项运行程序,或者单击工具栏“”按钮来全速运行程序。用户也可以使用进行单步调试程序。

9)全速运行后,用户可以在超级终端看到程序运行的信息。

10)用户可以Stop程序运行,使用μVision IDE for ARM的一些调试窗口跟踪查看程序运行的信息。注:如果在第4)步用户选择在Flash中运行,则编译链接成功后,单击菜单栏Flash->Download项将程序固化到NorFlash中,从实验平台的主板拔出JTAG线,给实验平台重新上电,程序将自动运行。

部分程序图:

串口通信实验:

IIS音频实验:

六、实习体会

在嵌入式系统中,除了课本上的基础知识外,还学会了软件编程的基本思路,掌握了液晶屏的使用及其电路设计方法;掌握有关音频处理的基础知识;掌握液晶显示文本及图形的方法与程序设计。

通过这次设计,掌握了液晶显示实验、μC/OS-II移植、μC/OS-IILCD显示的工作原理及串口通信实验的工作过程,学会了使用仿真软件Embest EduKit-IV实验平台及ULINK2仿真器套件,并学会通过应用软件仿真来实现各种通信系统的设计,对以后的学习和工作都起到了一定的作用,加强了动手能力和学业技能。虽然花了很长时间编写软件程序设计,但这一切还是理论上的。希望学校能提供机会和条件,让我们能够去真正地将理论和实践相结合。通过这次程序,感觉自己所掌握的知识是那么的有限,还有许多需要改进和不足的地方,同时也帮助了我怎样学好这门课程,增加了我对这门学科的兴趣。总体来说,这次实习我受益匪浅。在摸索该如何设计电路使之实现所需功能的过程中特别有趣,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦和快乐。通过这次实习通信系统的设计,使我更加清楚以后的发展及学习的方向。

最后感谢老师这个学期的指导和帮助!

七、参考文献

《ARM9嵌入式系统设计与开发应用》熊茂华、杨震伦编著 清华大学出版社

《ARM9嵌入式系统设计与开发教程》于明编著 电子工业出版社

《Linux嵌入式系统教程》马忠梅 北京航空航天大学出版社

第二篇:黄靖嵌入式系统实习报告

嵌入式系统实习报告

课题: LCD显示秒表 班级: 计本12-3班 学号: 3110717215 姓名: 黄靖 指导老师: 金红老师

一、绪论

嵌入式计算机的真正发展是在微处理器问世之后。1971年11月,Intel公司成功地把算术运算器和控制器电路集成在一起,推出了第一款微处理器Intel 4004,其后各厂家陆续推出了许多8位、16位的微处理器,包括Intel 8080/8085、8086,Motorola 的6800、68000,以及Zilog的Z80、Z8000等。以这些微处理器作为核心所构成的系统,广泛地应用于仪器仪表、医疗设备、机器人、家用电器等领域。微处理器的广泛应用形成了一个广阔的嵌入式应用市场,计算机厂家开始大量地以插件方式向用户提供OEM产品,再由用户根据自己的需要选择一套适合的CPU板、存储器板以及各式I/O插件板,从而构成专用的嵌入式计算机系统,并将其嵌入到自己的系统设备中。本次试验课题是基于UC/OS-II嵌入式操作系统进行的1602显示秒表设计。

二、嵌入式概述

1、何为嵌入式:

何谓嵌入式系统, 嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统.通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

而uC/OS-II由Micrium公司提供,是一个源代码开放、可移植、可固化、可裁剪、抢先式的多任务实时操作系统。它主要用于中小型嵌入式系统中,执行效率高,占用空间小,可移植性强,具有良好的实时性和可扩展性。

2、嵌入式历史:

从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。

嵌入式系统的出现最初是基于单片机的。70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。

最早的单片机是Intel公司的 8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4 个8位并口、1个全双工串行口、两个16位定 时 器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。

从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。其中比较著名的有Ready System 公司的VRTX、Integrated System Incorporation(ISI)的PSOS和IMG的VxWorks、QNX公司的QNX 等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。

90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了Palm OS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,Delta Os等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。

3、现状:

今天嵌入式系统带来的工业年产值已超过了1万亿美元,1997年来自美国嵌入式系统大会(Embedded System Conference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。1998年11月在美国加州举行的嵌入式系统大会上,基于RTOS的Embedded Internet成为一个技术新热点。在国内,“维纳斯计划”和“女锅计划”一度闹得沸沸扬扬,机顶盒、信息j家电这两年更成了IT热点,而实际上这些都是嵌入式系统在特定环境下的一个特定应用。据调查,目前国际上已有两百多种嵌入式操作系统,而各种各样的开发工具、应用于嵌入式开发的仪器设备更是不可胜数。在国内,虽然嵌入式应用、开发很广,但该领域却几乎还是空白,只有三两家公司和极少数人员在从事这方面工作。由此可见,嵌入式系统技术发展的空间真是无比广大。

三、课题设计内容:

1、课题所需材料及工具

材料:1062LCD显示器、电路板、IAP15F2K61S2系统板、数据线、三个按钮、若干电线等

工具:USB串口驱动、Keil_uvision_

4、STC_ISP Ver6.82B等

2、课题设计要求及总体思路

要求秒表可以实现三个功能:秒表的显示功能,秒表的控制功能:开始、暂停、清零,秒表的LED闪烁功能。

总体思路:

1、查阅与课题相关的资料了解uC/OS-II嵌入式系统移植已有的主要技术方案,应用软件设计及系统调试的方法;

2、在IAP15F2K61S2单片机系统板上移植uC/OS-II嵌入式系统,完成系统调试。

3、完成对秒表的功能进行总体的设计和规划,根据自己的总体设计和规划进行软件设计,焊接电路。

4、系统功能调试。

3、uC/OS-II嵌入式系统的移植

uC/OS-II代码中大部分都是用C语言写的,但是涉及到数据类型的重定义、堆栈结构的设计、任务切换时状态的保存和恢复等问题的大部分代码由于与处理器有关,是用汇编语言实现的。移植所要做的工作,就是在不同的处理器上用汇编语言来改写与处理器有关的代码及其他与处理器特性相关的部分。

在uC/OS-II移植过程中涉及以上问题的代码都包含在文件 OS_CPU.H、OS_CPU.C、OS_CPU_A.ASM中。因此移植的主要工作也在源代码的基础上围绕着这三个文件的改写展开。

OS_CPU.H的改写:其中主要定义了一些与编译器有关的数据类型、堆栈的生长方向、临界代码区的保护方式。因为不同的处理器有不同的字长,所以OS_CPU.H中需要针对具体的处理器字长重新定义一系列数据类型以确保系统的可移植性。特别需要注意的是MCS-51的栈宽度是8位的,所以将堆栈的数据类型声明为8 位无符号字符类型,即unsigned char OS_STK。第二,为了避免临界区代码被中断,在临界区操作时必须用C语言开放和关闭中断。对于51单片机,在中断控制中使用EA = 0关中断,EA = 1开中断。由于51堆栈自低地址往高地址生长,所以堆栈增长方向的设置必须更改。采用语句#define OS_STK_GROWTH 0。最后,由于MCS-51没有软中断指令,所以用程序调用代替,定义任务切换宏OS_TASK_SW():#define OS_TASK_SW()OSCtxSw()。

OS_CPU_C.C需要改写的六个钩挂函数分别是 OSTaskStkInit()

//初始化任务堆栈函数 OSTaskCreateHook()//任务创建钩挂函数 OSTaskDelHook()

//任务删除钩挂函数 OSTaskSwHook()

//任务切换钩挂函数 OSTaskStatHook()

//统计任务钩挂函数 OSTimeTickHook()//定时钩挂函数

OS_CPU_A.ASM需要改写的四个函数分别是: OSStartHighRdy()//运行优先级最高的就绪任务 OSCtxSw()

//任务级的切换函数

OSIntCtxSw()

//中断级的任务切换函数 OSTickISR()

//时钟节拍中断服务函数

移植过程要留意的问题:

当调用OSTaskCreate()或OSTaskCreateExt()创建一个新任务时,需要传递的参数是:任务代码的起使地址,参数指针(pdata),任务堆栈顶端的地址,任务的优先级。OSTaskCreateExt()还需要一些其他参数,但与OSTask­StkInit()没有关系。OSTaskStkInit()只需要以上提到的3个参数(task, pdata,和ptos)。在这个堆栈初始化函数中要清楚堆栈中都要保存哪些东西,要留多大的空间,这些都很重要,否则会发生很严重的错误。

4、课题程序功能设计及代码

如下图所示,整个秒表以STC15为核心,按下停止键或启动键控制秒表的停止和开始,清零键负责清零,同时反映给STC15,再经过处理显示在1602液晶显示器上,进行计时:

LCD1602液晶显示器启动键key1STC15停止键key3清零键key2

系统设计图:

系统总的原理图如上图所示,按下暂停、启动和清零按键,秒表开始计时或清零并显示在LCD1602液晶显示器上。

功能流程图:

开始单片机、LED初始化trueIf(key==0)false定时器开启TR1=1定时中断计数值累加屏幕显示定时器关闭TR1=0结束 主要函数代码:

void main(void)

//主函数

{ OSInit();

//初始化uc/os-||

InitTime0();

//定时器初始化

OSTaskCreate(Task1,(void*)0,&Task1Stk[0],4);

//任务1 OSTaskCreate(Task2,(void*)0,&Task2Stk[0],1);

//任务2

OSStart();

//开始多任务调度 } void Task2(void *ppdata)reentrant

// 任务2,LED闪烁, { ppdata=ppdata;while(1)

{

P55 = ~P55;

OSTimeDly(OS_TICKS_PER_SEC);

}

} void Task1(void xdata * ppdata)reentrant

//任务1,三个按键功能以及字幕的显示 {

ppdata = ppdata;

TR1=0;count=0;

//中断次数

while(1){

init();

//1602初始化

if(key1==0)

//开始

{

TR1=1;

//定时器开启

}

if(key3==0)

//暂停

{ TR1=0;

//定时器关闭

}

if(key2==0&&TR1==0)

//清零

{ zong=0;

//时间清零

}

lcd_pos(0x46);

//显示的地址

Display_int(zong/60);

//显示分钟

lcd_date(':');

//显示

Display_int(zong%60);

//显示秒

lcd_pos(0x00);

//字符输出地址

Display_string(time);//输出”times start:”

OSTimeDly(OS_TICKS_PER_SEC/40);} }

//中断函数

void Time1()interrupt 3

//定时器T1的中断编号为1 { TH1 =(65536-50000)/256;

//定时器T0高8位重新赋初值0.05s TL1 =(65536-50000)%256;

//定时器T0低8位重新赋初值

count++;if(count%20==0)

//调整数字变化速度

{

zong++;// } }

void Display_int(int a){

//显示

int tmp[2]={0,0};int t = 0;

while(a!=0){

tmp[t++] = a%10;

a = a/10;}

t=2;while(t>0){

lcd_date('0' + tmp[--t]);} } void Display_string(char *str){

int i = 0;

while(str[i]!= ''){

lcd_date(str[i++]);

} }

5、系统测试结果

程序烧写进IAP15F2K61S2单片机,stc15上的LED灯不断闪烁,单片机控制1602显示,可显示出”times start: 00:00”字样。当按下key1键,计数启动。当按下key2键,计数暂停。当按下key3键,计数置0,重新等待计数(必须计数暂停后才能清零)。初步完成计数功能。

6、作品实物图 :

四、总结体会

在三周的时间内我们完成了LCD显示秒表的制作,该秒表由三个按钮控制完成三个功能进行计时,分别是:开始、暂停、清零,可通过1062显示频显示。

先查找资料进行了解,然后根据资料收集制作材料,之后在老师的指导下对程序进行设计,最后是电路焊接,系统调试。经过努力终于完成了秒表的制作。

三周时间的实习,不仅让我能力得到了锻炼、开阔了眼界、了解了嵌入式是怎样应用的,也让我深刻意识到自己的不足。三周实习最大的收获是让我学到了: 在对一样事物不了解时,主动去查找资料解决。困难不是我们主要的阻碍,关键是个人思想问题,只要你内心思想重视并付出行动,总会有回报的。曾有一位医生因对嵌入式起了兴趣,就自己查找资料竟然短短几天内做出了成果。这说明了一切。

参考文献: 【1】 祁红岩编著.MCS51单片机实践与应用(基于C语言).机械工业出版社 【2】 孙育才 孙华芳著.MCS-51系列单片机及其应用(第五版)

第三篇:中国民航大学嵌入式系统实习报告

中国民航大学2013-2014第一学期

嵌入式系统实习报告

嵌入式系统实习报告

1、实习目的

1.1了解处理器的发展

1.2掌握WinCE嵌入式系统开发方法和开发流程。1.3掌握WinCE嵌入式C#编程方法。1.4掌握WinCE嵌入式网络通信技术。1.5掌握Bluetooth编码技术

2、实习内容

蓝牙搜索、浏览与发送,蓝牙设备列表,配对设备清空,删除。主要步骤: 服务端

A、设置本设备为可发现。

B、公开服务给其他Bluetooth设备访问。

C、接受其他Bluetooth设备的链接。

D、与链接上的Bluetooth设备进行通信。客户端

A、发现周边Bluetooth设备。

B、主动与被发现的设备发起连接。

C、与链接上的Bluetooth设备进行通信。

3、实验要求:

课程资源:BP教学平台 完成形式:程序+实践报告

参考资料:齐治昌等,《C#编程技术》,人民大学出版社,钱哨等,《C#WinForm实践开发教程》 验收方式:课堂检查

发送文件到指定的计算机

4、基础知识:

4.1嵌入式系统

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

它是完成特定任务的计算机系统。嵌入式系统一般由硬件设备、嵌入式操作系统、嵌入式应用软件组成。4.2蓝牙技术

蓝牙(Bluetooth)是目前比较流行的一种短距离无线通讯技术,其主要目的就是要在全世界范围内建立一个短距离的无线通信标准。设计者的初衷是用隐形的连接线代替线缆。它取代目前多种电缆连接方案,通过统一的短程无线链路,在各信息设备之间可以穿过墙壁或公文包,实现方便快捷、灵活安全、低成本小功耗的话音和数据通信。“蓝牙”技术的目的是使特定的移动电话、便携式电脑以及各种便携式通信设备的主机之间在近距离内实现无缝的资源共享。

具体地说,“蓝牙”技术的作用就是简化小型网络设备(如移动PC、掌上电脑、手机)之间以及这些设备与Internet之间的通信,免除在无绳电话或移动电话、调制解调器、头套式送/受话器、PDA、计算机、打印机、幻灯机、局域网等之间加装电线、电缆和连接器。

5、具体操作

5.1新建项目程序

向窗口添加标签,按钮,文本框。

5.2蓝牙设备搜索

点击“搜索蓝牙设备按钮”,添加程序 具体程序如下:

BluetoothRadio radio = BluetoothRadio.PrimaryRadio;

if(radio == null)

{

MessageBox.Show(“没有蓝牙设备或者没有支持的蓝牙设备栈”);

return;

}

radio.Mode = RadioMode.Discoverable;//蓝牙模式设置为可搜索//

BluetoothClient client = new BluetoothClient();

this.statusBar1.Text = “正在搜索蓝牙设备...”;

Application.DoEvents();

BluetoothDeviceInfo[] cbbthDevices = client.DiscoverDevices();

comboBox1.DataSource = cbbthDevices;

comboBox1.DisplayMember = “DeviceName”;

comboBox1.ValueMember = “DeviceAddress”;

this.statusBar1.Text = “蓝牙设备搜索完成”;

Application.DoEvents();

5.3浏览和发送文件

双击“浏览文件”和“发送文件”,分别输入程序,具体如下: 浏览文件:

OpenFileDialog ofd = new OpenFileDialog();//浏览文件//

if(ofd.ShowDialog()== DialogResult.OK)//如果用户在对话框中单击“确定”//

{ textBox1.Text = ofd.FileName;} //将查找到的文件名显示在要发送的文件的文本框里// 发送文件:

System.Uri uri = new

Uri(“obex://”

+

comboBox1.SelectedValue.ToString()

+

“/”

+ System.IO.Path.GetFileName(textBox1.Text.Trim()));//获取服务器obex的uri,获取要传送的文件名//

ObexWebResponse response = null;

//新建response变量//

ObexWebRequest request = new ObexWebRequest(uri);//通过ObexWebRequest推送文件到目标机器,发送请求//

try

{

request.ReadFile(textBox1.Text.Trim());

//读出textbox1的文件内容

response =(ObexWebResponse)request.GetResponse();//回应封装在ObexWebResponse 类里面。如果目标机器的Obex服务没有打开,会发生文件传输错误 //

MessageBox.Show(“发送成功!”);

listBox1.Items.Add(textBox1.Text.Trim());//将文本框中的内容添加到列表中

}

catch

{

MessageBox.Show(“传输失败”);

}

finally//发送完成释放资源

{

if(response!= null)

{

response.Close();

}

} 5.4 拓展功能 5.4.1清空设备列表

功能:把搜索到的蓝牙设备列表清空。

程序如下:

private void button2_Click(object sender, EventArgs e)

{

comboBox1.Items.Clear();

} 5.4.2发送进度条 功能:显示文件发送进度。

程序添加到发送程序下:(红色标记的两句)

try

{

request.ReadFile(textBox1.Text.Trim());

//读出textbox1的文件内容

response =(ObexWebResponse)request.GetResponse();//回应封装在ObexWebResponse 类里面。如果目标机器的Obex服务没有打开,会发生文件传输错误 //

int C;

for(C = 0;C <= 100;C++)progressBar1.Value = C;

MessageBox.Show(“发送成功!”);

listBox1.Items.Add(textBox1.Text.Trim());//将文本框中的内容添加到列表中

}

5.4.3发送文件历史列表及清空 功能:保留发送文件历史,清空。

程序设计两部分: A、保留历史(红色部分)

request.ReadFile(textBox1.Text.Trim());

//读出textbox1的文件内容

response =(ObexWebResponse)request.GetResponse();//回应封装在ObexWebResponse 类里面。如果目标机器的Obex服务没有打开,会发生文件传输错误 //

int C;

for(C = 0;C <= 100;C++)progressBar1.Value = C;

MessageBox.Show(“发送成功!”);

listBox1.Items.Add(textBox1.Text.Trim());//将文本框中的内容添加到列表中

B、清空历史:

private void button1_Click(object sender, EventArgs e)

{

listBox1.Items.Clear();//清空列表

}

5.4.4添加时间框

5.4.5添加背景图片

5.5接收端

程序如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using InTheHand.Net;using InTheHand.Net.Bluetooth;using InTheHand.Net.Sockets;using System.Threading;

namespace WindowsApplication1 {

public partial class Form1 : Form

{

private Thread threadfile;

private ObexListener listener;

private bool listening;

public Form1()

{

InitializeComponent();

}

private delegate void SafeWinFormsThreadDelegate(string msg);

//监听线程

private void WriteMsg(string msg)

{

SafeWinFormsThreadDelegate d;

d = new SafeWinFormsThreadDelegate(UpdateUI);

Invoke(d, new object[] { msg });

}

public void DealWithRequest()

//处理请求

{

while(this.listener.IsListening)

try

{

ObexListenerContext olc = listener.GetContext();

ObexListenerRequest olr = olc.Request;

string filename = olr.RawUrl.TrimStart(new char[] { '/' });

olr.WriteFile(DateTime.Now.ToString(“2012-12-12”)+ filename);

}

catch

{ continue;}

}

private void UpdateUI(string msg)

{

listBox1.Items.Add(msg);

}

private void start_Click(object sender, EventArgs e)

{

if(listener == null)

{

listener = new ObexListener();

BluetoothRadio.PrimaryRadio.Mode = RadioMode.Discoverable;

}

listener.Start();

listening = true;

threadfile = new Thread(DealWithRequest);

threadfile.Start();

start.Enabled = false;

STOP.Enabled = true;

UpdateUI(“监听开始!”);

}

private void STOP_Click(object sender, EventArgs e)

{

if(listener!= null)

{

listener.Stop();

}

if(threadfile!= null)

{

threadfile.Abort();

}

start.Enabled = true;

STOP.Enabled = false;

UpdateUI(“监听停止!”);

}

private void tabPage1_Click(object sender, EventArgs e)

{

}

} }

6、心得体会

开学就有三周的实习感觉有点不太适应,但是嵌入式系统的实习让我找到了乐趣,让我感觉到了电子世界的丰富多彩以及更深入的了解日常生活中的蓝牙背后的故事。从一点都没有接触过,到后来的可以说是喜欢上这个实验课了。

当然,在实验中,我还是有过许多错误的操作,在这次设计中还是走了很多弯路,运用软件不熟悉,但在老师的指导下以及同学的帮助下,现在基本能够熟练操作。在不断摸索和查找资料的过程中,学会了迅速检索资料的能力,就是感觉这种实习是对自己的一种锻炼,发现困难,克服困难,很充实。

大三的我开始学习专业课,这次的实习是我专业课的开始,也激起了我对通信专业的热爱。

第四篇:嵌入式系统设计报告

嵌入式系统设计实验报告

班 级:学 号:姓 名:成 绩:指导教师:

20090612 2009112107 侯金钟 武俊鹏、刘书勇 1.实验一

1.1 实验名称

嵌入式系统硬件开发环境

1.2 实验目的

1.熟悉UP-net3000实验平台。

2.超级终端设置及BIOS 功能使用。

1.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

1.4 实验内容及要求

熟悉UP-net3000实验平台的硬件电路和外设,ARM JTAG的安装和使用,利用超级终端检验外设的工作状态。

1.5 实验设计与实验步骤

1.建立工程

(1)运行ARM SDT 2.5 集成开发环境(ARM Project Manager).(2)在新建的工程中,如图1A-2 所示,选中工程树的“根部”。

(3)因为开发板上的嵌入式处理器ARM7TDMI 没有浮点处理器,所以,如图1A-3 所

示,在弹出的对话框中设置Floating Point Processor 为none,并保持其他的设置不变。(4)选中工程树的“根部”,通过菜单Project | Tool Configuration for work1.apj | asmlink | Set,对整个工程的连接方式进行设置。(5)在弹出的对话框中,选中Entry and Base 标签,如图1A-4 所示,设置连接的Read-Only(只读)和Read-Write(读写)地址。

(6)选择Linker Configuration 的ImageLayout 标签,(7)选择Project | Edit Project Tamplete 菜单,弹出Project Template Editor 对话框。

(8)选择Project | Edit Variables for work1.apj,弹出Edit Variables for work1.apj 对话框。

2.进行程序的在线仿真、调试

1.6 实验过程与分析

熟悉UP-net3000实验平台的硬件电路和外设,安装了ARM JTAG,利用超级终端检验了外设的工作状态。

1.7 实验结果总结

软件安装成功,结果显示正常。

1.8 心得体会

通过此次试验,我对ARM的环境的功能有一定的了解与完善。对试验台有了基本的认识与使用。

2.实验二

2.1 实验名称

嵌入式系统软件开发环境

2.2 实验目的

1.熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。

2.使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

2.4 实验内容及要求

本次实验使用ADS 集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习ARM 仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量。

2.5 实验设计与实验步骤

(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。

(2)在新建的工程中,选择Debug 版本,使用Edit | Debug Settings菜单对Debug 版本进行参数设置。(3)在Debug Settings 对话框中选择Target Settings 项。在Post-linker一栏中选择ARM from ELF。

(4)在Debug Settings 对话框中选择ARM Linker 项

(5)在第四步中如果选择简单的地址连接设置,在Debug Settings 对话框中选择ARM Linker 项

(6)回到的工程窗口中,选择Release 版本,使用Edit | Release Settings 菜单对Release 版本进行参数设置。(7)参照第(3)、(4)、(5)、(6)步在Release Settings 对话框中设置Release版本的Post-linker、连接地址范围、入口模块和输出文件。(8)回到如图1B-3 所示的工程窗口中,选择Targets 选项卡,如图1B-11 所示。选中DebugRel 版本,按Del 键将其删除。DebugRel 子树是一个折衷版本,通常用不到,所以在这里删除。

2.6 实验过程与分析

1)回到工程窗口选中Debug 版本,执行菜单Project | Make 对工程进行编译连接。(2)在ADS 中执行菜单Project | Debug 启动ADS1.2 的调试工具AXD。(3)在AXD 中执行菜单Options | Configure Target 对AXD 进行设置。(4)点Select 按钮选择远程连接为ARM ethernet driver,点Configure 按钮输入仿真器的IP 地址。

(5)等待程序装载完毕以后,通过Execute | Go 菜单以及Execute | Stop(或者工具栏中的相应按钮)运行或暂停程序。程序暂停后在窗口中将显示出程序暂停的位置。(6)通过Execute | Step 菜单(或者工具栏中的相应按钮)可以单步运行程序。

(7)程序停止后可以通过Processor Views | Sources 菜单查看源文件,并可在适当位置按F9 设置端点。

(8)使用在Processor View 菜单下的Registers、Variables 和Memory 命令可以查看工作寄存器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。

2.7 实验结果总结

超级终端输出“Hello World!”。

2.8 心得体会

基本了解了ADS1.2的配置条件,学会了ARM仿真器的使用方法。

3.实验三

3.1 实验名称

键盘及LED实验

3.2 实验目的

1.学习键盘及LED 驱动原理。

2.掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。

3.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

3.4 实验内容及要求

通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。要求从右至左循环显示至少四位数字。

基本功能实现之后可考虑实现从左至右显示四位及四位以上数字(最大八位),并可设置清零键等扩展功能。

3.5 实验设计与实验步骤

利用所给的基础代码进行调试,观察输出结果,结合指导书和教材掌握基本原理和源代码的编写方式。根据实验的要求设计函数流程,并反复调试,实现功能。1.新建工程,将“Exp3 键盘及LED 驱动实验”中的文件添加到工程。2.定义ZLG7289 寄存器(ZLG7289.h)

#define ZLG7289_CS(0x20)//GPB5 #define ZLG7289_KEY(0x10)//GPG4 #define ZLG7289_ENABLE()do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)#define ZLG7289_DISABLE()do{rPDATB|=ZLG7289_CS;rSBRDR=ZLG7289SIOBand;rSIOCON=ZLG7289SIOCtrl;}while(0)3.编写ZLG7289 驱动函数(ZLG7289.c)4.定义键盘映射表:(Keyboard16.c)

unsigned char KeyBoard_Map[]= {4,8,11,0,0,0,0,0,5,9,12,15,1,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//64 键值映射表,通过查找键盘映射表来确定键盘扫描码对应的按键值。

5.定义键值读取函数。(Keyboard16.c)6.编写主函数,将按键值在数码管上显示。

3.6 实验过程与分析

利用键盘驱动函数实现基本数字输入,然后利用循环左移函数实现输入数字做一样功能,并通过改变函数中相应delay的值来消除键盘按键带来的抖动。

3.7 实验结果总结

按键值可以在LED上显示出来。要求从右至左循环显示八位数字,同时可以复位清零。达到实验的效果。

3.8 心得体会

通过本次实验,我了解了LED的显示屏幕的数字的移位功能,这个功能不止可以用一个方法实现,而循环左移是其中比较巧妙且省力的一种,在遇到类似情况的时候,可以优先考虑能不能利用到文件中已经存在的函数,这样可以不必自己编写函数,省时省力。是一种可靠的方法。4.实验四

4.1 实验名称

电机转动控制及中断实验

4.2 实验目的

1.熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。

2.编程实现ARM系统的PWM输出和I/O输出,前者用于控制直流电机,后者用于控制步进电机。

3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。

4.了解44B0处理器上中断的应用。5.学习在44B0处理器上中断的应用。

6.进一步熟悉平台外围硬件及其驱动程序的编写。

4.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

4.4 实验内容及要求

1.学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。学习ARM 知识,掌握 PWM 的生成方法,同时也要掌握 I/O的控制方法。

2.编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其转动方式。

3.编程实现ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

4.通过键盘控制直流电机与步进电机的切换。5.设置并启动定时器。

6.设置中断,编写定时器中断服务程序,对中断次数进行计数并在LED上显示结果。

4.5 实验设计与实验步骤

1.添加并打开工程。

2.进行直流电机初始化设置和代码编写。3.进行步进电机初始化设置和代码编写。

4.对Timer3编程,编写定时器中断服务程序,完成对中断次数的计数。5.编写LED计数显示函数,使LED能正确计数并显示0-9999。6.编写中断初始化函数和中断响应函数。7.终端下载测试。

4.6 实验过程与分析 1.对直流电机进行编程和测试,掌握转速和旋转方向的设定方法。

2.对步进电机进行编程和测试,掌握ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

3.对主函数进行编程,用键盘响应直流电机与步进电机的切换控制。

4.掌握中断相关语句的应用,弄清定义的中断向量、中断向量号,编写中断响应函数,并完成中断响应控制。

4.7 实验结果总结

实现了直流电机与步进电机的基本设置和控制,可以通过键盘控制电机之间的切换。完成了中断的响应和定时中断。当对其中一个旋钮转动时,就可以由直流电机转换成步进电机的转换,达到实验的效果。

4.8 心得体会

通过本次实验,我了解了直流电机和步进电机的工作原理,同时也知晓了电机间的转换过程,了解其中的道理内涵,熟悉了ARM自带的A/D转换器的工作原理及编程方法,了解了中断的意义和实现方法,实现了简单了中断处理程序。同时我也收获了很多关于ARM处理机的相关知识。

5.实验五

5.1 实验名称

触摸屏驱动实验

5.2 实验目的

1.了解触摸屏的基本概念与原理。

2.理解触摸屏与LCD的关系。3.编程实现对触摸屏的控制。

4.熟悉用 ARM 内置的 LCD控制器驱动 LCD。

5.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

5.4 实验内容及要求

1.了解触摸屏基本原理,理解对触摸屏进行输出标定、与LCD显示器配合的过程。2.通过编程实现触摸两点自动在两点间划直线。3.通过编程实现在触摸屏上动态画出曲线。5.5 实验设计与实验步骤

1.添加并打开工程。

2.在头文件中定义宏和常量及驱动函数。

#define ADS7843_CTRL_START 0x80 #define ADS7843_GET_X 0x50 #define ADS7843_GET_Y 0x10 #define ADS7843_CTRL_12MODE 0x0 #define ADS7843_CTRL_8MODE 0x8 #define ADS7843_CTRL_SER 0x4 #define ADS7843_CTRL_DFR 0x0 #define ADS7843_CTRL_DISPWD 0x3 // Disable power down #define ADS7843_CTRL_ENPWD 0x0 // enable power down #define ADS7843_PIN_CS(1<<6)//GPF6 #define ADS7843_PIN_PEN(1<<5)//GPG5 /////////触摸屏动作//////// #define TCHSCR_ACTION_NULL 0 #define TCHSCR_ACTION_CLICK 1 //触摸屏单击 #define TCHSCR_ACTION_DBCLICK 2 //触摸屏双击 #define TCHSCR_ACTION_DOWN 3 //触摸屏按下 #define TCHSCR_ACTION_UP 4 //触摸屏抬起 #define TCHSCR_ACTION_MOVE 5 //触摸屏移动

#define TCHSCR_IsPenNotDown()(rPDATG&ADS7843_PIN_PEN)(ADS7843_CTRL_START|ADS7843_GET_X|ADS7843_CTRL_12MODE |ADS7843_CTRL_DFR|ADS7843_CTRL_ENPWD)//采样x 轴电压值,数据为12 位,参考电压输入模式为差分模式,允许省电模式

#defineADS7843_CMD_Y(ADS7843_CTRL_START|ADS7843_GET_Y|ADS7843_CTRL_12MODE |ADS7843_CTRL_DFR|ADS7843_CTRL_ENPWD)int TchScr_Xmax=1840,TchScr_Xmin=176, TchScr_Ymax=195,TchScr_Ymin=1910;//触摸屏返回电压值范围 #defineADS7843_CMD_X 3.校准触摸屏坐标,进行坐标转换。

4.实现触屏取点并显示功能。

将触摸动作及触摸点坐标在超级终端上显示出来。5.实现两点间自动划线功能。6.实现触摸屏动态划线功能。

可以使用TchScr_GetScrXY()函数(第三个参数为0)来获得液晶屏的x、y 方向的电压

范围,分别点触摸屏有效面积的左上角和右下角,得到下列参数:

TchScr_Xmax=1840;TchScr_Xmin=176;TchScr_Ymax=195;TchScr_Ymin=1910;//此数值仅供参考,请以实际校对为准

5.6 实验过程与分析 1.在定义触屏响应功能的函数中对点击触屏进行响应函数的修改,在其中添加修改点颜色的函数,修改得到的触摸点的颜色,并显示在LCD上。

2.获取第一个点坐标并储存,获取第二个点坐标并储存,由编写的划线函数取得储存的两点间直线上所有点的坐标,并对其改变颜色,显示在LCD上,即完成划直线功能。

3.将划线函数应用到响应触屏移动消息的函数下,即可对连续获得的触摸坐标进行连续的画短直线,连接成曲线,完成动态划线功能。

5.7 实验结果总结

了解了触摸屏响应动作消息的函数的工作原理,通过修改实现了触摸屏响应不同动作进行画点、划线、动态划线的功能。验证触摸屏的灵敏度的实验。

5.8 心得体会

通过这次实验,我基本掌握了通过编程驱动触摸屏以及触摸屏响应时间,实现了触摸屏对不同动作消息的响应。同时也知晓了在触摸屏上的描点画线的实现,但是由于不知名的原因,描点画线的误差较大,位置偏差较大,同时触摸屏有时会不灵敏,出现时好时坏的现象,但是由于我们的辛勤钻研,最终克服了这个困难,实现了最后的触摸屏的实现。

6.实验六

6.1 实验名称

UCOS-Ⅱ在ARM微处理器上的裁剪

6.2 实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法。3.学习如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪。

4.通过对UCOS-Ⅱ配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对UCOS-Ⅱ的裁剪。

6.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

6.4 实验内容及要求

对UCOS-Ⅱ内核进行裁剪并移植到ARM7微处理器上。

6.5 实验设计与实验步骤 1.按照要求,载入STARTUP目录下文件,完成系统初始化、环境配置。2.载入UCOS-Ⅱ的全部源码,与处理器架构相关的文件位于arch目录下。3.在os_cpu.h中编写与处理器和编译器相关的代码。

4.编写os_cpu_c.c等6个与操作系统相关的函数。5.编写os_cpu.asm等4个与处理器相关的函数。

6.6 实验过程与分析

按照实验步骤进行,得到了需要的系统。

6.7 实验结果总结

按照要求进行了裁剪,得到了满足需要又紧凑的应用软件系统。

6.8 心得体会

通过本次实验,我了解了UCOS-Ⅱ内核的主要结构,掌握UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法,学会了如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪。

7.实验七

7.1 实验名称

UCOS-Ⅱ在ARM微处理器上的移植和编译

7.2 实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握将UCOS-Ⅱ内核移植到ARM7处理器上的基本方法。

7.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

7.4 实验内容及要求

1.将UCOS-Ⅱ内核进行移植到ARM7微处理器上。

2.编写两个简单任务,在超级终端上观察两个任务的切换。

7.5 实验设计与实验步骤

1.该实验的文件分为两类,其一是 STARTUP 目录下的系统初始化、配置等文件,其二是 UCOS-Ⅱ的全部源码,arch 目录下的 3 个文件是和处理器架构相关的。

2.设置 os_cpu.h 中与处理器和编译器相关的代码。

3.用 C 语言编写 6 个操作系统相关的函数(OS_CPU_C.C)。4.用汇编语言编写 4 个与处理器相关的函数(OS_CPU.ASM)。5.编写一个简单的多任务程序来测试一下移植是否成功。6.编译并下载移植后的 UCOS-Ⅱ。

7.6 实验过程与分析

1.按照实验步骤进行,将µC/OS-II 内核移植到了ARM7 微处理器上。2编写了两个简单任务,在超级终端上观察两个任务的切换。

7.7 实验结果总结

将µC/OS-II 内核顺利移植到了ARM7 微处理器上。

7.8 心得体会

通过本次实验,使我更加了解了µC/OS-II 内核的主要结构,掌握了ARM的C语言和汇编语言的编程方法,了解了ARM7处理器结构,掌握了将µC/OS-II 内核移植到ARM 7 处理器上的基本原理与嵌入式编程实现方法。

8.实验八

8.1 实验名称

综合实验

8.2 实验目的

对前七次实验进行总结,应用之前所学的知识,将前几次实验内容结合起来,完成键盘,LED,触摸屏,直流电机,步进电机各种功能的组合。实现一个较为全面的功能结构。

8.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

8.4 实验内容及要求

对前七次实验进行总结,应用之前所学的知识,完成自拟的嵌入式系统,要求综合前期基础实验的各种功能。

8.5 实验设计与实验步骤

1.添加并打开工程。2.进行LCD设计,在LCD显示屏输出文本。

3.进行LED及键盘设计,完成LED输出显示功能和键盘输入功能。4.进行电机控制设计,完成键盘控制电机转动功能。5.进行中断设计,完成定时中断功能。

6.进行触摸屏设计,完成触摸屏感应和划线功能。7.进行裁剪和移植功能设计和完成。

8.6 实验过程与分析

1.完成LCD显示功能,在LCD显示屏上输出文本:“Hello World!”。2.进入界面触屏控制选择功能,实现触屏选择功能。

3.自定义四种种功能,第一为电机控制,从键盘读取命令,并将功能编号显示在LED上,LED显示的是计数的数据,同时旋转按钮完成电机转速的控制选择。

4.第三种功能为划线,功能编号显示在LED高四位上,同时LCD屏幕清屏,为划线功能做准备,可以实现划线功能。

5.第四种功能为定时中断,当由键盘控制时,LED显示数值清零,实现了中断。6.实现裁剪与移植功能。

8.7 实验结果总结

完成了各种基本功能,并通过自拟的系统将各种功能整合起来,完成了一个小的嵌入式系统,对前七次的功能有了更深入的了解。通过LED的计数,当在计数值在前30秒之内,由键盘控制LED的数值及显示,按键盘上的某一个按键,实现对LED上的数值清零,后30秒由触摸屏控制清零,并且在前30秒之内,旋转按钮,实现对直流电机的运转,并且到步进电机的转换。

8.8 心得体会

通过这次实验,我更加深刻地掌握了前几次实验中的基本功能的实现方法,并且把几种功能联合在一起,实现一些功能,把LED 显示屏,LCD触摸屏,键盘,直流电机,步进电机等等设备联合在一起,对该实验有一定的帮助与提高,而我和我的队友也对嵌入式系统有了更深入的了解,在此期间,也学习了关于ARM处理器的开发与实践,了解了关于手机的嵌入式设备的产生过程,我也深深的对此充满了兴趣,对未来的嵌入式课程设计奠定了深厚的基础,可是令我遗憾的是,我和队员的水平所限,没有完成中断优先级的控制。本来想完成更多的功能,可是最后由于时间紧迫,也有一些其他的事情来分神分心,所以就只能完成这些,但是在未来的几周内,嵌入式课程设计也给了我们很大的空间去做未完成的事情。我相信我们会做的更加完美,功能更强大,用于未来的生活中去实践。

第五篇:北华大学嵌入式系统实习报告

北华大学

嵌入式系统实习报告

姓名:XXX 班级:测控XXXX 学号:XXXXXXXXX 院系:电气信息工程学院 指导教师:武海巍

目录

一、嵌入式系统开发与应用概述...................................................................................................3

二、实习设备...................................................................................................................................3

三、实习目的...................................................................................................................................3

四、实习要求...................................................................................................................................4

五、实习过程...................................................................................................................................4

六、实习体会.................................................................................................................................11

七、参考文献.................................................................................................................................12

一、嵌入式系统开发与应用概述

在今日,嵌入式ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。

嵌入式微处理器技术的基础是通用计算机技术。现在许多嵌入式处理器也是从早期的PC 机的应用发展演化过来的。在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。

二、实习设备

硬件:EmbestEduKit-IV实验平台、ULINK2仿真器套件、PC机 软件:μVision IDE for ARM集成开发环境、Windows 98/2000/NT/XP

三、实习目的

1.初步掌握液晶屏的使用;掌握S3C2410X处理器的LCD控制器的使用; 掌握通过任务调用的方法把液晶显示函数添加到uC/OS-II中; 通过实验掌握液晶显示文本及图形的方法与程序设计。

2.掌握有关音频处理的基础知识;通过实验了解IIS音频接口工作理。3.了解μC/OS-II移植条件和内核基本结构;

掌握将μC/OS-II内核移植到ARM9处理器上的方法和步骤。

四、实习要求

通过对μC/OS-II移植实验、μC/OS-II LCD显示实验、IIS音频实验的学习,逐步将各部分内容合并,最终得出实习结果。

实习要求在液晶显示屏上循环显示学生的信息。学生信息包括显示每个人的照片、姓名、系别、学号及声音。能力允许的情况下要求能够用通过键盘选择,显示相应学生的信息。

移植μC/OS-II内核到ARM处理器S3C2410,在IDE中观察其运行状况编写S3C2410X处理器的串口通信程序;监视串行口UART1动作;将从UART1接收到的字符串回送显示。将从UART1接收到的字符串回送显示。

五、实习过程

1.实习准备

实习任务下达之后,首先是对各个单独的功能程序的分析和初步了解。在初步分析后,小组决定使用3.7_uCOS_all_test实验程序作为整个实验任务的主题框架,并逐步将其他的功能函数融合进来。

在确定了整体的方向后,下一步便是对学生信息的采集,主要是图像和声音。通过手机和PC机顺利的完成了信息采集。但采集来的信息并不能直接使用,需将其转换成相应的机器能够识别的数字信息。在老师提供的软件和同学提供的帮助下,实习所需的信息整体已准备完毕。2.功能函数植入

因为使用了3.7_uCOS_all_test实验程序,所以在实现图片及学生信息显示时并未遇到太多问题。

主要的难点就在声音的实现程序7.3_IIS_Test的植入上。首先需将其最主要的文件iis_test.c文件加入工程中,其次就是各种头文件。但因为其本身带来的文件与工程中已有文件重名,故而一些文件添加不了,导致函数无法构建。之

后只得将一些语句单独粘贴到对应的文件中,这个过程非常繁复和枯燥,且中间不停的出现各种变量未定义的情况。所幸的是后来都意义解决了,也最终能够在软件中构建成功了。3.函数分析 主程序部分:

int main(){

sys_init();

//

Initial

s3c2410's Clock,Interrupt,Port and UART // iis_test();// iis_play_wave(int nTimes,UINT8T *pWavFile, intnSoundLen);while(1){

} } 图片图片更新部分: 全屏刷新:

void BitmapViewTft16Bit_800480(UINT8T *pBuffer){ UINT32T i, j;UINT32T *pView =(UINT32T*)frameBuffer16BitTft800480;color_lcd_test();

for(i = 0;i< LCD_YSIZE_TFT_800480;i++){ for(j = 0;j < LCD_XSIZE_TFT_800480/2;j++){ pView[j] =((*(pBuffer+1))<< 24)+((*(pBuffer))<< 16)+ pBuffer += 4 } pView+=LCD_XSIZE_TFT_800480;} } 小图片局部刷新:

void liuyuelin(UINT8T *pBuffer,UINT8T x,UINT8T y){ UINT32T i, j;UINT32T *pView =(UINT32T*)frameBuffer16BitTft800480 pView+=800*y+x;pBuffer+=6;for(i = 0;i< 320;i++){ for(j = 0;j < 240/2;j++){((*(pBuffer+3))<< 8)+(*(pBuffer+2));

pView[j] =((*(pBuffer+1))<< 24)+((*(pBuffer))<< 16)+((*(pBuffer+3))<< 8)+(*(pBuffer+2));pBuffer += 4;} pView+=LCD_XSIZE_TFT_800480;} } 这段程序是在原有程序的基础上改写的,重点改写的是Task2和Task3。将Task2中的图片显示换成采集到的学生信息,又通过调用Lcd_DspHz24()和Lcd_DspAscII8x16()函数来实现在液晶屏上显示汉字和数字。这两个函数的调用比较容易只需要给出列坐标、行坐标、颜色、内容即可在液晶屏上实现理想结果。lcd_clr_rect()函数主要实现的是将给定区域填充为一种颜色,当然本任务中将其填充为白色,则实现了清屏的功能。因为其刷新缓慢,故弃之不用。

通过使用EmbestEduKit-IV实验板的彩色液晶屏(800*480)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写任务函数在uC/OS-II系统中实现位图显示。在uC/OS-II中建立五个任务Tast1和Tast2,其中Tast1顺序熄灭四个LED,延迟一会在顺序点亮四个LED。Tast2在LCD屏幕上循环显示三幅图片,并打印一些文字信息和背景音乐。过使用EmbestEduKit-III实验板的256 色彩色液晶屏(320x240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现:画出多个矩形框;显示ASCII字符;显示汉字字符;显示彩色位图。

使用ULINK2仿真器连接EmbestEduKit-IV实验平台的主板JTAG接口;使用EmbestEduKit-IV实验平台附带的交叉串口线,连接实验平台主板上的COM2和PC机的串口(一般PC只有一个串口,如果有多个请自行选择,笔记本没有串口设备的可购买USB转串口适配器扩充);使用EmbestEduKit-IV实验平台

附带的电源适配器,连接实验平台主板上的电源接口。

2.串口接收设置

在PC机上运行windows自带的超级终端串口通信程序,或者使用实验平台附带光盘内设置好了的超级终端,设置超级终端:波特率115200、1位停止位、无校验位、无硬件流控制,或者使用其它串口通信程序。(注:超级终端串口的选择根据用户的PC串口硬件不同,请自行选择,如果PC机只有一个串口,一般是COM1)

3.打开实验例程

1)打开实验程序

2)运行μVision IDE for ARM软件

3)默认打开的工程在源码编辑窗口会显示实验例程的说明文件readme.txt,详细阅读并理解实验内容。

4)工程提供了两种运行方式:一是下载到SDRAM中调试运行,二是固化到Nor Flash中运行。用户可以在工具栏Select Target下拉框中选择在RAM中调试运行还是固化Flash中运行。下面实验将介绍下载到SDRAM中调试运行,所以我们在Select Target下拉框中选择UART_Test IN RAM。

5)接下来开始编译链接工程,在菜单栏“Projiet”选择“Build target”或者“Rebuild all target files”编译整个工程。

6编译完成后,在输出窗口可以看到编译提示信息,比如““.SDRAMUART_Test.axf”-0 Error(s), 1 Warning(s).”,如果显示“0 Error(s)”即表示编译成功。

7)拨动实验平台电源开关,给实验平台上电,单击菜单栏Debug->Start/Stop Debug Session项将编译出来的映像文件下载到SDRAM中,或者单击工具栏“”按钮来下载。

8)下载完成后,单击菜单栏Debug->Run项运行程序,或者单击工具栏“”

按钮来全速运行程序。用户也可以使用进行单步调试程序。

9)全速运行后,用户可以在超级终端看到程序运行的信息。

10)用户可以Stop程序运行,使用μVision IDE for ARM的一些调试窗口跟踪查看程序运行的信息。注:如果在第4)步用户选择在Flash中运行,则编译链接成功后,单击菜单栏Flash->Download项将程序固化到NorFlash中,从实验平台的主板拔出JTAG线,给实验平台重新上电,程序将自动运行。

部分程序图:

工程文件总揽

串口通信实验:

六、实习体会

通过一周的嵌入式实习,使我对嵌入式这门课有了更深的了解,也学到了很多,也提高了我的动手能力。也让我们对这学科有了更一步的了解,以前我们学习的只是课本知识,没有动手的机会,我喜欢编程软件,喜欢专研,喜欢在错误中寻找对的道路。

及时在实习中会涉及到一个很现实的问题,如我们怎么把LCD图片文件或者IIS声音文件转换成.C文件,这也是我们实习的中心问题,之后通过Image2Lcd V1.1软件和转换IIS声音文件的工具ProcBmp.exe来解决这个问题,我在转码过程中遇到很多问题,比如图片大小不合适,造成转码不成功,图片显示不对,声音文件过大,声音输出不成功等,经过一次次的失败,一次

次的尝试,在慢慢的摸索中一点点向目的靠近,最终在老师和同学们的帮助下与组员合作完成实习。

我很享受失败后成功的那份喜悦,我很珍惜。感谢这次实习,让我明白专业知识的同时选择了自己未来的道路。

七、参考文献

《ARM9嵌入式系统设计与开发应用》熊茂华、杨震伦编著清华大学出版社 《ARM9嵌入式系统设计与开发教程》于明编著电子工业出版社 《Linux嵌入式系统教程》马忠梅北京航空航天大学出版社

下载嵌入式系统实习报告word格式文档
下载嵌入式系统实习报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    嵌入式系统基础课程设计报告

    河南机电高等专科学校 嵌入式系统基础课程设计报告 系 部: 电子通信工程系 专 业: 班 级: 学生姓名: 学 号: 2012年 06月 嵌入式系统基础课程设计任务书 1.时间:2012年06月11日~201......

    嵌入式系统基础课程设计报告

    河南机电高等专科学校 《嵌入式系统基础》 课程设计报告 设计题目: 系 部: 电子通信工程系 班 级: 学 号: 学生姓名: 成 绩: 2012年 05月 《嵌入式系统基础》课程设计任务书 1.时......

    暑假嵌入式实习报告

    一、嵌入式的概述: 随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(3......

    嵌入式培训实习报告

    第一天:今天是我到杰普软件科技有限公司实习的第一天,也是我第一次接触到linux系统,。虽然我以前就知道这个系统,但以前从没见过,现在第一次用感觉还不错。 老师在上课的时候还介......

    嵌入式系统实验报告

    嵌入式系统实验报告 学号: 姓 名: 班 级:13电子信息工程指导老师: 苏州大学 电子信息学院 2016年12月 实验一:一个灯的闪烁 1、实验要求 实现PF6-10端口所连接的任意一个LED灯......

    嵌入式系统调查报告

    “嵌入式系统在企业中的应用”调查报告 工学院范裕婷内容提要:现今,全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居,是嵌入式系统在企业中应......

    嵌入式系统发展趋势

    未来嵌入式系统的发展趋势 在网络、通信、微电子发展的基础上,以及势不可挡的数字化信息产品的强大需求推动下,嵌入式技术具有广阔的发展创新空间。 (1)低功耗、高性能、高可......

    嵌入式系统实验

    南京信息工程大学 实验(实习)报告 实验(实习)名称电机转动控制及中断实验 实验(实习)日期2016.5 得分 指导教师 谢胜东学院 计算机与软件 专业 计算机科学与技术 年级2013......