嵌入式电梯控制系统

上传人:z**** 文档编号:112457000 上传时间:2022-06-22 格式:DOC 页数:18 大小:244KB
收藏 版权申诉 举报 下载
嵌入式电梯控制系统_第1页
第1页 / 共18页
嵌入式电梯控制系统_第2页
第2页 / 共18页
嵌入式电梯控制系统_第3页
第3页 / 共18页
资源描述:

《嵌入式电梯控制系统》由会员分享,可在线阅读,更多相关《嵌入式电梯控制系统(18页珍藏版)》请在装配图网上搜索。

1、摘要本课程是针对嵌入式系统开设的一门综合性、实践性课程。通过本课程的课 堂学习、设计和设计,使选修学生了解嵌入式系统的开发环境和软硬件设计与调 试方法,熟悉嵌入式系统的开发流程,了解常见的通信接口的工作方式,掌握嵌 入式系统的软硬件基本调试工具和手段,具备嵌入式计算机系统设计与实现的基 本能力。本课程利用PowerQUICC和Net ARM等嵌入式通信处理机平台,设计内容 软件和硬件相结合。目录一设计目的1二设计仪器及设备1三.设计内容1四设计过程3五结果及问题分析11六设计总结12七参考文献13一设计目的1熟悉 ARM (LPC2131) &ADS V1.2 的环境。2.了解LPC2131

2、Demo Board资源、环境;掌握ADS工具使用。3熟练掌握ADS工具的使用,掌握ARM C程序设计、调试技术。4理解ARM芯片引脚功能选择,理解GPIO的使用设置、输入驱动方法。5.理解UART串行通信原理,学习ARM UART资源的驱动编程。二设计仪器及设备EasyARM2131开发设计板。TKStudio IDE集成开发环境三.设计内容内容 1: ARM (LPC2131) &ADS V1.2 环境熟悉LPC2131硬件环境介绍;ADS工具简介;要求:了解LPC2131 Demo Board资源、环境;掌握ADS工具使用。内容2: ADS模板工具& ARM C语言程序设计ADS环境中编

3、程模板的理解与使用;使用ADS工具,基于LPC2131进行简单的C程序设计;要求:熟练掌握ADS工具的使用,掌握ARM C程序设计、调试技术;内容 3: GPIO Output (LED、Beep)设计理解ARM芯片引脚功能选择;理解GPIO的使用设置、输出驱动方法;熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:实现一个秒闪航标灯和蜂鸣。内容 4: GPIO Input(Key Input)设计理解ARM芯片引脚功能选择;理解GPIO的使用设置、输入驱动方法;熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:实现一个秒闪航标灯和可按键控制的蜂鸣器。内容5:

4、Eint VIC设计理解ARM芯片引脚功能选择;理解外中断的含义与应用;熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:实现一个秒闪航标灯和可按键控制的蜂鸣器(用外中断方式实现)。内容6:定时器理解ARM芯片引脚功能选择;理解GPIO的使用设置、输入/输出驱动方法;熟练掌握AD定S工具,基于LPC2131进行简单的C程序设计;要求:基于ucosII的GPIO、时器、RTC、串口等综合设计。内容7:异步串行口 UART理解ARM芯片引脚功能选择;理解GPIO的使用设置、输入/输出驱动方法;熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:结合前边内容,实现LPC

5、2131和PC端串行传输数据信息。四设计过程1)设计方案用LED灯显示当前电梯的起始楼层和目标楼层用数码管显示电梯当前所在的楼层当电梯到达目标楼层时,用蜂鸣器发出蜂鸣,提示已经到达通过UART来控制输入楼层,中断控制2)流程图3)电路图R28-E3JKYJVDD3.3LED1 赴斗了0LD2 前 470LED3 艮了 4巾LED4 耽 470LED5 RB 470LED6艮巧4MLED7 尺470LEDS R23_470KtY 4KET】P0贞曲廿了阳丁山19KE门左P “ ;、 KER W 曲i転我厲EINTQ5 坯.L7 CAP1.:! E PHS UAPL 3 H珂3 CAPI】 bi

6、氏 1D EINT317 囲丄1 CAPIJJ 1 2-我 3 $ 斗 5 5-6 A.CACACACACAC按键输入检测电路图LED1PUSLED2LED3LED47T3FLED5PiHpHTTTO7LEDSPT25 JP124TTHTT19互22241 2 3 斗 5 6 7 g bbbbbbbbACACACACACACACAC2 Pl.l P85Pl.19 P48Pl.20 P4S11 Pl.21 P4414 Pl.22 P4017 PL.23 P3620 Pl.24 P3223 Pl.25 P2S8路LED控制电路图CZ2Li/XRTO 宁CCC1+v+匚】V-o+GMOC2-TIGH

7、TTUNR INRKJUTT2OUTT2INR2IN!t2OUTU4出 y.Y2D3.3-0143 104 2IC15104 15JC IHTDr Pti.tiRx:J;:PO.JP62 KJ.O TkDO5 M.】RxDOUARTO数码管4)程序源代码a-定义模块:#include config.h#define BEEP 1 7 / P0.7控制蜂鸣器,低电平蜂鸣/* LED8LED1 8 个 LED 分别由 P1.25P1.18 控制 */const uint32 LEDS8 = (0xFF 18);/ P125:18控制 LED8LED1,低电平点亮#define HC595_CS(1

8、 29)/ P0.29 口为 74HC595 的片选 typedef struct Nodeuint8 floor;struct Node *next;Node,*LinkList;/*定义串口模式设置数据结构*/ typedef struct UartModeuin t8datab;/uin t8stopb;/uin t8parity;/字长度,5/6/7/8可选停止位,1/2可选奇偶校验位,0-无校验,1-奇校验,2-偶校验UARTM0DE;LinkList L;uint8 up,down,keep,s top;/ UART0数据接收缓冲区volatile uint8 rcv_new; /

9、 接收新数据标志 /*流水灯花样,低电平点亮,注意调用时候用了取反操作*/ const uint32 LED_TBL = /0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, / 依次逐个叠加0x01,0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,/ 依次逐个点亮;/*此表为LED0F以及L、P的字模*/uint8 const DISP_TAB = /01234567890xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF & 0x80,0x90;*函数名称:DelayNS()*

10、函数功能:长软件延时*入口参数:dly延时参数,值越大,延时越久*出口参数:无* 函数名称:MSPI_Init()*函数功能:初始化SPI接口,设置为主机。*入口参数:无*出口参数:无* 函数名称:MSPI_SendData()*函数功能:向SPI总线发送数据。*入口参数:data 待发送的数据*出口参数:返回值为读取的数据b.接收输出模块: * 函数名称:IRQ_UARTO()*函数功能:串口 0接收中断服务程序*入口参数:无*出口参数:无void _irq IRQ_UART0 (void)Node *p;f (U0IIR & 0x0F)=0x04) p=(Node*)malloc(size

11、of(Node);rcv_new = 1;/设置接收到新的数据标志p-floor= U0RBR;/读取FIFO的数据,并清除中断f (p-floor-48)0& (p-floor-48)9)pnext二Lnext;Lnext=p;VICVectAddr = 0x00; / 中断处理结束elsercv_new = 0;/设置接收到新的数据标志VICVectAddr = 0x00;/ 中断处理结束* 函数名称:UART0_SendByte()*函数功能:向串口 0发送1字节数据*入口参数:dat要发送的数据*出口参数:无 void UART0_SendByte (uint8 dat)UOTHR =

12、 dat;/要发送的数据 * 函数名称:UARTO_SendBuf()*函数功能:向串口发送8字节数据*入口参数:无*出口参数:无void UARTO_SendBuf (void)uint8 i;/for (i=0; i8; i+)UARTO_SendByte(L-next-floor);while (U0LSR & 0x20) = 0);/ 等待数据发送完毕c.主程序模块:*函数名称:main()*函数功能:从串口 UART0接收字符串ABCDEFGH,并发送回上位机显示。*调试说明:需要PC串口显示终端软件如EasyARM.exe。uint8 rcv_data;int main (void

13、)Node *p;uint8 start ,end;uint8 i,j, sum = 0,k;uint32 temp;L=(LinkList)malloc(sizeof(Node);Lnext=NULL;UARTMODE set;start 二 1;set .da tab = set.stopb = set.parity 二 rcv_new = 0; loop:PINSELO8;1;0;=0x00005505;/设置I/O连接到UART0PINSEL1 = 0x00000000;IODIR = HC595_CS;PINSEL2 = PINSEL2 & (0x08);/ P125:16连接 GP

14、IOIO1DIR = LEDS8;/设置LED1控制口为输出MSPI_Ini t();UART0_Init(115200, set);U0FCR = 0x01;U0IER = 0x01;IRQEnable();/*使能UART0中断*/VICIntSelect = 0x00000000;VICVectCntl0 = 0x20 | 0x06;VICVectAddr0 = (uint32)IRQ_UART0;/初始化SPI接口/串口初始化/使能FIFO,并设置触发点为8字节/允许RBR中断,即接收中断/使能IRQ中断/设置所有的通道为IRQ中断/ UART0分配到IRQ slot0,即最高优先级/

15、设置UART0向量地址/使能UART0中断VICIntEnable = 1 0x06;p=Lnext;while (1) if (rcv_new = 1)rcv_new =0;end = rcv_buf0-48;UART0_SendByte(p-floor);/UART0_SendBuf();if(start end)for(i=start; i二end; i+)for(j=start; j二end; j+)sum += LED_TBLj;I01SET = (sum) 18);DelayNS(20);IO1CLR = (sum) 18);DelayNS(20);rcv_data = MSPI_

16、SendData(DISP_TABi);/ 发送显示数据sum =0;else for(i=start; i二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(DISP_TABi); / 发送显示数据/DelayNS(20);/ 延时sum =0;for(k=0;k4;k+)PINSELO = OxOOOOOOOO;/设置管脚连接GPI/设置BEEP控制口为输出/ BEEP停止蜂鸣/

17、 BEEP蜂鸣IOODIR = BEEP;IOOSET = BEEP;DelayNS(20);IOOCLR = BEEP;DelayNS(20);IO0SET = BEEP;start 二 end;goto loop;/ rcv_data = MSPI_SendData(DISP_TABend-48); / 发送显示数据/ DelayNS(40);/ 延时return 0;五结果及问题分析遇到的问题遇到的问题1:当输入的楼层有多个时,因为缓存数组只有八个,所以会有 丢失数据的现象。解决办法:缓存用链表来存数据,这样既可以避免数据丢失,而且在用完一 个数据后可以及时释放,避免了空间的浪费。遇到的

18、问题2:电梯只能按照输入的顺序来运作,不能够判断最优路径。解决办法:在电梯运作之前,对缓存的数据进行优化排序,选出最优路径再 运作。运行结果:实现了基本的简单电梯功能。六设计总结首先,感谢李老师一个学期的指导,在设计报告之前请允许我说一下自己的 感想,嵌入式这门课程是少有的几门让我感觉获益匪浅的课程之一,我是把它当 成一个单片机学的,因为如果嵌入式系统的定义就是一个可裁剪的含有微处理器 和外围接口的非标准计算机系统的话,那么单片机当然算是,况且嵌入式系统最 初是基于单片机的。只不过现在我们的“单片机”叫S3C44B0X,不叫51,我们 的CPU采用了国际上最流行的ARM公司设计的ARM7TDM

19、I。总体上它跟单片机、 PLC、和一般的计算机系统是完全类似的。只是ARM有比较独特的架构和指令集, 性能优越,跑操作系统也很流畅,特别适合于嵌入式系统的开发,所以ARM简直 成了嵌入式系统的代名词。体会到了卖设计专利、卖标准、不卖产品的公司才是 真正牛的公司,这就是智慧的力量。这些感想都是从设计中得来的。学习的新的 内容无非只有一个LCD控制器和串口通讯,但是这些老的知识的应用让我感到差 的还远,通过主频对定时1秒的计算修改预分频、分频、计数值,超级终端与串 口的配合(感觉这是个微型的组态软件,如果我们可以用程序对收到的串口数据 进行进一步处理,不就可以实现相当炫的功能了么)、中断服务子程序的编写 (LCD设计告诉我们,服务子程序要精简,放主函数就好了)和注入相应地址、 小键盘的扫描码与map映射、这些看似学过的东西如果不经过这样的巩固恐怕永 远也不能真正理解,对于基础知识的深化是我感觉学到的最重要的东西。通过 JTAG烧录系统引导程序bootlooder到bankO(bootloader类似于BIOS,包括硬 件初始化、调入ROM或者flash中用户程序到RAM等等)深化了对于开机固化程 序的重要性,和ROM、RAM的应用机理。2003七参考文献1. 张毅刚主编单片机原理及应用,高等教育出版社2. 嵌入式系统设计与开发,科学出版社2011

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!