伊鹏嵌入式课设模拟电梯完结.docx
- 文档编号:9879216
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:15
- 大小:181.63KB
伊鹏嵌入式课设模拟电梯完结.docx
《伊鹏嵌入式课设模拟电梯完结.docx》由会员分享,可在线阅读,更多相关《伊鹏嵌入式课设模拟电梯完结.docx(15页珍藏版)》请在冰豆网上搜索。
伊鹏嵌入式课设模拟电梯完结
软件学院
课程设计报告书
课程名称
嵌入式课程设计
设计题目
模拟电梯控制系统(嵌入式系统)
专业班级
嵌软12-2班
学号
1220030224
姓名
伊鹏
指导教师
刘佳旭
2015年6月
1设计时间
2015年6月15日至6月19日
2设计目的
《嵌入式系统课程设计》是软件工程专业(嵌入式软件方向)学生的专业实践课程,是学习《嵌入式系统》课程后必要的实践教学环节。
课程设计是检验学生是否掌握相关专业课程知识的重要手段,以学生为主体,充分调动学生的积极性和创造性,重视学生实际动手能力的培养。
3设计任务
模拟电梯系统的设计要求如下:
(1)通过键盘输入层数,输入之后LED小灯从当前位置向上或向下运行。
(2)运行到对应的楼层,数码管显示楼层号。
(3)LED灯表示运行楼层。
(4)数码管数字大小的增减表示向上、向下。
4设计内容
4.1总体方案设计
4.1.1需求规定
本次设计的基本思想是采用PXA270单片机作为核心,采用延时函数来控制电梯的位置校验,采用数码管动态显示来实时显示电梯所在楼层。
一共有8层楼,故选用4×4矩阵键盘。
当电梯从目标层到达目的楼层时,八段数码管显示当前电梯所在楼层数,LED小灯相应位置小灯变亮。
4.1.2核心部件选型
(1)主控芯片选择
基于EELIOD270教学开发平台的PXA270嵌入式微处理器,
(2)楼层显示模块
八段数码管,LED小灯。
⑶按键选择模块
使用开发板中的直入键盘(SW1~~SW4)和矩阵键盘(SW5~~SW8)表示1层到8层的按键值。
4.1.3系统开发环境
本次设计的基本思想是采用AT89C52单片机作为核心,利用其丰富的I/O接口与外围电路配合进行控制。
MCU采用一个单片机控制所有的按键、数码管显示、电动机的转动、传感器的输出信号等,采用点阵式液晶显示器(LCD)显示各种相关数据以及信息。
本电路主要由3大部分电路组成:
键盘电路、单片机系统电路、楼层显示电路。
其中单片机最小系统主要由复位电路组成。
电路复位后楼层显示数字1表示电梯此时在一楼,显示电路数码管显示,键盘电路采用4×4键盘矩阵共16个按键,其中8个按键是各层楼外呼按键,电梯的正常工作是通过对单片机写入程序控制的。
总体方框图如图1所示:
图1功能框架
4.2硬件设计
4.2.1硬件开发环境简介
EELiod270教学开发平台基于IntelXSCALE架构最新的PXA270嵌入式微处理器。
最高主频可达520MHz,可运行Linux和Linux2.6.11的Linux的操作系统,支持Tiny-X、QT/E等GUI嵌入式图形用户界面,提供完整的驱动和应用程序。
同时还可以支持最新的WindowsCE5.0.NET操作系统。
4.2.2显示模块设计
电梯模拟系统的显示模块中,我们采用了8盏LED小灯和八段LED数码管进行显示,小灯亮表示到达对应楼层,数码管的数字代表楼层数。
本次实验从第一层到第八层。
有关LED小灯的电路图由图2表示,八段数码管电路如图3所示。
⑴LED小灯的电路图
图2LED小灯电路图
由图2可知,LED_CS4控制着LED小灯电路的使能。
⑵LED八段数码管的电路图
开发平台中,提供了四个LED八段数码管,在此处,我们只说明后两个数码管(LED3和LED4),讨论LED3和LED4的内存地址,其电路图如图3所示。
图3LED3和LED4的电路图
通过图3可以得出,当使能LED3和LED4时,二者共用一个地址(LED_CS3),而LED4的控制位于该地址对应内存单元高八位,LED3的控制位于该地址对应内存低八位。
通过图3的片选电路的分析,LED_CS3需要使能时,BA20、BA21、BA22的值分别为0、0、1,则访问的地址为0x10400000,同理,控制LED1和LED2的LED_CS2的地址为0x10300000。
4.2.3键盘模块设计
电梯系统的键盘模块设计中,由于使用到了SW1~~SW8这几个按键,而在EELIOD实验平台中,SW1~~~SW4由直入键盘控制,SW5~~SW8由矩阵键盘控制。
当我们按下一个键值的时候,对应的直入键盘的寄存器KPDK、对应的矩阵键盘寄存器KPAS中的值会发生改变,读取是否有键值的变化。
但是如果想要使用键盘时,需要进行一些初始化工作,通过电路图的分析,我们可以了解对直入键盘接口和矩阵键盘接口需要进行哪些初始化工作。
其中直入键盘的电路图如图4所示,矩阵键盘的电路图如图5所示。
直入键盘电路图:
图4直入键盘电路图
当按下某一个按键时,键盘就会导通,就会向所在GPIO口发送一个高电平,触发按键事件。
CPU通过检测按键位置,从而在键盘寄存器显示相应的值。
矩阵键盘电路图:
矩阵键盘接口支持自动扫描与手动扫描的方式进行对矩阵键盘按键的检测。
最大可以支持八个输入(输出),总共64个矩阵键盘。
由图5所示,组成了3×4的矩阵键盘。
CPU通过KP-MKINx自动或者手动发出信号检测矩阵键盘的按键情况。
加上四个直入键盘,就组成了4×4键盘。
图5矩阵键盘电路图
4.3软件设计
软件设计是智能化系统进行数据采集、处理、控制等工作的基础。
系统的软件设计直接影响整个系统的运转和硬件作用的发挥。
本设计由于采用键盘矩阵来代替外呼内选按钮,而电梯的运行方向是根据这些呼叫按键和选择按键来决定的,所以单片机要不断的扫描键盘来获取各层呼叫状态。
从而来控制电梯的运行。
故键盘矩阵扫描是本系统软件设计的重要一部分,另外要把键盘扫描到的各层的按键信息存储起来,然后和电梯的运行状态比较,判断是否响应各层呼叫,最后就是楼层显示部分了。
整个软件设计包括一下几部分:
(1)初始化程序使数码管显示“1”表示电梯处在一楼。
(2)主程序主要包括:
①判断乘客进入电梯后选择去哪一层,根据判断情况来控制电梯运行;
②电梯在运行过程中要不断的扫描键盘,从而来判断各楼层有无呼叫请求,;
③实时显示电梯所在位置及运行状态;
4.3.1软件开发环境介绍
嵌入式软件系统如人的大脑,决定了硬件的操作模式。
ARMADS全称为ARMDeveloperSuite,是ARM公司推出的用于ARM程序设计、开发和调试的集成开发工具。
它支持WindowsNT4,Windows2000,Windows98、Windows95、WindowsXP和WindowsMe等操作系统。
ADS由命令行开发工具,ARM运行时库,图形化集成开发环境(CodeWarrior和AXD),实用程序和支持软件组成。
ADS包含包含多种C编译器,包括:
armcc,tcc,armcpp和tcpp。
其中armcc是ARMC编译器,armcpp是ARMC++编译器,tcc是ThumbC编译器,tcpp是ThumbC++编译器。
armasm是ARM和Thumb的汇编器.它对用ARM汇编语言和Thumb汇编语言写的源代码进行汇编。
4.3.2主程序设计及流程图
#include
#defineLED_CS2(*((volatileunsignedshortint*)(0x10300000)))//LED1andLED2
#defineLED_CS3(*((volatileunsignedshortint*)(0x10400000)))//LED3andLED4
#defineKPDK_VALUE(*((volatileunsignedchar*)(0x41500008)))//DirectKeypad
#defineLED_CS4(*((volatileunsignedchar*)(0x10500000)))//LED1~8
#defineKPAS_VALUE(*((volatileunsignedchar*)(0x41500020)))//MatrixKeypad
voidDelay(unsignedintx)//延时函数
{
unsignedinti,j,k;
for(i=0;i<=x;i++)
for(j=0;j<0xff;j++)
for(k=0;k<0xff;k++);
}
intchack1(k)//直入键盘
{
switch(k)
{
case0x40:
//key-press1
k=1;
break;
case0x02:
//key-press2
k=2;
break;
case0x04:
//key-press3
k=3;
break;
case0x20:
//key-press4
k=4;
break;
}
returnk;
}
intchack2(k)//矩阵键盘数字映射
{
switch(k)
{case0x00:
//key-press5
k=5;
break;
case0x01:
//key-press6
k=6;
break;
case0x02:
//key-press7
k=7;
break;
case0x05:
//key-press8
k=8;
break;
}
returnk;
}
intchange(k)//数值转换
{
switch(k)
{
case1:
//key-press1
k=0x798f;
break;
case2:
//key-press2
k=0x248f;
break;
case3:
//key-press3
k=0x308f;
break;
case4:
//key-press4
k=0x198f;
break;
case5:
//key-press5
k=0x128f;
break;
case6:
//key-press6
k=0x028f;
break;
case7:
//key-press7
k=0x788f;
break;
case8:
//key-press8
k=0x008f;
break;
default:
break;
}
returnk;
}
intLEDjump(x,y)//LED小灯与8段数码管跳转函数
{
inti;
x=x-1;
y=y-1;
LED_CS4=0xff;
if(x for(i=x;i<=y;i++) { LED_CS4=~(1< LED_CS3=change(i+1); Delay(200); } } else { for(i=x;i>=y;i--) { LED_CS4=~(1< LED_CS3=change(i+1); Delay(200); }} returny+1; } intmain(void)//主函数入口 { inti,x,y;//数值初始化 x=1; y=0; LED_CS4=0xff; LED_CS2=0x8f8f; LED_CS3=0x798f; while (1) { chari,j; i=0;j=0; i=KPDK_VALUE; j=KPAS_VALUE; if(i! =0){y=chack1(i);}//按键判断 else{y=chack2(j);} switch(i) { case0x40: //key-press1 x=LEDjump(x,y); break; case0x02: //key-press2 x=LEDjump(x,y); break; case0x04: //key-press3 x=LEDjump(x,y); break; case0x20: //key-press4 x=LEDjump(x,y); break; default: break; } switch(j) { case0x00: //key-press5 x=LEDjump(x,y); break; case0x01: //key-press6 x=LEDjump(x,y); break; case0x02: //key-press7 x=LEDjump(x,y); break; case0x05: //key-press8 x=LEDjump(x,y); break; default: break; } } return0; } 软件流程图如下图: 图6软件流程图 5总结 本次课程设计是对传统设计电梯的部分改进,可以降低电梯的设计成本,实现楼层快速通行的模拟控制。 另外由于此次设计实现的功能简单,简化处理了一些实际情况,没有去考虑这种电梯在实际应用中的故障问题,及一些更智能的硬件与软件的安装与调试,并且使用矩阵按键代替独立按键,与真实的电梯按键不符合。 此次设计不仅仅是一个硬件电路设计和程序编写的过程,更重要的是实际问题的分析和设计阶段的努力。 参考文献 [1]屈辉立,陈可明,石武信.JSP网站编程教程[M].第1版,北京: 北京希望电子出版社,2005 [2]白勇.用B/S模式构建在线考试系统[J],重庆电力高等专科学校学报,2003,10(4): 100~130. [3]JiangGuo,YuehongLiao,BehzadParviz.ASurveyofJ2EEApplicationPerformanceManagementSystems[J],ProceedingsoftheIEEEInternationalConferenceonWebServices(ICWS'04),2004.6(5): 17~32. [4]VB数据库管理范例: 成绩评定 成绩教师签字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 模拟 电梯 完结