《2022年单片机数字温度计的设计方案.docx》由会员分享,可在线阅读,更多相关《2022年单片机数字温度计的设计方案.docx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源基于单片机数字温度计的设计摘要: 本文综述了数字温度计的设计与制作过程,介绍了设计制作一个完整的数字温度计需要做的预备与制作过程,通过一段时间的努力制作,从刚开头透彻懂得题目要求及所要设计的产品的各项性能功能,然后觉得利用单片机作为掌握内核,其次主要的就是温度传感器DS18B20,及其他重要部分电路的协作下设计出一套完整的硬件系统,及它的灵魂软件系统;得到了一种基于单片机掌握的数字温度 计;本设计所介绍的数字温度计与传统的温度计相比,具有读数便利,测温范畴广,测温精确,其输出温度采纳数字显示,该设计掌握器使用单片机AT89S51,测欢迎下载精品学习资源温传感器使用 DS18B2,0
2、能精确达到以上要求;用 4 位共阳极 LED数码管以串口传送数据 , 实现温度显示 ,欢迎下载精品学习资源关键词:单片机,数字掌握,温度计,DS18B20,AT89S51目录前言 1第一章 系统方案设计 21.1 温度测量系统功能描述 21.2 系统设计性能指标 21.3 DS18B20 工作原理 31.3.1 性能特点 31.3.2 外部结构 41.3.3 内部结构 51.3.4 DS18B20 测温原理 61.4 AT89C51 简介 71.5 显示部分 9其次章 系统硬件电路设计 122.1 DS18B20 温度传感器的连接 122.2 单片机端口连接 13第三章 系统软件设计 14欢迎
3、下载精品学习资源3.1 主程序 143.2 读出温度子程序 153.3 温度转换命令子程序 163.4 运算温度子程序 173.5 显示数据刷新子程序 17第四章 系统调试及仿真354.1 系统程序调试354.2 系统软硬件仿真35第五章 总 结39参考文献40前言在一些温度测量系统电路中,广泛采纳的是通过热电偶、热电阻或PN 结测温电路经过相应的信号调理电路,转换成AD 转换器能接收的模拟量,再经过采样保持电路进行 AD 转换,最终送入单片机及其相应的外围电路,完成监控;但是由于传统的信号调理电路实现复杂、易受干扰、不易掌握且精度不高;本温度测 量仪采纳单片机结合 DS18B20智能温度传感
4、器掌握系统设计,因此,本系统用一种新型的可编程温度传感器 H”表示实测温度值大于温度报警值TH,“ L”表示实测温度小于温度报警值TL,“!”表示实测温度位于设定的温度范畴之内;当实测温度超过设定温度限制 范畴时,发出声光报警信号;1.2 系统设计性能指标测温范畴 为-55-125 , 误 差在+1 以 内; DS18B20 最高分 辨率可达0.0625 ,所以系统误差指标可以限制在 +1以内;欢迎下载精品学习资源依据系统设计功能的要求,确定系统由3 个模块组成:主掌握器,测温电路和显示电路;温度测量仪总体电路结构框图如图1.1 所示;DS18B20AT89C51单片机显示电路图 1. 1温度
5、测量仪电路结构框图本温度测量仪设计采纳美国DALLAS半导体公司的智能型传感器DS18B20作为检测元件,测温范畴限制在 -55 125;DS18B20可以直接读出被测量温度值,而且采纳三线制与单片机相连,削减了外部的硬件电路,具有低成本和易使用的特点;系统硬件电路由单片机 AT89C51、字符液晶显示器LM016L 和 1k8 的排阻构成;单片机实现对 LCD命令和显示数据的读写掌握功能;1.3 DS18B20 工作原理一、性能特点DS18B20温度传感器与传统的热敏电阻等测温元件相比,它能直接读出被测温 度,并且可依据实际要求通过简洁的编程实现9 12 位的 数字值读数方式;DS18B20
6、的性能特点如下:a. 特殊的单线接口仅需要一个端口引脚进行通信;b. 多个 DS18B20可以并联在唯独的三线上,实现多点组网功能;c. 不需要外部器件d. 可通过数据线供电,电压范畴为3.0 5.5V ;e. 零待机功耗;f. 温度以 912 位数字量读出;欢迎下载精品学习资源g. 用户可定义的非易失性温度报警设置;h. 报警搜寻命令识别并标志超过程序限定温度的器件;i. 负电压特性,电源极性接反时,温度计不会因发热而烧毁,只是不能正常工作;二、外部结构DS18B20采纳 3 脚 PR-35 封装或 8 脚 SOIC封装;引脚排列及说明如图 1.2 与表 1.1 所示;图 1.2 DS18B
7、20 引脚排列表 1.1具体引脚说明欢迎下载精品学习资源三、内部结构内部结构框图如图 1.3 所示;图 1.3 DS18B20 内部结构框图高速暂存 RAM的结构为 9 字节的储备器,第确定温度值的数字转换辨论率,该字节的定义如图5 字节为配置寄存器,其内容用于1.4 所示,其中,低1;TM是测试模式位,用于设置5 位始终为DS18B20在工作模式仍是在测试模式,在DS18B20出厂时,该位被设置为 0,用户不要去改动; R1 和 R0 打算温度转换的精度位数,即用来设置辨论率,其定义方法见表1.2 ;表 1.2 DS18B20 辨论率的定义和规定R1R0辨论率/ 位温度最大转换时间 /ms欢
8、迎下载精品学习资源00993.750110187.510113751112750TMR1R01图 1.41配置寄存器位定义111四 DS18B20测温原理DS18B20 测温原理图如图 1.5 所示图 1.5 DS18B20 测温原理图DS18B20是这样测温的:用一个高温系数的振荡器确定一个门周期,内部计数器在 这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值;计数器被预置到对应与 -55 的一个值;假如计数器在门周期终止前到达0,就温度寄存器同样被预置到 -55 )的值增加,说明所测温度大于 -55 ;同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加欢迎下
9、载精品学习资源器电路用来补偿感温振荡器的抛物线特性;然后计数器又开头计数直到 0,假如门周期仍未终止,将重复这一过程;斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的辨论力;这是通过转变计数器对温度每增加一度所需计数的值来实现的;因此,要想获得所需的辨论力,必需同时知道在给定温度下计数器的值和每一度的运算值;DS18B20内部对此运算的结果可供应 0.5 的辨论力;温度以 16bit 带符号位扩展的二进制补码形式读出, DS18B20温度与表示值如表 1.3 所示;表 1.3 DS18B20 温度与表示值对应表温度测量仪系统掌握器使用单片机 AT89C51,用三位共阴 LED
10、数码管以动态扫描法实现温度显示;1.4 AT89C51 简介AT89C51是 1 种低功耗、高性能的片内含有4KB闪耀可编程、可擦除只读储备器Flash Programmable and Erasable Read Only Memory)的 8 位 CMOS单片机,并且与 MCS-51系列单片机引脚和指令系统完全兼容;芯片上的FPEROM答应在线编程或采纳通用的编程器对其重复编程,而且性能价格比高;所以本掌握系统选用它作为我们的掌握器;一、 AT89C51的性能及片内闪耀储备器1. AT89C51的主要性能包括:(1) 与 MCS-51微掌握器系列产品兼容;(2) 片内有 4KB可在线重复编
11、程的闪耀储备器 Flash Memory);欢迎下载精品学习资源(3) 储备器可循环写入 / 擦除 1 万次;(4) 储备器数据储存时间为10 年(5) 宽工作电压范畴: Vcc 可为+2.7V-+6V.(6) 全静态工作:可从 0Hz16MHz.(7) 程序储备器具有 3 级加密爱护;(8) 闲暇状态维护低功耗和掉电状态储存储备器内容;2. 片内闪耀储备器 Flash Memory)2由于 EPROM具有在线改写,并在掉电后仍能储存数据的特点,可为我们的特别应用供应便利;但是,擦除和写入对于要有数据高速吞吐的应用仍显得时间过22长,这是 E PROM的主要缺陷;表产 1.4 列出了几种典型
12、EPROM芯片的主要性能数据;2表 1.4几种典型 E PROM芯片的主性能型号性能参数28162816A28172817A2864A取数时间 /ms250200/250250200/250250擦/ 写电压/V2152155字节擦除时间 /ms109-15101010写入时间 /ms109-15101010由表 1.4可见,所列各种芯片的字节擦除时间和写入时间基本上均为10ms, 这样长的时间对于很多实际应用是不能接受的;因此,将储备器集成到单片机芯片内,设法缩短此类储备器的擦除和写入时间是1 个首要的问题;片内闪耀储备器Flash Memory)的概念就是在这种背景下提出来的;目前,美国A
13、TMEL公司生产的带有片内闪耀储备器的AT89C51/89C52/89C55 单片机,由于价格廉价,且与MCS-51 系列兼容,受到了我国广大工程技术人员的欢迎,使用该系列单片机,省去了外扩储备器的工作,只需明白片内闪耀储备器的特性以及如何对其编程即可;二、片内闪耀储备器的编程AT89C51的 I/O 口 P0、P1、P2 和 P3 除具有与 MCS-51相同的一些性能和用途外,在 FPEROM编程时, P0 口仍可接收代码字节,但在程序校验时要外加上拉负载 电阻;在 FPEROM编程和程序校验期间, P1 口接收低地址字节, P2 口接收高地址位和 一些控 制 信号 , P3 口也接 收 F
14、PEROM编 程和校 验 用的 掌握信 号;此 时,欢迎下载精品学习资源ALE/ PROG引脚是编程脉冲输入 的应用越来越广泛;从显示容量上划分,LCD 可分为两种类型 ,一种是“ AlphaNumericLCDs ”,只能显示字符和数字;另一种是“GraphicalLCDs” ,既能显示字符和数字 ,仍能显示图形;汉字显示需要后一种点阵图形式LCD ;液晶显示器是由液晶显示屏及掌握器两部分组成的,不同的液晶显示器所对应的掌握器不 尽相同,明白 LCD 掌握器的掌握功能是设计液晶显示的关键3一、液晶模块简介LM016L 的结构及功能 LM016L 液晶模块采纳 HD44780 掌握器, hd4
15、4780 具有简洁而功能较强的指令集,可以实现字符移动,闪耀等功能,LM016L与单片机MCU 通讯可采纳 8 位或 4 位并行传输两种方式, hd44780 掌握器由两个 8 位寄存器 , 指 令 寄 存 器 IR ) 和 数 据 寄 存 器 DR ) 忙 标 志 BF ) , 显 示 数RAMDDRAM) , 字 符 发 生 器ROMACGOROM) 字 符 发 生 器RAM ;IR 用于寄存指令码,只能写入不能读出, DR 用于寄存数据,数据由内部操作自动写入DDRAM 和 CGRAM, 或者暂存从DDRAM和 CGRAM 读出的数据, BF 为 1 时,液晶模块处于内部模式,不响应外
16、部操作指令和接受数据,DDTAM用来储备显示的字符,能储备80 个字符码, CGROM 由 8 位字符码生成 5*7 点阵字符 160 中和 5*10 点阵字符 32 种.8 位字符编码和字符的对应关系,可以查看参考文献和地线 GND16 脚,其掌握原理与 14 脚的 LCD 完全一样,其中:引脚符号功能说明欢迎下载精品学习资源1 VSS 一般接地2 VDD 接电源+5V )3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高时进行读操作,低电平 0时进行写操作;6 E E或 EN端为使能 enable端,下降沿使能;7 DB0 底 4 位三态、双向数据总线0 位最低位
17、)8 DB1 底 4 位三态、双向数据总线1 位9 DB2 底 4 位三态、双向数据总线2 位10 DB3 底 4 位三态、双向数据总线3 位11 DB4 高 4 位三态、双向数据总线4 位12 DB5 高 4 位三态、双向数据总线5 位13 DB6 高 4 位三态、双向数据总线6 位14 DB7 高 4 位三态、双向数据总线15 BLA 背光电源正极16 BLK 背光7 位最高位) 也是 busy flang)寄存器挑选掌握表RS R/W 操作说明0 0 写入指令寄存器 清除屏等)0 1 都 busy flagDB7),以及读取位址计数器 DB0DB6 )值1 0 写入数据寄存器 字符 15
18、0 个,5 10宽高 字符 42 个; LM016L 分行显示时 ,只能显示 57 字体的字符 ,想要显示 5 10 字符,只能单行显示;假如要显示除CGROM 中 192 个字符以外的其它字符 ,可以自定义最多 8 个特别字符写入 CGRAM 中以供显示调用; DDRAM 与液晶显示屏上的位置是映射关系, 只要把 CGROM 或 CGRAM中的字符胜利写入对应的DDRAM 地址,便可在 LCD 上显示出相应的字符;单行显示时 ,DDRAM 的显示地址自左至右分别为80H 87H,C1H C7H;双行显示时 ,显示地址首行自左至右为80H8FH,第 2 行自左至右为 C0HCFH;HD4478
19、0 的掌握端有 3 个,分别是 RS、RW 和 E;RS=0 时,协作读写掌握端RW 实现命令读写; RS=1 时,协作读写掌握端RW 实现显示数据的读写; RW 是 LCD 的读写掌握端 ,RW=0 为写有效; RW=1 为读有效; E 为 LCD 的使能信号 ,每次读写都需要产生一个宽 450ns周期为 1000ns的脉冲信号5,6 ;HD44780 的写时序如图 2 所示;从图 2 中可以看出 ,每次读写数据时 , 先使 RS 和 RW 有效,然后 E图中为 EN脉冲信号有效 ,E 脉冲信号应先为高电平后为低电平;最终通过D0 D7 送出命令或数据 ,也可以把送出命令或数据放在第一步;H
20、D44780 的掌握命令共有 11 条,主要用来掌握光标的显示方式、单行或双行显示方式、 4 线或 8 线数据传输方式、储备器地址指针增减方等,可以依据不同的设计需求选用不同的命令形式 411 / 40欢迎下载精品学习资源其次章系统硬件电路设计2.1 DS18B20 温度传感器的连接测温仪电路设计原理图如图2.12.3 所示,掌握器使用单片机AT89C51,温度传感器使用 DS18B20,用字符液晶显示器 LM016L和 1k8 的排阻构成;DS18B20 温度传感器供应 9 位二进制)温度读数;信息经过单线接口送入DSB1820 或从 DS18B20 送出,因此从单片机到 DS18B20 仅
21、需一条线 和地线);DS18B20 的电源可以由数据线本身供应而不需要外部电源;如图 2.1 所示;89C51 对 DS18B20 的数字量输出读入,即读 P2.5端口;如图 2.1 所示;12 / 40欢迎下载精品学习资源图 2.1测温仪电路设计原理图 LCALL BEEP_BLINC TEMP_TH MOV A,TEMP_THCJNE A,#120,ASZ011 MOV TEMP_TH,#0ASZ011: LCALL LOOK_ALARM MOV R5,#10LCALL DELAYJMP ASZ01ASZ02:JB K3,ASZ03;TL 值调整 增加欢迎下载精品学习资源LCALL BEE
22、P_BL INC TEMP_TL MOV A,TEMP_TLCJNE A,#99,ASZ021 MOV TEMP_TL,#00HASZ021: LCALL LOOK_ALARM MOV R5,#10LCALL DELAY JMP ASZ02ASZ03:JB K4,AS0;确定调整LCALL BEEP_BL JNB K4,$RETASJ01:JB K2,ASJ02;TH值调整 削减) LCALL BEEP_BLDECTEMP_TH MOV A,TEMP_THCJNE A,#0FFH,ASJ011JMP ASJ022ASJ011: LCALL LOOK_ALARM MOV R5,#10LCALL
23、DELAY JMP AS0ASJ02:JB K3,ASJ03;TL 值调整 被减数,就欢迎下载精品学习资源JCCHULI1;借位标志位 C=1,转MOV A,TEMPFCCJNEA,#0BH,COMPSJMPCHULI2 COMP:MOV A,TEMP_ZHSUBB A,TEMP_TL;减数 被减数,就JC CHULI2;借位标志位 C=1,转MOV DPTR,#BJ5LCALL TEMP_BJ3CLRRELAY;点亮指示灯RETCHULI1: MOV DPTR,#BJ3 LCALL TEMP_BJ3SETB RELAY;熄灭指示灯LCALL BEEP_BL;蜂鸣器响RETCHULI2: MO
24、V DPTR,#BJ4 LCALL TEMP_BJ3SETB RELAY;熄灭指示灯LCALL BEEP_BL;蜂鸣器响RET;TEMP_BJ3: MOV A,#0CEH LCALL WCOMMOV R1,#0 MOV R0,#2BBJJ3:MOV A,R1 MOVC A,A+DPTR LCALL WDATA INC R1DJNZ R0,BBJJ3RETBJ3:DB HBJ4:DB LBJ5:DB .;*显示温度标记子程序 * TEMP_BJ: MOV A,#0CBHLCALL WCOMMOV DPTR,#BJ1;指针指到显示消息MOV R1,#0欢迎下载精品学习资源MOV R0,#2BBJJ
25、1:MOV A,R1 MOVC A,A+DPTRLCALL WDATAINC R1DJNZ R0,BBJJ1 RETBJ1:DB 00H,C;*显示正确信息子程序 * MENU_OK: MOV DPTR,#M_OK1;指针指到显示消息MOV A,#1;显示在第一行LCALL LCD_PRINTMOV DPTR,#M_OK2;指针指到显示消息MOV A,#2;显示在第一行LCALL LCD_PRINTRETM_OK1:DBDS18B20 OK,0M_OK2:DB TEMP:,0;*显示出错信息子程序 * MENU_ERROR:MOV DPTR,#M_ERR;OR指1针指到显示消息MOV A,#1
26、;显示在第一行LCALL LCD_PRINTMOV DPTR,#M_ERROR2;指针指到显示消息 1 MOV A,#2;显示在第一行 LCALL LCD_PRINTRETM_ERROR1: DB DS18B20 ERROR ,0 M_ERROR2: DB TEMP: -,0;*DS18B20复位子程序 *RST:SETB DQ NOPCLR DQMOV R0,#6BH;主机发出延时复位低脉冲MOV R1,#04H TSR1:DJNZ R0,$ MOV R0,#6BHDJNZ R1,TSR1SETB DQ;拉高数据线NOP NOP NOP欢迎下载精品学习资源MOV R0,#32HTSR2:JNB DQ,TSR3;等待 DS18B20回应DJNZ R0,TSR2JMP TSR4; 延时TSR3:SETB FLAG1; 置 1 标志位, 表示 DS1820存在JMP TSR5TSR4:CLR FLAG1; 清 0 标志位, 表示 DS1820不存在JMP TSR7TSR5:MOV R0,#06BHTSR6:TSR7:DJNZ R0,$SETB DQ;