现场温度通过“一线总线”直接数字化传输,大大提高了系统的抗干扰能力。 适用于恶劣环境下的现场温度测量,如环境控制、设备或过程控制、消费电子测温等。该数字温度计的设计分为五个部分,主控制器、LED显示部分、传感器部分、复位部分、按钮设置部分、时钟电路。 主控制器为单片机部分,用于存储程序和控制电路; LED显示部分是指四位共阴极数码管,用于显示温度; 传感器部分,即温度传感器,用于采集温度并进行温度转换; 复位部分,即复位电路,按钮部分用于设置上下限报警温度。 测量的整体过程是传感器采集外部环境的温度,进行转换后传输给单片机。 温度经单片机处理判断后传输至数码管显示。 2.设计要求基于AT89C51单片机的数显温度传感器的设计主要有以下功能,具体要求如下(1)。 温度传感器DS18B20检测环境温度。 (2)。 采用两个共阳极2位数码管显示温度; (3)。 通过钥匙开关设定上限温度和下限温度。 当检测到的温度达到设定值时,蜂鸣器报警,同时LED灯闪烁。 三、设计的具体实现 1、设计原理采用温度传感器。 在单片机电路的设计中,大多数都会用到传感器,所以这个很容易想到。 因此,可以使用温度传感器DS18B20。 该传感器可以方便地直接读取测量的温度值并进行转换以满足设计要求。
DS18B20数字温度传感器具有单总线的独特优势,可以让用户轻松组建传感器网络,使多点测温电路变得简单可靠。因此,本设计采用DS18B20数字温度传感器来实验名称是“基于AT89C51单片机的数显温度传感器的设计”,对于MCS-51系列单片机,我们首先设计一个可以让单片机工作的最小系统,然后温度传感器将实时温度值发送给单片机,软件编程实现数据处理,然后发送给LED共阴数码管显示,单片机编程时应考虑上限报警温度和通过按键开关可设定下限报警温度,并采用蜂鸣器报警,同时LED灯同步闪烁。 设计任务书里已经给出了元件清单,但是我们需要在软件中对我们设计的电路进行仿真。 我们还需要画出单片机的最小系统电路。 整体电路结构框图如图所示: AT89C51 单片机共阳极 数码管显示模块 DS18BB20 温度传感器模块 单片机时钟电路及复位电路 蜂鸣器报警及 LED 显示模块供电 2. 系统设计(详细介绍选型、设计及工作原理分析各单元电路,并介绍相关参数的计算和要素,器件参数的选择等需要原理图。) (1)硬件设计 硬件电路设计通过单片机仿真软件Proteus8.0编辑原理图,根据实验要求和给定的元件设计如下电路原理图。 并进行了仿真时钟和复位模块实验。 给出的元件中直接给出了AT89C51的最小系统板。 不过我们在设计电路的时候,还是需要把这部分电路画出来。 时钟复位是使微控制器工作的最简单方法。 电路,也称为最小系统。
具体实验电路如下:时钟电路有一个12MHz晶振和两个20~30PF陶瓷电容(无极性)连接到单片机的XTAL1和XTAL2端口; 复位电路由10K电阻和10UF电解电容(有极性)和按键开关组成,连接到单片机的RST端口。 当系统发生故障时,我希望通过按下按键开关对电容器进行充放电来使系统复位,从而使系统回到初始化状态。 蜂鸣器报警及LED显示模块蜂鸣器用于当温度传感器的输入温度值大于设定的上限温度或小于设定的下限温度时,系统会给出相应的信号,使蜂鸣器发出声音,LED显示灯将会亮起。 闪烁的显示屏提供听觉和视觉警报信号。 电路图如下:蜂鸣器由PNP三极管驱动,连接到单片机的P1.0口。 当P1.0口输出低电平时,蜂鸣器发出声音; LED灯的阳极通过1K电阻上拉并连接到Vcc。 负极连接单片机的P1.1端口。 当系统P1.1端口输出低电平时,LED灯亮。 共阳极数码管显示 显示模块实验中给出的数码管是2位共阳极数码管。 在实验显示中,我们需要四个数码管来显示相应的温度,因此我们使用两个共阳极的2位数码管。 并联用作4位共阳极数码管。 电路原理图如下: 数码管的使用设计包括段选择和位选择。 我们将段选择连接到单片机的P0口,位选择连接到数码管的P2.4~P2.7口。 需要注意的是,该数码管是共阳极,所以P0口输出的低电平完全可以驱动数码管的段选显示,但位选输出的高电平不足以驱动数码管的段选显示。数码管显示,导致数码管亮度不够。 这时,我们需要将数码管的位选部分连接到相应的1K上拉电阻,这样可以显着提高数码管的亮度。
DS18BB20温度传感器模块 DS18B20温度传感器是美国达拉斯半导体公司最近推出的一款改进型智能温度传感器。 与传统热敏电阻等测温元件相比,它可以直接读取被测温度,并可以根据实际要求调节温度。 通过简单的编程实现9-12位数字值读取模式。 电路图如下:连接单片机的P2.3口,DS18B20的DQ端需要接一个4.7K左右的上拉电阻。 按钮控制模块的按钮用于设置报警温度上限和下限。 K1用于进入上下限调节模式。 按一次K1进入上限调整模式,再按一次进入下限调整模式。 正常模式下,按一次K2进入上限温度查看模式,约1秒后自动退出。 按一次K3进入下限温度查看模式,约1秒后自动退出。 按一次K4消除按键音,再按一次则开始按键音。 在调节上下限温度模式下,K2实现加1的功能,K1实现减1的功能,K3用于设置上下限温度的正负值。 (2)软件设计通过单片机编程软件Keil4进行编程。 程序部分使用了一个main函数和三个自定义的#include"ds18b20.h"#include"keyscan.h"#include"display.h"头文件。 完成温度的采集和转换,通过键盘设置上下限报警温度和模式切换,通过定时器0延时使数码管动态显示温度。 系统主流程图: 3、系统实现(详细的物理连接图和操作过程中的每一个结果都需要有图片为证,并且需要对每张图片进行简要说明)根据设计框图找到系统的相关资料,在Proteus 8.0中画出原理图,在KEIL 4软件中编写程序,然后将两个软件结合起来,将写好的程序烧录到Proteus 8.0中的单片机中,然后打开仿真开关即可展示设计效果。 通过修改硬件电路并结合程序,达到了实验要求。
然后开始焊接硬件电路,在多孔板上焊接相应的电路,用杜邦线将各个模块与单片机的最小系统板连接起来得到最终的电路,使用烧录软件将程序烧录到单片机中,最后用实际电路形式揭示结果。 系统调试及性能分析:硬件调试时,首先检查电感是否焊接正确,然后用万用表测试或上电检测软件进行调试。 可以先写一个显示程序,检查硬件的正确性,然后进入主程序,分别读出温度子程序。 程序、温度转换命令子程序、计算温度子程序、实时数据刷新子程序的编程与调试。 四. 总结(总结、综合整个设计工作过程,分析总结设计中存在的问题和不足),提出解决方案、措施、建议以及本次设计实践的认识、收获和改进。 通过这次的课程设计,我收获了很多,从一开始使用单片机仿真软件到逐渐熟悉它,并深深感受到我们在设计电路时,为了验证我们方案的可行性,必须使用一些仿真软件来模拟我们设计的电路。 这不仅可以节省成本,还可以为我们焊接实际物体提供良好的基础。 我们必须学会使用这种方法,这是焊接电路的基础。 通过系统仿真软件Proteus和编译软件Keil,我们对单片机的设计和生产过程有了进一步的了解。 最困难的部分是软件部分,即编程部分。 我们在网上找到了很多信息。 虽然经过我自己的修改,还是有很多功能无法实现,比如温度上限和下限设置。
由于Proteus不是很熟练,在使用过程中我并不知道很多原厂部件的名称,所以花了很多时间查资料。 在应用仿真的过程中,仿真软件也出现了问题。 无论程序如何修改,仿真软件仍然会出现错误。 后来发现我们使用的软件是盗版的,所以在模拟过程中可能会出现错误。 最终我决定先把硬件焊接起来,然后把程序写进去看看结果,然后再对软件进行相应的调整。 最后将其焊接出来,并将程序写入单片机中。 经过简单调整,达到了实验要求。 最后一步焊接硬件也遇到了很多麻烦。 综上所述,我们得出的结论是,我们应该使用软件模拟来证明我们的解决方案的可行性。 设计时实际电路与我们的理论值存在差异。 我们还要学会理论知识与实践相结合。 这样,我们才能在实践中提高自己的能力,才能真正在实践中领会知识、学以致用。 五、附录 附录一:元件清单 元件名称 型号数量 单片机 最低开发板 STC89C52 温度传感器 DS18B20 三极管 8850 电阻 10k、3k、2k、1k、510、330 单排引脚 40 杜邦线 15 附录 2:实物焊接图 附录 3 :程序名称; 基于51单片机的温度计实时测量温度,超过上下限时报警。 报警温度可手动调节。 K1用于进入上下限调节模式。 按一次K1进入上限调整模式,再按一次进入下限调整模式。
在普通模式下,按一次K2进入上限温度查看模式,约1s后自动退出。 按一次K3进入下限温度查看模式,约1s后自动退出。 按一次 K4 消除按键音,再按一次开始按键音。 在调节上下限温度模式下,K2实现加1的功能,K1实现减1的功能,K3用于设置上下限温度的正负值。 #includereg52.h#includeintrins.h //将intrins.h头文件包含到主程序中(调用_nop_()无操作函数延时) #define uint unsigned int #define uchar unsigned char