电梯实验报告.doc:..一、 个人承担工作本次嵌入式实验是基于Linux系统下运用电机正反转、指示灯、键盘等模块模拟电梯的简单运行。在程序的编写中,个人主要参与设计编写按照规定要求的指示灯闪烁程序和键盘程序,以及对程序的进一步的优化工作比如延时程序的选择和程序的简化;同时在PC机上对程序调试运行,组织讨论并解决调试中出现的问题;利用课后时间浏览嵌入式相关知识。二、 遇到的问题及解决方案俗话说的好,“冰冻三尺非一口之寒,滴水石穿非一口之功”,整个电梯工程从程序编写、PC机端调试直到最后的完工经历了两个星期,本人也从对嵌入式的一无所知的小白,到现在掌握了嵌入式的基本知识。因此,整个阶段我们小组遇到了各种各样的问题,有的是基本的函数使用错误,还有的是程序框架的顺序的错误等等,但是我和队友不惧挑战,迎难而上。下面是我在工作中遇到的问题以及个人提出的解决方案,同时附上电梯完整的工程的顺序流程图(图一)。嵌入式基本知识欠由于之前很少接触Linux系统,所以一些嵌入式最基本的命令都不会。不过,通过自己查阅资料和阅读嵌入式方面的书籍对一些常见的嵌入式命令有了清楚的理解,并且也会使用了。由于以前使用比如VC++、VisualStudio等软件,都可以进行单步调试,并观察一些变量的值,而在这次实验,没有提供这样的手段,这就需要在编程时•,注意细节。2、指示灯的闪亮及转换本电梯实验一共用到了五个指示灯,根据实际的硬件设计按照顺序依次表示的相对应的1~5楼层数。根据之前设计的电梯的顺序功能模块的要求,当随机按下键盘数,随后根据相应的判断子程序启动电机的正反转,经过一段时间,电机停止,则蜂鸣声响起,对应楼层的指示灯需要立刻亮起,进行下面一些动作。若到达楼层后再按下其他键位,则最后显示的是新的指示灯亮,之前的必须指示灯熄灭,为达到该效果采用以下:(1)staticintstate=l;定义变量state(指的是电梯的当前楼层数),其中设置该变量为全局变量,为下面的步骤做准备。(2)DisplayTimer=newQTimer();connect(DisplayTimer,SIGNAL(timeout()),this,SLOT(LcdDisplay()));DisplayTimer->start(200);该程序的功能为LCD显示屏的不断刷新显示,为了能够正确的让指示灯与所到楼层数一一对应,采用LCD显示屏中的子程序函数,编写如下:voidMainWindow::LcdDisplay()(lcd->flush();lcd->clearBuffer();switch(state)(easel:led->display_letter(6,6,'1');system(necholz0,0>/sys/devices/platform/);break;case2:led->display_letter(6,6,'2');system(HechoO,1,0>/sys/devices/platform/);break;case3:led->display_letter(6,6
电梯实验报告 来自淘豆网m.daumloan.com转载请标明出处.