基于51单片机数字温度报警器.

合集下载

单片机小项目——基于51单片机的温度报警器

单片机小项目——基于51单片机的温度报警器

单⽚机⼩项⽬——基于51单⽚机的温度报警器单⽚机⼩项⽬介绍项⽬功能介绍编程语⾔:C语⾔。

开发环境:keil。

主要功能:1602屏显⽰时间和温度,当温度超过预定值时蜂鸣器⼯作报警。

此项⽬只是作为单⽚机初学者的⼀个⼩测验。

硬件资源分配1602屏——P0,P2^7,P2^5,P2^6。

串⼝——P2^0,P2^1。

传感器——DS18B20 P3^7;DS1302 P3^4,P3^5,P3^6。

蜂鸣器——P1^6。

LCD1602屏配置在h⽂件中声明端⼝和函数:#ifndef __LCD1602_H_#define __LCD1602_H_#include<reg52.h>//重定义关键字#ifndef uchar#define uchar unsigned char#endif#ifndef uint#define uint unsigned int#endif//定义端⼝#define LCD1602_DATAPINS P0sbit LCD1602_E=P2^7;sbit LCD1602_RW=P2^5;sbit LCD1602_RS=P2^6;//函数声明void Lcd1602_Delay1ms(uint c); //延时函数void LcdWriteCom(uchar com); //写⼊命令void LcdWriteData(uchar dat); //写⼊数据void LcdInit(); //LCD初始化⼦程序#endif在LCD1602.c⽂件中写⼊时序和命令等函数代码:#include "LCD1602.h"/***************************延时函数**************************/void Lcd1602_Delay1ms(uint c) //误差 0us{uchar a,b;for (; c>0; c--){for (b=199;b>0;b--){for(a=1;a>0;a--);}}}/***************************底层函数**************************/void LcdWriteCom(uchar com) //写⼊命令{LCD1602_E = 0; //使能LCD1602_RS = 0; //选择发送命令LCD1602_RW = 0; //选择写⼊LCD1602_DATAPINS = com; //放⼊命令Lcd1602_Delay1ms(1); //等待数据稳定LCD1602_E = 1; //写⼊时序Lcd1602_Delay1ms(5); //保持时间LCD1602_E = 0;}void LcdWriteData(uchar dat) //写⼊数据{LCD1602_E = 0; //使能清零LCD1602_RS = 1; //选择输⼊数据LCD1602_RW = 0; //选择写⼊LCD1602_DATAPINS = dat; //写⼊数据Lcd1602_Delay1ms(1);LCD1602_E = 1; //写⼊时序Lcd1602_Delay1ms(5); //保持时间LCD1602_E = 0;}void LcdInit() //LCD初始化⼦程序{LcdWriteCom(0x38); //开显⽰LcdWriteCom(0x0c); //开显⽰不显⽰光标LcdWriteCom(0x06); //写⼀个指针加1LcdWriteCom(0x01); //清屏LcdWriteCom(0x80); //设置数据指针起点}在main.c⽂件中运⽤:(这⾥先让显⽰屏显⽰⾃定义的内容,稍后再做更改)#include "reg52.h"#include "LCD1602.h"unsigned char Disp[]=" Pechin Science ";void main(){unsigned char i=0;LcdInit();for(i=0;i<16;i++){LcdWriteData(Disp[i]);}while(1){}}DS18B20温度传感器配置(并将其与LCD协同使⽤)在DS18B20.c⽂件中写⼊相关函数:1 #include "DS18B20.h"234/***************************延时函数**************************/5void Delay1ms(unsigned int y)6 {7 unsigned int x;8for( ; y>0; y--)9 {10for(x=110; x>0; x--);11 }12 }131415/***************************底层函数**************************/1617 unsigned char Ds18b20Init() //初始化函数18 {19 unsigned char i;20 DSPORT = 0; //将总线拉低480us~960us21 i = 70;22while(i--); //延时642us23 DSPORT = 1; //然后拉⾼总线,如果DS18B20做出反应会将在15us~60us后总线拉低25while(DSPORT) //等待DS18B20拉低总线26 {27 Delay1ms(1);28 i++;29if(i>5) //等待>5MS30 {31return0; //初始化失败32 }3334 }35return1; //初始化成功36 }373839void Ds18b20WriteByte(unsigned char dat) //写⼊⼀个字节40 {41 unsigned int i, j;4243for(j=0; j<8; j++)44 {45 DSPORT = 0; //每写⼊⼀位数据之前先把总线拉低1us46 i++;47 DSPORT = dat & 0x01; //然后写⼊⼀个数据,从最低位开始48 i=6;49while(i--); //延时68us,持续时间最少60us50 DSPORT = 1; //然后释放总线,⾄少1us给总线恢复时间才能接着写⼊第⼆个数值51 dat >>= 1;52 }53 }545556 unsigned char Ds18b20ReadByte() //读取⼀个字节57 {58 unsigned char byte, bi;59 unsigned int i, j;60for(j=8; j>0; j--)61 {62 DSPORT = 0; //先将总线拉低1us63 i++;64 DSPORT = 1; //然后释放总线65 i++;66 i++; //延时6us等待数据稳定67 bi = DSPORT; //读取数据,从最低位开始读取68/*将byte左移⼀位,然后与上右移7位后的bi,注意移动之后移掉那位补0。

基于51单片机的温度报警系统设计

基于51单片机的温度报警系统设计

基于51单片机的温度报警系统设计温度报警系统是一种常见的安全监控系统,它可以监测环境温度,并在温度达到设定阈值时发出警报。

本文将介绍一个基于51单片机的温度报警系统的设计。

一、系统设计目标和功能本系统的设计目标是实时监测环境温度,并在温度达到预设阈值时发出警报。

具体功能包括:1.温度采集:通过温度传感器实时采集环境温度。

2.温度显示:将采集到的温度值通过数码管显示出来。

3.温度比较:将采集到的温度值与预设的阈值进行比较。

4.报警控制:当温度超过预设的阈值时,触发警报控制器。

5.报警指示:通过蜂鸣器或者LED灯等方式进行报警提示。

二、硬件设计本系统的硬件设计包括主控部分和外围部分。

1. 主控部分:使用51单片机作为主控芯片,通过AD转换器和温度传感器实现温度数据采集。

采用片内RAM和Flash存储器对数据进行处理和存储。

2.外围部分:包括数码管显示和报警指示。

使用数码管模块将温度值进行显示,使用LED灯或者蜂鸣器进行报警指示。

三、软件设计本系统的软件设计包括程序的编写和算法的设计。

1.程序编写:使用C语言编写单片机的程序。

程序主要包括温度采集、温度比较、报警控制和报警指示等功能。

2.算法设计:根据采集到的温度值与预设阈值进行比较,判断是否触发警报控制器。

同时,根据警报控制器的状态,控制报警指示的开关。

四、系统测试完成硬件和软件设计后,需要进行系统测试以验证系统的正确性和稳定性。

1.硬件测试:对硬件电路进行测试,包括电源、信号传输和外围器件等方面。

测试时需要注意电源的稳定性,信号的准确性和外围部件的工作状态。

2.软件测试:进行程序的运行测试,检查各功能是否正常运行。

特别关注温度采集和比较、报警控制和报警指示等功能。

五、系统性能分析对系统的性能进行分析,包括温度采集的准确性、报警控制的响应时间和报警指示的稳定性等方面。

1.温度采集准确性:主要受温度传感器的精度和ADC转换的准确性影响。

在设计中要选择合适的传感器和ADC。

基于51单片机的温度检测报警系统

基于51单片机的温度检测报警系统

基于51单片机的温度检测报警系统摘要本文介绍了一种基于51单片机的温度检测报警系统的设计方案。

该系统能够实时检测环境温度,并在温度超出设定范围时触发报警器进行报警,从而实现对环境温度的监测和控制。

本文将主要涉及系统的硬件设计、软件设计和实现过程。

系统硬件设计本系统所需的核心硬件有:51单片机、温度传感器DS18B20、LED指示器和蜂鸣器,其中51单片机作为系统的控制中心,主要负责对温度传感器进行采集并触发LED指示器和蜂鸣器进行报警处理。

系统硬件电路图如下:TODO: 插入电路图其中,温度传感器DS18B20通过单总线协议连接到51单片机的P1.0引脚。

P1.1引脚连接到LED指示器,P1.2引脚连接到蜂鸣器。

系统软件设计本系统的软件设计主要分为两部分:主程序和温度采集程序。

主程序包括了系统的初始化、温度检测、温度报警、LED指示器和蜂鸣器控制等模块。

温度采集程序则是通过调用DS18B20的寄存器读写命令从传感器读取温度。

具体实现过程如下:主程序TODO: 插入代码主程序包含以下模块:1.系统初始化:配置P1.0引脚为输入模式,P1.1和P1.2引脚为输出模式。

2.温度检测:调用温度采集程序获取当前温度值,并判断是否超出指定范围。

3.温度报警:如果温度超出指定范围,则触发LED指示器和蜂鸣器进行报警处理。

4.LED指示器控制:根据温度超出指定范围的状态,对LED指示器进行开关控制。

5.蜂鸣器控制:根据温度超出指定范围的状态,对蜂鸣器进行开关控制。

温度采集程序TODO: 插入代码温度采集程序包含以下功能:1.向DS18B20发送获取温度命令。

2.从DS18B20读取温度数值。

3.根据读取到的值计算温度并返回。

系统实现过程本系统的实现过程包括系统硬件的组装和系统软件的编写。

硬件组装过程主要是将51单片机、温度传感器、LED指示器和蜂鸣器进行连接。

软件编写过程则是根据系统设计方案,编写相应的主程序和温度采集程序,并将程序烧录进51单片机中。

基于C51单片机的数字温度报警器的设计

基于C51单片机的数字温度报警器的设计

中国地质大学(武汉)——基于C51单片机的数字温度报警器的设计指导老师:姓名:班级:072学号:专业:机械设计制造及其自动化院系:机电学院日期:2016.01.10基于单片机的数字温度报警器的设计摘要:随着现代信息化技术的飞速发展和传统工业改造的逐步实现,能独立工作的温度检测系统已广泛应用于各种不同的领域。

本次课程设计是基于AT89C51单片机进行温度传测定及报警等功能的设计,利用数字温度传感器DS18B20的测温系统,通过LED数码管和LCD液晶显示屏同时显示实时温度和报警预设温度,报警指示通过蜂鸣器的声音和16X16点阵屏同时报警,并能采取降温措施(直流电动机启动)。

同时本次设计的报警温度采用键盘输入的方式,确保各种报警温度可以方便的设定和调节。

本次课程设计的系统电路简单、操作简便,能任意设定报警温度,系统具有可靠性高、成本低、功耗小等优点。

关键词:单片机、温度检测、AT89C51、DS18B20目录基于单片机的数字温度报警器的设计 (1)一、引言: (3)二、设计方案 (3)1.基本要求 (3)2.扩展功能 (3)3.方案选定 (3)4.总体设计方案 (4)三、功能模块分析 (4)1.复位电路 (4)2.键盘电路 (5)3.DS18B20温度检测电路 (6)4.显示电路 (7)5.报警电路 (10)6.降温风扇电路 (10)四、软件设计分析 (11)1.主函数模块 (11)2.温度检测模块 (12)3.键盘扫描模块 (13)4.LCD液晶显示模块 (14)5.中断模块 (15)五、课程设计体会 (15)附录: (18)一、引言:随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,各种数字系统的应用也使人们的生活更加舒适。

数字化控制、智能控制为现代人的工作、生活、科研等方面带来方便。

其中数字温度计就是一个典型的例子。

数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温精确、功能多样话等优点。

基于51单片机的温度报警控制系统报告

基于51单片机的温度报警控制系统报告

报告评分批改老师《现代电子综合实验》课程设计报告基于单片机的温度检测控制系统设计学生姓名 学 号专 业 班 级同组学生 提交日期 年 月 日指导教师目录2一、实验目的 .....................................................................................2二、实验要求 .....................................................................................2三、实验开发环境及工具 ...........................................................................2四、按键扫描和液晶显示功能实现 ...................................................................24.1矩阵键盘电路 ...............................................................................4.1.1矩阵键盘电路简介 .....................................................................224.1.2矩阵式按键扫描原理 ...................................................................24.1.3 按键扫描子程序设计思想及流程图 ......................................................34.2 LCD1602显示电路 ..........................................................................34.2.1 LCD1602模块简介 ....................................................................34.2.2 LCD1602模块引脚说明 .................................................................4.2.3 LCD1602控制方式及指令 ..............................................................344.2.4 LCD1602液晶显示子程序设计思想及流程图 ..............................................5五、基于单片机的温度检测控制系统设计过程 .........................................................55.1 系统整体电路框图及功能说明 ................................................................55.2 DS18B20数字温度传感器电路 ..............................................................55.2.1 单总线通信方式简介 ..................................................................65.2.2 DS18B20简介 ......................................................................5.2.3 DS18B20读写操作 ..................................................................665.3 声光报警及控制电路 ........................................................................75.4 软件设计 ..................................................................................5.4.1 主程序设计流程图 ....................................................................775.4.2 DS18B20子程序设计思想及流程图 ...................................................85.4.3 声光报警子程序设计思想及流程图 .....................................................9七、 实验过程及实验结果 ...........................................................................9八、实验中遇到的问题及解决方法 ...................................................................10附件 ............................................................................................一、实验目的(1). 掌握单片机应用系统的设计方法与步骤;(2).掌握硬件电路各功能模块的工作原理、应用电路与编程方法;(3).熟练掌握单总线的应用及编程;(4). 掌握基于单片机的温度检测控制系统的设计与实现。

基于51单片机智能温度检测报警

基于51单片机智能温度检测报警

DS18B20初始化
读取存储在 EEPROM的数据
按键检测与处理
判断是否正常 显示set_f==0? 是 DS18B20温度采集 读取

判断是否设置 上限set_f==1? 是

判断温度是否 超限? 是 报警提示
显示设置上限 否
显示设置下限
关闭提示
显示温度值
四、软件设计——数码管显示子程序设计
开始
A
V
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
L
C
E
C
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
4
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
V
C
C
V
1
R
K
C
5
1
2
D
C W
1
2
9
W
2
8 4位数码管
S
Q W
3
8
3 6
5
W
4
5
K
K
K
E
E
E
Y
Y
Y
R
4
3
2

基于51单片机的温度报警器设计

基于51单片机的温度报警器设计

基于51单片机的温度报警器设计引言:温度报警器是一种用来检测环境温度并在温度超过设定阈值时发出警报的装置。

本文将基于51单片机设计一个简单的温度报警器,以帮助读者了解如何利用单片机进行温度监测和报警。

一、硬件设计硬件设计包括传感器选择、电路连接以及报警装置的设计。

1.传感器选择温度传感器的选择非常重要,它决定了监测温度的准确性和稳定性。

常见的温度传感器有热敏电阻(如NTC热敏电阻)、热电偶以及数字温度传感器(如DS18B20)。

在本设计中,我们选择使用DS18B20数字温度传感器,因为它具有高精度和数字输出的优点。

2.电路连接将DS18B20与51单片机连接,可以采用一根三线总线(VCC、GND、DATA)的方式。

具体连接方式如下:-将DS18B20的VCC引脚连接到单片机的VCC引脚(一般为5V);-将DS18B20的GND引脚连接到单片机的GND引脚;-将DS18B20的DATA引脚连接到单片机的任意IO引脚。

3.报警装置设计报警装置可以选择发出声音警报或者显示警报信息。

在本设计中,我们选择使用蜂鸣器发出声音警报。

将蜂鸣器的一个引脚连接到单片机的任意IO引脚,另一个引脚连接到单片机的GND引脚。

二、软件设计软件设计包括温度读取、温度比较和报警控制的实现。

1.温度读取通过51单片机的IO引脚和DS18B20进行通信,读取DS18B20传感器返回的温度数据。

读取温度数据的具体步骤可以参考DS18B20的通信协议和单片机的编程手册。

2.温度比较和报警控制将读取到的温度数据和设定的阈值进行比较,如果温度超过阈值,则触发报警控制。

可以通过控制蜂鸣器的IO引脚输出高电平或低电平来控制蜂鸣器是否发出声音警报。

三、工作原理整个温度报警器的工作原理如下:1.首先,单片机将发出启动信号,要求DS18B20开始温度转换。

2.单片机等待一段时间,等待DS18B20完成温度转换。

3.单片机向DS18B20发送读取信号,并接收DS18B20返回的温度数据。

基于51单片机温度报警器设计

基于51单片机温度报警器设计

目录一、摘要 (1)二、设计方案论证 (2)(一)系统主机选择 (2)(二)温度传感器选择 (2)(三)液晶选择 (2)(四)报警电路选择 (3)三、硬件电路设计 (3)(一)设计思路: (3)(二)总体设计方框图2-1: (3)(三)原理图 (4)(四)单片机最小系统设计 (5)(五)AT89C52单片机芯片引脚功能介绍...................................... 5、6 (六)测温电路设计 . (8)(七)显示电路设计 ...................................................... 9、10 (八)报警电路设计 (10)四、软件设计 ........................................................ - 10 -(一)主程序流程图 ..................................................... - 11 - (二)测温程序 ......................................................... - 11 - (三)报警程序 ......................................................... - 12 -五、系统仿真 ........................................................ - 12 -六、总结与体会...................................................... - 13 -参考文献................................................................................................... - 14 -附录Ⅰ原理图.. (16)一、摘要在日常生活及工农业生产中经常要涉及到温度的检测及控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要电子技术在日常生活中得到了广泛的应用,各类转换电路的不断推出以及电子产品的快速更新,电子技术已成为世界发展和人们生活中必不可少的工具。

同时伴随传感器在生产生活中更加广泛的应用,一种新型的数字式温度传感器实现对温度的测试与控制得到了更快的开发,本文设计了一种基于单片机AT89C51的温度检测及报警系统。

该系统将温度传感器DS18B20接到单片机的一个端口上,单片机对温度传感器进行循环采集。

将采集到的温度值与设定的上下限进行比较,当超出设定范围的上下限时,通过单片机控制的报警电路就会发出报警信号,从而实现了本次课程设计的要求。

本次设计同时应用到许多我们用过的软件设计,将前面所学的知识融汇在一起实现温度监测及其报警的功能。

该系统设计和布线简单、结构紧凑、体积小、重量轻、抗干扰能力较强、性价比高、扩展方便,在工农业等领域的温度检测中有广阔的应用前景。

关键字温度传感器;单片机;报警;数码管显示目录1绪论 (1)1.1温度报警系统简介 (1)1.2课题背景与研究意义 (1)1.3 课题设计主要研究目的 (1)2系统整体方案设计 (2)2.1系统的基本方案 (2)2.2各模块方案选择 (2)2.2.1 单片机的选择 (2)2.2.2 温度传感器的选择 (2)2.2.3 显示模块的选择 (3)3系统的硬件设计与实现 (4)3.1系统硬件概述 (4)3.2电路模块 (4)3.2.1 单片机 (4)3.2.2复位电路模块 (5)3.2.3显示电路模块 (6)3.2.4传感器电路模块 (6)4.系统的软件设计 (9)4.1软件设计应用环境与设计语言 (9)4.2系统设计设计流程图 (9)5系统仿真设计 (10)5.1 Proteus 软件介绍 (10)5.2 Proteus 仿真图 (10)5.3 硬件调试 (11)5.4调试结果 (11)结论 (12)参考文献 (13)附录 (14)附录1 元件清单与仿真图 (14)附录2 源程序 (16)1绪论1.1温度报警系统简介温度报警系统广泛的用于工业农业等领域,是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。

温度报警系统在农业蔬菜大棚中起到重要作用,温度报警器探测到温度超标时,温度报警器发出报警信号。

1.2课题背景与研究意义温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。

随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度:如大气及空调房中温度的高低,直接影响着人们的身体健康;粮仓温度的检测,防止粮食发霉,最大限度地保持粮食原有新鲜品质,达到粮食保质保鲜的目的;工业易燃品的存放。

测温技术在生产过程中,在产品质量控制和监测以及节约能源等方面发挥了着重要作用。

本实验设计实现了工业测温基本功能,同时,在设计实验过程中,运用到单片机、模电、数电、传感器和C++程序设计等知识,这既能加强我们的理论知识与实践的结合,也能够提高我们应用交叉学科知识进行综合设计的能力。

1.3 课题设计主要研究目的本温度报警器以AT89C51单片机为控制核心,由一数字温度传感器DS18B20测量被控温度,结合7段LED以及驱动LED的74LS245组合而成。

当被测量值超出预设范围则发出警报,且精度高。

利用现代虚拟仿真技术可对设计进行仿真实验,与单片机仿真联系紧密的为proteus仿真,利用keil软件设计单片机控制系统,然后与proteus进行联合调试,可对设计的正确性进行检验。

2系统整体方案设计2.1系统的基本方案本次设计通过使用AT89C51单片机芯片、和温度传感器、蜂鸣器实现功能效果,传感器可以接受周围的温度数据,并且通过数码管显示具体温度数值,通过按键可以设置温度的上限下限,若采集到的温度高于温度上限,蜂鸣器报警提示,同样低于下限也报警。

系统设计框图如图2-1所示:图2-1 系统总框图通过温度传感器采集环境温度,通过按键控制主控程序,实现数码管度温度上下限的设置,将温度数值显示在LED数码光上,若温度超出上限或下限,驱动发光二极管点亮,同时蜂鸣器报警提示。

2.2各模块方案选择2.2.1 单片机的选择采用STC89C51单片机,它是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

2.2.2 温度传感器的选择温度传感器选用达拉斯公司的单线数字温度传感芯片DS18B20。

它将地址线、数据线和控制线合为一根双向串行传输数据的信号线,允许在这根信号线上挂接多个DS18B20。

每个芯片内有一个64位的ROM,其中存有各个器件自身的序列号,作为器件独有的ID号码。

其测温范围是-55~128℃,测温分辨率在12位时精度为0.0625℃。

DS18B20简化了温度器件与计算机的接口电路,使得电路简单,使用更加方便。

2.2.3 显示模块的选择采用数码管显示模块,采集温度超出或低于上下限时,相应的发光二极管点亮。

3系统的硬件设计与实现3.1系统硬件概述本设计包括温度数据采集和显示两个部分,数据采集通过温度传感器实现,显示有发光二极管,LED数码管实现。

报警功能由蜂鸣器实现,系统的复位以及温度上下限的调整分别由三个按键实现。

3.2电路模块3.2.1 单片机AT89C51单片机内部主要由9个部件组成:1个8位中央处理器;4KBFlash 存储器;128B的数据存储器;32条I/O口线;2个定时器/计数器;1个具有6个中断源、4个优先级的中断嵌套结构;用于多处理机通信、I/O扩展或全双工UART的串行口;特殊功能寄存器;1个片内振荡器和时钟电路。

AT89S51系列单片机完全继承了MCS-51的指令系统,共有111条指令,按其功能可分为五大类:数据传送类指令、算术运算类指令、逻辑运算类指令、控制转移类指令、布尔操作。

AT89C51单片机引脚如图3-1所示。

图3-1 AT89C51单片机引脚图管脚说明:P0口:8位、漏极开路的双向I/O口。

P0能够用于外部程序数据存储器。

它可以被定义为数据/地址的第八位。

P0口在应用时必须外接上拉电阻,作为输入时,首先应将引脚置1。

P1口:8位双向I/O口,内部含上拉电阻。

作为输入时,应先将引脚置高;若负载为低电平,则通过内部上拉电阻向外输出电流。

P2口:8位双向I/O口,内部含上拉电阻。

作为输入时,应先将引脚置高;若负载为低电平,则通过内部上拉电阻向外输出电流。

P3口:8位双向I/O口,内部含上拉电阻。

作为输入时,应先将引脚置高;若负载为低电平,则通过内部上拉电阻向外输出电流。

P3口除了通用I/O口功能外,还有第二功能。

P3口的第二功能定义如表3-1所示。

表3.1 P3口第二功能定义RST:复位输入,低电平有效。

ALE/PROG:地址锁存允许信号输出。

在正常操作状态下,该引脚端口输出恒定频率的脉冲。

其频率为晶振频率的1/6,可用作外部定时或其他触发信号。

如果需要,可通过SFR的第0位置禁止ALE操作,但ALE的禁止位不影响对外部存储器的访问。

PSEN:片外程序存储器选通信号,低电平有效。

当AT89S51执行来自外部程序存储器的指令代码时,PSEN/每个机器周期两次有效。

在访问外部数据存储器时,PSEN/无效。

EA/:EA片外程序存储器访问允许信号,低电平有效。

VPPXTAL1:外接晶振。

在单片机内部是反相放大器的输入及端。

XTAL2:外接晶振。

在单片机内部是反相放大器的输出端,输入到内部时钟发生器。

3.2.2复位电路模块复位是单片机的初始化操作,复位信号是高电平有效,复位操作有上电自动复位、按键电平复位、外部脉冲复位和自动复位四种方式。

在本设计中复位采用上电自动复位,当接通电源的瞬间,RST端与Vcc同电位,随着电容的电压逐渐上升,RST 端的电压也逐渐下降,于是在RST端便形成了一个正脉冲,只要该正脉冲的宽度持续两个周期的高电平,就可以实现系统的自动复位,复位电路原理图如图3-2所示。

图3-2 上电复位电路3.2.3显示电路模块显示电路由单片机的P0、P2端口控制。

显示模块如图3-3。

图3-3 温度显示模块3.2.4传感器电路模块(1)DS18B20内部结构DS18B20是Dallas公司继DS1820后推出的一种改进型智能数字温度传感器,与传统的热敏电阻相比,只需一根线就能直接读出被测温度值,并可根据实际需求来编程实现9~12位数字值的读数方式。

DS18B20的外形如一只三极管,引脚名称及作用如下:GND:接地端,DQ:数据输入/输出脚,与TTL电平兼容,VDD:可接电源,也可接地。

因为每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。

采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成数据测量的时间较长;采用外部供电方式则VDD接+5V,多用一根导线,但测量速度较快,内部结构如图3-4。

(2)DS18B20供电方式DS18B20可以采用外部电源供电和寄生电源供电两种模式。

外部电源供电模式是将DS18B20的GND直接接地,DQ与但单总线相连作为信号线,VDD与外部电源正极相连。

如图3-5所示。

图中DS18B20的DQ端口通过接入一个4.7K的上拉电阻到VCC,从而实现外部电源供电方式。

寄生电源供电模式如图3-6所示:从图中可知,DS18B20的GND和VDD均直接接地,DQ与单总线相连,单片机其中一个I/O口与DS18B20的DQ端相连。

(3)DS18B20的测温原理DS18B20的测温原理如图3-7所示, 其主要由斜率累加器、温度系数振荡器、减法计数器、温度存储器等功能部件组成。

图3-7 DS18B20的测温原理DS1820 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。

计数器被预置到对应于-55℃的一个值。

如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。

同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。

然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。

斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨率。

DS18B20内部对此计算的结果可提供0.5℃的分辨率。

温度以16bit带符号位扩展的二进制补码形式读出,DS18B20遵循单总线协议,每次测温时都必须有4个过程]:初始化、传送ROM 操作命令、传送ROM操作命令、数据交换。

相关文档
最新文档