2013嵌入式系统课程设计_第1页
2013嵌入式系统课程设计_第2页
2013嵌入式系统课程设计_第3页
2013嵌入式系统课程设计_第4页
2013嵌入式系统课程设计_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档倾情为你奉上精选优质文档倾情为你奉上专心专注专业专心专注专业精选优质文档倾情为你奉上专心专注专业软 件 学 院课程设计报告书课程名称 嵌入式系统 设计题目 模拟电梯控制系统 专业班级 学 号 姓 名 指导教师 2013年 6 月 目录TOC o 1-3 u 1 设计时间 PAGEREF _Toc28560 32 设计目的 PAGEREF _Toc25081 33 设计任务 PAGEREF _Toc3759 34 设计内容 PAGEREF _Toc2215 34.1 总体方案设计 PAGEREF _Toc13987 34.1.1 需求规定 PAGEREF _Toc17523 34.1

2、.2核心部件选型 PAGEREF _Toc20840 44.1.3系统开发环境 PAGEREF _Toc20042 44.2硬件设计 PAGEREF _Toc22417 54.2.1硬件开发环境简介 PAGEREF _Toc14950 54.3软件设计 PAGEREF _Toc4560 64.3.1软件开发环境介绍 PAGEREF _Toc3812 64.3.2主程序设计及流程图 PAGEREF _Toc12546 74.3.3中断程序设计及流程图 PAGEREF _Toc23694 75总结 PAGEREF _Toc21675 14参考文献 PAGEREF _Toc17388 15成绩评定

3、PAGEREF _Toc21006 151 设计时间 时间:2013年6月7日2013年6月14日2 设计目的本课程设计是学习嵌入式系统课程后必要的实践教学环节。是检验学生是否掌握相关专业课程知识的重要手段,以学生为主体,充分调动学生的积极性和创造性,重视学生实际动手能力的培养。课程设计通过使学生加深理解、巩固课堂教学和平时实验内容。本次课程设计师利用嵌入式系统所学的知识,设计一个模拟电梯控制系统。3 设计任务 模拟电梯系统的设计要求如下:(1)通过键盘输入层数,输入之后LED小灯从当前位置向上或向下运行。(2)运行到对应的楼层,数码管显示楼层号。(3)LED灯表示运行楼层。(4)数码管数字大

4、小的增减表示向上、向下。4 设计内容4.1 总体方案设计4.1.1 需求规定 本设计采用AT89S51单片机作为核心,配以适当接口作为输入输出通道。采用44按键矩阵开关电路作为外呼内选呼叫控制。实际电梯控制系统每层装有一个传感器,从而判断车厢所在位置,本模型由六个独立按键作为楼层到达信号传输给单片机,而后通过74LS164从串口驱动数码管显示楼层数。当电梯到达所选层,电梯开门延时等待进人并选层,然后延时关门执行请求,若无请求则停在本层等待请求。软件部分使用汇编语言,利用查询方式来检测用户请求的按键信息,采用74LS245芯片驱动发光二极管。电路由复位电路复位后,电梯初始位置在一楼,AT89S5

5、1将楼层感应电路得来的据通过74LS164驱动显示电路显示出来;如有用户在厢外呼叫,经外呼叫电路把信号输入单片机,由楼层感应电路判断电梯为上升还是下降状态,若方向一致则打开电梯门,用户进入后关门执行操作。用户通过选层电路把目的层告知AT89S51,控制电机把用户送至目的层,而后系统等待下次呼叫。系统的正常工作由时钟电路来保证,显示电路实时显示电梯所在的楼层位置。4.1.2核心部件选型1.AT89S51 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用A

6、TMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置

7、省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 4.1.3系统开发环境开发环境搭建步骤:1、根据需求确定开发工具。 2、认识并了解开发板。 3、根据项目要求,配置嵌入式操作系统。 4、配置主机环境:安装LINUX。 5、在主机上制作交叉工具链,制作调试器GDB。 6、使用制作好的交叉工具链在主机上对BootLoader进行交叉编译,形成可执行的BootLoader镜像文件,通过FLASH编程器

8、把该BootLoader镜像文件烧写到目标板上的FLASH中。 7、在主机上配置串口终端,使用串口线,连接主机和目标板的串口。 8、在主机上进行应用程序源代码编写。然后在主机上进行源代码的编写。然后在主机上通过交叉编译,形成可执行程序。把该可执行程序下载到目标板上,然后在目标板上启动该程序。4.2硬件设计4.2.1硬件开发环境简介 EELiod270教学开发平台基于Intel XSCALE架构最新的PXA270嵌入式微处理器。最高主频可达520MHz,可运行Linux 和Linux 2.6.11的Linux的操作系统,支持Tiny-X、QT/E等GUI嵌入式图形用户界面,提供完整的驱动和应用程

9、序。同时还可以支持最新的Windows CE 5.0.NET操作系统。4.2.2硬件模块设计1.按键输入模块: 图1 按键输入检测电路图数码管模块: 图2 八段数码管电路图LED显示模块: 图3 LED显示模块电路图4.3软件设计4.3.1软件开发环境介绍 ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文成熟版本为ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,可以在Windows98、Windows XP、Windows2000以及RedHat Linux上运行。全称为ARM Developer Suite,他的功能非常强大。他的前身是SDT,SD

10、T是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由命令行开发工具,A

11、RM实时库,GUI开发环境(Code Warrior和AXD),适用程序和支持组成。4.3.2主程序设计及流程图 图4 主程序流程图4.3.3中断程序设计及流程图 图5判断中断服务子程序流程图 4.3.4软件设计定义模块:#include config.h/* LED8LED1 8个LED分别由P1.25P1.18控制 */const uint32 LEDS8 = (0 xFF 18); / P125:18控制LED8LED1,低电平点亮 #define HC595_CS (1 floor= U0RBR; / 读取FIFO的数据,并清除中断if (p-floor-48)0&(p-floor-4

12、8)next=L-next;L-next=p;VICVectAddr = 0 x00; / 中断处理结束elsercv_new = 0; / 设置接收到新的数据标志VICVectAddr = 0 x00; / 中断处理结束* 函数名称 :UART0_SendByte()* 函数功能 :向串口0发送1字节数据* 入口参数 :dat要发送的数据* 出口参数 :无void UART0_SendByte (uint8 dat)U0THR = dat; / 要发送的数据* 函数名称 :UART0_SendBuf()* 函数功能 :向串口发送8字节数据* 入口参数 :无* 出口参数 :无void UART

13、0_SendBuf (void)uint8 i;/for (i=0; inext-floor);while (U0LSR & 0 x20) = 0); / 等待数据发送完毕主程序模块:* 函数名称 :main()* 函数功能 :从串口UART0接收字符串ABCDEFGH,并发送回上位机显示。* 调试说明 :需要PC串口显示终端软件如EasyARM.exe。uint8 rcv_data; int main (void)Node *p;uint8 start,end; uint8 i,j, sum = 0,k; uint32 temp; L=(LinkList)malloc(sizeof(Node

14、);L-next=NULL; UARTMODE set;start = 1;set.datab = 8;set.stopb = 1;set.parity = 0;rcv_new = 0;loop:PINSEL0 = 0 x;/ 设置I/O连接到UART0PINSEL1 = 0 x;IODIR = HC595_CS; PINSEL2 = PINSEL2 & (0 x08); / P125:16连接GPIOIO1DIR = LEDS8; / 设置LED1控制口为输出MSPI_Init(); / 初始化SPI接口UART0_Init(, set); / 串口初始化U0FCR = 0 x01; / 使

15、能FIFO,并设置触发点为8字节U0IER = 0 x01; / 允许RBR中断,即接收中断IRQEnable(); / 使能IRQ中断/* 使能UART0中断 */VICIntSelect = 0 x; / 设置所有的通道为IRQ中断VICVectCntl0 = 0 x20 | 0 x06; / UART0分配到IRQ slot0,最高优先级VICVectAddr0 = (uint32)IRQ_UART0;/ 设置UART0向量地址VICIntEnable = 1 next;while (1)if (rcv_new = 1)rcv_new =0;end = rcv_buf0-48;UART0

16、_SendByte(p-floor);/UART0_SendBuf();if(start end)for(i=start; i=end; i+) for(j=start; j=end; j+) sum += LED_TBLj;IO1SET = (sum) 18);DelayNS(20);IO1CLR = (sum) =end; i-) for(j=start; j=end; j-) sum += LED_TBLj;IO1SET = (sum) 18);DelayNS(20);IO1CLR = (sum) 18); DelayNS(20); rcv_data = MSPI_SendData(DI

17、SP_TABi);/ 发送显示数据 /DelayNS(20); / 延时 sum =0; for(k=0;k4;k+) PINSEL0 = 0 x; / 设置管脚连接GPIOIO0DIR = BEEP; / 设置BEEP控制口为输出 IO0SET = BEEP; / BEEP 停止蜂鸣DelayNS(20);IO0CLR = BEEP; / BEEP 蜂鸣DelayNS(20);IO0SET = BEEP; start = end; goto loop; rcv_data = MSPI_SendData(DISP_TABend-48);/ 发送显示数据 DelayNS(40); / 延时 re

18、turn 0;5总结通过这次课程设计我学到很多知识,这些知识不仅仅是课本上的,更多的是实际操作中的,学会了很多新的解题思路,并且还学会了遇到困难的时候如何与同学一起沟通来完成任务,为以后的工作奠定了良好的团队合作基础。当然设计中还遇到了一些问题,比如:当输入的楼层有多个时,因为缓存数组只有八个,所以会有丢失数据的现象。后来请教同学得到了正确的解决办法:缓存用链表来存数据,这样既可以避免数据丢失,而且在用完一个数据后可以及时释放,避免了空间的浪费。还遇到的问题有电梯只能按照输入的顺序来运作,不能够判断最优路径。还是经过与同学的讨论最终得出了解决办法:在电梯运作之前,对缓存的数据进行优化排序,选出最优路径再运作。在这次课设中我还学到了很多书本上没有的关于ARM的知识,ARM是一门很实用的课程,如果能够掌握好,将会对以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论