嵌入式课程设计.docx

上传人:b****5 文档编号:6914112 上传时间:2023-01-12 格式:DOCX 页数:22 大小:3.49MB
下载 相关 举报
嵌入式课程设计.docx_第1页
第1页 / 共22页
嵌入式课程设计.docx_第2页
第2页 / 共22页
嵌入式课程设计.docx_第3页
第3页 / 共22页
嵌入式课程设计.docx_第4页
第4页 / 共22页
嵌入式课程设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

嵌入式课程设计.docx

《嵌入式课程设计.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计.docx(22页珍藏版)》请在冰豆网上搜索。

嵌入式课程设计.docx

嵌入式课程设计

 

北京科技大学

嵌入式课程设计

 

班级:

姓名:

学号:

分工:

指导教师:

2014年7月

摘要

本次课程设计利用GX-PXA270EP(ExperimentPlatform)平台,通过嵌入式控制系统课程的学习和实验,了解嵌入式系统的开发方法和流程。

利用PlatformBuilder定制平台并编译,并能针对INTELXSCALEPXA270硬件平台、应用需求优化WinCE操作系统。

采用编程软件eMbeddedVisualC++,独立编写可在INTELXSCALEPXA270硬件嵌入式设备上运行的应用程序。

最终实现WindowsCE计算器和滑动条颜色控制的设计任务,能够实现加、减、乘、除和小数计算以及报错,并且利用对红色、绿色、蓝色三色的控制实现屏幕颜色的控制。

关键词:

嵌入式系统,计算器,滑动条,WindowsCE

 

Abstract

ThedesignusesGX-PXA270EP(ExperimentPlatform)platform,embeddedcontrolsystemscoursesofstudyandexperimentation,tounderstandthedevelopmentofmethodsandprocessesembeddedsystems.UsePlatformBuildertocustomizetheplatformandcompiler,andcanfocusonINTELXSCALEPXA270hardwareplatform,theapplicationneedstooptimizeWinCEoperatingsystem.UsingprogrammingsoftwareeMbeddedVisualC++,canberunindependentlywrittenonINTELXSCALEPXA270hardwareembeddeddeviceapplications.UltimatelydesigntasksWindowsCEcalculatorandcolorcontrolslidercanadd,subtract,multiply,divideandcalculatedecimalsanderror,andtheuseofred,green,bluethree-colorscreencolorcontroltoachievecontrol.

Keywords:

Embeddedsystems,calculator,slider,WindowsCE

目录

一、实验报告4

1、实验一:

建立并编译WinCE平台4

2、实验二:

定制增强型内核5

3、实验三:

定制SDK并建立EVC下的开发环境6

4、实验五:

建立宿主机与实验箱的连接6

5、实验六:

USBDevice建立宿主机与试验箱之间的连接8

6、实验七:

在试验箱的WinCE平台上的HelloWorld实验9

7、实验八:

数码管驱动10

8、实验九:

GPIOLed数码管程序11

二、课程设计报告13

1、课程目的13

2、设计题目与功能13

2.1计算器13

2.2滑动条颜色控制14

3、开发工具14

3.1PlatformBuilder5.014

3.2EmbeddedVisualC++14

4、设计过程15

4.1计算器设计15

4.1.1设计思路15

4.1.2控件15

4.1.3代码分析16

4.1.4数码管显示20

4.2滑动条设计21

4.2.1设计思路21

4.2.3代码分析21

4.3测试与调试23

4.3.1计算器测试23

4.3.2滑动条测试24

5、总结与体会25

一、实验报告

实验概述:

GX-PXA270EP(ExperimentPlatform)是一款基于处理器,针对高校嵌入式系统教学和实验科研的平台。

通过嵌入式控制系统课程的学习结合试验,了解嵌入式系统的开发方法和流程,熟悉INTELXSCALEPXA270硬件平台及其应用处理机的使用方法,熟悉WindowsCE嵌入式系统的基本原理、概念。

利用PlatformBuilder定制平台并编译,并能针对INTELXSCALEPXA270硬件平台、应用需求自行控制、优化WinCE操作系统,并采用编程软件eMbeddedVisualC++,独立编写可INTELXSCALEPXA270硬件嵌入式设备上运行的应用程序。

图1

1、实验一:

建立并编译WinCE平台

1.1实验目的:

掌握PB下WinCE平台定制

1.2实验内容:

开始利用PlatformBuilder定制平台并编译。

1.3实验流程:

1、安装好PlatformBuilder平台以后,为平台安装PXA270配套的IntelBSP;2、对于嵌入式操作系统,不同的硬件设备,它的操作系统镜像是不同的,但是基本的操作过程及环境是相同的,所以定制一个系统镜像文件NK.bin。

1.4实验结果:

构建映像,如果构建成功,那么会得到操作系统运行时映像,默认的名字是NK.bin。

1.5实验小结:

构建平台的运行时映像,如下图所示。

选择PlatformBuilder主界面中的BuildOS菜单,确保CopyFiletoReleaseDirectoryAfterBuild和MakeRun-timeImageAfterBuild两项被选中,然后选择BuildOS|Sysgn开始构建。

图2

2、实验二:

定制增强型内核

2.1实验目的:

1.熟悉PlatformBuilder集成开发环境以及相关配置。

2.利用PlatfoermBuildr定制一个增强型内核。

2.2实验内容:

定制一个Word,图片浏览等并能从设备接口进行宿主机与目标板通信的内核。

2.3实验流程:

1、在实验3.1的基础上,打开已经创建好的PlatformBuilder(PB),在PB右边的Catalog中添加其他组件;2、对工程进行配置,并编译,当所有设置完成,开始编译定制好的增强型平台。

编译的结果,生成了Eboot和NK.bin映象文件;3、完成之后,在终端进行相应配置;4、启动烧录有Eboot的实验箱,在超级终端按空格键,进入Eboot设置选项;5、在超级终端中按6,将ProgramRAMimageintoFLASH项由ENABLED切换到DISABLED;6、当完成Eboot的配置后,键入D,准备下载内核的映象文件NK.bin到实验箱上。

7、映像文件的下载。

2.4实验结果:

试验一和实验二结果见文件夹中NK.bin文件。

2.5实验小结:

当找到相应在PB右边的Catalog中添加其他组件困难时,可采用找到相应的组后单击右键,利用“find“找到所需的组件。

3、实验三:

定制SDK并建立EVC下的开发环境

3.1实验目的:

熟悉SDK,配置EVC下的开发环境。

3.2实验内容:

生成SDK并安装,配置EmbeddedVisualC++的开发环境。

3.3实验流程:

1、利用PlatformBuilder平台建立向导,建立平台;2、编译,下载和运行平台;3、使用PlatformBuilder定制SDK(软件开发工具包);4、安装此SDK后,即可实现在此模拟器上运行开发好的应用程序。

3.4实验结果:

实验三结果见文件夹Emulator。

3.5实验小结:

找到SDK保存地址,保存,在在安装SDK后,即可实现在此模拟器上运行开发好的应用程序。

4、实验五:

建立宿主机与实验箱的连接

4.1实验目的:

学习掌握利用SMSC91C111网口建立宿主机与试验箱的连接。

4.2实验内容:

利用利用SMSC91C111网口建立宿主机与试验箱的连接。

4.3实验流程:

(1)在弹出的对话框“DeviceProperties”中如下图所示设置,然后单击“Transport”下拉框右边的“Configue…”按钮。

图3

(2)在弹出的对话框“TCP/IPTransportConfiguration”中可以设置超时值、端口号、主机IP,点击Test便可出现模拟器环境

图4

4.4实验结果:

图1显示为为利用网口建立宿主机与试验箱连接上传和下载图。

图5

4.5实验小结:

测试连接成功以后,如下图所示,根据需要依次选择我们所需的SDK、CPU和设备,才能保证正常运行模拟器。

图6

5、实验六:

USBDevice建立宿主机与试验箱之间的连接

5.1实验目的:

学习掌握利用USBDevice网口建立宿主机与试验箱的连接。

5.2实验内容:

学习掌握利用USBDevice网口建立宿主机与试验箱的连接。

5.3实验流程:

1、ActiveSync安装;2、用USB延长线连接试验箱和PC,当PC发现新设备时安装附带的驱动,安装完成以后,打开MicrosoftActiveSync窗口进行连接;3、在上图我的电脑中双击“我的设备”将打开WINCE同步目录,可以拷贝文件到该目录或将文件从该目录拷贝到PC机。

5.4实验结果:

下图显示为通过USBDevice建立宿主机和试验箱连接后,WinCE显示从电脑上下载的歌曲。

图7

图8WinCE显示下载的歌曲

6、实验七:

在试验箱的WinCE平台上的HelloWorld实验

6.1实验目的:

1.熟悉EVC集成开发环境以及相关配置

2.利用EVc编写WinCE的应用程序

6.2实验流程:

(1)在机器已安装实验箱所附带的SDK的基础上,启动MSeMbeddedVisualC++4.0,利用EVC的工程建立向导,建立一个新的工程;

(2)建立宿主机与试验箱之间的连接;(3)测试连接成功以后,依次选择SDK、CPU和设备;(4)在EVC环境下点击RUN即可在液晶显示屏上看到程序运行的结果,而在“我的电脑”里也可以看到下载到系统里的.exe文件,双击该文件,亦可运行程序。

6.3实验结果:

下图为利用EVC便携,编译并运行HelloWorld程序在WinCE上的显示。

图9WinCE显示HelloWorld

7、实验八:

数码管驱动

7.1实验目的:

1.熟悉EVC集成开发环境以及相关配置

2.利用EVc编写一个针对实际硬件的驱动程序

7.2实验内容:

编写一个针对LED的驱动程序。

7.3实验流程:

(1)在3.2节定制好的平台基础上添加LED驱动,在ThirdParty中找到我们安装的BSP中的驱动,将其加入内核,并编译;

(2)启动MSeMbeddedVisualC++4.0,利用EVC的工程建立向导,建立一个新的工程;(3)在ID为IDD_LED_DIALOG对话框上,编辑如下控件,包括两个:

编辑控件,其ID为IDC_EDIT_NUM,Caption为“显示”的button控件,其ID为IDC_BUTTON_SET。

(4)编写程序;(5)Build->RebuildAll,生成可执行文件:

(6)建立连接,传输,运行;

7.4实验结果:

图10利用EVC编写LED数码管驱动的程序,并在WinCE上显示。

图10WinCE上显示“4555”

7.5实验小结:

在测试时,中文出现乱码。

在ResourceView里面的IDD_LED_DIALOG右键选择properties,将弹出如下图所示对话框,Language中选择Chinese(P.R.C)。

只有这样,在以后的对话框中写入中文才不会出现乱码的情况。

8、实验九:

GPIOLed数码管程序

8.1实验目的:

1.熟悉EmbeddedVisualC++集成开发环境以及相关配置。

2.利用EmbeddedVisualC++编写一个GPIO的LED应用程序。

8.2实验内容:

参照本实验指导书的步骤,编写一个通过GPIO控制LED的应用程序。

8.3实验流程:

(1)在3.2节定制好的平台基础上添加GPIOLED驱动,在ThirdParty中找到我们安装的BSP中的GPIOLED的驱动,将其加入内核,并编译;

(2)在机器已安装实验箱所附带的SDK的基础上,启动MSeMbeddedVisualC++4.0,利用EVC的工程建立向导,建立一个新的工程;(3)在D_GPIOLED_DIALOG对话框上,编辑如下控件,包括三个:

Caption为“亮”的button控件,其ID为IDC_BUTTON_ON;Caption为“灭”的button控件,其ID为IDC_BUTTON_OFF;Caption为“闪烁”的button控件,其ID为IDC_BUTTON_FLASH。

(5)Build->RebuildAll,生成可执行文件:

(6)建立连接,传输,运行。

8.4实验结果:

图11利用EVC编写GPIOLed数码管的程序,并在WinCE上显示。

图11WinCE上显示“LED数码管”

8.5实验小结:

在测试时,中文出现乱码。

在ResourceView里面的IDD_LED_DIALOG右键选择properties,将弹出如下图所示对话框,Language中选择Chinese(P.R.C)。

只有这样,在以后的对话框中写入中文才不会出现乱码的情况。

二、课程设计报告

1课程目的

通过嵌入式控制系统课程的学习并结合本次实验,了解嵌入式系统的开发方法和流程,熟悉IntelXScale硬件平台及其应用处理机的使用方法,熟悉WindowsCE嵌入式系统的基本原理、概念。

并能针对IntelXScale硬件平台、应用需求自行定制、优化WinCE操作系统,并独立编写可在IntelXScale嵌入式设备上运行的应用程序。

1、对嵌入式程序开发在课堂教学的基础上有进一步的认识。

2、了解WindowsCE下编程,掌握EVC的使用。

3、熟悉PXA270-EP实验设备。

2设计题目与功能

2.1计算器

在本次嵌入式实训,我们做的题目是用嵌入式知识做个模拟计算器,主要功能是模拟简单计算器的加减乘除功能。

要求系统启动后,先清屏,再在显示屏上自动显示个简易计算器的界面,然后输入数字即可进行简易的整数四则运算。

首先构建嵌入式计算器的整体概念,了解操作系统的引导程序以及装载原理,了解键盘扫描的原理以及理解运算的相应处理过程,多次调试驱动程序和应用程序,最终完成计算器的设计。

设计WinCE计算器主要是四个个功能:

基本运算,清零,错误识别,数码管显示。

1.基本运算:

主要实现加减乘除运算,通过调用EVC的函数实现相关功能。

2.清零:

初始化程序,使各个变量为初始值。

3.错误识别:

输入的值是字符型,通过Wcstod函数转换为双精度浮点型,对错误的输入进行纠正。

4.LED数码管显示:

增强内核,添加数码显示驱动,并在程序里添加相关显示程序。

2.2滑动条颜色控制

在本次嵌入式实训,我们在实现计算器的同时,加入了滑动条控制显示红、绿、蓝三色的功能,功能如下:

1)滑动条是一种交互式的、直观的控件。

它包括一个沿着控件长度滑动的滑

块框和用于显示值的范围的可选刻度标志。

2)在对话框中放置了三个滑动条控件,分别显示红色、绿色、蓝色

3开发工具

3.1PlatformBuilder5.0

PlatformBuilder是微软公司提供给WindowsCE开发人员进行基于WindowsCE平台下嵌入式操作系统定制的集成开发环境。

它提供了所有进行设计、创建、编译、测试和调试

WindowsCE操作系统平台的工具。

它运行在桌面Windows下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。

同时,开发人员还可以利用PlatformBuilder来进行驱动程序开发和应用程序项目的开发等等。

PlatformBuilder的强大功能,已使其成为WindowsCE平台下嵌入式操作系统开发和定制的必备工具。

其SDK输出模板可以将特定系统的SDK导出,这可以是应用程序开发人员使用EVC就可以为特定的系统开发软件。

EVC调试的是应用程序软件,而PlatformBuilder往往要编译整个内核再调试,两者的开发效率是不同的。

3.2EmbeddedVisualC++

EmbeddedVisualc++4.0是微软公司提供的开发嵌入式应用软件的平台,它是VisualC++的子集,EVC和Windows下的VC在界面、语法和开发流程基本一样,EVC的编程也是WINN32的编程,支持WIN API中的大部分函数,熟悉VC的人很快就会使用EVC进行开发。

EVC和PlatformBuilder的不同之处在于 PlatformBuilder针对的是操作系统的定制,编译目标是整个的内核,虽然 PlatformBuilder也能开发应用程序,但是这些应用程序是作为整个系统的一部分而存在,编译时还是以一个操作系统为单位;EVC针对的是应用软件开发,特定操作系统的SDK就已经为它提供了系统的运行环境,因此它编译的单位是一个应用程序。

因此,针对于应用程序的开发、编译和测试,在EVC中完成往往是高效合理的。

4设计过程

4.1计算器设计

4.1.1设计思路

首先,新建一个窗体,并在其中放置相应的控件,之后根据具体情况,编写相应代码。

对于每个按钮的的代码段中,分别添加事件触发的相应代码。

分别设四个编辑框,第一个编辑框作为第一个操作数的输入框,第二个编辑框作为操作符的输入框,第三个编辑框则作为第二个操作数的输入框,第四个编辑框则作为计算结果显示框。

同时设立0-9数字的输入键,用来输入相应数字,设立小数计算功能。

四则运算时直接采用计算表达式。

所以,优先级和运算规则皆宜考虑在内。

在进行除法运算时,若遇到除数为0,则运用条件语句执行,并在输出显示屏上输出“E”。

当无运算符输入时,出现错误,显示“Pleasechooseoperator”的提示。

考虑到计算器的操作简便性,所以加入清屏键。

加入数码管驱动程序,实现数码管显示计算结果的功能。

4.1.2控件

计算器的每一个控件的名称如下:

名称

Name

名称

Name

0~9

OnButton0~9

.

OnButtonPoint

+

OnButtonAdd

CLC

OnButtonClear

OnButtonSub

=

OnButtonEqu

×

OnButtonMul

edit

OnChangeEdit1

OnButtonDev

表1

4.1.3代码分析

(1)数字键0~9(以1为例):

voidCCalculatorDlg:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);//刷新数据

CStringstr;//建立CString类的对象

if(select_flag==1)//选中第一个文本框EDIT1

{

GetDlgItem(IDC_EDIT1)->GetWindowText(str);

//GetDlgItem返回窗口中指定参数ID的子元素的句柄,可以通过返回的句柄对窗口内的子元素进行操作

//GetWindowText该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。

GetDlgItem(IDC_EDIT1)->SetWindowText(str+_T("1"));//将按键值输出到对话框

}

elseif(select_flag==2)//第二个文本框EDIT2

{

GetDlgItem(IDC_EDIT2)->GetWindowText(str);

GetDlgItem(IDC_EDIT2)->SetWindowText(str+_T("1"));

}

UpdateData(FALSE);//刷新失败

}

(2)四则运算键(以加法为例):

voidCCalculatorDlg:

:

OnBUTTONAdd()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

GetDlgItem(IDC_EDIT4)->SetWindowText(_T("+"));//把“+”输出到EDIT4

sign=1;//"+"标志

UpdateData(FALSE);

}

(3)小数点键:

voidCCalculatorDlg:

:

OnBUTTONPoint()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

CStringstr;

if(select_flag==1)

{

GetDlgItem(IDC_EDIT1)->GetWindowText(str);

GetDlgItem(IDC_EDIT1)->SetWindowText(str+_T("."));//将“.”输出到EDIT1

}

elseif(select_flag==2)

{

GetDlgItem(IDC_EDIT2)->GetWindowText(str);

GetDlgItem(IDC_EDIT2)->SetWindowText(str+_T("."));//将“.”输出到EDIT2

}

UpdateData(FALSE);

}

(4)清零CLC:

voidCCalculatorDlg:

:

OnBUTTONClear()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

GetDlgItem(IDC_EDIT1)->SetWindowText(_T(""));//EDIT1清零

GetDlgItem(IDC_EDIT2)->SetWindowText(_T(""));//EDIT2清零

GetDlgItem(IDC_EDIT3)->SetWindowText(_T(""));//EDIT3清零

GetDlgItem(IDC_EDIT4)->SetWindowText(_T(""));//EDIT4清零

UpdateData(FALSE);

}

(5)等号“=”:

voidCCalculatorDlg:

:

OnBUTTONEqu()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UINTfinal;//定义一个32位无符号整数。

BYTEdata[4];//定义一个4位的数组

DWORDbytes;//bytes为双字

//B

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

当前位置:首页 > 工作范文

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

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