- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《嵌入式微处理器结构与应用》 课程设计报告
题目:电子菜单
一、课程设计的目的和主要内容:
目的:《嵌入式微处理器结构与应用》课程设计是软件工程本科专业的专业实践课程,结合在课程中学到的嵌入式系统的开发和调试方法,对学生在嵌入式系统设计和应用开发的基本技能方面进行综合的检验和实践。是学生在学习完《嵌入式微处理器结构与应用》课程之后的一个重要的实践环节。要求学生在教师的指导下,综合运用已学过的嵌入式微处理器相关的各种知识和技能,以小组协作的方式完成一项较为完整、并具有一定难度的课程设计任务。使学生总结本课程的主要知识点,提高学生的实际动手能力,为学生今后进一步学习和从事嵌入式系统相关的研究与开发打下坚实的基础。
内容:基于实时操作系统,学会复杂应用程序的基本开发方法,结合课程实验学到的知识,编写一个能综合应用液晶屏、触摸屏、键盘并结合简单文件系统API函数的界面应用。要求具备基本的三个界面:初始界面、点菜界面、结束界面,基本实现点菜的全过程。
二、基本的设计思路或程序流程图描述:
基于MVC的设计模式,将程序分成三大独立的部分:模型(逻辑)部分、视图部分、控制部分。这三大部分的关系如下:
程序总流程图:
控制部分(键盘控制流程图):
键盘控制思想:
首先在主函数中对键盘进行初始化,然后创建主任务,在主任务中等待系统消息(pMsg=WaitMessage(0);),当捕获到键盘消息后,对键盘的消息进行判断(switch(pMsg-LParam)):
1.如果是‘1’到‘9’字符,表示从键盘输入一位数字,直接进行响应就行了,然后删除消息,释放资源(DeletMessage()),返回消息循环,等待系统消息。
2.如果是'+'字符,表示要从键盘输入两位数字,具体实现是:首先设三个全局变量KeyStatue[2]用于标示键盘按键的状态, KeyName2[3]用于存放输入的两位按键的字符, KeyName[16]存放从10到25的16个字符串;通过把KeyStatue[2]的初值赋为0,来控制从键盘输入两个字符,然后再通过字符串比较函数strcmp()来查找KeyName2[3]中输入的是KeyName[16]中的哪个字符串,然后响应相应的事件,最后删除消息,释放资源(DeletMessage()),返回消息循环,等待系统消息。
三、交叉开发环境的建立和主要的调试步骤及其遇到的主要问题和解决的方法:
交叉开发环境的建立,在宿主机上运行ADS开发软件来编译源程序,在同过串口将目标程序下载到ARM2410-S开发板上运行。主要通过JTAG来调试程序,用ADS的调试工具来查看寄存器和变量的变化。
遇到的问题有:
1.触摸屏没有反应,程序并没有错误。解决方法:加载一个包含对触摸屏初始化的库文件。
2.一些图片显示不正常,可能是驱动的问题。解决方法:改变图片的尺寸就可以正常显示了。
3.加载较大的数据到内存出现内存错误。解决方法:采用动态内存分配。
四、主要的设计结果和设计的总结,和需要进一步完善的问题:
设计结果:
程序在ARM2410-S开发板上运行
启动画面:
点菜界面:
点菜结束界面:
设计总结:
通过本次电子菜单课程设计的综合试验,进一步掌握了嵌入式应用程序开发的基本流程,同时了解了嵌入式系统及其一些编程特点,特别是uC/OS-II系统。uC/OS-II的应用程序是“事件驱动的编程模型”。一个任务首先等待一个事件的发生,事件可以是系统中断发出的,也可以是其它任务发出的,又可以是任务自身等待的时间片。当一个事件发生了,任务再作相应处理,处理结束后又开始等待下一个事件的发生。如此周而复始的任务处理模型就是事件驱动的编程模型uC/OS-II是一个简洁、易用的基于优先级的嵌入式抢占式多任务实时内核。uC/OS-II系统只需简单的几个系统调用,就可以把键盘上输入的消息迅速响应,只需要在相应的响应条件下编写所需要的函数即可完成相应函数的键盘响应。
通过这次课程设计,也了解到嵌入式开发的应用广泛性,实用性,同时也提高了对嵌入式开发的兴趣。
进一步完善方案:
1.使用多任务,可以加上动态图片,可以使界面更加美观。
2.一般情况下,菜的种类较多,需要定义多个点菜界面,同时要协调好各个界面之间的关系以及正确响应键盘和触摸屏。
控制部分:
消息循环();
触摸屏响应();
键盘响应();
……
逻辑部分:
选择菜();
取消菜();
获取总价();
……
视图部分:
标志菜单条目();
取消标志条目();
滚动菜单();
……
更新逻辑
更新视图
关闭线程
打开线程
点菜结束按钮
关闭按钮
翻页按钮
界面控件
菜单条目
拉动
单击
初始化程序,
打开启动画面线程
显示启动动画
加载菜单数据
关闭启动画面线程,
显示点菜画面
等待系统
文档评论(0)