毕设--基于单片机的感应自动门控制器的设计
更新时间:2024-06-10 13:26:01 阅读量: 综合文库 文档下载
华北理工大学轻工学院
QINGGONG COLLEGE, NORTH CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY
毕业设计说明书
设计题目:基于单片机的感应自动门控制器的设计
学生姓名: 学 号: 专业班级:
学 部:信息科学与技术部 指导教师:
2015年06月09日
摘 要 摘 要
现如今自动化、信息化程度越来越高,单片机的应用领域也越来越广,成为人们生活不可或缺的一部分。随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,以单片机为核心的自动门系统就是其中之一。同时也标志着自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。
本论文着重研究设计了以89C52单片机为主体,热释电型红外线传感器,直流步进电动机等为核心的自动门控制系统。它充分发挥了单片机的性能,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高,具有一定的使用和参考价值。
关键词 自动门;单片机;步进电机;热释电型红外线传感器
-I-
Abstract Abstract
Nowadays automation, informationization level is higher and higher, MCU application field is becoming more and more widely, become an indispensable part of people's life. With the development of the society, the progress of science and technology and the improving of people's living standard, all kinds of convenience in life start into the automatic control system of people's lives, with the single chip processor as the core of the automatic door system is one of them. Also marks the automatic controlled field became a member of the digital age. Its practicability is strong, the function is all ready, technology advanced, make people believe it's the result of scientific and technological progress. It is more to understand people, the development of the digital era will change human life, will speed up the development of science and technology.
This paper focuses on the design with 89C52 as the main body, pyroelectric infrared sensor, dc stepper motor as the core of automatic door control system, etc. It give full play to the performance of the microcontroller, the advantages of hardware circuit is simple, software function is perfect, reliable control system, the characteristics of high cost performance, has certain use and reference value.
Keywords automatic door; single chip microcomputer; stepping motor;
pyroelectric infrared sensor
-II-
目 录 目 录
摘 要 .............................................................................................................................I Abstract ......................................................................................................................... II 第1章 绪论 .................................................................................................................. 1 1.1 课题背景 ............................................................................................................. 1 1.2 自动门在国内外的发展状况 ............................................................................. 1 1.3 课题研究的意义和目的 ..................................................................................... 2 1.4 主要研究内容 ..................................................................................................... 2 1.5 本章小结 ............................................................................................................. 3 第2章 系统总体设计方案 .......................................................................................... 4 2.1 系统总体规划 ..................................................................................................... 4 2.2 器件介绍 ............................................................................................................. 4 2.2.1 89C52单片机 ................................................................................................ 4 2.2.2 热释电型红外线传感器 ............................................................................... 8 2.2.3 步进电机 ....................................................................................................... 9 第3章 硬件设计 ........................................................................................................ 11 3.1 基本单片机系统 ............................................................................................... 11 3.2 热释电红外检测电路 ....................................................................................... 12 3.4 控制电路 ........................................................................................................... 13 第4章 软件设计 ........................................................................................................ 14 4.1 整体顺序流程图 ............................................................................................... 14 4.2 功能模块程序 ................................................................................................... 15 4.2.1 定义变量及主程序 ..................................................................................... 15 4.2.2 驱动子程序 ................................................................................................. 16 4.2.3 延时程序 ..................................................................................................... 20 4.2.4 扫描程序 ..................................................................................................... 20 4.2.5 中断程序 ..................................................................................................... 22 第5章 仿真及调试 .................................................................................................... 23 5.1 仿真软件介绍 ................................................................................................... 23 5.2 软件调试 ........................................................................................................... 24 5.3 硬件调试 ........................................................................................................... 24 结 论 .......................................................................................................................... 27 参考文献 ...................................................................................................................... 28 谢 辞 .......................................................................................................................... 29
-III-
目 录 附录一 电路图 ............................................................................................................ 30 附录二 单片机程序 .................................................................................................... 31
-IV-
第1章 绪论 第1章 绪论
随着社会的飞速发展,自动门逐渐进入我们的日常生活,成为许多宾馆、超市等现代建筑的必备之物。它具有美观大方、节约空调能源、防风、防尘、降低噪音等优点。
1.1 课题背景
21世纪的今天,门更加突出了安全理念,强调了有效的防范通行、疏散,同时还突出了建筑艺术的理念,强调门与建筑艺术的理念,强调门与建筑以及周围环境整体的协调和谐。
自动门广泛应用于大中型公共场所,为这些建筑增添了亮丽、时尚的姿态。自动门从理论上理解应该是门的使用观念的延伸,是人们根据需要对门的功能的提升和完善。所以对自动门的认识应该从人们对门功能的要求开始。作为建筑物一部分的门,从最基本的意义上讲,要同时满足隔离外部环境和不妨碍人的通行这两种要求。因此门体本身应牢固、密封。自动门的普及和应用,改变了人们的防护意识,提升了人们的安全观念[1]。由于中国没有相关的自动门国家标准,导致自动门档次、质量良莠不齐,因此最好选择一个由专业厂生产、能提供较完善售后服务的自动门品牌。不要认为样本上全是外国语,资料也是外国语的商品就是进口商品,其实这样是违反国家规定的。真正的知名品牌,合法的商品不会这样做。
自动门平移门最常见的形式是自动门机及门内外两侧加雷达,当人走近自动门时,雷达感应到人的存在,给控制器一个开门信号,控制器通过驱动装置将门打开。当人通过门之后,再将门关闭。由于自动平移门在通电后可以实现无人管理,既方便又提高了建筑的档次,于是迅速在国内外建筑市场上得到大范围的普及。
1.2 自动门在国内外的发展状况
自动门从理论上理解应该是门的概念的延伸,是门的功能根据人的需要所进行的发展和完善。自动门是指:可以将人接近门的动作(或将某种入门授权)识别为开门信号的控制单元,通过驱动系统将门开启,在人离开后再将门自动关闭,并对开启和关闭的过程实现控制的系统。
自动门开始在建筑物上使用,是在二十世纪年以后。二十年代后期,美国的超级市场的开放,自动门开始被使用,受此影响,世界第一自动门品牌多玛在
-1-
华北理工大学轻工学院
1945年开发出油压式、空气式自动门,新建大楼的正门也开始使用了。1962年,电气式己开始出现,之后伴随着城市的建设,自动门技术的领域每年都在增加。当初,用供给建筑物用电源进行电动机的速度控制很难,只好进行油压、空压速度控制,转换但因能源利用效率很低,然而伴随着电气控制的技术发展,现在电气控制技术已经成熟,直接控制电动机的电气式自动门逐渐成为主流[2]。例如:各种用可识别控制的自动专用门,如:感应自动门(红外感应,微波感应,触摸感应,脚踏感应)、刷卡自动门等。
21世纪的今天,门更加突出了安全理念,强调了有效性:有效地防范、通行、疏散,同时还突出了建筑艺术的理念,强调门与建筑以及周围环境整体的协调、和谐。门大规模专业化生产始于150年前,在不断发展和完善的过程中,涌现出大批独具规模的专业制造商。门的高级形式--自动门起源在欧美,迅速发展至今天,已经形成了种类齐全、功能完善、造工精细的自动门家族[3]。
1.3 课题研究的意义和目的
随着电子科技的不断发展, 各种智能控制系统进入人们的生活。自动门控制系统成为商场、超市等人流密集地疏导人流、控制出入的首选。自动门能实现入门授权的自动识别控制和防挤压等功能。
为了使商场自动门能够更好的为商场服务,得到一种电路简单,软件功能完善,控制系统可靠,性价比较高的商场自动门系统,本文研究一种平移式自动门控制系统, 实现了入门授权的识别控制和防挤压等功能。该系统以80C52作为控制核心,步进电机、红外传感器相结合的系统充分发挥了单片机的性能,具有一定的使用和参考价值。
1.4 主要研究内容
本文着重研究设计了以89C52单片机为主体,热释电型红外线传感器,直流步进电动机等为核心的自动门控制系统。
单片机以及自动控制相关知识。通过去图书馆查阅材料,阅读文献,利用网络参考网络上的论文,并在此基础上利用单片机完成某商场自动门控制系统的设计,首先进行自动门系统的方案设计 ,根据功能要求和控制要求设计出了整体框图,然后设计了系统硬件系统,选出了单片机型号,步进电机,红外检测电路,还有相应的软件系统,根据要求设计了整体流程图,和功能模块设计,最后利用软件对自动门控制系统进行了仿真与分析。最终完成了基于单片机的商场自动门控制系统设计。此系统要求具有如下功能:开门和关门控制应有手动和自动方式;
-2-
第1章 绪论 紧急停止;自动门在开门位置停留3秒后,自动进入关门过程。
1.5 本章小结
本章主要分析了自动门的发展历史及当前现状,总结了研究自动门的目的及其意义,指出了本文研究设计的一些思路和基本架构。
-3-
华北理工大学轻工学院
第2章 系统总体设计方案
本章围绕系统的总体设计,介绍系统组成框图、主控芯片单片机的内部硬件资源及其接口技术、整个自动门系统所用到的其它IC的介绍。
2.1 系统总体规划
本系统主要由单片机及其外围电路、红外检测电路、直流步进电机控制电路等组成。正常工作时,单片机循环检测红外检测电路输出信号,据此产生直流电机控制信号,电动机带动门运行,当系统检测到控制方式发生改变时,系统进入相应式。如门在控制关门过程中遇到人时门无条件朝相反方向打开。其原理方框图如2.1所示。
红外检测电路 单片机 STC89C52 单片机 直流电机电路
图2.1 原理方框图
电机驱动电路 2.2 器件介绍
本系统主要包括89C52单片机、热释电型红外传感器、直流步进电机等三大主要器件。
2.2.1 89C52单片机
单片机处理模块部分选用的芯片为89C52RC,属于89C51RC系列。选用STC单片机的理由:降低成本,提升性能,原有程序直接使用,硬件无需改动。使产品更小,更轻,功耗更低[4]。用STC提供的专用工具可很容易的将2进制代码、16进制代码下载进STC相关的单片机。
-4-
华北理工大学轻工学院
特点:
(1) 步进电动机的角位移与输入脉冲数严格成正比具有良好的跟随型。以由步进电动机与驱动电路组成的开环数控系统,既非常简单、廉价,又非常可靠。同时,它也可以与角度反馈环节组成高性能的闭外数控系统。
(2) 步进电动机的动态响应快,易于起停、正反转及变速。
(3) 速度可在相当宽的范围内平滑调节。低速下仍能保证获很大转矩,因此,一般可以不用减速器而直接驱动负载。
(4) 步进电动机只能通过脉冲电源供电才能远行。它不能直接使用交流电源和步进电源。
(5) 步进电动机存在振荡和失步现象,必须对控制系统和机械负载采取相应的措施。
(6) 步进电动机自身的噪音和振动较大,带惯性负载的能力较差。 驱动控制系统的组成:
使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统,其方框图如图2.7所示。
图2.7 驱动控制系统图
脉冲信号 信号分配 功率放大 步进电机 负载 步进电动机的驱动电路根据控制信号工作。在步进电动机的单片机控制中,控制信号由单片机产生。其基本控制作用如下:
反应式步进电动机控制换相顺序:步进电动机的通电换相顺序严格安照步进 电动机的工作方式进行。通常我们把通电换相这—过程称为脉冲分配。三相六步进电机工作方式通电换相的正序是A-AB-B-BC-C-CA;反序A-CA-C-BC-B-AB;共有八个通电状态[10]。
-10-
第3 章 硬件设计
第3章 硬件设计
感应自动门的种类很多,在此,仅以平移型感应自动门机作为设计的重点。首先,平移式自动门机组由以下部件组成:
(1) 主控制器(单片机):它是自动门的指挥中心,通过内部编有指令程序的大规模集成块,发出相应指令,指挥马达或电锁类系统工作;同时人们通过主控器调节门扇开启速度、开启幅度等参数。
(2) 红外感应探测器:负责采集外部信号,如同人们的眼睛,当有移动的物体进入它的工作范围时,它就给主控制器一个脉冲信号。
(3) 步进马达:提供开门与关门的主动力,控制门扇加速与减速运行。 当门扇要完成一次开门与关门,其工作流程如下:
红外感应探测器探测到有人进入时,将信号传给主控器,主控器判断后通知电机运行。电机得到一定运行信号后做正向运行,将动力传给同步带,步带转动一段时间后,马达反转,自动门关闭。
3.1 基本单片机系统
这是自动门系统的控制核心, 一般情况下以单片机片内的基本硬件资源为主,有必要时再扩展部分外部器件。
图3.1 单片机最小系统图
-11-
华北理工大学轻工学院
在本设计中需要完成的控制比较简单,以单片机片内的基本硬件资源完全可以实现,因此不需扩展。其单片机电路图如图3.1所示。
3.2 热释电红外检测电路
这是自动门系统的检测核心。电路图如3.2所示。电路采用热释电红外传感器及BISS0001组成的检测系统。在图3.2中,采用红外传感器进行接收人体红外信号,接收到的信号在经过R7、C5进行隔交(去除交流干扰)、限幅,整流输入到BISS0001的14管脚,经14,15管脚一级放大后由16口输出。输出信号由电阻R11和电容C6进行耦合,然后由13管脚输入,二级放大,由12管脚输出。再经双向鉴幅,状态控制器,从2端口输出。经过处理后由2管脚输出。8,11管脚接电源,7管脚接地。10管脚为运算放大器偏置电流设置端,外接较大的电阻。3,4管脚为延迟端口,由Rl6,C10来完成延时。输出延迟时间Tx由外部的R15和C11的大小调整,值为Tx≈24576xR15C11;5、6管脚为封锁端口,由R15,C11组成,触发封锁时问Ti由外部的Rl6和C10的大小调整,值为T1≈24xR16C10。9端口为触发禁止端。当Vc
图3.2 热释电红外检测电路
-12-
第3 章 硬件设计
3.3 步进电机电路
这是自动门系统的运动执行核心。电路采用五线四相步进电机和驱动芯片ULN2003A组成。在图3.3中,采用ULN2003A作为驱动芯片从而组成驱动电路,并以此来驱动步进电机运转,驱动电路输出部分连接四个LED灯来显示四相的运行情况,以便直观的看出电路的输出是否出现问题,是否有缺相漏相的情况,从而更加容易做出调整。电路图如图3.3所示。
图3.3 步进电机电路
3.4 控制电路
这是自动门系统的人工控制核心。包括手动操作与自动执行的切换开关S1,以及手动操作时的正转开门开关S2和反转关门开关S3。电路图如图3.4所示。
图3.4 人工控制电路
-13-
华北理工大学轻工学院
第4章 软件设计
本系统的软件设计面向硬件,选用C语言编程。最主要部分是单片机控制电机转动(包括正转反转)和时间的延迟。
本设计考虑实际生活中的应用,需要有安全性和可靠性。根据实际生活中对自动门的具体要求,本课题所设计的自动门应由以下功能:
1.为了便于维护,自动门应具有手动和自动方式。当信号采集装置检测到有人接近门口且门未打开或者检测到已无人接近门口且门未关闭,单片机动作输出信号开控制点动机正转或者反转来开门或者关门。
2.当自动门出现夹人现象时,可闭合紧急停止开关,自动门自动进入开门过程。
4.1 整体顺序流程图
工作流程图如图4.1所示。
开始 初始化 信息采集 有人 电机正传 开门 无人延时控制 中途有人 无人 电机反转 关门 图4.1主程序流程图
-14-
第4 章 软件设计
4.2 功能模块程序
4.2.1 定义变量及主程序
#include
//接受传感器信号 //手动、自动切换 //开门 //关门
//运行标志位 //中断标志位
//正转 //反转 //存储开门信号 //存储关门信号
bit K1; bit G1;
sbit LED=P1^6; //指示灯
unsigned long beats = 0; void main() {
TMOD=0x01;
L=R=D=S=K=K1=G=G1=0; LED=1; Delay_1ms(2000);
//延时,减少传感器误差;
TH0=(65536-10000)/256; TL0=(65536-10000)%6;
//主函数
L=R=D=S=K=K1=G=G1=0; LED=0; P2 |= 0x0F; L=1; Flag=Flag1=0; ET0=1;
TR0=1; {
while(1)
K1=K;
G1=G;
-15-
华北理工大学轻工学院
}
LED=0; Scan();
LED=0; }
4.2.2 驱动子程序
正转子程序
void qudong1(unsigned long angle) {
unsigned char buf; unsigned char step = 0;
unsigned char code RUN2[8] = { 0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08 };
//步进电机节拍对应 正转
//正转程序
快速-慢速
beats = (angle * 4076) / 360; //计算需要的节拍数,4096拍对应一圈 while (beats--) {
if(beats>509&&S==1)
{
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(150); //延时2ms,即2ms执行一拍
}
if(beats<=509&&S==1) {
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零
buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(250); //延时2ms,即2ms执行一
-16-
第4 章 软件设计
}
}
P2 |= 0x0F; //关闭电机所有的相 }
反转子程序
void qudong2(unsigned long angle) //反转程序 快速-慢速 {
unsigned char buf; unsigned char step = 0;
unsigned char code RUN1[8] = { 0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09 };
//步进电机节拍对应 反转
beats = (angle * 4076) / 360; //计算需要的节拍数,4096拍对应一圈 Flag1=1;
while (beats--)
if(beats>509&&S==1) {
{
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN1[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(150); //延时2ms,即2ms执行一拍
}
if(beats<=509&&S==1)
{
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零
buf |= RUN1[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零
beat=beats;
delay(250); //延时2ms,即2ms执行一拍
} }
-17-
华北理工大学轻工学院
P2 |= 0x0F; //关闭电机所有的相 }
中断反转程序
void qudong3(unsigned long angle) {
unsigned char buf; unsigned char step = 0;
unsigned char code RUN2[8] = { 0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08 };
//步进电机节拍对应 正转
//半正转程序
快速-慢速
while (beats<=3057) {
if(beats>509&&S==1)
{
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(150); //延时2ms,即2ms执行一拍
}
if(beats<=509&&S==1) {
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零
buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(250); //延时2ms,即2ms执行一
} beats++;
}
P2 |= 0x0F; //关闭电机所有的相 }
手动正转程序
-18-
第4 章 软件设计
void qudong4(unsigned long angle) {
unsigned char buf; unsigned char step = 0; unsigned long bs = 0;
//手动正转程序
unsigned char code RUN2[8] = { 0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08 };
//步进电机节拍对应 正转
bs = (angle * 4076) / 360; //计算需要的节拍数,4096拍对应一圈 while (bs--) {
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(150); //延时2ms,即2ms执行一拍 }
P2 |= 0x0F; //关闭电机所有的相 }
手动反转程序
void qudong5(unsigned long angle) //手动反转程序 {
unsigned char buf; unsigned char step = 0; unsigned long bs = 0;
unsigned char code RUN1[8] = { 0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09 };
//步进电机节拍对应 反转
bs = (angle * 4076) / 360; //计算需要的节拍数,4096拍对应一圈 while (bs--) {
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN1[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零
-19-
华北理工大学轻工学院
delay(150); //延时2ms,即2ms执行一拍 }
P2 |= 0x0F; //关闭电机所有的相 }
4.2.3 延时程序
void delay(unsigned int cnt) //0.01ms延时函数 {
while (cnt--); }
void Delay_1ms(unsigned int DATA) //1ms延时函数 { }
unsigned int x,y; for(x=DATA;x>0;x--)
for(y=110;y>0;y--);
4.2.4 扫描程序
void Scan() {
//扫描L函数
//自动 if(S==1&&L==1&&Flag==0&&R==0&&D==0) { }
while(S==1&&Flag==1) {
if(L==1&&R==1&&D==0) {
-20-
Delay_1ms(700); if(L==1&&Flag==0) { }
Flag=1; R=1; D=0;
第4 章 软件设计
LED=1; qudong1(270) ; //开门 LED=0;
Delay_1ms(3000); R=0; D=1; }
if(L==0&&R==0&&D==1) {
LED=1; EA=1;
qudong2(270) ; EA=0; if(Flag1==1) { R=0; D=0; Flag1=0; Flag=0; LED=0; } }
} if(S==0)
{ R=0;
D=0;
Flag1=0; Flag=0; while(K1==1) {
LED=1;
qudong4(1) ;
//关门 //手动
-21-
华北理工大学轻工学院
K1=K;
}
while(G1==1) { LED=1; qudong5(1) ; G1=G;
} LED=0;
}
}
4.2.5 中断程序
void T0_time() interrupt 1 {
TH0=(65536-10000)/256; TL0=(65536-10000)%6; if(L==1&&D==1&&Flag1==1)
{ Delay_1ms(10); if(L==1) {
qudong3( beats); beats=0; LED=0;
Delay_1ms(3000); Flag1=0;
}
}
}
-22-
第5 章 仿真及调试
第5章 仿真及调试
单片机应用系统的开发过程,一般都包括如下几个过程:首先设计硬件电路,并在Altium Designer 09上仿真,仿真好了就完成硬件组装工作,然后进入软件设计、调试和硬件调试阶段。
5.1 仿真软件介绍
Altium Designer 09
Altium Designer 09 是protel dxp的升级版,支持windows7、windows Vista。Altium Designer 09的发布延续了连续不断的新特性和新技术的应用过程。这必将帮助用户更轻松地创建下一代电子设计。同时,我们将令Altium Designer更符合电子设计师的要求。
Altium Designer 提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。Altium Designer 在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得Altium Designer成为电子产品开发的完整解决方案:一个既满足当前,也满足未来开发需求的解决方案。Altium Designer的板级设计功能可完全定义并实现设计中的物理元素。强大的规则驱动设计、版图和编辑环境可在直观高效的环境中完全控制设计中的各个方面。
在AltiumDesigner09中画出电路的原理图。接着根据原理图进行实物的制作。在制作的过程中,事先根据元件的大小排版布局,以单片机为中心,从简单.线路少的元件开始着手,围绕单片机把所有元件焊接完毕.最后,焊接完毕之后需要检查调试。
Keil C51
Keil C51是支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。Keil C51目前由ARM国内授权代理商提供技术支持和销售等相关服务。产业标准的Keil C编译器、宏汇编器、调试器、实时内核、单板计算机和仿真器,支持所有的251系列微控制器,帮助你如期完成项目进度。
Keil C51开发工具旨在解决嵌入式软件开发商面临的复杂问题。
当你开始一个新项目,只需简单的从设备数据库选择使用的设备,uVision IDE将设置好所有的编译器、汇编器、链接器和存储器选项。
-23-
华北理工大学轻工学院
包含大量的例程,帮助你着手使用最流行的嵌入式8051设备。
Keil uVision调试器准确地模拟8051设备的片上外围设备(IC、CAN、UART、SPI、中断、I/O端口、A/D转换器、D/A转换器和PWM模块)。模拟帮助你了解硬件配置,避免在安装问题上浪费时间。 此外,使用模拟器你可以在没有目标设备的情况下编写和测试应用程序。
当你准备在目标硬件上测试软件应用时,可以使用MON51、MON390、NONADI、或者FlashMON51目标监视器、ISD51 In-System调试器、ULINK USB-JTAG适配器在目标系统上下载并测试程序代码。
5.2 软件调试
首先,并不是把编好的程序直接烧进单片机,而先用Keil C51编译器进行调试。在使用Keil C51编译器时,对工程成功地进行编译(汇编)、连接以后,在主菜单中打开“调试”栏,点击“开始/停止调试模式”,即可进入软件模拟仿真调试状态,Keil C51内建了一个仿真CPU用来模拟执行程序,该仿真CPU功能非常强大,可以在没有硬件和仿真器的情况下进行程序的调试,但是在时序上,软件模拟仿真是达不到硬件的时序的。进入调试状态后,“调试”栏菜单项中原来不能用的命令现在已经可以使用了。调试程序看是否能仿真,如果运行正常再将在Keil C51编译器中调试好的程序烧写至单片机。
第一步调试是软件对所编程序的调试,看是否存在语法错误。一般来说这一步很容易实现。但是刚开始进行调试时一下子出来了10处错误。后来发现我将微机原理中的指令和单片机的指令搞混了。虽然有好多指令是通用的,但并不完全一致。如微机中的CMP比较指令在单片机中不可用。还有点格式上的错误就是在十六进制立即数的A、B、C、D、E、F前必须加上0,不然系统不认识。改过来之后顺利完成了这一步的调试。有些错误是因为敲程序时太快了,记忆符都写错,一改正错误提示减少了很多。
第二步是将程序利用汇编软件Keil对已经调试好的程序进行汇编在线调试,变成可执行的目标代码装入。Keil中可以进行模拟仿真,对软件进行单步调试。这可以让用户清晰的看到程序执行到何处,哪里出现错误。这一步主要看程序是否有逻辑上的错误,语法没错远远不代表着软件调试成功。在必要的时候可以设置端口状态和断点,并查看标志位和各寄存器的状态。如有逻辑错误,改正之后,再重新回到开始调试,直至逻辑错误消除为止。硬件调试与软件调试是不能完全分开的,许多硬件的错误是通过对软件的调试而发现和纠正的。
在进行单步执行时,定时程序在计数器溢出后就自动跳出,但在实际调试过程中,它却一直在循环程序中,不往下执行。后来经过程序的改进,解决了此困
-24-
第5 章 仿真及调试
难。我在软件调试的过程中发现我的程序比较复杂且逻辑不清晰,主要是由于采用了中断的方法,在中断服务程序中每个程序都需要考虑很多情况,处于半处限位开关的左侧怎么办,另一侧又应如何等。导致程序很长且逻辑混乱。后来我重新编写了一个程序并换了一种思路,跟踪门的来回这一动作路线来编程。这样可以清晰的知道门处于何位置,应调用何种速度。程序采用查询的方法来实现有无人的检测和到没到限位开关的判断。这样,不但思路清晰了许多,而且变短了不少。软件编程的一些图像如图5.1所示。
图5.1 软件编程
5.3 硬件调试
首先,根据原理图进行实物的制作。在制作的过程中,事先根据元件的大小排版布局,以单片机为中心,从简单.线路少的元件开始着手,围绕单片机把所有元件焊接完毕.最后,焊接完毕之后需要检查调试。
首先通电观察电路板是否有异常,一般观察的是有无因接错产生短路而使电路冒烟,发热过高而使电路发烫甚至烧毁电路。 如果出现异常现象,应立即关断电源,待排除故障后再通电重新检测。在第一步检测完毕无异常后,再输入信号,用万用表进行数据的检测。再与原始数据的对比,通过比较检查出出现错误的部分,再进行修改调试,直到未发现漏洞。通过调试,确保硬件接线合理安全,电路完整能够达到运行的标准。
在接上电源时,观察整体电路是否按照预计设计的运作,电机是否正转,电
-25-
华北理工大学轻工学院
机是否反转等。可根据电路的运行情况推测出程序出错的部分,修改程序后再经过Keil C51编译器调试后烧到单片机,反复检测直到能工作完全正常。
在调试的过程中,曾出现各种错误,包括硬件设备和软件程序。起初发现电路焊接未焊接牢固,出现过因接线口松动而反应不灵敏的情况,后来又出现了电源干扰的问题,想了很多办法,最后另加了一个驱动电路的电源才得到解决。软件程序更是修改了无数次,不断多次的调试后,电路板终于工作正常了。
-26-
结 论 结 论
本次毕业设计断断续续经历了2个多月,我从中学到了许多。从最开始的资料的收集,购买元器件,中间的电路板的焊接,程序的设计,到最好的调试和再调试,这些都使我学到了很多知识。通过查找各种资料,我能更加熟练的运用学过的信息检索方法,焊接电路培养了我的细心,调试过程挑战了我的坚持能力,打磨了我的性格。这次经历不仅仅拓展了我的知识面,培养了动手能力,还教会了我如何做好一件事。在毕业设计的过程中是理论结合实际,是对学过的知识的巩固,更是对遇到各种困难的坚持。 虽然在这中间走过许多弯路,遇到很多失败,但是最终迎接我的是成功,是胜利的微笑。这次毕业设计使我受益匪浅。
本次设计为单片机的自动门控制系统,主要应用单片机80C52作为控制核心,直流步进电机、热释电型红外传感器等相结合的系统。这个系统软硬件设计简单,易于开发,严格控制各种元件的采购成本,所以价格低廉,安全可靠,操作方便。
随着社会和经济的发展人民生活水平不断提高,人民生活方便,施工安全,注重环保等将成为一个热门话题。自动门系列产品正是在某种程度上满足用户需求,所以在未来的日子里,自动门产品将更加的普及,家家户户使用自动门的景象将为时不远。
-27-
参 考 文 献
参考文献
[1] 于洋、葛斌、苏晓鹭.基于单片机技术的自动门智能控制系统[J].计算机系统
应用,2008.
[2] 刘志刚,丁朋林,郝长海.自动门控制系统[J].电子测量技术,2005. [3] 郑小芹,李钟慎.采用单片机控制的红外自动门[M].制造业自动化,2008 [4] 马争、汪亚南.微计算机与单片机原理及应用[M]. 高等教育出版社,2009. [5] 林立、张俊亮、曹旭东、刘得军.单片机原理及应用[M].电子工业出版社,2009. [6] 吴英才、林华清.热释电红外传感器在防盗系统中的应用[J].传感器技术,2002. [7] 肖俊峰,郑小琴.一种红外线自动门单片机控制系统[J].门窗,2008. [8] 宋文旭.传感器与检测技术(第二版)[M].北京:高等教育出版社,2009. [9] 刘宝廷,程树炕.步进电机及其控制系统[M].哈尔滨工业大学出版社,1997. [10] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009.
[11] R.Dye,“Visual Object-Orientated Programming,”Dr.Dobbs MacintoshJournal,
Sept.1st(1991).
[12] Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and
barriers[J].. TQM Journal. 2008.
-28-
谢 辞 谢 辞
在本论文资料搜集整理过程中,得到了众多师长、朋友和同学的帮助,没有他们的帮助,我的毕业设计是无法完成的。我在此对他们致以深深的谢意。
首先衷心感谢我的导师,在本人的写作过程中,XXX老师给予了大力的帮助和指导,在此深表感谢!老师不仅仅在设计方面给予引导,在选材方面给予参考,而且还时刻监督着我们的进程,他对该课题深刻的见解使我受益匪浅。老师诲人不倦的工作作风,一丝不苟的工作态度,严肃认真的治学风格给我留下深刻的影响,值得我永远学习。在此谨向老师致以崇高的敬意和诚挚的谢意。
其次,感谢我所有的老师在我学习过程中给予的悉心指导和帮助,为顺利完成毕业设计奠定了基础。
-29-
附 录 一
附录一 电路图
-30-
附 录 二 附录二 单片机程序
#include
//接受传感器信号 //手动、自动切换 //开门 //关门
//运行标志位 //中断标志位
//正转 //反转 //存储开门信号 //存储关门信号
bit K1; bit G1;
sbit LED=P1^6; //指示灯
unsigned long beats = 0; void delay(unsigned int cnt); void Delay_1ms(unsigned int);
//0.01ms延时
//1ms延时函数 //正转程序
快速-慢速
void qudong1(unsigned long angle) {
unsigned char buf; unsigned char step = 0;
unsigned char code RUN2[8] = { 0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08 };
//步进电机节拍对应 正转
beats = (angle * 4076) / 360; //计算需要的节拍数,4096拍对应一圈 while (beats--) {
if(beats>509&&S==1)
{
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(150); //延时2ms,即2ms执行一拍
-31-
附 录 二
}
if(beats<=509&&S==1) {
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零
buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(250); //延时2ms,即2ms执行一
}
}
P2 |= 0x0F; //关闭电机所有的相 }
void qudong2(unsigned long angle) //反转程序 快速-慢速 {
unsigned char buf; unsigned char step = 0;
unsigned char code RUN1[8] = { 0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09 };
//步进电机节拍对应 反转
beats = (angle * 4076) / 360; //计算需要的节拍数,4096拍对应一圈 Flag1=1;
while (beats--)
if(beats>509&&S==1) {
{
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN1[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(150); //延时2ms,即2ms执行一拍
}
if(beats<=509&&S==1)
{
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零
-32-
附 录 二 buf |= RUN1[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零
beat=beats;
delay(250); //延时2ms,即2ms执行一拍
} }
P2 |= 0x0F; //关闭电机所有的相 }
void qudong3(unsigned long angle) {
unsigned char buf; unsigned char step = 0;
unsigned char code RUN2[8] = { 0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08 };
//步进电机节拍对应 正转
//半正转程序
快速-慢速
while (beats<=3057) {
if(beats>509&&S==1)
{
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(150); //延时2ms,即2ms执行一拍
}
if(beats<=509&&S==1) {
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零
buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(250); //延时2ms,即2ms执行一
-33-
附 录 二
} beats++;
}
P2 |= 0x0F; //关闭电机所有的相 }
void qudong4(unsigned long angle) {
unsigned char buf; unsigned char step = 0; unsigned long bs = 0;
unsigned char code RUN2[8] = { 0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08 };
//步进电机节拍对应 正转
//手动正转程序
bs = (angle * 4076) / 360; //计算需要的节拍数,4096拍对应一圈 while (bs--) {
buf = P2 & 0xF0; //用buf暂存P1口的高4位,而低4位清零 buf |= RUN2[step]; //buf低4位改为相应的节拍代码值 P2 = buf; //修改后完毕后的值送回到P1口 step++; //步进节拍递增
step &= 0x07; //用“与”方式实现到8归零 delay(150); //延时2ms,即2ms执行一拍 }
P2 |= 0x0F; //关闭电机所有的相 }
void qudong5(unsigned long angle) //手动反转程序 {
unsigned char buf; unsigned char step = 0; unsigned long bs = 0;
unsigned char code RUN1[8] = { 0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09 };
//步进电机节拍对应 反转
bs = (angle * 4076) / 360; //计算需要的节拍数,4096拍对应一圈 while (bs--)
-34-
正在阅读:
第二专题 感动中国 感动你我备课首页12-17
POWERPOINT2007中怎样查看幻灯片母版?10-30
2017-2018学年高中数学 课时作业24 两角差的余弦公式 新人教A版03-04
施组 - 图文 11-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 自动门
- 单片机
- 控制器
- 感应
- 基于
- 设计
- 毕设
- 项目管理实习
- 批评的艺术魅力
- 乐山市国民经济和社会发展第十二个五年规划纲要
- 建设工程监理规划2#、3#楼
- 网络故障类型和解决方法毕业论文
- 东风汽车股份有限公司财务状况分析毕业论文
- 煤气化工业风险评价 - 图文
- 甲级单位编制整流、镇流器项目可行性报告(立项可研+贷款+用地+2
- 2012gct真题及答案
- 四年级奥数定义新运算精品资料
- 川建发〔2017〕5号-四川省住房和城乡建设厅关于印发《四川省建设
- 浅谈平面设计中的版式设计
- 住宅楼小区工程施工组织设计方案
- 新版部编人教版八年级语下学期文期中试题(附答案)
- 文登市火车站片区修建性详细规划说明
- 情绪和情感的性质与功能
- 《钢铁是怎样炼成的》阅读练习题附答案 - 图文
- 关于小学数学学习两极分化现象的成因与对策研究课...
- 福建省森林公园总体规划规程
- 电大11年《审计学》形考01-07网上教学实践活动及阶段性测试参考