《综合电子创新训练》研究报告研究题目:CTS1600-1控制技术综合试验院系名称:专业名称:学生姓名:指导教师:xxxx年 xx月 xx日xxxxxxxxxx目录第一章绪论 (1)1.1课题背景与目的 (1)1.2课题研究方法 (1)第二章电梯模型硬件设备 (2)2.1 实验单片机模型与接口定义 (2)2.1.1 实验用单片机 (2)2.1.2 单片机接口定义 (3)2.1.3 I/O接口DATA控制命令表 (4)2.2 电梯控制命令说明 (6)2.3 实验用电梯模型 (8)第三章与电梯模型相关的实验程序 (10)3.1数码管连续显示 (10)3.1.1 程序流程图 (10)3.1.2 功能简介 (10)3.1.3 功能实现过程 (11)3.1.4 问题的解决及收获 (11)3.2 外部按键灯连续闪烁 (12)3.2.1 程序流程图 (12)3.2.2 功能简介 (12)3.2.3 功能实现过程 (12)3.2.4 问题的解决及收获 (13)3.3 键、灯、数码管 (14)3.3.2 功能简介 (14)3.3.3 功能实现过程 (14)3.3.4 问题的解决及收获 (15)3.4 外部按键上下行 (16)3.4.1 程序流程图 (16)3.4.2 功能简介 (16)3.4.3 功能实现过程 (17)3.4.4 问题的解决及收获 (18)3.5 计算器 (19)3.5.1 程序流程图 (19)3.5.2 功能简介 (21)3.5.3 功能实现过程 (21)3.5.4 问题的解决及收获 (22)3.6 密码锁 (23)3.6.1程序流程图 (23)3.6.2功能简介 (23)3.6.3实现功能过程 (24)3.6.4问题的解决及收获 (24)3.7逐层停自动开关门循环 (25)3.7.1程序流程图 (25)3.7.2功能简介 (27)3.7.3实现功能过程 (27)3.7.4问题的解决及收获 (27)3.8 可记录顺序逐层停自动开关门 (28)3.8.2功能简介 (28)3.8.3实现功能过程 (29)3.8.4问题的解决及收获 (29)3.9 外部按键电梯 (30)3.9.1 主程序 (30)3.9.2 开关门模块 (31)3.9.3 上下行模块 (32)3.9.4 LED模块 (34)第四章电梯模型完整控制程序 (36)4.1 完整控制程序(main函数) (36)4.1.1 功能说明 (36)4.1.2 功能实现过程 (37)4.1.3 问题的解决及收获 (37)4.2 按键扫描模块(getto函数) (37)4.2.1功能简介 (38)4.2.2 问题的解决及收获 (38)4.3 当前层判断模块(getat函数) (38)4.3.1 功能简介 (38)4.3.2 问题的解决及收获 (38)4.4 电梯门的选通、禁止模块(DoorEnable函数) (38)4.4.1 功能简介 (38)4.4.2 问题的解决及收获 (38)4.5 电梯开关门模块(openandclose函数) (39)4.5.2 功能实现过程 (39)4.5.3 问题的解决及收获 (39)第五章总结与致谢 (41)5.1 总结 (41)5.2 致谢 (41)附录控制电梯模型相关程序 (42)附录一数码管连续显示 (42)附录二外部按键灯连续闪烁 (43)附录三外部按键逐个亮灭 (45)附录四键、灯、数码管 (47)附录五外部按键上下行 (49)附录六计算器 (51)附录七密码锁 (56)附录八逐层停开关门循环 (59)附录九可记录顺序逐层停自动开关门 (64)附录十外部按键电梯 (70)附录十一完整电梯程序 (77)图目录Figure 1 凌阳单片机 (2)Figure 2 凌阳单片机接口定义 (3)Figure 3 实验用电梯模型 (9)Figure 4 数码管连续显示流程图 (10)Figure 5 外部按键灯连续闪烁流程图 (12)Figure 6 LED1to7流程图 (13)Figure 7 键、灯、数码管流程图 (14)Figure 8 外部按键上下行流程图 (16)Figure 9 计算器数字扫描函数流程图 (19)Figure 10 计算器主函数流程图 (20)Figure 11 密码锁流程图 (23)Figure 12 逐层停自动开关门循环main函数 (25)Figure 13 逐层停自动开关门循环AtAndTo函数 (26)Figure 14 逐层停自动开关门循环OpenAndClose函数 (26)Figure 15 可记录顺序逐层停自动开关门 (28)Figure 16 外部按键电梯主函数流程图 (30)Figure 17 外部按键电梯开关门函数流程图 (31)Figure 18 外部按键电梯上下行函数流程图 (32)Figure 19 外部按键电梯LED函数流程图 (34)Figure 20 外部按键电梯btLED函数流程图 (35)Figure 21 电梯完整程序主函数 (36)Figure 22 电梯完整程序openandclose函数流程图 (39)第一章绪论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接口,较高的处理速度使其能够快速地处理复杂的数字信号。
本电梯模型就是采用此单片机进行程序编写和实现电梯的运行控制。
Figure 1 凌阳单片机2.1.2 单片机接口定义实验用单片机接口定义如图,其中A 口为输入,B 口为输出。
+—三层下四层下 一层到达二层到达 三层到达 四层到达开门关门+ —— +三层下灯四层下灯开门到位关门到位— — Figure 2 凌阳单片机接口定义2.1.3 I/O接口DATA控制命令表单片机A口DATA控制命令表单片机A口DATA控制命令表单片机接口属性设置:*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__#define IOA *P_IOA_Data#define IOB *P_IOB_Data#define uint unsigned int#define uchar unsigned char#define ulong unsigned long#define stop 0x0000#define down 0x0002#define up 0x0003#define bt1up 0x0010#define bt2up 0x0020#define bt2down 0x0040#define bt3up 0x0080#define bt3down 0x0100#define bt4down 0x0200#define btin1 0x0001#define btin2 0x0002#define btin3 0x0004#define btin4 0x0008#define btopen 0x4000#define btclose 0x8000#define openok 0x0400#define closeok 0x0800#define down 0x0002#define up 0x0003#define close 0x0008#define open 0x000c#define L1 0x1000#define L2 0x2000#define L3 0x3000#define L4 0x4000#define L1up 0x0010#define L2up 0x0020#define L2down 0x0040#define L3up 0x0080#define L3down 0x0100#define L4down 0x0200#define at1 0x0400#define at2 0x0800#define at3 0x1000#define at4 0x2000#endif同时由于看门狗在程序中频繁出现,故定义看门狗函数dog方便使用:#include "spce061A.h"#include "dingyi.h"void dog(){*P_Watchdog_Clear=0x0001;}2.3 实验用电梯模型Figure 3 实验用电梯模型第三章与电梯模型相关的实验程序3.1数码管连续显示3.1.1 程序流程图Figure 4 数码管连续显示流程图3.1.2 功能简介程序初始化完成后,数码管从0连续变化到7,再从7连续变化到1。