这是我在大学期间的单片机控制技术培训课程中完成的作业项目。该项目以温度感应的形式制作,这种类似的设备在生活中非常常见。许多公共场所也有相关和报警功能。
不仅需要这个项目STC89C51系列单片机的一些基础知识及其控制原理,也要了解关键部件DS18B使用20温度传感器,该组件是一个独特的一线接口,只需要一个口线通信多点能力,简化了无外部元件的分布式温度传感应用,可用数据总线供电,电压范围为3.0V至5.5 V,温度范围为-55℃至 125℃。
==================================================
温度感应装置在生活中很常见。许多公共场所也有相关装置和报警功能。这个操作项目也让我想起了用51系列单片机设计温度感应报警装置。这方面不仅需要掌握单片机的基本知识,还需要掌握一定的单片机程序设计知识,还包括硬件选择、电路设计、各部件的作用等。
经过思考和验证,决定的基本功能如下:
通过18B20温度传感器作为温度传感器材料STC89C51RC由单片机进行数据处理LCD显示温度值及其相关值;
设计过高温和过低温两种情况的阈值,当温度传感器部分反馈的温度超过所设置的阈值(过高温和过低温),装置上即可产生报警状态,即红色LED灯亮起,代表超过过高温阈值,表示报警,同样,绿色LED灯亮起,代表超过过低温阈值,表示报警;
设计三个功能按键,分别为设置键、减值键和增值键,其中设置键操作后即可变换温度阈值需要增减的内容,然后减值键和增值键操作后即可对需要增减的温度阈值进行增减调试;
可以通过3.5mm圆孔接口输入电源,系统可直接通电。
电路硬件设计到处都是TS6643ZJ按钮位于设备的右上角和左下角。
设备右上角的三个按钮分别是减值键、增值键和设置键:
左上角和右上角是减值键和增值键,可以增加或减少所需的温度阈值,并调整用户想要达到的相应阈值。
右下角设置键,操作后可改变用户想要调试的内容,如调整过高温阈值。
设备左下角的按钮为复位按钮:
按键时,开关打开。此时,电容器两端形成电路,电容器短路。因此,电容器在充电前开始释放电荷,单片机系统自动复位。
电路硬件设计上有一处接口,为3.5mm圆孔接口,建议对应的电源线为USB接口 to 3.5mm圆孔接口;
USB接口接入对应电源,然后3.5mm圆孔接口可以直接接入该装置的DC 5V电源的3.5mm圆孔接口座,以此得电,让装置工作。
在硬件设计工具的选用上,本次的电路设计主要采用的关键元器件是STC89C51RC芯片,DS18B20数字温度传感器、LCD1602数字显示器。
STC89C51RC单片机具有成本低、性能高的特点,支持ISP(在系统编程)及IAP(在应用编程)技术。使用ISP技术可不需要编程器,而直接在用户系统板上烧录用户程序,修改调试非常方便。
DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点,在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证 转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。
有一点需要注意:在外部供电的方式下,DS18B20的GND引脚不能悬空 ,否则不能转换温度,读取的温度总是85℃。
LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。
LCD1602分为带背光和不带背光两种,其控制器大部分为HD44780。带背光的比不带背光的厚,是否带背光在实际应用中并无差别,具体的鉴别办法可参考下面所示的器件尺寸示意图:
软件设计工具的选用上,采用的是Proteus 8.11仿真工具,电路设计方案设计布局:
左上处以一个复位按键为主的电路为复位电路,该系统刚开始接上电源时,还是断电或者发生故障后都要复位。而这样的设计就是使 CPU和系统中的其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作;
左中处以晶振为主的电路为时钟电路,本装置为了保证该系统的同步工作的实现,同时设计入两个瓷片电容以稳定晶振的频率,在这种唯一时钟信号控制下进行有序工作;
左下处以两个二极管(不同色)所组装的电路为播放器的发光二极管示意,一边红色与一边绿色所示意“过高温”和“过低温”这两种状态;
右上处设计的是由LCD1602与排阻配合的电路P0口排阻是上拉电阻,P0口作为I/O口输出的时候时,出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态)。也就是说P0 口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻(一电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流;
右中处设计了3功能按键,分别为设置键、减值键和增值键,其中设置键操作后即可变换温度阈值需要增减的内容,然后减值键和增值键操作后即可对需要增减的温度阈值进行增减调试;
右下处设计了以DS18B20为主的温度感应电路,VCC管脚接入电源,GND管脚接地,DQ部分接入单片机指定信号口,VCC管脚与信号口接入一个4.7kΩ的上拉电阻,DS18B20是单总线温度传感器,数据线是漏极开路,如果DS18B20没接电源,则需要数据线强上拉,给DS18B20供电;如果DS18B20接有电源,则需要一个上拉即可稳定的工作。
根据软件设计后,实际电路布局设计后如下(接通电源):
实际电路的焊接部分实际情况如图:
以下表格则为该装置实际需求和自行设想部分,所实际用到的元器件以及使用原因:
STC89C51RC |
1 |
主控芯片 |
|
TEXTODL牌 |
1 |
芯片固定锁紧 |
|
LCD1602 |
1 |
显示数值 |
|
DS18B20 |
1 |
感应外界温度 |
|
1N4148W |
1 |
单向导通保护单片机 |
|
3.5mm圆孔 |
1 |
接通电源与供电 |
|
USB接口 to 3.5mm圆孔接口 |
1 |
接通电源与供电 |
|
204-10SURT/S530-A3 |
2 |
方便观察电路状态 |
|
300 Ω |
3 |
电路电阻 |
|
4.7 kΩ |
1 |
电路电阻 |
|
10 kΩ |
1 |
电路电阻 |
|
10 μF |
1 |
储放电荷 |
|
30 pF |
2 |
稳定晶振的频率 |
|
11.0592MHz |
1 |
装置工作运行 |
|
TS6643ZJ |
4 |
按键操作 |
|
RM065-V1 502 (5K) |
1 |
调整显示器亮度 |
|
1007 |
280(mm) |
导通电路 |
|
YS-10CM*22CM |
1 |
电路装置载体 |
|
2.54MM间距 |
16 |
连接显示模块 |
|
2.54MM间距 |
17 |
固定显示器与电路板 |
|
A103J |
1 |
用于显示器上拉电阻 |
经过这一段时间对单片机控制技术实训的作业项目研究与制作,我不仅收获到了STC89C51系列单片机的一些基础知识,以及它的控制原理。
在这次作业当中,也初次学习了DS18B20温度传感器的使用,这个元器件是独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用,无需外部元件,可用数据总线供电,电压范围为3.0V至5.5 V,无需备用电源,测量温度范围为-55℃至+125℃。
在使用DS18B20温度传感器的时候,出现了两次失误,第一次是管脚识别错误:
在实际通电测试的时候发现示数错误,经排查认为温度传感部分存在问题,再次审核该元器件说明书发现存在实际使用上的错误,具体是GND管脚与VCC管脚放置错误。
第二次出现的失误很尴尬:
在更换元器件时,发现通电后,元器件十分烫热,仔细一看发现是误将8050三极管当作DS18B20传感器使用,两者元器件在外观上十分之相似。
最后核定好后,更换了DS18B20传感器后,并且确定好管脚连接无误,系统工作正常,显示器示数正常,操作也是正常。
而程序方面其实是参考了相对多的资料,在整个过程中是比较煎熬的,因为换过很多程序,也出过很多BUG,搬运过不少资料,也借鉴了很多CSDN上面的资料,也翻阅了有关元器件的说明书,最后完成了该作品。