序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的晾衣架控制系统的设计
1 硬件设计
1.1 单片机
本系统需要有数据处理功能的CPU、随机存储器RAM、只读存储器ROM、多个I/O口和中断系统、定时器/计数器等功能,作为系统中的主控制器,起到核心控制的作用。因为STC89C52性能稳定、功耗低,存储量也比较大[1],所以本次设计选用主控制器型号是STC89C52的单片机。它的内部ROM存储器:8k;RAM:256k;定时器:2个(ROM:是程序存放指令代码和一些固定数值,程序运行后不可改动;RAM:用于程序运行中数据的随机存取,掉电后数据消失[2]。)32个可编程I/O口线可供用户使用;八个中断源,其部分引脚功能如表1.1所示。
表1.1 STC89C52引脚
端口 | 引脚 | 第一功能 | 第二功能 | ||
位置 | 符号 | 功能 | 符号 | 功能 | |
P0 | 39-32 | P0.0-P0.7 | 通用I/0口 | AD0-AD7 | 地址数据总线 |
P1 | 43473 | P1.0-P1.7 | 通用I/0口 | ||
P2 | 21-28 | P2.0-P2.7 | 通用I/0口 | A8-A15 | 地址总线(高位) |
P3 | 10 | P3.0 | 通用I/0口 | RXD | 串行通信发送口 |
11 | P3.1 | 通用I/0口 | TXD | 串行通信接收口 | |
12 | P3.2 | 通用I/0口 | INT0 | 外部中断0 | |
13 | P3.3 | 通用I/0口 | INT1 | 外部中断1 | |
14 | P3.4 | 通用I/0口 | T0 | 计数器0输入端口 | |
15 | P3.5 | 通用I/0口 | T1 | 计数器1输入端口 | |
16 | P3.6 | 通用I/0口 | WR | 外部存储器写功能 | |
17 | P3.7 | 通用I/0口 | RD | 外部存储器读功能 |
STC89C52是双列直插式40管脚的芯片,其引脚如图1.1所示。
图1.1 STC89C52引脚图
单片机在学术上也可叫做微控制处理器[3],在众多微控制处理器中,单片机具有独特的优势。单片机因具有质量轻、所需空间小、容量大、成本低、低功耗、稳定性高等特点在20世纪70年代时得到了迅速的发展。一直到今天,随着新时代中国特色社会主义的不断壮大和发展以及十九大以来为积极响应和配合国家号召,在自动化领域越来越趋近于智能化,在科技方面,更加注重于航空、陆地、水运等方面的综合性发展;在生活方面,智能化的产品更是琳琅满目。
单片机的最小系统是指用尽可能少的外设器件和几个电路模块使单片机能够稳定运行。在大多数的STC89C52单片机的电路设计中最小系统包括:复位电路、时钟电路、电源电路[4]。本设计单片机的最小控制系统如图1.2所示。
复位电路对基于嵌入式的智能家居电器系统来说也是必不可少的,可以用来复原系统也可以用来防止由于系统的抖动而干扰系统。当系统运行不稳定的时候,可以按下复位键来终止系统的运行,系统复位的时间一般是持续5ms,本系统的复位时间是2ms,复位更快速。STC89C52单片机最小系统的复位是通过外部的复位电路来实现的[5]。最小系统复位电路的实现过程是:我们可以把单片机的复位电路理解为电脑的重启。当电脑正在被运行的时候,出现了死机的情况,此刻如果按下复位按钮,电脑内部的程序就会重新运行[6]。同样的道理,单片机也是一样的。当单片机系统正在运行,突然受到外界环境的干扰出现程序跑飞的情况,按下复位按钮,重新启动程序,这样以保护单片机不会因突然的干扰以至于系统崩溃。52单片机的复位需要在第9引脚处接低电平信号,当系统启动时,按下系统复位按钮。如果再次按释放键,系统将重新启动。在操作系统中,您可以通过主开关控制系统进行复位。
处理任何事情都要有时间上的先后顺序,单片机也是如此。为了确保系统能够稳定运行,系统必须要有一个时钟。单片机最小电路中的时钟电路是由一个晶振和两个电容构成的。本系统所选的晶振为11.0592MHZ,电容的型号取决于所选择晶振的型号来确定,所以这次设计选用的电容大小为30pF[7]。时钟电路中的这两个电容的作用是帮助晶振进行起振的,以满足控制器上电之后能够正常地进行工作。
图1.2 单片机最小系统原理图
1.2 按键设计
本设计中的按键需要能够调控晾衣架系统的状态切换,系统的手动和自动模式切换需要通过按键来实现,当系统处于手动模式下,又需要两个按键来实现收晾衣物等。本设计需要实用性强,功耗低,最好键盘之间能够相互独立的按键。
常用的按键有导电橡胶按钮和机械触点式按键。导电橡胶按钮是通过弹性复位,具有占用面积小、适合大批量生产等特点。但是使用寿命较短,使用一段时间后橡胶会出现老化的情况以至于弹力下降,同时导致灰尘更容易进入到电路里导致接触不良[8]。
机械触点式按键是利用机械的弹性来实现复位的,直接用I/O口线构成的单个按键电路,它的特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其他I/O口线的状态。电路配置灵活,软件结构简单,具有成本低,低功耗,制作简单,每一个按键之间都是相互独立的,如果某一个出现了损坏方便更换等优点。但是触点处容易侵入灰尘而导致接触不良,体积相对较大,但是由于本次设计需要用到的按键较少,所以需要占用的空间很小,不影响对系统的设计安排。
综合选择,本系统采用的是机械触点式按键,因为它满足本设计低功耗,实用性强等特点,如果在使用过程中有按键出现损坏也不会影响整个系统,方便替换,需要的成本也低。在选择了需要的按键之后,本次系统设计我使用了3个机械触点式按键,分别是手动/自动模式切换键,晾衣物键以及收衣物键,原理图如图1.3所示。K1与单片机的P35管脚相连,K2与单片机的P36管脚相连,K3与单片机的P37管脚相连。将信号输入给单片机后实现手动自动模式的切换。
图1.3 按键设计
1.3 光线检测模块
本系统中需要可以检测当前所处环境的光照强度的强弱,能够对可见光具有一定的灵敏度。当环境光照波长在0.38mm以下的时候,认为光照强度较弱,本系统中判定为黑天;当环境光照波长在0.38mm~0.78时,认为光照强度较强,本系统中判定为白天。
根据光敏电阻对光的敏感性可以分为:紫外光敏电阻、红外光敏电阻和可见光敏电阻。可见光敏电阻可应用于光电控制系统,本系统选用的光敏电阻是可见光敏电阻,选用5528光敏电阻,我们又可称它为光导管,其电路原理图如图1.4所示。它能在特定波长的光照射下,具有阻值迅速减小的独特特点。该光敏电阻对光的敏感性与人眼对可见光的响应比较接近,只要人眼可感受的光都会引起光敏电阻阻值的变化,随着光照强度的增大,阻值也会随之变小,环境温度为25℃的最大功率。当光敏电阻接收光线强度的波长低于0.38mm时,本系统判定当前为黑天;当光敏电阻接收光线强度的波长在0.38mm~0.78mm时,本系统判定为白天。符合我对本系统光照的技术要求。从原理图中我们可以看出,光敏电阻将电压信号输入给电压比较器LM393中再由电压比较器转化为数字信号从OUTB管脚发送到单片机的P11管脚。
图1.4 光敏电阻电路图
1.4 雨滴检测模块
雨滴传感器作为本系统中用来检测当前系统所处环境的晴雨状态,用来配合光敏电阻完成对环境状态检测。本系统要求当光敏电阻检测到当前为黑天状态时,无论雨滴传感器是否能够检测到有雨,晾衣架都是收衣物的状态;当光敏电阻检测到当前为白天状态时,雨滴传感器检测到有雨,那么晾衣架状态为收衣物;若检测到无雨,晾衣架状态为晾衣物。
雨滴传感器又可以称为雨刷传感器,它的种类有很多,我用的型号是FC-37雨滴传感器,它的原理图如图1.5所示。
FC-37雨滴传感器是一种雨珠感应式雨滴传感器,由高品质FR-04双面材料制成,面积为5.0*4.0cm,灵敏度相对较高,具有对抗氧化、导电性、寿命方面更优越的性能。从它的构造上就可看出,当有水滴落在上面的时候,VCC和GND就会相连接,由于材质的原因,他们直接相连接不会短路[9]。当它检测到有雨滴落在它的检测器上时,它就会输出电压信号用来传递给单片机,所以根据它的这一特点完全能够满足本设计中对雨滴检测模块的要求。从原理图中我们可以看出,雨滴传感器将电压信号输入给电压比较器LM393的INA+管脚中,再由电压比较器转化为数字信号,从OUTA管脚发送到单片机的P10管脚。
图1.5 雨滴传感器电路图
1.5 电压比较器
因为单片机不能直接接收外界输入的电压信号,而本系统中用到的光敏电阻和FC-37雨滴检测器输出的信号都是电压信号,所以需要电压比较器用来将外界需要输入给单片机的电压信号转换为数字量信号。
本设计所用的电压比较器型号是LM393,它是一种高精度比较器,能够兼容逻辑电路,主要参数和特点有:电源电压工作范围宽(单电源、双电源均可工作),单电源:2.0~36V;双电源:±1.0~±18V;消耗电流小,ICC=0.8mA;输入失调电压小,VIO=±2mV;共模输入电压范围宽,VIC=0~VCC-1.5V;输出与TTL,DTL,MOS,CMOS 等兼容;输出可以用开路集电极连接“或”门。
电压比较器的所有没有用到的引脚必须接地,LM393偏置网络确立了其静态电流与电源电压范围2.0~30V无关。在通常情况下,电源不需要加旁路电容。差分输入电压可以大于VCC并不损坏器件输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上[10],不受 VCC端电压值的限制。所以本次设计采用了LM393电压比较器将输出的电压信号转变为数字量信号送给单片机进行处理。其电路图如图1.6所示,从原理图中我们可以看出,电压比较器的OUTA管脚与单片机的P10管脚相连,OUTB管脚与单片机的P11管脚相连,INA-和INB-分别接两个滑动变阻器,用于调节光敏电阻和雨滴检测器的灵敏程度。
图1.6 电压比较器电路图
1.6 微动步进电动机
本设计需要控制晾衣架的收晾衣物,所以需要可以灵活实现正转、反转的电动机,且需要电机反应灵敏,具有可以快速启动、停止的能力,系统负载重量20千克即可。
本系统采用的电机是型号为DXM1159-A的2相4线式微动步进电机来实现晾衣架的伸缩功能,该步进电动机具有低成本、低功耗、精度高等优点[11]。该电动机可以承受负载0~30千克的重量。它的参数有:电机直径:15mm;电机长度:10mm;丝杆长度:60mm;滑块行程:50mm;步进角:1.8度;P极对数是3000。
根据公式1-1,我们需要知道线速度的值,根据公式1-3我们还需要知道电机的转速,所以先从公式1-2开始计算,代入数值n=60*50/3000,得出n=1rad/s;将n=1rad/s再代入到公式3中线速度v=2*3.1*7.25*1=45.53mm· rad/s。
利用公式1-2和公式1-3得到了我们想要的数据,接着计算电动机最大负载为30千克时的功率:利用公式1-1代入数据得P=0.3*9.8*30=88.2w。那么本系统设计中需要的负载为20千克即可,同样,我们把数据代入大到公式1-1中得:P=0.25*9.8*20=49w
因为在选型过程中,一定要保证输出功率大于负载所需要的功率,所以88.2w>49w,符合本设计的需求。
电机功率:P=F*v=mg*v (1-1)
电机转速:n=60f/p (1-2)
线速度:v=2πR*n (1-3)
式中F----恒力,这里我们理解为恒等于重力;
f----50赫兹;
P----极对数;
R----电机直径。
微动步进电机我们还可以把它叫做丝杆电动机。由于单片机的驱动能力弱,所以选择LB1848来驱动步进电机。LB1848的作用主要是放大驱动电流使步进电机正常工作,工作电压为5V[12]。通常单片机驱动LB1848时,VCC引脚应该悬空或接电源。1N2、ENA、1N1引脚分别与单片机引脚P22、P21、P20相连,综上所述,丝杠电动机符合本设计的需要,步进电动机驱动电路原理图如图1.7所示。从图中我们可以看出,电动机的驱动模块LB1848芯片引脚IN2与单片机P22管脚相连,ENA与单片机P21管脚相连,IN1与单片机P20管脚相连,进而控制微动步进电动机的转速。
图1.7 步进电动机驱动电路原理图
1.7 硬件电路原理图
本系统硬件部分原理是由单片机最小控制系统控制整个硬件部分的运行,在最小控制系统旁边有一个下载接口,用于系统C语言程序代码的下载,整个系统使用5V电源,指示灯电路会显示现在系统所处的状态,四个指示灯分别代表自动模式、手动模式、晾衣物和收衣物,分别于单片机P00、P01、P02、P03管脚相连;当系统接通电源按下总开关后,系统默认状态为手动模式下收衣物,电动机接收到系统给的指令进行相应的转动,当触碰到限位开关SW3后,电动停止转动代表收衣物已达最大限度;同理,当触碰到限位开关SW2后,电动停止转动代表晾衣物已达最大限度,此刻,用户可根据自己的需求对晾衣架控制系统进行相应的状态调节。
当我们按下切换按键系统变为自动模式后,系统会根据光敏电阻和雨滴传感器检测到的电压信号,由电压比较器LM393将电压信号转化为数字信号输入给单片机中已实现对晾衣架的系统控制。当且仅当光敏电阻检测到当前为白天且没有雨的环境下,晾衣架才是晾衣物状态,其他任何状态都是收衣物状态。本系统硬件电路图如图1.8所示。
图1.9 程序下载工具图标
图1.10 软件首页
2 焊接与调试
2.1 电路焊接
在选择电路焊接的方式时,原始也是最常用的焊接方法是手工焊接。当前,在工厂焊接大量的生产基本上是不采用原始的方法了,但是在普通元器件的修理、系统在测试中,最经常使用的方法就是原始的手工焊接。焊接在整个系统设计中是很重要的环节,不管我们在设计系统时想的和设计的再多,如果在焊接实物的这个过程中出现了问题,会影响到整个控制系统的运行,这个系统的设计很有可能就会以失败而告终[17]。所以说焊接的技术会直接导致设计的这个控制系统是否能够使用。焊接后实物图如图2.1所示。
图2.1 焊接实物图
为了确保系统能够正常运行,在焊接的时候要严格根据电路图认真对照,尽量避免焊接位置出现错误或者连错线等问题。在电路的焊接过程中,经常会出现焊锡不够的情况,这个时候我们需要做的是:补焊锡。但是应注意补的焊锡量不能补太多,因为很容易连接到其它器件的引脚可能会导致出现短路的情况。如果遇到了焊锡过多时,有两种方式可以解决这个问题:可以使用电烙铁放在焊接处来回滑动,用电烙铁将多余的焊锡带走,也可以使用吸锡器除焊锡。
2.2 系统调试
在系统接通电源之前,首先观察实物的焊接是否存在问题,如:有明显断裂、正负极连接、器件连接、焊接不实等。如果焊接的物体没有问题接下来我们用万用表来检测电源的正负电压,观察是否出现了严重的电源问题,如短路、断路等以确认焊接的系统没有问题。
物体焊接没有问题以后,还需要对软件程序进行调试,如果程序调试没有出现错误等问题,接下来验证系统的功能能否满足要求,如果功能存在问题,需要继续调试程序,反复进行调试直到所有功能都满足为止。
2.2.1 软件调试
在软件调试过程中,点击编译按键,文件在系统中正常运行,提示的信息可以在窗口中进行显示,若提示的信息中显示错误标识,就要根据提示找到错误程序并改正,直到错误消失。
实际在调试过程中,首次对程序进行编译时提示窗口提示错误,经过检查发现在程序句末尾遗漏的分号,除此之外出现过其他的问题,经过请教老师还有公司的师傅以及同学的帮助,一次次的编译和修改,直到程序提示没有错误为止。
2.2.2 硬件测试
首先使用万用表检测电源是否连接完好,然后检查元器件的管脚是否连接正确,有没有出现接线错误的情况。接通电源以后,观察每个元器件是否能够进行正常的工作,逐一测试功能。
在测试过程中,如果发现LED指示灯不亮,首先检查焊接情况,如果没有发现接错或虚焊情况,那么检查程序的编写是否出现错误提示;如果都没有问题,我们基本可以断定是该元器件损坏了,需要更换新的LED指示灯。
2.3 实物测试
根据本系统的设计需求,对实物功能进行逐一测试:
(1)将电动机上的端子(用来表示所晾衣物)移动到中间位置,接通电源后按下开机按钮,电源指示灯亮起,系统默认为手动模式,电动机上的端子会默认向右移动,代表晾衣架开机时默认的状态是收衣服;
(2)按下切换模式按键,系统所处模式更换为自动模式,在光敏电阻附近照明营造白天光线强度较强环境,并且保持雨滴传感器上干燥,步进电动机上的端子向左滑动,代表晾衣架伸展晒衣物;
(3) 保持光敏电阻附近照明营造白天光线强度较强环境,将一片湿巾或者蘸有水的纸巾放在雨滴传感器上营造天气中为下雨状态,步进电动机上的端子向右滑动,代表晾衣架收缩收衣物;
(4)取消光敏电阻附近的照明,用手捂住光敏电阻或者移动到光线较弱的地方,此时不管雨滴传感器上是否检测出有雨水,步进电动机上的端子都是向右滑动,代表晾衣架收缩收衣物。
所有的预设功能均得以实现,实物展示图如图2.2、2.3所示。
图2.2 实物展示图 图2.3 实物展示图
原理图
如果你有任何问题、需要建议或解决疑难,别客气噢,随时找我求助或寻求支持。我专注于单片机相关的知识,可以提供电子设计、嵌入式系统、编程和硬件方面的宝贵帮助。不管你的问题属于哪个领域,都可以向我咨询啦,获取有针对性的建议和指导。祝愿你在单片机设计领域取得巨大成功!