嵌入式电梯控制系统

合集下载

嵌入式课程设计心得-电梯控制系统【模版】

嵌入式课程设计心得-电梯控制系统【模版】

软件学院
课程设计报告书
课程名称嵌入式系统
设计题目模拟电梯控制系统
专业班级
学号
姓名
指导教师
2014年6 月
目录
1设计时间 (1)
2设计目的 (1)
3设计任务 (1)
4设计内容 (1)
4.1总体方案设计 (1)
4.1.1需求规定 (2)
4.1.2核心部件选型 (3)
4.1.3系统开发环境 (4)
4.2硬件设计 (4)
4.2.1硬件开发环境简介 (4)
4.2.2硬件模块设计 (4)
4.3软件设计 (6)
4.3.1软件开发环境介绍 (6)
4.3.2主程序设计及流程图 (7)
4.3.3中断程序设计及流程图 (7)
4.3.4软件设计 (8)
5总结 (10)
参考文献 (11)
图4-2 按键输入模块电路图2.数码管模块图如图4-3所示。

图4-3 八段数码管电路图
图4-5 主程序流程图
4.3.3中断程序设计及流程图
判断中断服务子程序流程图如图4-6所示。

图4-6 判断中断服务子程序流程图
软件方面主要是应用了USB下载驱动软件和STC—ISP下载软件以及keil开发软件。

USB下载驱动软件的下载,主要是记住com借口,烧写程序时要选择要烧写的端口,STC—ISP下载软件主要是程序的编写及编译等,而keil开发软件主要将程序烧进开发板,使开发板实现想要的结果。

VHDL项目设计“三层电梯控制系统”

VHDL项目设计“三层电梯控制系统”

VHDL项目设计“三层电梯控制系统”三层电梯控制系统是一种常见的嵌入式系统,用于控制电梯的运行和停止。

它由三层楼、一台电梯和一组控制器组成,通过控制器对电梯的动作进行控制。

本文将介绍一个基于VHDL的三层电梯控制系统的设计。

首先,我们需要定义系统的输入和输出。

对于一个三层电梯控制系统,输入可以包括三个楼层传感器的信号、电梯内部的按钮信号以及电梯的当前位置。

输出可以包括电梯的运行方向、电梯门的开关状态以及电梯运行的目标楼层。

接下来,我们需要设计电梯运行的逻辑。

电梯可以向上或向下运行,它可以根据当前位置和目标楼层来确定下一步的动作。

例如,如果当前位置在一楼,目标楼层在三楼,电梯应该向上运行。

如果当前位置在三楼,目标楼层在一楼,电梯应该向下运行。

我们可以使用状态机的方法来实现这种逻辑。

在控制器的设计中,我们可以使用三个传感器来检测电梯的位置。

当电梯到达一些楼层时,传感器会发出一个信号,控制器会根据这个信号来更新电梯的当前位置。

控制器还需要检测电梯内部按钮的信号,并根据按钮的输入来确定电梯的目标楼层。

例如,如果电梯内部的按钮被按下,控制器会将目标楼层设置为当前所在楼层。

如果一些楼层的按钮被按下,控制器会将目标楼层设置为该楼层。

最后,我们需要定义电梯门的开关逻辑。

当电梯到达目标楼层时,它的门应该打开,当电梯离开目标楼层时,它的门应该关闭。

可以使用一个门状态变量来跟踪电梯门的状态,并根据电梯的位置和目标楼层来更新该变量。

通过以上的设计,我们可以实现一个基于VHDL的三层电梯控制系统。

这个系统可以根据输入信号来确定电梯的动作,包括电梯的运行方向,电梯门的开关状态以及电梯运行的目标楼层。

这个系统可以实时更新电梯的状态,以实现精确的电梯控制。

综上所述,VHDL项目设计的“三层电梯控制系统”是一个基于嵌入式系统的设计,通过控制器对电梯的运行和停止进行控制。

这个系统的设计包括电梯运行逻辑、控制器的设计以及电梯门的开关逻辑。

基于ARM的嵌入式电梯控制系统通信技术的研究与实现

基于ARM的嵌入式电梯控制系统通信技术的研究与实现

件 实 现 , 同 时 以 电梯 控 制 系 统 为 例 , 阐述 了 可 编 程 控 制 器 ( L ) PC 与 上 位 机 串行 通 信 的 实 现 及 通 信 软 件 的 编 制 。
关 键 词 串 口通 信 ARM Lco P C 电梯 控 制 系 统 l /s L


引言
行 适 当设 置就 可 以通 信 了。 下面 以 松 下 F 0可 编 程 控 制 器 为 例 说 P

收 发 和 移 位 等 操 作 时 CPU不 用 干 涉 ,相 对 查 询 法 能 提 高 CP 的 效 U 率 。 鉴 于 系 统 对 实 时 性 要 求 较 高
故 选 用 中 断 的 方 式 进 行 , 实 现 高 效 、 安 全 的 信 息 传 输 , 提 高 软 件
三、 基 于 嵌 入 式 操 作 系 统 u /s o 的串口通信方案设计 c
31 . 串口通信方式的选择
外 设 与 计 算 机 之 间 的 信 息 交 换 可 通 过 程 序 查 询 方 式 或 中 断 方 式 进 行 ,查 询 方 式 下 发 送 一 个 字 符 串 的 过 程 中 CP 不 能 去 做 其 他 U 事 情 ,绝 大 部 分 时 间 耗 费 在 循 环
的 目 的 。 在 此 首 先 探 讨 嵌 入 式 系
统 一P C 的 通 信 方 案 及 实 现 。 L
二、上位机的基本任务及其与 PC L 的连接
21 . 、上位机采用了基 于 AM的 R
22 . 、上位机与 PC的连接 L
上 位 机 与 PL 的 连 接 根 据 一 C
台 上 位 机 与 P C 通 信 数 量 的 不 同 L 分 为 1 1与 1: N 的 方 式 , 本 系 :

基于嵌入式的智能电梯控制系统的设计与实现

基于嵌入式的智能电梯控制系统的设计与实现

湖南文理学院课程设计报告目录一,设计题目 (1)二,设计要求 (1)三,设计作用目的 (1)四,所用设备及软件 (1)五,系统总体设计方案及硬件设计方案 (2)5.1电梯控?制系统硬件设计方案 (2)5.1.1电梯控制系统基本组成 (2)5.1.2 电梯主控制器硬件设计总体规划 (4)5.2 电机驱动模块 (5)5.3显示模块 (6)5.4开关控制模块 (7)5.5报警模块 (8)六,系统软件设计 (8)6.1 电梯主控制器软件流程设计 (8)6.2 电梯工作的锁梯模式 (10)七,设计中的问题及解决方法 (13)八,嵌入式系统学习心得 (14)九,参考文献 (14)十附录A系统硬件总体结构图 (16)十一附录B 程序源代码 (17)基于嵌入式的智能电梯控制系统的设计与实现一,设计题目基于嵌入式的智能电梯控制系统的设计与实现二,设计要求完成一种应用于电梯控制系统中的新型、高效的嵌入式控制系统的软件和硬件设计。

三,设计作用目的随着以嵌入式处理器为核心的智能电梯控制系统的飞速发展和普及,对电梯控制系统的主控制器在功能、实时性、可靠性和软件编程的灵活性提出了更多更高的要求。

考虑到这些情况,有必要在电梯控制系统中引入嵌入式实时操作系统为软件开发平台,可以选用源码公开、成熟的操作系统。

在电梯控制系统中使用嵌入式实时操作系统,可以将应用程序分解成多任务,简化了应用系统软件的设计。

使得电梯控制系统的实时性得到保证,而且良好的多任务设计,有助于提高系统的稳定性与可靠性。

四,所用设备及软件1.采用32位ARM7芯片LPC2378作为电梯主控制器的微控制器;2.目前常用的电梯控制系统中,通常是在存储器ROM中存储了几条固定的电梯速度曲线,电梯运行前,选择一条速度曲线运行。

而本文研制的电梯主控制可以生成多条电梯运行速度曲线,并根据楼层间距生成最佳的速度曲线,提高了电梯的运行效率与舒适感;3.电梯控制系统的负载转矩补偿采用模糊控制技术,以提高电梯起动时的舒适感。

基于ARM7嵌入式系统的电梯群控系统的设计.

基于ARM7嵌入式系统的电梯群控系统的设计.

基于ARM7嵌入式系统的电梯群控系统的设计目前,大多数电梯公司的群控系统都是采用RS485总线进行通信,但RS485采用主从式的通信方式,由主机发起呼叫,对应的终端应答,因此只能采取轮询的通信方式,实时性差,一旦主机出现故障,整个系统将瘫痪;而CAN总线在电梯群控系统中却体现出更多的优势:CAN总线通信与RS485通信相比抗干扰能力更好;可连接较多的通信节点;通信速率更高;实时性与稳定性高。

本文采用CAN总线来实现群控主机和各电梯之间的通信[2]。

1 系统总体结构本系统以ARM7为内核,主频达72 MHz的32 bit微处理器LPC2368作为群控主控制器,它有高达512 KB的片内Flash程序存储器,具有在系统编程(ISP)和在应用编程(IAP)功能,同时LPC2368内部集成了2个CAN控制器,CAN控制器提供了一个完整的CAN协议(遵循CAN规范V2.0 B)实现方案。

包含这个片内CAN控制器的微控制器用来构建功能强大的局域网,支持极高安全级别的分布式实时控制,可以用在汽车、工业环境、高速网络和低价位多路连线的应用中。

系统还选用了CAN总线收发器MPC2551,它可作为CAN控制器与物理总线接口,提供对总线的差动发送和接收能力。

2 通信模块设计2.1 通信模块硬件实现本系统采用LPC2368内部集成了的CAN控制器和高速CAN收发器MPC2551配合实现群控主机和各电梯之间的通信任务的,CAN模块由2个部分组成:控制器和接收滤波器,所有的寄存器和RAM都作为32 bit的字来访问。

LPC2368的CAN控制器具有如下的特点:2个控制器和总线;支持11 bit和29 bit的标识符;双重接收缓冲器和三态发送缓冲器;可编程的错误报警界限和可读/写访问的错误计数器;仲裁丢失捕获和错误代码捕获(带有详细的位位置);单次触发的发送(不会重复发送);只听模式(无应答、无活动错误标志);“自身”报文的接收(自接收请求)[3]。

嵌入式系统在智能电梯中的应用

嵌入式系统在智能电梯中的应用

嵌入式系统在智能电梯中的应用嵌入式微处理器为核心控制器的嵌入式系统应用于电梯控制系统,具有很大的优越性:可以实现无触点逻辑线路,提高系统可靠性;编程控制程序灵活性大,可以适应不同功能要求;可以实现故障显示,使得维修方便;使得电梯控制系统体积减小,成本降低,节省能源;可以减少控制装置的占地面积。

电梯控制系统及主控制器的设计传统的电梯控制系统各楼层与控制器之间采用以PLC 为控制核心的点对点的连接方式,每个呼叫器都有一套数据线与主控器相连,当电梯楼层数比较多时,系统就会有大量的数据线需要连接,使得电梯的安装、维护比较麻烦。

特别是不同楼层数的控制系统需要有相应输入输出点数的主控制器相匹配,通用性差。

以嵌入式微处理器为核心控制器的嵌入式系统作为计算机应用的一个崭新领域,在工业控制中已得到广泛应用,应用于电梯控制系统,具有很大的优越性:可以实现无触点逻辑线路,提高系统可靠性;编程控制程序灵活性大,可以适应不同功能要求;可以实现故障显示,使得维修方便;使得电梯控制系统体积减小,成本降低,节省能源;可以减少控制装置的占地面积。

电梯控制系统结构如图1。

图中主控制器是电梯控制系统的主要部分,负责整个电梯的运行控制。

主控制器不仅要完成复杂的逻辑控制,还要实现数据通信、数据处理、安全监测及实时响应的功能。

根据主控制器这一特点,本文提出了一种新型、高效的控制系统结构DSP+CPLD。

由于DSP 具有数据处理速度快,工作稳定等特性,在设计中主要用来完成数据的实时处理、运算和响应,输入/输出(I/O)信号的处理,电源监控及数据保存。

在设计中采用CPLD 可以增强DSP 访问外围设备的能力,实现可编程I/O 口的扩展、片内时序逻辑电路和组合逻辑电路设计、输入缓冲、输出驱动及产生其他器件的片选信号。

CPLD 通过片内可编程数据交换逻辑模块发送输入端口状态信息到DSP,接受DSP 发出的控制信息,对于系统中部分输入、输出逻辑关系直接在CPLD 中由可编程逻辑处理模块完成。

嵌入式系统在智能电梯中的应用研究

嵌入式系统在智能电梯中的应用研究

目录一、设计题目 (1)二、设计要求 (1)三、设计作用与目的 (1)四、所用设备及软件 (3)五、系统设计方案 (3)5.1、系统总体设计 (4)5.2、系统工作原理 (5)六、系统硬件设计 (7)6.1、系统整体设计 (8)6.2、整流滤波单元 (10)6.3、电机速度及转子位置检测单元 (11)6.4、逆变单元 (12)6.5、控制电路电源模块 (12)6.6、看门狗模块 (14)6.7、低电压复位模块 (15)6.8、电流检测模块 (16)6.9、故障报警模块 (16)6.10、编程与仿真接口 (17)七、系统软件设计 (18)7.1、主程序流程设计 (18)7.2、初始化模块 (19)7.3、中断模块 (20)7.4、开关量输入模块 (21)7.5、故障处理模块 (22)7.6、正常工作模块 (23)7.7、检修工作模块 (23)7.8、消防状态工作模块 (24)7.9、CAN总线接收的数据处理模块 (25)7.10、系统断电数据保存模块 (26)7.11、软件定时器模块 (26)八、实验调试结果 (27)九、设计中的问题及解决方法 (30)十、设计心得 (31)十一、参考文献 (32)嵌入式系统在智能电梯中的应用研究一、设计题目嵌入式系统在智能电梯中的应用研究二、设计要求嵌入式实时系统作为计算机应用的一个崭新领域,以其简洁、高效等特点越来越多地受到人们的广泛关注。

本文以嵌入式实时操作系统在一种基于CAN总线的分布式智能电梯控制系统中的应用为背景,以高性能的嵌入式微处理器为核心,采用嵌入式实时操作系统μC/OS—Ⅱ在各任务间优化地分配CPU时间和系统资源,简化了软件编程,保证了系统的实时性,提高了系统的可靠性。

电梯控制系统硬件上采用嵌入式微处理器作为控制核心,以现场总线作为通讯总线,各控制器之间只需一对绞线通过网络拓扑结构连接即可,安装极为方便,对于不同的楼层数的控制系统只需在现场总线中加入相应数目的呼梯控制器即可,主控器硬件软件不需做任何改动。

IC嵌入式不联网电梯楼层控制门禁系统

IC嵌入式不联网电梯楼层控制门禁系统
IC嵌入式不联网电梯楼层控 制门禁系统
深圳澳普实业有限公司在老产品IC不联 门禁授权系统的基础上开发推出的一款
IC不联门禁、电梯楼层控制系统
01 概念
03 基本参数 05 使用流程
目录
02 系统结构 04 注意事项 06 操作步骤
IC嵌入式不联电梯楼层控制门禁系统是深圳澳普实业有限公司在老产品IC不联门禁授权系统的基础上开发推 出的一款IC不联门禁、电梯楼层控制系统。
1.连接发卡器到电脑上。 2.在发卡器上放一张空白IC卡。 3.打开母卡管理界面,在授权密码里面输入6位密码。『请牢记密码』 4.单击制作授权卡(母卡),发卡器提示音出现表示制作成功。 第二步控制器设置 1.把控制器连接电脑。 2.打开控制器管理界面。 3.单击读取设置,控制器的信息会自动增加到界面。 4.修改对应的资料,包括名称和机号。相同的机号具有相同的控制。
概念
IC嵌入式不联电梯楼层控制门禁系统实现了不用联通过软件发卡设置用户卡的出入权限和乘坐相应的电梯到 达相应的楼层,同时可以实现限制使用时间、设置黑名单等功能,电梯楼层控制、门禁控制均在一套不联门禁系 统里面进行发卡授权 。
系统结构
IC嵌入式不联电梯楼层控制门禁系统使用不联授权方式,权限写入IC卡片,门禁控制器使用IC嵌入式门机, 不和电脑进行联授权;授权后的卡才能刷开对应的门。一个最小的授权系统必须包括一个发卡器,一个IC嵌入式 门禁控制器,若干IC卡。发卡器:硬件和IC嵌入式门禁控制器一样,但有不同的功能,发卡器在电脑桌面上连接 软件使用,进行授权发卡等操作。IC嵌入式门禁控制器:安装在门禁位置,需要用母卡授权后才能安装使用。电 梯控制器必须通过IC嵌入式门禁控制器进行控制,电梯轿厢里面安装一个电梯控制器和一个IC嵌入式门禁控制器, 授权的卡在IC嵌入式门禁控制器刷卡,通过485连接到电梯控制器开启对应的楼层。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要本课程是针对嵌入式系统开设的一门综合性、实践性课程。

通过本课程的课堂学习、设计和设计,使选修学生了解嵌入式系统的开发环境和软硬件设计与调试方法,熟悉嵌入式系统的开发流程,了解常见的通信接口的工作方式,掌握嵌入式系统的软硬件基本调试工具和手段,具备嵌入式计算机系统设计与实现的基本能力。

本课程利用PowerQUICC和NetARM等嵌入式通信处理机平台,设计内容软件和硬件相结合。

目录一.设计目的 (1)二.设计仪器及设备 (1)三. 设计内容 (1)四.设计过程 (3)五.结果及问题分析 (11)六.设计总结 (12)七.参考文献 (13)一.设计目的1.熟悉ARM(LPC2131)&ADS V1.2 的环境。

2.了解LPC2131 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环境中编程模板的理解与使用;使用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:Eint VIC设计理解ARM 芯片引脚功能选择;理解外中断的含义与应用;熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:实现一个秒闪航标灯和可按键控制的蜂鸣器(用外中断方式实现)。

内容6:定时器理解ARM 芯片引脚功能选择;理解GPIO的使用设置、输入/输出驱动方法;熟练掌握AD定S工具,基于LPC2131进行简单的C程序设计;要求:基于ucosII的GPIO、时器、RTC、串口等综合设计。

内容7:异步串行口UART理解ARM 芯片引脚功能选择;理解GPIO的使用设置、输入/输出驱动方法;熟练掌握ADS工具,基于LPC2131进行简单的C程序设计;要求:结合前边内容,实现LPC2131和PC端串行传输数据信息。

四.设计过程1)设计方案用LED灯显示当前电梯的起始楼层和目标楼层用数码管显示电梯当前所在的楼层当电梯到达目标楼层时,用蜂鸣器发出蜂鸣,提示已经到达通过UART来控制输入楼层,中断控制2)流程图开始楼层信号正常吗?Y停车.报警N楼层等待有无呼叫?NY开/关门定向起动运行到站N上/下行控制呼叫.内选记忆Y蜂鸣器提示3)电路图按键输入检测电路图8路LED控制电路图UART0数码管4)程序源代码a.定义模块:#include "config.h"#define BEEP 1 << 7 // P0.7控制蜂鸣器,低电平蜂鸣/* LED8~LED1 8个LED分别由P1.25~P1.18控制 */const uint32 LEDS8 = (0xFF << 18); // P1[25:18]控制LED8~LED1,低电平点亮#define HC595_CS (1 << 29) // P0.29口为74HC595的片选typedef struct Node{uint8 floor;struct Node *next;}Node,*LinkList;/* 定义串口模式设置数据结构 */typedef struct UartMode{uint8 datab; // 字长度,5/6/7/8可选uint8 stopb; // 停止位,1/2可选uint8 parity; // 奇偶校验位,0-无校验,1-奇校验,2-偶校验}UARTMODE;LinkList L;uint8 up,down,keep,stop; // UART0数据接收缓冲区volatile uint8 rcv_new; // 接收新数据标志/* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */const uint32 LED_TBL[] = {//0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, // 依次逐个叠加0x01,0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, // 依次逐个点亮};/* 此表为LED0~F以及L、P的字模 */uint8 const DISP_TAB[] = {// 0 1 2 3 4 5 6 7 8 90xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90};** 函数名称:DelayNS()** 函数功能:长软件延时** 入口参数:dly 延时参数,值越大,延时越久** 出口参数:无** 函数名称:MSPI_Init()** 函数功能:初始化SPI接口,设置为主机。

** 入口参数:无** 出口参数:无** 函数名称:MSPI_SendData()** 函数功能:向SPI总线发送数据。

** 入口参数:data 待发送的数据** 出口参数:返回值为读取的数据b.接收输出模块:** 函数名称:IRQ_UART0()** 函数功能:串口0接收中断服务程序** 入口参数:无** 出口参数:无void __irq IRQ_UART0 (void){Node *p;if ((U0IIR & 0x0F)==0x04){ p=(Node*)malloc(sizeof(Node));rcv_new = 1; // 设置接收到新的数据标志p->floor= U0RBR; // 读取FIFO的数据,并清除中断if ((p->floor-48)>0&&(p->floor-48)<9){p->next=L->next;L->next=p;VICVectAddr = 0x00; // 中断处理结束}else{rcv_new = 0; // 设置接收到新的数据标志VICVectAddr = 0x00; // 中断处理结束}}}** 函数名称:UART0_SendByte()** 函数功能:向串口0发送1字节数据** 入口参数:dat 要发送的数据** 出口参数:无void UART0_SendByte (uint8 dat){U0THR = dat; // 要发送的数据}** 函数名称:UART0_SendBuf()** 函数功能:向串口发送8字节数据** 入口参数:无** 出口参数:无void UART0_SendBuf (void){uint8 i;//for (i=0; i<8; i++)UART0_SendByte(L->next->floor);while ((U0LSR & 0x20) == 0); // 等待数据发送完毕}c.主程序模块:** 函数名称: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));L->next=NULL;UARTMODE set;start = 1;set.datab = 8;set.stopb = 1;set.parity = 0;rcv_new = 0;loop:PINSEL0 = 0x00005505; // 设置I/O连接到UART0PINSEL1 = 0x00000000;IODIR = HC595_CS;PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIOIO1DIR = LEDS8; // 设置LED1控制口为输出MSPI_Init(); // 初始化SPI接口UART0_Init(115200, set); // 串口初始化U0FCR = 0x01; // 使能FIFO,并设置触发点为8字节U0IER = 0x01; // 允许RBR中断,即接收中断IRQEnable(); // 使能IRQ中断/* 使能UART0中断 */VICIntSelect = 0x00000000; // 设置所有的通道为IRQ中断VICVectCntl0 = 0x20 | 0x06; // UART0分配到IRQ slot0,即最高优先级VICVectAddr0 = (uint32)IRQ_UART0; // 设置UART0向量地址VICIntEnable = 1 << 0x06; // 使能UART0中断p=L->next;while (1){if (rcv_new == 1){rcv_new =0;end = rcv_buf[0]-48;UART0_SendByte(p->floor);//UART0_SendBuf();if(start < end){for(i=start; i<=end; i++){for(j=start; j<=end; j++){sum += LED_TBL[j];IO1SET = ~((sum) << 18);DelayNS(20);IO1CLR = ((sum) << 18);DelayNS(20);}rcv_data = MSPI_SendData(DISP_TAB[i]);// 发送显示数据sum =0;}}else {for(i=start; i>=end; i--){for(j=start; j>=end; j--){sum += LED_TBL[j];IO1SET = ~((sum) << 18);DelayNS(20);IO1CLR = ((sum) << 18);DelayNS(20);}rcv_data = MSPI_SendData(DISP_TAB[i]); // 发送显示数据//DelayNS(20); // 延时sum =0;}}for(k=0;k<4;k++){PINSEL0 = 0x00000000; // 设置管脚连接GPIIO0DIR = BEEP; // 设置BEEP控制口为输出IO0SET = BEEP; // BEEP停止蜂鸣DelayNS(20);IO0CLR = BEEP; // BEEP 蜂鸣DelayNS(20);IO0SET = BEEP;}start = end;goto loop;// rcv_data = MSPI_SendData(DISP_TAB[end-48]); // 发送显示数据// DelayNS(40); // 延时}}return 0;}五.结果及问题分析遇到的问题遇到的问题1:当输入的楼层有多个时,因为缓存数组只有八个,所以会有丢失数据的现象。

相关文档
最新文档