正文内容

精品毕业论文--基于at89c51的数字温度计设计与仿真-文库吧

2024-10-10 10:08 本页面


【正文】 S18B20 的管脚排列如 图 所示。 图 DS18B20 外形图 引脚定义: (1) DQ 为数字信号输入 /输出端; (2) GND 为电源地; (3) VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。 其内部结构框图如图 所示: 设计方案 4 图 DS18B20 内部结构 64 位 ROM 的结构开始 8 位是产品类型的编号,接着是每个器件的惟 一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码 [11],这也是多个 DS18B20 可以采用一线进行通信的原因。温度报警触发器 TH 和 TL,可通过软件写入 用 户报警上下限。 DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为 8 字节的存储器,结构如图 所示。头 2 个字节包含测得的温度信息,第 3 和第 4 字节 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。 第 5 个字节 ,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 DS18B20 工作时 寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图 所示。低 5 位一直为 1, TM 是工作模式位,用于设置DS18B20 在工作模式还是在测试模式, DS18B20 出厂时该位被设置为 0,用户要去改动, R1 和 R0 决定温度转换的精度位数,来设置分辨率。 设计方案 5 图 DS18B20 字节定义 DS18B20 温度转换的时间比较长,而且 分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存 RAM 的第 8 字节保留未用,表现为全逻辑 1。第 9 字节读出前面所有 8 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。 当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 2 字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 ℃/ LSB 形式表示 [5]。 当符号位 S= 0 时,表示测得 的温度值为正值,可以直接将二进制位转换为十进制;当符号位 S= 1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表 是一部分温度值对应的二进制温度数据。 DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、 TL 字节内容作比较。若 T> TH 或 T< TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只 DS18B20 同时测量温度并进行报警搜索。 在 64 位 ROM 的最高有效字节中存储有循环冗余检验码( CRC)。主机 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 的 CRC 值作比较,以判断主机收到的ROM 数据是否正确。 DS18B20 的测温原理是这这样的 ,器件中低温度系数晶振的振荡 频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器 1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入。器件中还有一个计数门,当计数门打开时, DS18B20 就对低温度系数振荡器产生的时钟脉冲进温度 LSB 温度 MSB TH 用户字节 1 TL 用户字节 2 配置寄存器 保留 保留 保留 CRC TM R1 1R0 1 1 1 1 .... 设计方案 6 行计数进而完成温度测量。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1的预置值减到 0 时,温度寄存器的值将加 1,减法计数 器 1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到 0 时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。 另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲) → 发 ROM 功能命令 → 发存储器操作命令 → 处理数据 表 一部分温度对应值表 温度 /℃ 二进制表示 十六进制表示 +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H + 0000 0001 1001 0000 0191H + 0000 0000 1010 0001 00A2H + 0000 0000 0000 0010 0008H 0 0000 0000 0000 1000 0000H 1602LCD 模块显示特性 [4] ●单 5V 电源电压,低功耗、长寿命、高可靠性 ●内置 192 种字符( 160 个 57 点阵字符和 32 个 510 点阵字符) ●具有 64 个字节的自定义字符 RAM,可定义 8 个 58 点阵字符或四个 511 点阵字符 ●显示方式: STN、半透、正显 ●驱动方式: 1/16DUTY, 1/5BIAS ●视角方向: 6点 ●背光方式:底部 LED ●通讯方式: 4位或 8位并口可选 ●标准的接口特性,适配 MC51 和 M6800 系列 MPU 的操作时序 1. 1602LCD模块接口定义 图 1602LCD 引脚外形图 设计方案 7 1602LCD 采用标准的 14 脚(无背光)接口,各引脚接口说明如表 。 表 1602LCD 接口定义表 管脚定义 符号 功能 1 Vss 电源地( GND) 2 Vdd 电源电压(+ 5V) 3 VEE LCD 驱动电压(可调) 4 RS 寄存器选择输入端,输入 MPU 选择模块内部寄存器类型号; RS=0,当 MPU 行进写模块操作,指向指令寄存器; 当 MPU 进行读模块操作,指向地址计数器; RS=1,无论 MPU 读操作还是写操作,均指向数据 寄存器 5 R/W 读写控制输入端,输入 MPU 选择读 /写模块操作操作信号: R/W= 0 读操作; R/W= 1 写操作 6 E 使能信号输入端,输入 MPU 读 /写模块操作使能信号: 读操作时,高电平有效;写操作时,下降沿有效 7 DB0 数据输入 /输出口, MPU 与模块之间的数据传送通道 8 DB1 数据输入 /输出口, MPU 与模块之间的数据传送通道 9 DB2 数据输入 /输出口, MPU 与模块之间的数据传送通道 10 DB3 数据输入 /输出口, MPU 与模块之间的数据传送通道 11 DB4 数据输入 /输出口, MPU 与模块之间的数据传送通道 12 DB5 数据输入 /输出口, MPU 与模块之间的数据传送通道 13 DB6 数据输入 /输出口, MPU 与模块之间的数据传送通道 14 DB7 数据输入 /输出口, MPU 与模块之间的数据传送通道 液晶模块内部的控制器共有 11条控制指令,如表 。 表 控制命令表 序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示 0 0 0 0 0 0 0 0 0 1 2 光标返回 0 0 0 0 0 0 0 0 1 * 3 置输入模式 0 0 0 0 0 0 0 1 I/D S 4 显示开 /关控制 0 0 0 0 0 0 1 D C B 5 光标或字符移位 0 0 0 0 0 1 S/C R/L * * 6 置功能 0 0 0 0 1 DL N F * * 7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址 设计方案 8 8 置数据存贮器地址 0 0 1 显示数据存贮器地址 9 读忙标志或地址 0 1 BF 计数器地址 10 写数到 CGRAM 或 DDRAM) 1 0 要写的数据内容 11 从 CGRAM 或 DDRAM 读数 1 1 读出的数据内容 1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明 :1 为高电平、 0 为低电平) 指令 1:清显示,指令码 01H,光标复位到地址 00H 位置。 指令 2:光标复位,光标返回到地址 00H。 指令 3: 光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高 电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10 的点阵字符。 指令 7:字符发生器 RAM 地址设置。 指令 8: DDRAM 地址设置。 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示 不忙。 指令 10:写数据。 指令 11:读数据。 初始化程序: SET_LCD: 。对 LCD 做初始化设置及测试 CLR LCD_EN CALL INIT_LCD 。初始化 LCD INIT_LCD: 。8 位 I/O 控制 LCD 接口初始化 MOV A,38H 。双列显示,字形 5*7 点阵 CALL WCOM CALL DELAY1 DELAY1: 。延时 5ms MOV R6,25 DL2: MOV R7,100 设计方案 9 DJNZ R7,$ DJNZ R6,DL2 RET MOV A,01H 。清除 LCD 显示屏 基于 AT89C51 的 数字温度计 设计与仿真 硬件电路设计 10 第三章 硬件电路设计 电路原理图 本温度计大体分三个工作过程。首先,由 DS18B20 温度传感器芯片测量当前温度,并将结果送入单片机。然后,通过 AT89C51 单片机芯片对送入的测量温度读 数进行计算和转换,并将此结果送入液晶显示模块。最后, LCD 1602 模块将送来的值显示于显示屏上。温度计的整体电路 设计原理图 如图 。 从图中可以看到 , 本电路主要由 DS18B20 温度传感器芯片、通用 LCD 1602 液晶显示模块和 AT89C51 单片机芯片组成。其中, DS18B20 温度传感器芯片采用“一线制”与单片机相连 [9],它独立地完成温度测量 并将结果送到单片机进行处理 。 本系统测温范围为 0~ 119℃ ,精度 达 ℃ 。 当温度超出所设上下 限 温度报警值时 ,系统不但会显示当时温度值 ,同时也会发出报警鸣叫声告知用户温度异常,并且可以手动设置上下 限 温度报警值。 图 电路原理图 LCD1602显示器与单片机的接口电路 基于 AT89C51 的 数字温度计 设计与仿真
点击复制文档内容
公司管理相关推荐
文库吧 www.wenkub.com
备案图鄂ICP备17016276号-1