序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的宿舍安全监控系统设计
3 系统硬件设计
3.1 主控电路
本设计是以STC89C52为核心的嵌入式开发,其自带的功能和资源足够完成本次设计[13]。选用该单片机作为主控电路芯片,不仅仅是因为其是在本科阶段接触最多的单片机对其的使用方法了解很多,而且其性价比高。
表3.1STC89C52主要功能和资源
下面对本次设计主要用到的单片机功能和资源的介绍:
(1)时钟电路
时序电路由两个30pF的陶瓷电容(直插式)分别和一个12MHz的晶振并联组成,电容在这里作用是帮助晶振起振,滤波,维持振荡信号的稳定。晶振的作用是为单片机系统提供基准时钟信号,是单片机工作的基础。如果缺少或使用晶振与所使用的程序不协调,都会导致单片机无法正常完成工作。STC89C52内部时钟电路如图3.1所示。
图3.1STC89C52内部时钟电路
(2)复位电路
复位电路的作用就行电脑的重启一样,这样设计是当遭受意外单片机死机或程序跑飞的情况下,当按下复位按键单片机所有电路会回到起始状态下,重新运行一次所有的初始化程序,再进入while循环当中。STC89C52复位电路如图3.2。
图3.2STC89C52复位电路
(3)中断概述
中断目的是提高单片机时间利用率。中断就是在程序执行的过程中,突然有其他的程序要运行,就中断原先正在执行的程序,去执行另一个程序当程序完成后,再返回原先的程序继续运行。我们可以看这种工作方式是在同时运行两个程序,大大提高了程序对时间的利用率。图3.3为中断响应和处理过程。
图3.3中断响应和处理过程
(4)串行通信UART
串行通信是将数据的每一位在同一个数据线上按照顺序逐位发送或接受。同并行通信相比较,串口通信具有占用串口资源少、传输距离长、并且由于串行通信的通信时钟频率容易提高,所以抗干扰能力强。串行通信也有缺点,在传输速度上,串口通信要比并行通信慢得多。同时,还有注意串口通信的两个设备的波特率要一致,否则无法实现信息的发送与接收[14]。单片机之间的串口通信方式如图3.4。
图3.4单片机之间的串口通信方式
3.2 温湿度检测电路
图3.5DHT11测量电路
DHT11是一款符合本设计要求的传感器,可以同时达成对周围温度与湿度的测量任务。传感器能同时完成这样测量的原因是其内部包含一个电阻式温湿元件与一个NTC测温元件,并可以将测量好的数据通过单线双向的传输方式传给单片机中[15]。温湿度检测电路由DHT11与一个上拉电阻组成如图3.5。
该温湿度传感器的数据采集过程:在采集数据之前,传感器的2号引脚在空闲状态下为高电平,在要开始采集数据时单片机引脚输出低电平,将传感器的2号引脚拉低至少18us,再将低电平拉高时长在20-40us之间,经过传感器低电平相应信号80us后,完成这一系列的操纵后传感器开始工作,传感器会将温湿度的数据以40bit数据的形式传输到单片机做进一步处理。
该传感器传输数据比较特殊,传输数据“0”与“1”的判断是在50us的低电平之后的,高电平时长来判断的,高电平时长在26-28us判断为“0”,高电平时长在70us判断为“1”。
表3.2引脚说明
编号 | 符号 | 类型 | 引脚说明 |
1 | VDD | 电源 | 正电源,3V-5.5V |
2 | Dout | 输出 | 单总线,数据输入/输出引脚 |
3 | NC | 空脚 | 空脚,扩展未用 |
4 | GND | 地 | 电源地 |
3.3 MQ-2烟雾检测电路
图3.6MQ-2烟雾检测模块原理图
该部分设计使用MQ-2型电阻式半导体传感器采集烟雾信号,该传感器使用在清洁空气中导电率较低的二氧化锡制成。当检测空气中的烟雾浓度上升时,传感器的导电率也随之增强,再经放大器将电压放大。MQ-2气敏传感器要先加热才能使用,所以MQ-2气敏传感器需要通电60-90s,传感器才能进入稳定的工作状态。这也解释了传感器会发热,是正常反应。该传感器有6只针状管脚,其中2个用于加热传感器,其他4个用于信号取出。
3.4 报警电路
图3.7蜂鸣器电路
该部分包括蜂鸣器报警和LED报警,蜂鸣器报警原理图如图3.7,由蜂鸣器、PNP三极管、1K欧姆电阻组成,这样设计的理由是蜂鸣器使用时电流很大,容易损坏单片机,所以需要使用三极管驱动。单片机控制三极管基极来控制蜂鸣器的运作。
3.5 LCD1602液晶显示电路
图3.8LCD1602电路设计
LCD1602液晶显示器,字如其名它是由可以显示两行,每行16个字符的液晶组成。LCD1602自带自带数字和英文大小写字符以及一些特殊符号的字符库,如果想要LCD1602显示汉字可以在LCD1602片内的CCRAM空间里存放8个6X8点阵的汉字自建库。可以通过调节3号引脚的电压来调节液晶中的显示黑点与不显示黑点的对比度,使显示器显示字符更加清晰,此处通过调整电位器的分压值来调节3号引脚的电压,如图3.8所示。可以通过调整4、5、6引脚对于的RS、R/W、E的高低电平,来向LCD1602发送四个操作时序,包括读状态、写指令、读数据、写数据等指令[16]。
表3.31602液晶引脚功能
引脚编号 | 符号 | 引脚说明 | 引脚编号 | 符号 | 引脚说明 |
1 | VSS | 电源地 | 9 | D2 | DataI/O |
2 | VDD | 电源负极 | 10 | D3 | DataI/O |
3 | VL | 液晶显示偏压信号 | 11 | D4 | DataI/O |
4 | RS | 数据/命令选择端 | 12 | D5 | DataI/O |
5 | R/W | 读写选择端 | 13 | D6 | DataI/O |
6 | E | 使能信号 | 14 | D7 | DataI/O |
7 | D0 | DataI/O | 15 | BLA | 背光源正极 |
8 | D1 | DataI/O | 16 | BLK | 背光源负极 |
图3.9LCD1602内部RAM结构图
LCD1602的第一行的地址是由0X00H到0X27H,第二行的地址是由0X40H到0X67H,LCD1602内部RAM结构如图4.9所示。而液晶显示器每个行只有16个字符也就是只需要16个地址就可以对应16个字符,多出来的一部分是为了显示移动字幕设置的。
3.6 红外出入检测电路
图3.10传感器内部原理图
E18-D80NK-N光电开关传感器由一个红外发射器和一个红外接收器构成,如图3.10所示。该传感器是数字传感器输出状态只有高电平和低电平这两种状态。当接通电源在传感器前没有障碍物传感器输出高电平,背部的小红灯处于灭的状态,只有当检测到前方由障碍物时,传感器才输出低电平,背部的小红灯处于亮的状态。而且E18-D80NK-N可以通过背部的电位器来调节检测障碍的距离,将障碍物放至需要的距离,调节电位器,当红灯亮起的时候停止调节,这样E18-D80NK-N就调节好了,需要注意的是E18-D80NK-N的有效调节距离在3到80CM之间。
表3.4光电开关传感器的电气特性
名称 | 参数 |
工作电压 | 5VDC |
工作电流范围 | 10—15mA |
驱动电流 | 100mA |
感应距离 | 3—80cm |
3.7 室内总闸及照明设施控制电路
图3.11继电器与LED电路图
继电器原理:通过给电磁线圈加电,使电磁线圈产生磁力吸引继电器中的衔铁,工作电路闭合。当电磁线圈断电,线圈中的衔铁会在弹簧的作用下,使工作电路断开。
继电器作用:有隔离作用,隔离强电与弱电避免强电进入弱电系统破坏弱电电路与元器件、可以使用低电压控制高电压,提高电路的安全性和稳定性同时减少能量的损耗。
将LED灯的阳极接到继电器上,阴极接到单片机上,点亮LED灯的条件是接高电平的继电器闭合,单片机串口输出低电平,就可以点亮LED灯,该控制LED亮灭的命令是由手机App发出。继电器作为宿舍总闸,只有当继电器处于导通的情况下,才能可以控制宿舍的灯。
5 系统调试
调试首先检测硬件电路设计是否正确、是否能达到预期效果以及电路是否有可以优化空间等;其次在焊接好硬件电路后,与PCB图对比检测是否有与电路设计一致、是否有虚焊点;最后,在完成每个功能模块的测试,没问题后将所有模块功能一起运行,测试是程序否有冲突。
5.1 调试过程
使用Keil5编程的程序编译结果,如下图
将使用Arduino编辑的ESP8266程序编译并上传到ESP8266芯片中,结果如下图。
图5.3ESP8266编译成功界面
将HBuilderX编辑程序打包成App,结果如下图。
图5.4App打包
App界面包括总闸灯1灯2的开关、温湿度显示以及App与贝壳物联云平台连接情况,App界面如图5.5所示。
图5.5App界面1
图5.6是App第二个界面,主要功能是显示宿舍出入情况。
图5.6App界面2
图5.7火灾警报
图5.8继电器闭合按下App“打开灯1”按钮
图5.9继电器闭合按下App“打开灯2”按钮
5.2 在调试过程中遇到的问题及解决方法
(1)电路焊接完成后,无法运行程序,在进行各种检测后,判断是排母接触不良,由于设备受限,最后选择重新焊接。
(2)在测试液晶显示器LCD1602的程序时,没有正常显示,原以为是程序错误,在开发板上测试后,确定是液晶显示器LCD1602模块损害,初步判断损害是由于元器件老化,更换了液晶显示器LCD1602模块问题解决。
(3)在焊接电路时发现单片机STC89C52的工作电压与ESP8266工作电压不匹配,最终使用ESP8266开发板自带的降压模块来给ESP8266供电。
(4)开发板的晶振是12MHz,而设计的电路上的晶振是11.0592MHz,因为DTH11温湿度检测模块与波特率设计对晶振有严格要求有严苛的要求,所以在开发板上正常运行的程序,不能在设计的电路板上正常工作,最后更换了晶振。
如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!