历史上的今天
今天是:2025年01月04日(星期六)
2021年01月04日 | 单片机的数显温度设计与制作
2021-01-04 来源:51hei
总体电路结构框图所示:

图1-1 温度计电路总体设计框图
3.2系统设计
①硬件设计
硬件电路设计通过仿真软件Proteus8.0进行原理图的编辑,根据实验要求及所给的元件设计出如下电路原理图,并进行了仿真

时钟及复位模块
实验所给的元件中直接已给出了AT89C51的最小系统板,但是我们在设计电路时还是需要画出该部分电路,时钟复位为能使单片机工作的最简单的电路,又称最小系统。具体实验电路如下:

时钟电路有12MHz的晶振及两个2030PF的瓷片电容(无极性)连接在单片机的XTAL1及XTAL2连个端口;复位电路由10K的电阻, 10UF电解电容(有极性)以及按键开关组成,接在单片机的RST口。当系统出现故障错误,想让系统恢复初始化状态可以通过对按动按键开关实现对电容的充放电从而实现系统的复位。
蜂鸣器报警及LED显示模块
蜂鸣器用于当温度传感器的输入的温度数值大于认为设定的上限温度或者小于下限温度时,系统会给出相应的信号使得蜂鸣器发出声音同时让LED灯闪烁显示,从听觉和视觉上同时提出报警信号。电路图如下:

蜂鸣器由一个PNP型的三极管驱动接在单片机的P1.0口,当P1. 0口输出低电平是蜂鸣器发出声音;LED灯正极通过1K的电阻上拉接Vcc,负极接在单片机的P1. 1口,当系统在P1.1口输出低电平时LED灯亮。
LCD1602液晶屏显示模块
采用LCD-1602A液晶显示器件,液晶显示平稳、省电、美观,更容易实现要求,可操作性强,也易于读数,采用RT1602两行十六个字符的显示,能同时显示其它的信息如日期、时间、星期、温度。

接一个滑动变阻上再与地相接,用以调整LCD-1602A的对比度。
DS18B20温度传感器模块
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在唯一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.0~5.5v;零待机功耗;温度以9或12位二进制数字表示;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚TO-92封装或8脚SO或μSOP封装,其其封装形式如图1-2所示。

图1-2 DS18B20的封装形式
电路图如下:

接在单片机的P01.7口,DQ端接上拉电阻。
按键控制模块
按键电路是用来实现调节设定报警温度的上下限和查看上下报警温度的功能。
电路图如下:

②软件设计
通过单片机编程软件Keil4进行编程,程序部分通过一个主函数和自定义的三个#include“ds18b20. h”,#include“LCD1602.h”,#include“delay.h”头文件,完成单片机的各项功能。
DS18B20获取温度程序流程图
DS18B20的读字节,写字节,获取温度的程序流程图如图1-3所示。

图1-3 DS18B20程序流程图
按键程序设计
按键是用来设定上下限报警温度的。具体的程序流程图如图1-4所示。

1-4按键程序流程图
3.3系统实现
根据系统的设计框图,查找相关资料,在Proteus 8. 0中画出原理图,在KEIL4软件中编写程序,然后将这两个软件结合,将写好的程序在Proteus8.0中烧录进单片机,然后开启仿真开关,即可显示设计效果,通过修改硬件电路的同时结合程序,实现实验要求。然后开始焊接硬件电路,在多孔板上焊出相应的电路,用杜邦线将各个模块与单片机最小系统板连接在一起得到最终电路,用烧录软件将程序烧录进单片机,最终以实际电路的形式展现出成果。
实物接线图如下图所示:
上下限温度调节功能
实物图如下图所示:

史海拾趣
|
帮一个网友问的,我也同学习之!希望大家给看看: 如图所示,相当于把电源输出端给短路,请教图中的贴片是什么器件,可以用什么元件代换,还有其他器件损坏吗? … 查看全部问答> |
|
我写的一个USB驱动, 安装后提示, 设备无法启动,代码10 ,一般是什么原因? 我写的一个USB驱动, 安装后提示, 设备无法启动,代码10 ,一般是什么原因? 具体情况是MP3,不成功, 但优盘就可以成功! 请问大家这样的问题怎末解决?… 查看全部问答> |
|
microblaze的FPU貌似开启了,但是计算浮点的时候还是溢出 起初我以为是log函数,没有包含在math。h头文件里面,但是我果断换了一个计算平方根的函数,照样程序溢出,(13.1的ise)。 查看microblaze的属性,发现FPU选择的是 extern,basic我也试过没用,一样溢出。 求大神指点… 查看全部问答> |
|
求教一个问题,我在写彩屏液晶的程序的时候,有16为驱动的程序有8位驱动的程序。有时候都能用,但有时候会就不能用,求分析哈。 TFT彩屏IC:9320 or 9325 接口声明: #define DATAOUT(x) GPIOB->ODR=x; //数据输出 #define DATAOUTH(x) GPIOB-> ...… 查看全部问答> |
|
智能用电监控、保护系统创意进度帖+自动控制操作演示视频(未带负载) 本帖最后由 ltbytyn 于 2014-1-4 22:40 编辑 $(\'flv_HAb\').innerHTML=(mobileplayer() ? \"\" : AC_FL_RunContent(\'width\', \'500\', \'height\', \'375\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src ...… 查看全部问答> |
|
【Atmel SAM R21创意大赛周计划】+ATSAMR21E的内部温度检测不可用? 本帖最后由 yang_alex 于 2015-3-1 06:19 编辑 在ATSAMR21E的外设学习中发现内部温度检测不可用。不知是我代码的问题还是芯片本身的问题,大家也测试一下看看。 我参考了ATMEL官方的ADC代码,内部电压检测正常。如下图: 项目里准备用来检测 ...… 查看全部问答> |




