嵌入式课程设计.docx
《嵌入式课程设计.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
嵌入式课程设计
基于WindowsCE5.0的LED
数码管显示控件
2013年9月
1.摘要
随着芯片技术和电子产品智能化的飞速发展,嵌入式技术应用范围越来越广。
本文介绍的“LED数码管显示控件”就是一款基于嵌入式操作系统WindowsCE5.0的程序控件。
本控件是由MicrosofteMbeddedVisualC++4.0开发环境开发的一款MFC控件,相比于VisualS来说,EVC离操作系统内核更近,执行效率更高。
本控件实现了四位数码管驱动、多种方式同时显示、背景色可调等多种功能,并在IntelXScale硬件平台系列GX-PXA270EP实验板上成功运行。
关键词:
WindowsCE,嵌入式系统,EVC,MFC控件,数码管驱动
Abstract
Withthechiptechniqueandtheelectronicsproductintelligenceturnsofflysoonadevelopment,theembedded-techniqueapplicationismoreandmorewide.TheLEDNixielightwidgetofthistextintroductionisdesignedforWinCE5.0OS.It`saMFCwidgetdesignedbytheMicrosofteMbeddedVisualC++4.0,whichisnearertotheoperatingsystemkernelandmuchmoreeffectivethanVisualS.ThisMFCwidgetRealizemanyfunctionssuchasthefourdigitaltubedrivers,displayinginmanywaysatthesametime,adjustablethebackgroundcolorandsoon,AndalsosuccessfullyoperateonthePXA270EPGX-experimentalboardoftheIntelXScalehardwareplatformseries.
KeyWords:
WindowsCE,EmbeddedSystem,EVC,MFCwidget,DigitalTubeDriver
2.前言
WindowsCE在嵌入式系统设计的应用中非常重要,简洁规范的开发环境,稳定灵活的操作系统,无一不让使用者满意,此次设计,我们基于WindowsCE进行了嵌入式系统设计。
在LED数码管程序设计中,我们主要受到实验指导书上GPIO数码管驱动程序设计中定时器循环控制思想的启发,使用了数组循环交换数字的思想,实现了设计任务,即:
要求编写一个测试程序,实现PXA270-EP目标板上的LED数码管循环显示数字2,4,6,8。
目录
1.摘要2
2.前言3
3.课程目的5
4.设计任务书5
4.1编程语言:
EVC5
4.2备选课题5
5.正文6
5.1设计功能及特色6
5.2使用手册6
5.3程序设计7
5.3.1程序流程图7
5.3.2各触发函数的程序流程及代码:
8
5.4控件运行及分析10
6.个人收获12
7.参考文献13
3.课程目的
1、对嵌入式程序开发在课堂教学的基础上有进一步的认识;
2、了解WindowsCE下编程,掌握EVC的使用;
3、熟悉PXA270-EP实验设备。
4.设计任务书
4.1编程语言:
EVC
在WindowsCE.net下可以运行用VisualS开发的.net平台上运行的软件,但这样的软件是最上层的软件,离操作系统内核太远了。
不但执行效率相对较低,而且还要把.net框架加到内核中。
所以在大多数情况下,EVC仍然是第一选择。
此次课设也是为了增强同学们在CE下EVC编程能力。
4.2备选课题
在能达到所有要求基础上,并且实现其它难度较高的技术,文档中加以
详细阐述将酌情给与1-10分的附加分。
1、LED数码管驱动程序
2、GPIO数码管驱动程序
3、WindowsCE计算器
4、文本编辑框
5、滑动条控制显示红、绿、蓝三色的程序
6、LED数字显示控件
5.正文
5.1设计功能及特色
图5.1控件主界面
控件界面如图5.1所示,主要实现了以下主要功能:
1.实验箱上的数码管可循环显示2468,且用户可控制其向左或向右循环;
2.实验箱上的数码管循环显示的时间间隔可由用户任意设定;
5.2使用手册
1.按照说明,四位数码管驱动控制模块,任意输入循环间隔时间,点击确定,可使数码管按预设的时间间隔循环显示(默认循环显示间隔时间为1000ms);
2.点击“向左循环”,PXA270EP实验箱七段数码管数字显示模块会将输入的四位整数按照预设的循环间隔时间向左循环移动并显示出来。
3.点击“向右循环”,PXA270EP实验箱七段数码管数字显示模块会将输入的四位整数按照预设的循环间隔时间向右循环移动并显示出来。
5.3程序设计
5.3.1程序流程图
本模块程序总体流程图如下:
图5.3.1系统总程序流程图
5.3.2各触发函数的程序流程及代码:
1.设置时间间隔函数
voidCHqwmDlg:
:
OnButton3()
{
BOOLb;
Distime=GetDlgItemInt(IDC_EDIT_NUM,&b,FALSE);
图5.3.2-1时间间隔函数流程图
if(b)
SetTimer(1,Distime,NULL);设置定时时间
}
2.“向左循环”触发函数
voidCHqwmDlg:
:
OnButton1()
{
BOOLb;
memset(data,0,4);
if(b)
{n=sprintf(str,"%d",2468);
n=n>4?
4:
n;
}
图5.3.2-2向左循环函数流程图
DISPALY_DIR=0;设置标识,向左循环
}
3.“向右循环”触发函数
voidCHqwmDlg:
:
OnButton2()
{
BOOLb;
memset(data,0,4);
if(b)
{n=sprintf(str,"%d",2468);
n=n>4?
4:
n
}
DISPALY_DIR=1;设置标识,向右循环
}
图5.3.2-3向右循环函数流程图
4.“定时器”中断响应函数
voidCHqwmDlg:
:
OnTimer(UINTnIDEvent)
{
inti;
if(DISPALY_DIR==0)
{str[4]=str[0];
str[0]=str[1];
str[1]=str[2];
str[2]=str[3];
str[3]=str[4];向左循环一位
}
图5.3.2-4定时中断响应函数流程图
else
{str[4]=str[3];
str[3]=str[2];
str[2]=str[1];
str[1]=str[0];
str[0]=str[4];向右循环一位
}
for(i=0;i{data[i]=ledfont[str[i]-'0'];
}
WriteFile(m_hDev,data,4,&bytes,NULL);
CDialog:
:
OnTimer(nIDEvent);
}
5.4控件运行及分析
1.
本控件使用IntelXScale硬件平台系列GX-PXA270EP实验板运行实现,接好连线之后,下载至WINCE,其控件主界面如下图
图5.4-1界面图
2.点击“向左循环”之后,硬件平台数码管效果如下:
图5.4-3平台数码管显示图2
图5.4-2平台数码管显示图1
3.点击“向右循环”之后,硬件平台数码管效果如下:
图5.4-5平台数码管显示图4
图5.4-4平台数码管显示图3
此外,改变循环间隔时间也同样得到了正确实现,但是由于效果不便于记录,故未在报告中展示效果。
经过下载、运行和测试,本控件各功能均可正常实现,暂未发现程序漏洞。
6.个人收获
经过本次课程设计以及在设计之前的几个实验,我基本上达到了此次课程设计的预期的目的,即对嵌入式程序开发在课堂教学的基础上有了进一步的认识;了解WindowsCE下编程,初步掌握了EVC的使用;同时,也熟悉了PXA270-EP的实验设备。
本次课程设计,是完全建立在之前的嵌入式实验的基础之上。
通过老师的耐心指导,我们首先熟悉了怎么建立WinCE平台,定制增强型内核,定制SDK,建立宿主机与实验箱的连接,LED数码管驱动等等,这为基于WindowsCE5.0的LED数码管显示控件的课设打下了一个坚实的基础。
在课设过程中,也遇到了一些麻烦,比如,宿主机无法用网口与试验箱正常连接,经过多次尝试,始终无法解决问题,最后我们采用了USB的方式连接,也算是一个弥补。
经过小组成员的协作,我们顺利的完成了任务。
本次课设的程序基本由我编写,本来我对C++和EVC不甚了解,通过自己的看书、学习,我获得了很多编程方面的知识,编的程序可以很好地实现任务的要求。
但是,我认为仅仅完成任务中的要求实在过于简单,出于对自己更高的要求,我在程序中加了左循环、右循环和定时程序,看着程序顺利的运行,心里非常高兴。
总之,这次的课程设计,不仅仅圆满的完成了任务,更重要的是,不管是在知识,还是技能,还是团队协作方面,我都有了明显的进步。
7.参考文献
[1]王玲,孙昌国,毛一心.嵌入式控制系统实验指导书,北京科技大学信息工程学院自动化系,2008.2.
[2]唐克.MFC程序设计:
UsingVisualC++6.0,北京:
北京希望电子出版社,2002.
[3]曾凡锋,苗雨.MFC编程技巧与范例详解,北京:
清华大学出版社,2008.10.
[4]王金莉,苏宛新.基于PXA270的嵌入式系统设计[J].微计算机信息,2008,24(11):
1112
[5]陈章龙,等.嵌入式技术与系统IntelXScale结构与开发[M].北京:
北京航空航天大学出版社,2004.