第1章 课题概述
1.1 课题概述
课题的设计和研究方对象,设计过程及研究内容、实际应用的背景等,针对同一课题,同组内也必须不同
本课题是以C51为基础对湿度检测系统进行简单设计,设计的主要过程为确定连接电路,根据电路原理图进行电路板的焊接,再进行湿度检测程序的设计,最终将程序烧录进单片机进行实际验证。研究内容即为主要程序设计。湿度检测的应用场景十分广大,例如在蔬菜大棚、工厂车间、实验室、药房、库房、仓库、粮仓、酒窖、图书馆、档案馆、文物室等地方。
1.2 课题要求
1)利用51单片机做控制芯片,用GY-39来实现环境湿度的检测
2)湿度值需要保留一位小数
3)湿度值通过计算后,要能够准确的显示在数码管上
第2章 系统设计
2.1 框图设计
湿度系统分为两大模块,硬件系统和软件系统,硬件系统分为三个部分,依次数码管焊接,单片机焊接,继电器焊接,主要接口及连线。软件系统主要包括数码管显示,数据处理,继电器控制。
图2.0 电路板背面焊接图
2.2 知识点
C51函数的定义——延迟函数等。
波特率以及通信方式的设置
通信方式0 1 2 3 其中方式 1 3 是波特率可变 方式0 2 不可变。方式1 3的波特率波特率的计算公式:波特率 = T1溢出率 * (2 ^SMOD) / 32; 2的SMOD次方。{波特率是由T1的溢出率决定的而且定时器1的溢出率是使用定时器1的工作方式2来(提供)}
接收与发送数据
假设波特率和通信方式设置好了,发送的基本原理:有一个数据发送缓存寄存器(SBUF),CPU如果要通过串口发送数据,可以直接向SBUF赋值,串口控制器在一定的波特率控制下,会一个bit一个bit往TX引脚传输数据,当数据发送完成以后TI标志位会置1,接收伪代码:
char data;
while(RI == 0); //等待数据来到串口接收缓存寄存器
data = SBUF;
RI = 0;
接收的基本原理:一个接收数据缓存寄存器(SBUF),CPU如果接收外部串口发过来的数据,先得判断RI这个标志位是否为1,当RI == 1时,就可以把SBUF里面得值拷贝出,接收和发送数据的方式可以为轮询,也可以采用中断的方式,一般发送数据的时候用轮询,接收的时候用中断
中断方式
void uart() interrupt 4
{
if(RI == 1)
{
data = SBUF; //接收数据
....
RI = 0;
}
}
SMOD:PCON寄存器的第7位 其余的7个位没有实际意义(保留)SMOD位为0波特率不变,为1波特率翻倍,PCON寄存器是叫做串口通信模式选择寄存器。
例如:串口通信方式1
波特率为9600
SM0 = 0;
SM1 = 1; //配置串口通信的工作方式1
REN = 1; //配置串口通信接收使能
//配置串口通信的波特率
PCON = 0x00;//SMOD = 0;//设置波特率不翻倍
波特率 = T1溢出率 * (2 ^SMOD) / 32;
TMOD = 0x20;//配置定时器1的工作方式2
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1; //开启定时器1
假设我要使用串口通信中断:
ES = 1; //打开串口中断
EA = 1; //打开总中断
pnp开关电路的控制原理:基极电压高于1v三极管就可以达到饱和导通:低于0.4v就截止。0.6-0.7V左右处于放大区。三极管在数字电路中可以当做开关来使用。可以作为基极电流控制的无触点开关。工作状态为饱和和截止状态,放大状态只是一个过渡过程。三极管饱和相当于开关闭合,截止相当于开关断开。
共阳极数码管显示数字。
继电器工作原理:电磁继电器一般由电磁铁,衔铁,弹簧片,触点等组成的,其工作电路由低压控制电路和高压工作电路两部分构成。电磁继电器还可以实现远距离控制和自动化控制。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。
2.3 硬件设计
2.3.1 电路原理图
电路图主要包括一个最小系统、四位数码管、继电器、蜂鸣器以及GY-39的连接。
GY-39连接
1-最小系统 2-AT89C51 3-四位数码管 4-GY-39 5-继电器
6-UN2003A 7-蜂鸣器 8-pnp三极管
图2.1 湿度系统结构理论图
2.3.2 元件清单
表编号为:
章数.表序号
不要让表头、说明与表分成2页
表2.1 基于51单片机的湿度检测系统元件清单
序号 | 名 称 | 型 号 | 数 量 | 用 途 |
---|---|---|---|---|
1 | 单片机芯片 | AT89C52 | 1片 | 控制作用 |
2 | 传感器 | GY-39 | 1个 | 获取外界数据 |
3 | 四位数码管 | 3461BS-1 | 1个 | 数码显示 |
4 | 排阻 | RESPACK-8 | 1个 | 稳定单片机输出电压 |
5 | 蜂鸣器 | 2048Hz | 1个 | 测量环境温度 |
6 | COMS逻辑器件 | ULN2003L | 1片 | 驱动继电器和蜂鸣器 |
7 | 小信号三极管 | PNP | 4个 | 驱动数码管 |
8 | 晶振 | 12MHZ | 1个 | 稳定震荡 |
9 | 晶振 | 11.0592 | 1个 | 稳定震荡 |
10 | 电阻 | 1K | 4个 | |
11 | 电阻 | 330 | 4个 |
2.3.3 电子焊接制版及效果
表编号为:
章数.表序号
不要让表头、说明与表分成2页
在实际焊接过程中,由于操作不熟练,造成了部分元器件的损坏,有些焊点不均,在实际连线中注意连线,数码管8个排针与P0口连起来, PUT1-4四个管脚与P1^0-P1^4,Vcc、Ground对应传感器的连接,P3^0与P3^1连接CT、DR。
图2.2 电路板背面焊接图
图2.3 电路板正面接线图
2.4 软件设计
2.4.1 程序流程图
先是接收传感器数据,然后对数据进行处理,传到数码管显示,并进行数据判断,如果数据超过范围值,执行继电器,结束。以此将其划分为四个模块,传感器与单片机通信模块,单片机内部数据处理模块,数据显示模块,继电器模块。
总的来说就是在实际应用中,大棚里面的湿度状况经由传感器获得数据,传到单片机里进行数据处理,处理完毕后,将湿度数字以四位显示在数码管上,之后再进行判定,如果湿度达到一定值以上或者一下,就将大棚的大门打开通风,减小湿度,或者关闭大棚大门,增加湿度。
图2.4 程序流程图
2.4.2 程序设计
主要程序设计为发送接受数据、显示、执行控制三个。
由图2.5可以看出此部分程序,通过用循环的方式,将数组中的值不断传到发送缓存器中,之后将发送标志位手动清零。
图2.5 发送程序流程图
数据处理就是将传到单片机的一帧数据进行处理,将传进来的第10位和11位进行处理,再由传感器说明书上的Hum=(高 8 位<<8)|低 8 位 得到后续处理,因为数码管要逐位显示,所以要将int数据通过除,取余来化成对应的个十百千位上的数据。
数码管显示用动态扫描,先将共阳极0-9段码存入数组中,之后将得到的数值带入数组中,遍历显示,视觉暂留,所以延迟了几毫秒。
图2.7 数码管程序流程图
接受一帧数据,由于我们只需要10位以及11位的数据,所以取到了15位。然后对RI手动清零。
继电器以及蜂鸣器功能部分是通过for循环对数据进行判断,首先判断湿度是否大于60,如果大于60蜂鸣器报警,然后下一步判断湿度是否大于30,如果大于30,经由继电器启动,大棚大门打开,如果小于25,大门关闭。
图2.8 蜂鸣器和继电器程序流程图
2.5 系统仿真及调试
由于protuse中不含有GY-39,所以使用实际情况图片代替仿真图,在实际过程中吹口气增加了湿度。数值由66.82增加至了87.38,符合预期效果。
图2.9 吹气前数据图
图2.10吹气后数据图
结 论
通过两周课程设计,使我更加扎实的掌握了电工电子&单片机方面的知识,在设计过程中虽然遇到了一些问题,像是某些电路的连接中,存在短路现象,对于传感器的说明与应用,这些问题在老师的提点以及同学的帮助下得到解决,在程序编辑过程中,也暴露出了前期我在这方面的知识欠缺和经验不足,在焊接电路板的时候,焊过之后就是应该先焊贴片类元件,再焊大的元件。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵,从制版到制作程序的知识得到了应用于加深。
知识的加深是一方面,团队合作的重要性是另一回事,团队需要合作,不能搞什么大包干之类的,要合理分配,组队时要选择合适的搭档,长处互补。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
本次课程设计基本达到课程要求,可以成功显示湿度值,需进一步改进的地方,是湿度检测执行方面,将继电器开关可以改成电机之类的控制蔬菜大棚的帘子,以此控制通风,来达到调节湿度的目的,再就是可以增加调节功能,以此满足用户在种植培育不同作物时,需要不同的最佳湿度状况的发生。
参考文献
谢永超,杨利.基于STC89C52单片机土壤温湿度检测器的设计[J].计算机测量与控制,2019,27(10):205-208+213.
南志坚.基于STM32的室内温湿度检测器设计[J].黑龙江科技信息,2014(07):21.
杜豫平.基于51单片机的温湿度检测器设计[J].电子世界,2011(15):64-65+95.
周志宏.基于STEM的中职Arduino机器人教学设计——以“实时温湿度检测器”为例[J].数码世界,2019(08):188.
]亚萍,李抗抗.实验室温湿度智能监控系统设计[J].兰州文理学院学报(自然科学版),2020,34(06):72-75.
[6]鹏娟,任宇双.基于花房的温度湿度光照控制系统设计[J].机械研究与应用,2020,33(04):86-90.附 录