单片机原理与应用课程设计说明书题目:基于单片机的电动伸缩门控制系统设计学生姓名:王艳学号:20120311121院(系):职业教育师范学院专业:电子信息工程指导教师:张开生2014年12月12日I目录1选题背景..................................................................12方案论证..................................................................13过程(设计或实验)论述....................................................13.1硬件设计............................................................13.1.1LCD液晶显示..................................................13.1.2直流电机模块..................................................33.1.3按键控制时间显示电路..........................................33.1.4键盘控制电机工作电路..........................................43.1.5DS1302时钟芯片电路...........................................43.1.6总设计仿真图..................................................53.2软件设计............................................................63.2.1主程序........................................................63.2.2DS1302时钟芯片程序与LCD1602显示程序设计.....................73.2.3按键扫描程序..................................................74结果分析..................................................................74.1LCD液晶显示模块.....................................................74.2电动伸缩门控制......................................................75归纳和总结................................................................7附录........................................................................9参考文献资料11选题背景随着科技的发展,人们的生活水平不断的提高,各种方便人们生活的自动控制系统开始进入人们的生活。为了使自动伸缩门能够更好的为人们和各种企业单位服务,需要得到一种电路简单,软件功能完善,控制系统可靠,性价比较高的自动伸缩门系统。以单片机为核心的自动门系统就是其中之一,本文设计了基于单片机的自动伸缩门控制系统。该系统以单片机为主体,步进电机为控制实体,实现伸缩门的自动控制。电动机与人的生活息息相关,密不可分。电动伸缩门是广泛使用在人员进出流动比较频繁的各个单位、住宅小区以及公园景点的入口处。随着社会的不断发展,人们拥有自己的汽车的情况越来越普遍,交通堵塞的问题比较严重,有了电动伸缩门的帮助可以使得我们容易对大量的车流控制系统开始进入人们的生活以单片机为核心的自动门系统就是其中之一本文设计了基于单片机的自动伸缩门控制系统该系统以单片机为主体,实现伸缩门的自动控制。本设计要求制作完成一个电动伸缩门控制系统。电动伸缩门控制系统即通过按键实现门的自动开启和关闭,以及其安全性等方面的要求。故电动伸缩门控制系统的关键在于对门开启和关闭条件的检测和对电机的控制。具体要求如下:(1)用遥控器或者红外遥控器控制电动伸缩门的运行;(2)系统运行时显示时钟信息和“您好欢迎光临陕西科技大学”等字样;(3)设计时应考虑电动门的运行速度以及安全性等因素;(4)以单片机的最小系统为基础硬件,用汇编或者C语言编写程序;(5)有人或者汽车靠近时门应该打开;自动伸缩门上的LCD显示屏显示相对应的汉字。此外,该系统设计充分发挥了单片机的性能,具有较好的可靠性和实用性。2方案论证电动伸缩门控制系统主要基于硬件和软件的要求。硬件方面采用简单高效的AT89C52单片机系统板来实现。在电机的选取上,由于直流电机相比较步进电机更加简单方便,并在一定程度上可以实现所要求的功能,所以在此选取直流电机控制伸缩门的工作。我们采用小车的前进后退和停止模拟电动伸缩门的运行,通过对速度开关的调节,实现小车加速减速达到控制速度的目的。基于安全性的考虑,当有人或车辆突然经过伸缩门时,设置中断停止按键使行进中的伸缩门立即停止,起到保护的效果。时间显示方面采用LCD液晶显示,并设置时间调节按键设置显示时间。3过程(设计或实验)论述3.1硬件设计硬件方面包括LCD1602的引脚和DS1302时钟芯片的引脚连接以及按键设置。用小车的前进后退模拟伸缩门的运动。3.1.1LCD液晶显示2(1)元件说明模块组建内部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成。控制器接受来自MPU的指令和数据,控制着整个模块的工作,由CGROM、CGRAM和DDRAM等字符存储区域、以及与MPU和列驱动器的I/O接口、指令寄存和译码机构、地址计数器等部分组成。在控制器的控制下,模块通过数据总线DB0~DB7和E、R/W、RS三个输入控制端与MPU接口。这三根控制线按照规定的时序相互协调作用,使控制器通过数据总线DB接受MPU发送来的指令和数据,从CGROM中找到欲显示字符的字符码,送入DDRAM,在LCD显示屏上与DDRAM存储单元对应的规定位置显示出该字符。控制器还可以根据MPU的指令,实现字符的显示、闪烁和位移效果。下面是其引脚图:图3-1引脚图(2)模块应用LCD数据输入输出口是与P0口相连,寄存器选择输入端与单片机P2.6相连,读写控制输入端接P2.5,使能端接P2.7。将显示屏初始化,使“年、月、日、时钟等信息”通过LCD显示屏显示出来,并通过按键对日期时间进行调整,其中第一行显示“年、月、日、星期”,第二行显示“时、分、秒”的信息,下图为其仿真图:图3-2LCD仿真图33.1.2直流电机模块(1)直流电机驱动电路L293D采用16引脚DIP封装,其内部集成了双极型H-桥电路,L293通过内部逻辑生成使能信号。H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM)。另外,L293将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1、0时,电机正转;反之,电机反转。选用一路PWM连接EN12引脚,通过调整PWM的占空比可以调整电机的转速。以下为L293驱动电机的逻辑图和内部仿真图:表3-1驱动电机逻辑图ENA(B)IN1(IN3)IN2(IN4)电机运行情况HHL正转HLH反转H同IN2(IN4)同IN1(IN3)快速停止LXX停止(2)直流电机仿真图本设计采用一路直流电机实现其正转、反转和停止,IN1和IN2分别接到单片机的P2.0,P2.1口,使能端EN1接到单片机的P2.2口,当使能端有效,输入端分别为不同电平时,电机可实现正反转和停止。图3-3直流电机仿真图3.1.3按键控制时间显示电路P1.0~P1.2控制LCD时间显示的调整。其中触发P1.0按键,停止DS1302计数,LCD光标闪烁显示调节位置,表示开始调节时间。P1.1按键实现增加显示时间,P1.2按键实4现减小时间。3.1.4键盘控制电机工作电路设置三个按键实现电机的正转、反转和停止,三个按键分别接至P3.0,P3.1,P3.2口,再设置调节速度开关,将其连接在P1.3引脚上。当一直按下正转键,小车前进,若此时有速度调节按键按下时,执行调节速度后的程序,否则,执行未调节速度后的程序;当一直按下反转键时,小车就会后退,速度调节时,执行调节速度后的程序。如果遇到突然发生的情况,比如当有行人或者车辆通过正在运行的电动伸缩门时,就需要电动伸缩门立即停止,这时可以按下P1.3口连接的按键,使正在行驶中的小车立即停下。图3-4按键和键盘控制仿真图3.1.5DS1302时钟芯片电路(1)DS1302芯片说明DS1302慢速充电时钟芯片包括实时时钟/日历提供秒﹑分﹑时﹑日﹑周﹑月和年等信息。对于小于31天的月,月末的日期就会自动进行调整,同时还包括了闰年校正的功能。时钟的运行可以采用24小时制或者带AM(上午)或PM(下午)的12小时格式。使用同步串行通信,简化了DS1302与微处理器的通信。数据可以以每次一个字节或者多达31个字节的多字节形式传送至时钟/RAM或从其中送出。(2)工作原理串行时钟芯片的组成部分有:位移寄存器﹑控制逻辑﹑振荡器﹑实时时钟以及RAM。为了初始化任何的数据传送,把RST置为高电平且并把提供地址和命令信息的8位装入到移位寄存器。数据在SCLK的上升沿串行输入。5下图为引脚排列:图3-5引脚排列无论是读周期还是写周期发生,也无论传送方式是单字节传送还是多字节传送,开始8位指定40个字节中的哪个将被访问。在开始8个时钟周期把命令字装入移位寄存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据。以下为引脚说明:表3-2引脚说明X1,X232.768kHz晶振引脚GND地RST复位I/O数据输入/输出SCLK串行时钟Vcc1,Vcc2电源引脚(3)DS1302的仿真图将DS1302芯片的片选端,数据信号端,时钟信号端分别接至P3.5,P3.4,P3.6口,通过软件设置,实现地址和数据的传送。在时间修改的时候,按下功能键,DS1302停止计时。当修改时间完毕后,重新恢复DS1302的工作,将地址和数据送入DS1302中,计数器开始计时,LCD1602开始显示。以下是DS1302的仿真图:图3-6DS1302仿真图3.1.6总设计仿真图6下图为电动伸缩门的总仿真图:图3-7总仿真图3.2软件设计软件设计包括主程序的设计以及各个子程序的设计。主程序主要实现了小车的运行,子程序实现了LCD液晶的显示,具体如下:3.2.1主程序主程序主要实现电机的正转、反转、停止和安全性实现,首先将液晶显示和DS1302时钟芯片进行初始化,对时间调节按键进行扫描,确定有无按键按下,当功能键按下时光标显示,进行时间调节,并将调节后的时间送入LCD1602进行显示。当一直按小车前进键时,判断是否进行伸缩门调速,若需要则执行调速后的前进程序,否则执行未调速程序,当一直按小车后退键时,其原理同上。在伸缩门安全性实现上,当模拟开门或者关门工作时,若遇到突发状况,比如有行人或者车辆通过时,按下停止按钮,执行中断程序,伸缩门停止工作。73.2.2DS1302时钟芯片程序与LCD1602显示程序设计该模块程序分为以下子程序,分别为写命令与数据函数,写时分秒、年月日的日期函数,对LCD1602的初始化函数。程序见附录:3.2.3按键扫描程序首先定义三个调节按键,分别为功能键,增大键,减小键,当功能键按下1次时,LCD光标显示在“年”位置处,表明开始调节时间,液晶停止从DS1302读数据,记录按下功能键次数,分别将其定位到LCD不同位置处