收藏 分享(赏)

单片机控制电梯模型教学教1(6).doc

上传人:weiwoduzun 文档编号:2317834 上传时间:2018-09-10 格式:DOC 页数:131 大小:919.50KB
下载 相关 举报
单片机控制电梯模型教学教1(6).doc_第1页
第1页 / 共131页
单片机控制电梯模型教学教1(6).doc_第2页
第2页 / 共131页
单片机控制电梯模型教学教1(6).doc_第3页
第3页 / 共131页
单片机控制电梯模型教学教1(6).doc_第4页
第4页 / 共131页
单片机控制电梯模型教学教1(6).doc_第5页
第5页 / 共131页
点击查看更多>>
资源描述

1、1单片机控制电梯模型教学教案: 蒋 龙2010 年 6 月 23 日2工 程 训 练 中 心目录电梯模型 4绪论 51.课题背景与目的 52.课题研究方法 5第一章 电梯模型硬件设备 61.1 实验单片机模型与接口定义 61.1.1 实验单片机模型 .61.1.2 单片机接口定义 .61.1.3 I/O 接口 DATA 控制命令表 81.2 电梯控制命令说明 .10第二章 灯控制程序 .112.1 灯从下到上循环亮 112.1.1 流程图 .112.1.2 程序 .112.1.3 功能简介及实现过程 .122.2 灯从下到上依次亮(后一个亮时前一个保持亮) .132.2.1 流程图 .132.

2、2.2 程序 132.2.3 功能简介及实现过程 .142.3 灯成组亮 .152.3.1 流程图 .152.3.2 程序 .152.3.3 功能简介及实现过程 .162.4 数码显示 .172.4.1 流程图 .172.4.2 程序 .172.4.3 功能简介及实现过程 .18第三章 按键与灯控制 193.1 按电梯按键,相应灯亮并保持 .193.1.1 流程图 .193.1.2 程序 .1933.1.3 功能简介及实现过程 .203.1.4 方法及建议 .213.2 按电梯按键,相应灯亮但之前的灭掉 213.2.1 流程图 .213.2.2 程序 .213.2.2 功能简介及实现过程 .2

3、23.2.3 方法及建议 .233.3 按电梯按键,数码管显示相应层数 .233.3.1 流程图 .233.3.2 程序 .233.3.3 功能简介及实现过程 .243.3.4 方法及建议 .25第四章 电梯上下运行 264.1 电梯三四层无开关门无层数显示循环运作 264.1.1 流程图 .264.1.2 程序 .274.1.3 功能简介及实现过程 .284.1.4 方法及建议 .284.2 电梯三四层无开关门有层数显示循环运作 294.2.1 流程图 .294.2.2 程序 .304.2.3 功能简介及实现过程 .314.2.4 方法及建议 .31第五章 电梯开关门控制 325.1 程序控

4、制电机实现简单开、关门 .325.1.1 开门控制 .32(1)流程图 32(2)程序 .32(3)功能简介及实现过程 335.1.2 关门控制 .33(1)流程图 33(2)程序 .33(3)功能简介及实现过程 345.2 三四层有开关门循环运作 345.2.1 流程图 .345.2.2 程序 .345.2.3 功能简介及实现过程 .365.2.4 方法及建议 .36第六章 按键控制开关门 376.1 按键电梯开门 .3746.1.1 流程图 .376.1.3 功能简介及实现过程 .386. 2 按键电梯关门 386.2.1 流程图 .386.2.2 程序 .386.2.3 功能简介及实现过

5、程 .396.3 按键电梯开关门 .396.3.1 流程图 .396.3.2 程序 .406.3.3 功能简介及实现过程 .40第七章 电梯完整程序流程图 417.1 电梯自检程序 .417.1.1 流程图 .417.1.2 功能简介及实现过程 .427.1.3 问题与解决 .427.2 内外按键控制程序 .437.2.1 程序流程图 437.2.2 功能简介及实现过程 447.2.3 问题与解决 447.3 四层完整控制程序 447.3.1 流程图 .447.3.2 功能简介及实现过程 .477.3.3 问题与解决 .517.4 按键信号扫描模块 .537.4.1 程序流程图 .537.4.

6、2 功能简介及实现过程 .547.4.3 问题与解决 .547.5 开关门模块 557.5.1 流程图 .557.5.2 功能简介及实现过程 .557.6 电梯语音控制程序 577.6.1 程序流程图 .577.6.2 功能简介及实现过程 .58第八章 电梯模型制作 608.1 制作背景与要求 .608.2 制作图纸和工艺过程 608.2.1 电梯加工工艺卡 .648.3 取料加工 .658.4 组装 655第九章 总结与致谢 .669.1 总结 .66绪论1.背景与目的 据统计,我国在用电梯 34.6 万多台,每年还以约 5-6 万台的速度增长。电梯服务中国已有 100 多年的历史,而我国在

7、用电梯数量的快速增长却发生在改革开放以后,目前我国电梯技术水平已与世界同步。电梯模型将机械和电气两方面有机的结合起来,充分体现了机电结合的特点,并且可以在学生机电实验方面得到广泛的应用。2.研究方法参照凌阳 SPCE061A 开发的相关资料,加深对控制电梯模型的单片机的了解。进行 61 板的相关实验,掌握单片机实现基本功能的技术。对单片机编写程序,以达到控制电梯模型的目的。6第一章 电梯模型硬件设备1.1 实验单片机模型与接口定义1.1.1 实验单片机模型实验用单片机(图 2.1)为凌阳 SPCE061A 微控制器(简称 61 板) ,是以凌阳 16 位单片机 SPCE061A 为核心的精简开

8、发仿真实验板。61 板除了具备单片机最小系统电路外,还包括有电源电路、音频电路、复位电路等,采用电池供电,方便携带。图 1.1 凌阳 SPCE061A单片机SPCE061A 主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且7内置在线仿真电路 ICE 接口,较高的处理速度使其能够快速的处理复杂的数字信号。本电梯模型就是采用此单片机进行程序编写与实现电梯的运行控制。1.1.2 单片机接口定义实验单片机的接口定义如图 1.2,其中 A 口为输入,B 口为输出。去 三 层去 一 层去 四 层去 二 层 三 层 下二 层 到

9、 达一 层 到 达四 层 下+ +一 层 上二 层 上二 层 下三 层 上 三 层 到 达四 层 到 达开 门关 门+ +电 梯 上 下 运 行( 1上 /0下 )电 梯 运 行 选 通( 1行 /0停 )开 关 门 运 行( 1开 /0关 )开 关 门 选 通( 1行 /0禁 )一 层 上 灯二 层 上 灯三 层 上 灯二 层 下 灯 三 层 下 灯四 层 下 灯开 门 到 位关 门 到 位10 3020 40A01A23A45A67A89A101A1213A1415B0 B81B1514B1312B1109B76B54B32实验单片机接口电梯内按键各楼层按键各楼层按键电梯内按键各楼层按键灯

10、各楼层按键灯8图 1.2单片机输入输出接口定义1.1.3 I/O 接口 DATA 控制命令表表 1.1 是单片机 A 口 Data 控制命令表:表 1.1*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 一

11、层到达0x0800 A11 二层到达0x1000 A12 三层到达0x2000 A13 四层到达A 口(信号输入)0x4000 A14 开门(内部按键)90x8000 A15 关门(内部按键)表 1.2 是单片机 B 口 Data 控制命令表:表 1.2:*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 三层上

12、灯0x0100 B8 三层下灯0x0200 B9 四层下灯0x0400 B10 开门到位0x0800 B11 关门到位0x1000 B12B 口(信号输出)0x2000 B13数码管显示层数100x4000 B140x8000 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;1.2电梯控制命令说明1. 一层上按钮按下, *P_IOA_Da

13、ta 输入值为 0x0010,使一层上按键灯亮起的命令为:*P_IOB_Data=0x0010,其他层按键灯不受影响。2. 二层上按钮按下, *P_IOA_Data 输入值为 0x0020,使二层上按键灯亮起的命令为:*P_IOB_Data=0x0020,其他层按键灯不受影响。3. 二层下按钮按下, *P_IOA_Data 输入值为 0x0040,使二层下按键灯亮起的命令为:*P_IOB_Data=0x0040,其他层按键灯不受影响。4. 三层上按钮按下, *P_IOA_Data 输入值为 0x0080,使三层上按键灯亮起的命令为:*P_IOB_Data=0x0080,其他层按键灯不受影响。5

14、. 三层下按钮按下, *P_IOA_Data 输入值为 0x0100,使三层下按键灯亮起的命令为:*P_IOB_Data=0x0100,其他层按键灯不受影响。116. 四层下按钮按下, *P_IOA_Data 输入值为 0x0200,使四层下按键灯亮起的命令为:*P_IOB_Data=0x0200,其他层按键灯不受影响。7. 电梯内部开门按钮按下,*P_IOA_Data 输入值为 0x4000,使电梯开门的命令为:*P_IOB_Data=0x000c,电梯执行开门动作。8. 电梯内部关门按钮按下,*P_IOA_Data 输入值为 0x8000,使电梯关门的命令为:*P_IOB_Data=0x0

15、008,电梯执行关门动作。第二章 灯控制程序2.1 灯从下到上循环亮2.1.1 流程图2.1.2 程序#include #define D1 0x0010#define D20 0x0040开始系统初始化输出单个灯控制信号相应的灯亮起12#define D21 0x0020#define D30 0x0100#define D31 0x0080#define D4 0x0200void dly (unsigned int undly)int m;for(m=0;m#define D1 0x0010#define D20 0x0050#define D21 0x0070#define D30 0

16、x0170 #define D31 0x01f0#define D4 0x03f0void dly (unsigned int undly)int m;for(m=0;m#define D1 0x0050#define D20 0x0120开始系统初始化同时输出多个灯控制信号相应的灯亮起16#define D21 0x0280#define D30 0x0070 #define D31 0x0380#define D4 0x03f0void dly (unsigned int undly)int m;for(m=0;mvoid main(void) *P_IOA_Dir=0;*P_IOA_At

17、trib=0;*P_IOA_Data=0;*P_IOB_Dir=0xf3ff;*P_IOB_Attrib=0xf3ff;*P_IOB_Data=0;while(1)*P_IOB_Data=0x2000;*P_Watchdog_Clear=0x0001;2.4.3 功能简介及实现过程本程序实现的功能非常简单,就是让数码管显示一个数字 2。实现的过程开始系统初始化输出数字显示信号显示相应的数字19也比较简单,只需将要显示的楼层数输入到相应的端口地址内就行了。第三章 按键与灯控制3.1 按电梯按键,相应灯亮并保持3.1.1 流程图开始20NY3.1.2 程序#include void main()

18、int input,t=0;*P_IOA_Dir=0;*P_IOA_Attrib=0;*P_IOA_Data=0;*P_IOB_Dir=0xf3ff;*P_IOB_Attrib=0xf3ff;*P_IOB_Data=0;while(1)t=*P_IOA_Data;if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;系统初始化按键信号扫描是否有按键信号请求相应按键灯亮21if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x

19、0001;if(t*P_Watchdog_Clear=0x0001;*P_Watchdog_Clear=0x0001;3.1.3 功能简介及实现过程通过按电梯外部按键,相应按键会亮灯并保持住。本程序通过对系统的初始化之后,识别电梯外部按键,即将 A 口定义为相应的按键层数,然后 B 口得到相应的信号,使电梯按键灯亮起。例如:按电梯 2 层上按键,则对应的 A 口即为*P_IOA_Data=0x0020,此时 B 口*P_IOB_Data=0x0020,即二层上按键亮起;再按四层下按键,则四层下按键灯亮起,此时二层上和四层下灯都亮着,依次类推。这里涉及到“或语句”,即在执行下一条命令时,不会破坏

20、之前的定义值,如之前的 B 口为*P_IOB_Data=0x0100,即三层下灯亮,如果接下来按三层上键,则*P_IOB_Data=*P_IOB_Data|0x0080,即此时*P_IOB_Data=0x01800, 三层上键和下键的灯都亮。3.1.4 方法及建议此程序的方法基础即按键控制灯亮,通过把按键信号传给 A 口,经单片机识别之后执行 B 口命令,则相应的灯亮起,编程时注意不要把相应的端口定义错,并且注意看门狗的使用,以免程序自动跳出,最重要的是对“或”语句的理22解和使用。3.2 按电梯按键,相应灯亮但之前的灭掉3.2.1 流程图NY 3.2.2 程序#include void ma

21、in() int input,t=0;*P_IOA_Dir=0;*P_IOA_Attrib=0;*P_IOA_Data=0;*P_IOB_Dir=0xf3ff;*P_IOB_Attrib=0xf3ff;*P_IOB_Data=0;开始系统初始化按键信号扫描是否有按键信号请求相应按键亮灯, 之前的灯灭23while(1)t=*P_IOA_Data;if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;if(t*P_Wat

22、chdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;*P_Watchdog_Clear=0x0001;3.2.2 功能简介及实现过程通过按电梯外部按键,相应按键会亮灯。本程序通过对系统的初始化之后,识别电梯外部按键,即将 A 口定义为相应的按键层数,然后 B 口得到相应的信号,使电梯按键灯亮起。例如:按电梯 2 层上按键,则对应的 A 口即为*P_IOA_Data=0x0020,此时 B 口*P_IOB_Data=0x0020,即二层上按键亮起;再按四层下按键,则四层下按键灯亮起,此时二层灯会灭掉,这里涉及到“与语句”, 注意体会它与“或语句”的区别

23、和使用方法,如之前的 B 口为*P_IOB_Data=0x0100,即三层下灯亮,如果接下来按三层上键,则*P_IOB_Data=*P_IOB_Data|0x0080,即此时*P_IOB_Data=0x01800,三层上键24和下键的灯都亮,再执行“与语句 *P_IOB_Data=*P_IOB_Data*P_IOA_Dir=0;*P_IOA_Attrib=0;*P_IOA_Data=0;*P_IOB_Dir=0xf3ff;*P_IOB_Attrib=0xf3ff;*P_IOB_Data=0;while(1)t=*P_IOA_Data;if(t*P_Watchdog_Clear=0x0001;i

24、f(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;if(t*P_Watchdog_Clear=0x0001;*P_Watchdog_Clear=0x0001;3.3.3 功能简介及实现过程通过按电梯外部按键,数码管能显示相应的层数。本程序通过对系统的初始化之后,识别电梯外部按键,即将 A 口定义为相应的按键层数,然后 B 口得26到相应的信号,使数码管显示相应的层数。例如:按电梯 2 层上按键,则对应的 A 口即为*

25、P_IOA_Data=0x0020,此时 B 口*P_IOB_Data=0x2000,即数码管显示 2 层。3.3.4 方法及建议此程序相对基础,对单片机的接口定义的理解很有帮助,编辑时注意接口对应即可,对程序做一些自己的改动以实现新的功能,可练习对单片机的灵活使用。27第四章 电梯上下运行4.1 电梯三四层无开关门无层数显示循环运作4.1.1 流程图YN NY开始系统初始化是否有关门到位信号关门电梯上行是否四层到达28NY4.1.2 程序#include void main() int i,j,p;*P_IOA_Dir=0;*P_IOA_Attrib=0;*P_IOA_Data=0;*P_I

26、OB_Dir=0x0300;*P_IOB_Attrib=0x0300;*P_IOB_Data=0;while(1)p=*P_IOB_Data;if(p*P_IOB_Data=*P_IOB_Data|0x0008;*P_IOB_Data=0x0003;while(1)if(*P_IOA_Data=0x2000)for(i=0;i300;i+)for(j=0;ji;j+) *P_Watchdog_Clear=0x0001;电梯下行是否三层到达暂停暂停29break; while(1)*P_IOB_Data=0x0002;if(*P_IOA_Data=0x1000)*P_IOB_Data=0x000

27、0;*P_Watchdog_Clear=0x0001;for(i=0;i300;i+)for(j=0;ji;j+) *P_Watchdog_Clear=0x0001;break;*P_Watchdog_Clear=0x0001;*P_IOB_Data=0x0003;4.1.3 功能简介及实现过程此程序功能为电梯在两层之间循环运作,主要应用了电梯上下运行语句和判断是否到达某层语句。首先初始化程序,然后判断是否关门到位,因为只有在关门到位的时候才可以使电梯上下运行,语句*P_IOB_Data=0x0003 为电梯上行控制语句,当电梯到达四层时,判断是否到达,即是否满足*P_IOA_Data=0x2000, 若到达,可以延迟一段时间(注:此延迟时间可以自己控制其大小)然后下行,循环下去。4.1.4 方法及建议本程序主要注意判断语句和运行语句的逻辑顺序及综合运用问题,在实际操作中常会遇到电梯停止运行问题,此时应首先看一下是否有加看门狗,以免30程序自动跳出,另外在调试过程中也可进行单步运行,检查程序运行到哪一步,帮助我们检查。4.2 电梯三四层无开关门有层数显示循环运作4.2.1 流程图YN N开始系统初始化是否有关门到位信号关门电梯上行是否四层到达

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报