《嵌入式课程设计-电梯控制系统(共13页).doc》由会员分享,可在线阅读,更多相关《嵌入式课程设计-电梯控制系统(共13页).doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上软 件 学 院课程设计报告书课程名称 嵌入式系统 设计题目 模拟电梯控制系统 专业班级 学 号 姓 名 指导教师 2014年 6 月目录1设计时间.12设计目的.13设计任务.14设计内容.14.1总体方案设计.14.1.1需求规定.24.1.2核心部件选型.34.1.3系统开发环境.44.2硬件设计.44.2.1硬件开发环境简介.44.2.2硬件模块设计.44.3软件设计.64.3.1软件开发环境介绍.64.3.2主程序设计及流程图.74.3.3中断程序设计及流程图.74.3.4软件设计.85总结.10参考文献.11专心-专注-专业1 设计时间 2014年6月16日
2、-2014年6月23日2 设计目的本课程设计是学习嵌入式系统课程后必要的实践教学环节。是检验学生是否掌握相关专业课程知识的重要手段,以学生为主体,充分调动学生的积极性和创造性,重视学生实际动手能力的培养。课程设计通过使学生加深理解、巩固课堂教学和平时实验内容。本次课程设计师利用嵌入式系统所学的知识,设计一个模拟电梯控制系统。3 设计任务模拟电梯系统的设计要求如下:(1)通过键盘输入层数,输入之后LED小灯从当前位置向上或向下运行。(2)运行到对应的楼层,数码管显示楼层号。(3)LED灯表示运行楼层。(4)数码管数字大小的增减表示向上、向下。4 设计内容本文根据AT89S51单片机,利用键盘、开
3、关、数码管和LED模拟实现八层电梯的控制。并且有像电梯的运行功能。软件利用C语言,通过检测用户请求的按键信息,通过键盘输入层数,输入之后LED小灯从当前位置向上或向下运行,运行到对应的楼层,数码管显示楼层号,LED灯表示运行楼层,数码管数字大小的增减表示向上、向下。硬件设计简单可靠,结合软件,基本实现了八层电梯运行的模拟。4.1 总体方案设计通过使用电脑的软件,我们很方便的就可以通过电脑AT89S51单片机进行对其的控制,然后并完成对LED灯,矩阵键盘,和显示器的控制。当按了电梯相应的层数时,小灯从当前位置上升或下降的过程,同时数码管显示相应的电梯层数,模拟电梯的运动过程。步进电梯功能模块图如
4、图4-1所示。电梯功能模块按键输入模块八段数码管模块中端服务模块LED显示模块图4-1 步进电梯功能模块图4.1.1 需求规定用键盘、按钮、八段码和LED模拟电梯工作过程。楼层设为8层,键盘数字键18用来键入希望停的楼层,8个LED显示希望停的楼层,八段码指示电梯当前所在楼层,按扭用来启、停电梯。电梯正常运行时以每2秒1层的速度上升或下降。要求“电梯”能按以下方式运行:(1)设当前电梯停在某层(八段码显示相应楼层,8个LED全灭)。键入18数字键,如键入的数字与当前电梯停层同,则不发生任何动作;若不同则相应楼层的LED亮。如再按运行键,则电梯自动判别上升或下降(在运行过程中八段码显示楼层变化)
5、一直到达希望停的楼层(八段码显示该楼层,相应LED灭);(2)设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED指示希望抵达的楼层),若键入新的希望停的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停,对其他情况则先停原希望停的楼层,然后按运行键后继续进行)。如下几例:a)设电梯当前在2层,向上运行,LED指示希望在6层停,此时若键入4,则电梯将在4层停;若再按运行键,则继续运行至6层停。b)同上情况,若键入的不是4而是8,则电梯将先停在6层;再按运行键,运行至8层停。c)同上情况,若键入的不是4(或8),而是1,则电梯先停在6层;再按运行键,运行至1层停。电梯状态
6、的介绍:1.当电梯主体由低楼层向高楼层运动时,称为上升状态。2.当电梯主体由高楼层向低楼层运动时,称为下降状态。3.当电梯主体到达了某个乘客所希望到达的楼层(以下简称目标楼层)后,在系统中仍然有使用它的请求存在,称为暂停状态。4.当电梯主体到达目标楼层后,在系统再也没有使用它的请求存在,称为停止状态。5.当乘客进入电梯主体后,使用梯内控制器向系统发送到达其它楼层的请求时,称为楼层请求发送状态。6.当电梯正在运行时,产生了停电条件,此时称为停电状态。4.1.2核心部件选型1.AT89S51 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system
7、 programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电
8、路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 4.1.3系统开发环境开发环境搭建步骤:1、根据需求确定开发工具。2、认识并了解开发板。3、根据项目要求,配置嵌入式操作系统。4、配置主机环境:安装LINUX。5、在主机上制作交叉工具链,制作调试器GDB。6、使用制作好的交叉工具链在主机上对BootLoade
9、r进行交叉编译,形成可执行的BootLoader镜像文件,通过FLASH编程器把该BootLoader镜像文件烧写到目标板上的FLASH中。7、在主机上配置串口终端,使用串口线,连接主机和目标板的串口。8、在主机上进行应用程序源代码编写。然后在主机上进行源代码的编写。然后在主机上通过交叉编译,形成可执行程序。把该可执行程序下载到目标板上,然后在目标板上启动该程序。4.2硬件设计4.2.1硬件开发环境简介EELiod270教学开发平台基于Intel XSCALE架构最新的PXA270嵌入式微处理器。最高主频可达520MHz,可运行Linux 和Linux 2.6.11的Linux的操作系统,支持
10、Tiny-X、QT/E等GUI嵌入式图形用户界面,提供完整的驱动和应用程序。同时还可以支持最新的Windows CE 5.0.NET操作系统。4.2.2硬件模块设计1.按键输入模块电路图如图4-2所示。图4-2 按键输入模块电路图2. 数码管模块图如图4-3所示。图4-3 八段数码管电路图3. LED显示模块图如图4-4所示。图4-4 LED显示模块电路图4.3软件设计4.3.1软件开发环境介绍ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文成熟版本为ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,可以在Windows98、Windows XP、Wi
11、ndows2000以及RedHat Linux上运行。全称为ARM Developer Suite,他的功能非常强大。他的前身是SDT,SDT是ARM公司几年前的开发环境,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C ;应用函数库。ADS的调试器较SDT都有了非常大的改观, ADS1.2提供完整的WINDOWS界面开发环境。C效率极高,支持c 以及c+,使工程师可以很方便的使用C语言进行开发。提供模拟仿真功能,使没有Emulators的学习者也能够熟悉ARM的指令系统。配合FFT-ICE使用,ADS1.2提供强大的跟踪功能,片内运行情况尽在掌握。ADS1.2需要
12、硬件支持才能发挥强大功能。目前支持的硬件有Multi-ICE以及兼容Multi-ICE的调试工具如FFT-ICE。ADS由命令行开发工具,ARM实时库,GUI开发环境(Code Warrior和AXD),适用程序和支持组成。4.3.2主程序设计及流程图主程序流程图如图4-5所示。图4-5 主程序流程图4.3.3中断程序设计及流程图判断中断服务子程序流程图如图4-6所示。图4-6 判断中断服务子程序流程图 软件方面主要是应用了USB下载驱动软件和STCISP下载软件以及keil开发软件。USB下载驱动软件的下载,主要是记住com借口,烧写程序时要选择要烧写的端口,STCISP下载软件主要是程序的
13、编写及编译等,而keil开发软件主要将程序烧进开发板,使开发板实现想要的结果。4.3.4软件设计#include unsigned char code dofly_table8=0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80; void DelayUs2x(unsigned int t) while(-t);/楼层变换延时void DelayMs(unsigned char t) while(t-) DelayUs2x(245); DelayUs2x(245); /按键延时函数void show(unsigned int i)P0=dofly_tablei-1;
14、 /数码管P1=(0xffj)?(i-):(i+) show(i);DelayUs2x(60000); show(i);DelayUs2x(60000);5总结与展望这次课程设计,是我们第一次自己动手使用开发板做设计,从开始的遇到很多问题到最后的逐一解决,在这个过程中,我们学到了很多课本上学不到的东西,通过自己动手实践,自己觉得将以前学的知识有了更深刻的认识,并且有很多之前不了解的东西也通过请教同学和自己查资料得到了想要的答案,在这样的过程中,感觉自己提高了很多。当然设计中还遇到了一些问题,比如:当输入的楼层有多个时,因为缓存数组只有八个,所以会有丢失数据的现象。后来请教同学得到了正确的解决办
15、法:缓存用链表来存数据,这样既可以避免数据丢失,而且在用完一个数据后可以及时释放,避免了空间的浪费。自己做的东西在开发板上运行出来的时候,像是将抽象的知识具体化了,使我们对自己做的题目的实现过程认识的更加深刻。此外,虽然做到了题目要求的功能,但是还远远不够,程序还是可以改进的更完善。通过这次课程设计,是我们体会到自己动手才能真正掌握。每一次动手做课设,既是对自己的锻炼,又是对自己的检验,只有通过实践了解自己的不足,才能改进,使自己掌握的更好。参考文献1岳庆来.电梯现代智能控制技术.北京:机械工业出版社,2009.2白勇.用B/S模式构建在线考试系统J,重庆电力高等专科学校学报,2003,10(4): 100130. 3 魏洪兴,胡亮,曲学楼嵌入式系统设计与实例开发实验教材一基于ARM9处理器与 Linux操作系统,清华大学出版社,2005 4 许海燕,付炎著嵌入式系统技术与应用,机械工业出版社,2002成绩评定 成绩 教师签字