电梯控制程序源代码带流程图功能分解源代码.docx

上传人:b****2 文档编号:1815704 上传时间:2022-10-24 格式:DOCX 页数:93 大小:780.31KB
下载 相关 举报
电梯控制程序源代码带流程图功能分解源代码.docx_第1页
第1页 / 共93页
电梯控制程序源代码带流程图功能分解源代码.docx_第2页
第2页 / 共93页
电梯控制程序源代码带流程图功能分解源代码.docx_第3页
第3页 / 共93页
电梯控制程序源代码带流程图功能分解源代码.docx_第4页
第4页 / 共93页
电梯控制程序源代码带流程图功能分解源代码.docx_第5页
第5页 / 共93页
点击查看更多>>
下载资源
资源描述

电梯控制程序源代码带流程图功能分解源代码.docx

《电梯控制程序源代码带流程图功能分解源代码.docx》由会员分享,可在线阅读,更多相关《电梯控制程序源代码带流程图功能分解源代码.docx(93页珍藏版)》请在冰豆网上搜索。

电梯控制程序源代码带流程图功能分解源代码.docx

电梯控制程序源代码带流程图功能分解源代码

电梯控制程序源代码(带流程图-功能分解、源代码)

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

 

《综合电子创新训练》研究报告

研究题目:

CTS1600-1控制技术综合试验

院系名称:

专业名称:

学生姓名:

指导教师:

xxxx年xx月xx日

xxxxxxxxxx

图目录

第一章绪论

1.1课题背景与目的

现代社会中,电梯已经成为不可缺少的运输设备。

电梯的存在使得每幢高层建筑的交通更为便利。

电梯控制技术的发展主要经历了三个阶段:

继电器控制阶段,微机控制阶段,现场总线控制阶段。

随着经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速发展,交流变频调速技术已经进入一个崭新的时代,其应用越来越广。

电梯是现代高层建筑的垂直交通工具,其设计要求稳定性、安全性及高。

随着人们生活水平的不断提高,对电梯的要求的也相应提高,电梯得到了快速发展。

电梯模型将机械和电气两方面有机地结合起来,充分体现了机电结合的特点,同时微机控制即单片机控制的电梯在成本上较低,同时还有着较高的精度,非常适合在学生机电实验方面得到广泛的应用,可以提高大家的编程能力,加深对单片机的理解和应用,同时增强创新精神和团队合作精神。

1.2课题研究方法

参照凌阳SPCE061A开发的相关资料,加深对控制电梯模型的单片机的了解,进行61板的相关实验,掌握单片机实现基本功能的技术。

对单片机编写程序,以达到控制电梯模型的目的。

第二章电梯模型硬件设备

2.1实验单片机模型与接口定义

2.1.1实验用单片机

实验用单片机为凌阳SPCE061A微控制器(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发-仿真-电路板。

61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路、复位电路等,采用电池供电,方便携带。

SPCE061A是继u’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。

跟市面上常见的avr、51等单片机相比,这款单片机具有一个绝招:

语言功能。

与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。

较高的处理速度使u’nSP™能够非常容易地、快速地处理复杂的数字信号。

SPCE061A主要包括输入/输出端口、定时/计数器、数/模转换、模/数转换、串行设备输入/输出、通用异步串行接口、低电压检测和复位等部分,且内置在线仿真电路ICE接口,较高的处理速度使其能够快速地处理复杂的数字信号。

本电梯模型就是采用此单片机进行程序编写和实现电梯的运行控制。

Figure1凌阳单片机

2.1.2单片机接口定义

实验用单片机接口定义如图,其中A口为输入,B口为输出。

+—

去一层三层下

去二层四层下

去三层一层到达

去四层二层到达

一层上三层到达

二层上四层到达

二层下开门

三层上关门

+—

—+

电梯上下运行(1上0下)三层下灯

电梯运行选通(1行0停)四层下灯

开关门运行(1开0关)开门到位

开关门选通(1行0禁)关门到位

一层上灯

二层上灯

二层下灯

三层上灯

——

Figure2凌阳单片机接口定义

2.1.3I/O接口DATA控制命令表

单片机A口DATA控制命令表

A口

(信号输入)

*P_IOA_Data

接口编号

电梯动作

0x0001

A0

去一层(内部按键)

0x0002

A1

去二层(内部按键)

0x0004

A2

去三层(内部按键)

0x0008

A3

去四层(内部按键)

0x0010

A4

一层上(外部按键)

0x0020

A5

二层上(外部按键)

0x0040

A6

二层下(外部按键)

0x0080

A7

三层上(外部按键)

0x0100

A8

三层下(外部按键)

0x0200

A9

四层下(外部按键)

0x0400

A10

一层到达(外部按键)

0x0800

A11

二层到达(外部按键)

0x1000

A12

三层到达(外部按键)

0x2000

A13

四层到达(外部按键)

0x4000

A14

开门(内部按键)

0x8000

A15

关门(内部按键)

单片机A口DATA控制命令表

A口

(信号输入)

*P_IOB_Data

接口编号

电梯动作

0x0001

B0

电梯上下运行(1上0下)

0x0002

B1

电梯运行选通(1行0停)

0x0004

B2

开关门运行(1开0关)

0x0008

B3

开关门选通(1行0禁)

0x0010

B4

一层上灯

0x0020

B5

二层上灯

0x0040

B6

二层下灯

0x0080

B7

三层上灯

0x0100

B8

三层下灯

0x0200

B9

四层下灯

0x0400

B10

开门到位

0x0800

B11

关门到位

0x1000

B12

数码管

0x2000

B13

数码管

0x4000

B14

数码管

0x8000

B15

单片机接口属性设置:

*P_IOA_Dir=0

*P_IOA_Attrib=0

*P_IOA_Data=0(设A0-A15口为输入)

*P_IOB_Dir=0xf3ff

*P_IOB_Attrib=0xf3ff(设B0-B9口为输出,B10、B11口为输入)

*P_IOB_Data=0;

2.2电梯控制命令说明

1.一层上按钮按下,*P_IOA_Data输入值为0x0010;

使一层上按键灯亮起的命令为:

*P_IOB_Data=0x0010,同时其它层按键灯熄灭;

如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为:

*P_IOB_Data=0x0010|P_IOB_Data;

2.二层上按钮按下,*P_IOA_Data输入值为0x0020

使二层上按键灯亮起的命令为:

*P_IOB_Data=0x0020同时其它层按键灯熄灭;

如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为:

*P_IOB_Data=0x0020|P_IOB_Data;

3.二层下按钮按下,*P_IOA_Data输入值为0x0040

使二层下按键灯亮起的命令为:

*P_IOB_Data=0x0040时其它层按键灯熄灭;

如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为:

*P_IOB_Data=0x0040|P_IOB_Data;

4.三层上按钮按下,*P_IOA_Data输入值为0x0080

使三层上按键灯亮起的命令为:

*P_IOB_Data=0x0080;同时其它层按键灯熄灭;

如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为:

*P_IOB_Data=0x0080|P_IOB_Data;

5.三层下按钮按下,*P_IOA_Data输入值为0x0100,

使三层下按键灯亮起的命令为:

*P_IOB_Data=0x0100,同时其它层按键灯熄灭;

如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为:

*P_IOB_Data=0x0100|P_IOB_Data;

6.四层下按钮按下,*P_IOA_Data输入值为0x0200,

使四层上按键灯亮起的命令为:

*P_IOB_Data=0x0200,同时其它层按键灯熄灭;

如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为:

*P_IOB_Data=0x0200|P_IOB_Data;

7.电梯内部开门按钮按下,*P_IOA_Data输入值为0x4000,

使电梯开门的命令为:

*P_IOB_Data=0x000c;

8.电梯内部关门按钮按下,*P_IOA_Data输入值为0x8000;

使电梯关门的命令为:

*P_IOB_Data=0x0008。

我们为了能够简化我们的程序,我们在头文件define.h中定义了直观易懂的单词来表示数字指令,这样使得编程过程更加容易直观,并且使得程序的可读性更强,但是这种方法是在之前不断地尝试的基础上才逐渐摸索出来的,因而在后来编写的程序中普遍用到了这种方法,而在开始训练阶段编写的程序还往往是使用数字型的指令,具体的定义如下:

#ifndef__DEFINE_h__

#define__DEFINE_h__

#defineIOA*P_IOA_Data

#defineIOB*P_IOB_Data

#defineuintunsignedint

#defineucharunsignedchar

#defineulongunsignedlong

#definestop0x0000

#definedown0x0002

#defineup0x0003

#definebt1up0x0010

#definebt2up0x0020

#definebt2down0x0040

#definebt3up0x0080

#definebt3down0x0100

#definebt4down0x0200

#definebtin10x0001

#definebtin20x0002

#definebtin30x0004

#definebtin40x0008

#definebtopen0x4000

#definebtclose0x8000

#defineopenok0x0400

#definecloseok0x0800

#definedown0x0002

#defineup0x0003

#defineclose0x0008

#defineopen0x000c

#defineL10x1000

#defineL20x2000

#defineL30x3000

#defineL40x4000

#defineL1up0x0010

#defineL2up0x0020

#defineL2down0x0040

#defineL3up0x0080

#defineL3down0x0100

#defineL4down0x0200

#defineat10x0400

#defineat20x0800

#defineat30x1000

#defineat40x2000

#endif

同时由于看门狗在程序中频繁出现,故定义看门狗函数dog方便使用:

#include"spce061A.h"

#include"dingyi.h"

voiddog()

{

*P_Watchdog_Clear=0x0001;

}

 

2.3实验用电梯模型

 

第三章与电梯模型相关的实验程序

3.1数码管连续显示

3.1.1程序流程图

Figure4数码管连续显示流程图

3.1.2功能简介

程序初始化完成后,数码管从0连续变化到7,再从7连续变化到1。

3.1.3功能实现过程

通过定义一个指示当前数码管显示数值的变量,以该变量为循环条件,每次循环结束后变量自动加1,即指示下一个数码管显示数值,并且通过延时函数使得输出持续一段时间一边观察现象。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1