【毕业设计】49-基于单片机的双电梯控制控制系统设计(原理图工程+仿真工程+源代码工程+答辩论文)
typora-root-url: ./
【毕业设计】49-基于单片机的双电梯控制控制系统设计(原理图工程+仿真工程+源代码工程+答辩论文)
文章目录
- typora-root-url: ./
- 【毕业设计】49-基于单片机的双电梯控制控制系统设计(原理图工程+仿真工程+源代码工程+答辩论文)
- 设计说明书
- 摘要
- 设计框架架构
- 设计说明书及设计文件
- 源码展示
设计说明书
摘要
针对于当前社会所使用的电梯不能达到较高的节能省电的工作,本文设计出一款基于单片机的双电梯控制系统。基于单片机的系统的研究意义在于可以通过用控制的方式直接对物体进行控制,而不需要人为的操控。通过对系统的功能分析,确定系统方案,对系统的元器件选型,最后确定使用主控芯片STC89C52,数码管作为显示器,蜂鸣器作为声学报警装置,独立按键作为电梯按钮。使用AD软件绘制系统原理图,Keil软件C语言编写系统程序。在软件与硬件的设计上均采用模块化的方式设计,并且考虑到系统的抗干扰能力、稳定性来进行设计。最后通过在仿真软件Proteus中搭建电路,烧录程序,最后对系统功能测试实现了系统功能。
资料链接
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
答辩论文低重复率文档,27621字
英文文献及翻译
visio流程图工程
物料清单
设计框架架构
摘 要… 1
ABSTRACT… 1
1 概述… 1
1.1 完成本题的目的和意义… 1
1.2 国内外研究动态… 1
1.3 研究目标和内容… 2
2 总体方案… 3
2.1 硬件方案的选择… 3
2.1.1 主控芯片的选择… 3
2.1.2 显示器件的选择… 4
2.1.3 电机的选择… 4
2.2 系统总体方案… 5
3 硬件的介绍与搭接… 7
3.1 STC89C52单片机系统设计… 7
3.1.1 STC89C52的概述… 7
3.1.2 复位电路设计… 8
3.1.3 晶振电路设计… 9
3.2 电源电路设计… 10
3.3 按键及LED电路设计… 10
3.4 电机及驱动电路设计… 11
3.4.1 步进电机工作原理介绍 11
3.4.2 步进电机驱动电路设计 14
3.5 蜂鸣器报警电路设计… 15
3.6 数码管显示电路设计… 16
4 软件设计… 19
4.1 软件开发环境的介绍… 19
4.2 系统重要函数的介绍… 20
4.2.1 主函数的设计… 20
4.2.2 数码管显示函数的设计 21
4.2.3 楼层按键控制函数设计 21
4.2.4 电机控制函数设计… 22
5 基于单片机的双电梯控制仿真实现 25
5.1 开发工具介绍… 25
5.2 仿真电路搭建与调试… 25
5.3 仿真测试… 27
6 结论与心得… 32
参考文献… 33
中文译文… 43
致 谢… 49
附件一… 51
附件二… 79
附件三… 81
附件四… 83
设计说明书及设计文件
源码展示
#include <REG52.H>
#include <INTRINS.H>
///电梯1//
unsigned char ucMotorDrvPuls1; //电机运转时初始值
unsigned char FORREV1=1; //1表示上行,0表示下行
unsigned char STOPCUR1=0;//1电梯停留在当前层,0不停留
unsigned char CURFLR1=1; //当前所在楼层
unsigned char count1=0; //累计到COUNT即表示运行过一层
///电梯2//
unsigned char ucMotorDrvPuls; //电机运转时初始值
unsigned char FORREV=1; //1表示上行,0表示下行
unsigned char STOPCUR=0;//1电梯停留在当前层,0不停留
unsigned char CURFLR=1; //当前所在楼层
unsigned char count=0; //累计到COUNT即表示运行过一层
#define UCTIMES 8 //设置电机转速
#define OUTPUT P2 //电机驱动信号口
#define COUNT 8 //电机每循环8次表示电梯经过一层楼
sbit UP1=P3^4;
sbit DOWN2=P3^3;
sbit UP2=P3^2;
sbit DOWN3=P3^1;
sbit UP3=P3^0;
sbit DOWN4=P1^7;
sbit FLOOR1=P1^0;
sbit FLOOR2=P1^1;
sbit FLOOR3=P1^2;
sbit FLOOR4=P1^3;
sbit START=P1^4;
sbit STOP=P1^5;
sbit ALARM=P1^6;
//报警位
sbit alarmBit=P3^5;
sbit alarmBit1=P0^7;
sbit upLight=P3^6;
sbit downLight=P3^7;
void time(unsigned int ucMs);//延时单位:ms
void outPress();//按下电梯外按钮
void outPress1();//1111按下电梯外按钮
unsigned char inPress();//按下电梯内楼层按钮
unsigned char elevator();//到达某一层返回1,否则返回0
unsigned char elevator1();//到达某一层返回1,否则返回0
void storeUP(unsigned char);//存储当前所有上行请求
void storeDOWN(unsigned char);//存储当前所有下行请求
void storeUP1(unsigned char);//存储当前所有上行请求
void storeDOWN1(unsigned char);//存储当前所有下行请求
//延时函数
void time(unsigned int ucMs);
//初始化所有灯
void initLights(void);
//设置当前楼层
void setFloor(int floor);
void setFloor1(int floor);
//设置电梯向上运行灯
void setUpLight();
//设置电梯向下运行灯
void setDownLight();
//设置电梯停止运行灯
void setStopLight();
//设置电梯向上运行灯
void setAlarmLight();
//设置电梯报警灯和喇叭
void setAlarmLight();
//关闭电梯报警灯和喇叭
void offAlarmLight();
//报警开关
int alarmSwitch=1;
电梯1/
unsigned char UP_req1[5]={0,0,0,0,0}; //上行请求
unsigned char DOWN_req1[5]={0,0,0,0,0}; //下行请求
电梯2/
unsigned char UP_req[5]={0,0,0,0,0}; //上行请求
unsigned char DOWN_req[5]={0,0,0,0,0}; //下行请求
//电机定位2
void position1(void)
{OUTPUT=0x01|(P2&0x0f);time(200);OUTPUT=0x02|(P2&0x0f);time(200);OUTPUT=0x04|(P2&0x0f);time(200);OUTPUT=0x08|(P2&0x0f);time(200);ucMotorDrvPuls1=0x11;OUTPUT=0x01|(P2&0x0f);
}
//电机定位2
void position(void)
{OUTPUT=0x01|(P2&0xf0);time(200);OUTPUT=0x02|(P2&0xf0);time(200);OUTPUT=0x04|(P2&0xf0);time(200);OUTPUT=0x08|(P2&0xf0);time(200);ucMotorDrvPuls=0x11;OUTPUT=0x01|(P2&0xf0);
}
/****************************************/
/* 主函数 */
/****************************************/
void main(void)
{ time(100);initLights();position();//电机定位position1();//电机定位ucMotorDrvPuls=0x11;OUTPUT=0x00|(P2&0xf0);//电机停止 ucMotorDrvPuls1=0x11;OUTPUT=0x00|(P2&0x0f);//电机停止 setFloor(CURFLR);setFloor1(3);setUpLight();time(100); while(1)//主循环{ unsigned char set=0;outPress();//按下电梯外按钮outPress1();//按下电梯外按钮 while(STOPCUR==1)//电梯在当前层,电梯不动,可以继续接受请求{outPress();outPress1(); inPress();} if(inPress())//按下电梯内楼层按钮{while(START)//等待启动按键按下,电梯不动,可以继续接受请求{outPress();outPress1();inPress();}} while(1)//电机运转循环{if(set=0) //电梯1//{ set=0; if(UP_req1[1]==0&&UP_req1[2]==0&&UP_req1[3]==0&&DOWN_req1[2]==0&&DOWN_req1[3]==0&&DOWN_req1[4]==0) {break;//没有请求,跳出电机运转循环,电梯不动} if(FORREV1)//上行 { setUpLight();//上行灯亮if(STOPCUR1==1){break;}//if(elevator1())//往上到达某一层{if(CURFLR1==4) {setDownLight();break;}//到达四楼}OUTPUT=(ucMotorDrvPuls1&0xf0)|(P2&0x0f);ucMotorDrvPuls1=_crol_(ucMotorDrvPuls1,1);}if(!FORREV1)//下行{setDownLight();//下行灯亮
;if(STOPCUR1==1){break;}if(elevator1())//往下到达某一层{if(CURFLR1==1) {setUpLight();break;}//到达一楼}OUTPUT=(ucMotorDrvPuls1&0xf0)|(P2&0x0f);ucMotorDrvPuls1=_cror_(ucMotorDrvPuls1,1);} outPress();//按下电梯外按钮outPress1();//按下电梯外按钮 //if(inPress())//按下电梯内楼层按钮//{// while(START)//等待启动按键按下//{outPress();inPress();//电梯运行时,内部按钮按下,无需按启动按钮// }//}time(380-UCTIMES*16); OUTPUT=0x00|(P2&0xf0);break;//电机停止,有请求时按下启动按钮启动}else电梯2 {set=1;if(UP_req[1]==0&&UP_req[2]==0&&UP_req[3]==0&&DOWN_req[2]==0&&DOWN_req[3]==0&&DOWN_req[4]==0) {break;//没有请求,跳出电机运转循环,电梯不动} if(FORREV)//上行 { setUpLight();//上行灯亮if(STOPCUR==1){break;}//if(elevator())//往上到达某一层{if(CURFLR==4) {setDownLight();break;}//到达四楼}OUTPUT=(ucMotorDrvPuls&0x0f)|(P2&0xf0);ucMotorDrvPuls=_crol_(ucMotorDrvPuls,1);}if(!FORREV)//下行{setDownLight();//下行灯亮
;if(STOPCUR==1){break;}if(elevator())//往下到达某一层{if(CURFLR==1) {setUpLight();break;}//到达一楼}OUTPUT=(ucMotorDrvPuls&0x0f)|(P2&0xf0);ucMotorDrvPuls=_cror_(ucMotorDrvPuls,1);} outPress1();//按下电梯外按钮//if(inPress())//按下电梯内楼层按钮//{// while(START)//等待启动按键按下//{// outPress();inPress();//电梯运行时,内部按钮按下,无需按启动按钮// }//}time(380-UCTIMES*16);break;}//end while-电机运转循环
// }OUTPUT=0x00|(P2&0xf0);//电机停止,有请求时按下启动按钮启动}
【毕业设计】49-基于单片机的双电梯控制控制系统设计(原理图工程+仿真工程+源代码工程+答辩论文)相关推荐
- 【毕业设计】基于单片机的指纹识别门禁系统设计 -物联网 stm32 嵌入式
文章目录 1 简介 2 绪论 2.1 课题背景 2.2 项目内容 3 系统设计 3.1 系统架构 3.2 硬件设计 3.3 指纹识别模块的程序设计 3.3.1 指纹录入 3.3.2 指纹识别代码流程 ...
- 【毕业设计】基于单片机的自动浇花灌溉系统设计 -嵌入式 物联网 stm32 c51
文章目录 1 简介 2 主要器件 3 实现效果 4 设计原理 5 关键代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于单片机的自动浇花灌溉系统设计 大 ...
- 基于8086简易电子琴系统仿真设计-基于8086红外自动门控制系统设计-基于单片机8x8矩阵键盘两机串口通信-基于单片机8层电梯控制系统仿真设计-基于单片机ADC0809和DAC0832模数和数模设计
1189基于8086简易电子琴系统仿真设计-设计资料 编写一实现电子琴的程序,并实现若干扩展功能. 基本功能:用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶: 扩展功 ...
- 【单片机毕业设计】【mcuclub-jj-002】基于单片机的三层电梯的设计
最近设计了一个项目基于单片机的三层电梯系统,与大家分享一下: 一.基本介绍 项目名:三层电梯 项目编号:mcuclub-jj-002 单片机类型:STC89C52 具体功能: 1.通过3个楼层键和两个 ...
- 基于单片机的四层电梯控制系统设计
目录 4层电梯单片机控制设计 4 设计任务 4 整体方案设计 5 系统硬件电路设计 6 3.1 单片机最小系统电路 6 图3-1 单片机最小系统电路图 6 3.2 开关控制电路 7 图3-2 开关控制 ...
- 基于单片机霍尔电机测速仪表控制系统设计(毕业设计资料)
107[电路方案]基于单片机霍尔电机测速仪表控制系统设计 [资源下载]下载地址如下: https://docs.qq.com/doc/DTlRSd01BZXNpRUxl 摘要: 产品功能描述: 本系统 ...
- 基于单片机的三层电梯设计
设计简介: 本设计是基于单片机的三层电梯设计,主要实现以下功能: ①可实现通过内机按键和外机按键控制电梯到达楼层 ②可实现通过一个四相步进电机控制电梯升降,另一个四相步进电机控制电梯开关门 ③可实现通 ...
- 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计
1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告) 摘 要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...
- 基于单片机的地铁(公交)无线控制报站系统设计 地铁报站系统设计 公交报站系统设计
系统设计前言 基于单片机的地铁(公交)无线控制报站系统设计是酷毕啦电子设计室报站系列的无线控制版本,无线控制的特点是布线少.控制方便等功能,体现出物联网控制的技术.介于大部分需求的群体都是本科设计,所 ...
最新文章
- CVPR 2021 | 记录SCRFD人脸检测C++工程化(含docker镜像)
- java data使用_@Data注解详解及使用方法-Fun言
- Android--使用AIDL和远程服务实现线程通信
- STM32 基础系列教程 24 - USB_HID_key
- Python中的join()函数和split()函数的用法
- cuba 平台_认识CLI for CUBA平台
- Linux下修改只读文件
- python的功能名称_ML获取功能选择后的功能名称SelectPercentile,python
- linux模拟cpu过载,linux下模拟CPU占用100%小程序
- SocketDataHandler ConcurrentAsyncQueue Server/Client
- 10000元重金奖励:谁能开发这样的编辑软件程序,编辑软件功能说明
- 优思学院|朱兰,质量改进的先驱者
- vue中使用阿里字体图标库
- 【机器人学习】六足机器人的步态分析与稳定行走(分析报告+matlab代码)
- 从数据可视化模板,到数据分析方案,都整理给你了!
- matlab求一个数的位数字,matlab求一个三位整数各位数字的立方和等于该数本身则称为...
- 计算机维修志愿活动策划书,家电义务维修志愿者活动项目策划书.docx
- 下载了免费的epub电子书,如何用Windows电脑打开?
- 真是太有用了——整理央视《家有妙招》不看别后悔幺
- 丁书苗发家过程披露:结识刘志军后财富增10倍