软件学院课程设计报告书课程名称嵌入式系统设计题目模拟电梯控制系统专业班级学号姓名指导教师2013年6月2目录1设计时间.................................................................................................32设计目的.................................................................................................33设计任务.................................................................................................34设计内容.................................................................................................34.1总体方案设计.....................................................................................34.1.1需求规定...........................................................................................34.1.2核心部件选型...................................................................................44.1.3系统开发环境...................................................................................44.2硬件设计...............................................................................................44.2.1硬件开发环境简介...........................................................................54.3软件设计...............................................................................................64.3.1软件开发环境介绍...........................................................................64.3.2主程序设计及流程图.......................................................................74.3.3中断程序设计及流程图...................................................................75总结........................................................................................................12参考文献...................................................................................................13成绩评定...................................................................................................1331设计时间时间:2013年6月7日~2013年6月14日2设计目的本课程设计是学习《嵌入式系统》课程后必要的实践教学环节。是检验学生是否掌握相关专业课程知识的重要手段,以学生为主体,充分调动学生的积极性和创造性,重视学生实际动手能力的培养。课程设计通过使学生加深理解、巩固课堂教学和平时实验内容。本次课程设计师利用嵌入式系统所学的知识,设计一个模拟电梯控制系统。3设计任务模拟电梯系统的设计要求如下:(1)通过键盘输入层数,输入之后LED小灯从当前位置向上或向下运行。(2)运行到对应的楼层,数码管显示楼层号。(3)LED灯表示运行楼层。(4)数码管数字大小的增减表示向上、向下。4设计内容4.1总体方案设计4.1.1需求规定本设计采用AT89S51单片机作为核心,配以适当接口作为输入输出通道。采用4×4按键矩阵开关电路作为外呼内选呼叫控制。实际电梯控制系统每层装有一个传感器,从而判断车厢所在位置,本模型由六个独立按键作为楼层到达信号传输给单片机,而后通过74LS164从串口驱动数码管显示楼层数。当电梯到达所选层,电梯开门延时等待进人并选层,然后延时关门执行请求,若无请求则停在本层等待请求。软件部分使用汇编语言,利用查询方式来检测用户请求的按键信息,采用74LS245芯片驱动发光二极管。电路由复位电路复位后,电梯初始位置在一楼,AT89S51将楼层感应电路得来的据通过74LS164驱动显示电路显示出来;如有用户在厢外呼叫,经外呼叫电路把信号输入单片机,由楼层感应电路判断电梯为上升还是下降状态,若方向一致则打开电梯门,用户进入后关门执行操作。用户通过选层电路把目的层告知AT89S51,控4制电机把用户送至目的层,而后系统等待下次呼叫。系统的正常工作由时钟电路来保证,显示电路实时显示电梯所在的楼层位置。4.1.2核心部件选型1.AT89S51AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。4.1.3系统开发环境开发环境搭建步骤:1、根据需求确定开发工具。2、认识并了解开发板。3、根据项目要求,配置嵌入式操作系统。4、配置主机环境:安装LINUX。5、在主机上制作交叉工具链,制作调试器GDB。6、使用制作好的交叉工具链在主机上对BootLoader进行交叉编译,形成可执行的BootLoader镜像文件,通过FLASH编程器把该BootLoader镜像文件烧写到目标板上的FLASH中。7、在主机上配置串口终端,使用串口线,连接主机和目标板的串口。8、在主机上进行应用程序源代码编写。然后在主机上进行源代码的编写。然后在主机上通过交叉编译,形成可执行程序。把该可执行程序下载到目标板上,然后在目标板上启动该程序。54.2硬件设计4.2.1硬件开发环境简介EELiod270教学开发平台基于IntelXSCALE架构最新的PXA270嵌入式微处理器。最高主频可达520MHz,可运行Linux和Linux2.6.11的Linux的操作系统,支持Tiny-X、QT/E等GUI嵌入式图形用户界面,提供完整的驱动和应用程序。同时还可以支持最新的WindowsCE5.0.NET操作系统。4.2.2硬件模块设计1.按键输入模块:图1按键输入检测电路图2.数码管模块:图2八段数码管电路图3.LED显示模块:6图3LED显示模块电路图4.3软件设计4.3.1软件开发环境介绍ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文成熟版本为ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,可以在Windows98、WindowsXP、Windows2000以及RedHatLinux上运行。全称为ARMDeveloperSuite,他的功能非常强大。他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C编译器;实时调试器;应用函数库。ADS的编译器调试器较SDT都有了非常大的改观,ADS1.2提供完整的WINDOWS界面开发环境。C编译器效率极高,支持c以及c++,使工程师可以很方便的使用C语言进行开发。提供软件模拟仿真功能,使没有Emulators的学习者也能够熟悉ARM的指令系统。配合FFT-ICE使用,ADS1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握。ADS1.2需要硬件支持才能发挥强大功能。目前支持的硬件调试器有Multi-ICE以及兼容Multi-ICE的调试工具如FFT-ICE。ADS由命令行开发工具,ARM实时库,GUI开发环境(CodeWarrior和AXD),适用程序和支持软件组成。74.3.2主程序设计及流程图图4主程序流程图4.3.3中断程序设计及流程图图5判断中断服务子程序流程图4.3.4软件设计定义模块:#includeconfig.h8/*LED8~LED18个LED分别由P1.25~P1.18控制*/constuint32LEDS8=(0xFF18);//P1[25:18]控制LED8~LED1,低电平点亮#defineHC595_CS(129)//P0.29口为74HC595的片选typedefstructNode{uint8floor;structNode*next;}Node,*LinkList;/*定义串口模式设置数据结构*/typedefstructUartMode{uint8datab;//字长度,5/6/7/8可选uint8stopb;//停止位,1/2可选uint8parity;//奇偶校验位,0-无校验,1-奇校验,2-偶校验}UARTMODE;LinkListL;uint8up,down,keep,stop;//UART0数据接收缓冲区volatileuint8rcv_new;//接收新数据标志/*流水灯花样,低电平点亮,注意调用时候用了取反操作*/constuint32LED_TBL[]={//0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,//依次逐个叠加0x01,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,//依次逐个点亮};/*此表为LED0~F以及L、P的字模*/uint8constDISP_TAB[]={//01234567890xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};**函数名称:DelayNS()**函数功能:长软件延时**入口参数:dly延时参数,值越大,延时越久**出口参数:无**函数名称:MSPI_Init()**函数功能:初始化SPI接口,设置为主机。**入口参数:无**出口参数:无