基于at89c51单片机温度测量系统的设计内容摘要:
单片机LCD显示模块集成功放 报警器键盘模块AD 转换运算放大器 模拟温度传感器 4 该方案使用了 AT89C51单片机作为控制核心 ,以智能温度传感器 DS18B20为温度测量元件,采用多个温度传感器对各点温度进行检测,通过 4 4 键盘模块对正常温度进行设置显示电路采用 128 64 LCD 模块,使用 LM386 作为报警电路中的功率放大器。 图 22 基于数字温度传感器测量系 统方案 本课题采用数字温度传感器 DS18B20 作为测为测温元件 ,它具有如下特点 : ( 1)只要求一个端口即可实现通信。 ( 2)在 DS18B20 中的每个器件上都有独一无二的序列号。 ( 3)实际应用中不需要外部任何元器件即可实现测温。 ( 4)测量温度范围在 - 55C 到 + 125C 之间。 ( 5)数字温度计的分辨率用户可以从 9 位到 12 位选择。 ( 6)内部有温度上、下限告警设置。 方案论证 本设计要求测量的点数为 4,测温范围为 20℃~ +80℃,精度为 ℃。 采用液晶显示,同时显示路数和温度,每秒刷新 1 次显示数据。 综合模拟温度传感器和数字温度传感器的性能指标,以上两个方案都能达到设计的要求。 方案一采用模拟温度传感器 AD590,转换结果需要经过运算放大器和 AD 转换器传送给处理器。 它控制虽然简单,成本低,但是后续电路复杂,且需要进行温度标定,集成温度传感器 AD590 输出为电流信号 ,且输出信号较弱,所以需要后续放大及A/D 转换电路,如采用普通运放则精度难以保证,而测量放大器价格较高,这样会使单片机温度传感器温度传感器LCD显示电路集成功放报警器4 4 键盘温度传感器DS 18 B 20温度传感器温度传感器 5 系统成本升高。 方案二采用了数字温度传感器 DS18B20, 改变了传统温度测试方法。 它能在现场采集温度数据,直接将温度物理量变换为 数字信号并以总线方式传送到单片机进行数据处理,并且可根据实际要求通过简单的编程实现 912 位的数字式读数方式,因而使用 DS18B20 可使系统结构更趋简单,可靠性更高,大大提高系统的抗干扰能力。 DS18B20 体积小、经济、使用方便灵活,测试精度高,较高的性能价格比,有 CRC校验,系统简明直观。 适合于恶劣环境的现场温度测试,如 :环境控制、设备或过程控制、测温类消费电子产品等。 方案二程序设计稍微复杂一些,但在电子竞赛期间我用 DS18B20 做过温度计,也调试过 LCD,并且已经用 PROTEUS 实现了系统的仿真。 因此 ,该方案完全具有可行性,同时体现了技术的先进性,经济上也有很大的优势。 综上所述,本课题采用方案二对系统进行设计。 6 第三章 硬件电路设计 系统基本原理 基于 DS18B20 多点温度测量系统以 AT89C51 为核心器件,以 KEIL 为系统开发平台,用 C 语言进行程序设计,以 PROTEUS 作为仿真软件设计而成的。 系统主要由传感器电路、液晶显示电路、键盘电路、报警电路、电源电路组成, 系统图如图31 所示。 图 31 系统原理图 DS18B20 是数字温度传感器,它的输入 /输出采 用数字量,以单总线技术,接收主机发送的命令,根据 DS18B20 内部的协议进行相应的处理,将转换的温度以串口发送给主机。 主机按照通信协议用一个 IO 口模拟 DS18B20 的时序,发送命令(初始化命令、 ROM 命令、 RAM 命令)给 DS18B20,转换完成之后读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。 在系统启动之时,可以通过 44 键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值,从而实现了对各点温度的实时监控。 每个 DS18B20 有自己的序列号,因此本系统可以在一根总线上挂接了 4 个 7 DS18B20,通过 CRC 校验,对各个 DS18B20 的 ROM 进行寻址,地址符合的 DS18B20才作出响应,接收主机的命令,向主机发送转换的温度。 采用这种 DS18B20 寻址技术,使系统硬件电路更加简单。 DS18B20 与单片机接口技术 中央处理器 AT89C51 简介 ( 1) AT89C51 的特点 AT89C51 具有以下几个特点: AT89C51 与 MCS51 系列的单片机在指令系统和引脚上完全兼容; 片内有 4k 字节在线可重复编程快擦写程序存储 器; 全静态工作 ,工作范围: 0Hz~ 24MHz; 三级程序存储器加密; 128 8 位内部 RAM; 32 位双向输入输出线; 两个十六位定时器 /计数器 五个中断源 ,两级中断优先级; 一个全双工的异步串行口; 间歇和掉电两种工作方式。 ( 2) AT89C51 的功能描述 AT89C51 是一种低损耗、高性能、 CMOS 八位微处理器,片内有 4k 字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入 /擦除 1000 次, 数据保存时间为十年。 它与 MCS51 系列单片机在指令系统和引脚上完全兼容,不仅可完全代替 MCS51 系列单片机,而且能使系统具有许多 MCS51 系列产品没有的功能。 AT89C51 可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。 只要程序长度小于 4K,四个 I/O 口全部提供给用户。 可用 5V电压编程 ,而且擦写时间仅需 10 毫秒,仅为 8751/87C51 的擦除时间的百分之一 ,与8751/87C51 的 12V 电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片。 工作电压范围宽( ~6V),全静态工作,工作频率宽在 0Hz~ 24MHz之间,比 8751/87C51 等 51 系列的 6MHz~ 12MHz更具有灵活性 ,系统能快能慢。 8 图 32 AT89C51 单片机 40 引脚分布图 AT89C51 芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。 P0 口是三态双向口 ,通称数据总线口 ,因为只有该口能直接用于对外部存储器的读 /写操作。 ( 3) AT89C51 引脚功能 AT89C51 单片机 40 引脚分布如右图所示。 AT89C51 是一种低损耗、高性能、 CMOS 八位微处理器,片内有 4k 字节的在线可重 复编程、快速擦除快速写入程序的存储器,能重复写入 /擦除 1000 次,数据保存时间为十年。 它与 MCA51 系列单片机在指令系统和引脚上完全兼容,不仅可完全代替 MCS51 系列单片机,而且能使系统具有许多 MCS51 系列产品没有的功能。 AT89C51 可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。 只要程序长度小于 4K,四个 I/O 口全部提供给用户。 可用 5V电压编程 ,而且擦写时间仅需 10 毫秒,仅为 8751/87C51 的擦除时间的百分之一 ,与8751/87C51 的 12V 电压擦写相比,不 易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。 工作电压范围宽( ~6V),全静态工作,工作频率宽在 0Hz~ 24MHz 之间,比 8751/87C51 等 51 系列的 6MHz~ 12MHz 更具有灵活性 ,系统能快能慢。 AT89C51 芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。 P0 口是三态双向口 ,通称数据总线口 ,因为只有该口能直接用于对外部存储器的读 /写操作。 9 DS18B20 的引脚功能 DS18B20 的引 脚功能描述见表 31。 表 32 DS18B20 引脚功能描述 序 号 名 称 引脚功能描述 1 GND 地信 号 2 DQ 数 字输入输出引脚 ,开漏单总线接口引脚 ,当使用寄生电源时 ,可向电源提供电源 3 VDD 可 选择 的 VDD引脚 ,当工作于寄生电源时 ,该引脚必须接地 DS18B20 与单片机接口电路 如图 33 所示,为单片机与 DS18B20 的接口电路。 DS18B20 只有三个引脚,一个接地,一个接电源,一个数字输入输出引脚接单片机的 口,电源与数字输入输出脚间需要接一个 的电阻。 图 33 DS18B20 与单片机接口电路 DS 18 B 20 单 片 机P 1 . 7VDDGNDDQ4 . 7 K表 31 P3 口的第二功能 10 温度寄存器格式和温度 /数据对应关系 DS18B20 温度寄存器 如 下 LS Byte 所示。 其寄存器有 16 位 ,高 5 位为符号位 ,低13 位为数据位。 当寄存器高 5 位为 1 时,表示温度为负,否则为正。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LS Byte B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS Byte 如果测得的温度大于 0,只要 将测到的数值乘于 即可得到实际温度; 如果温度小于 0,测得的数值需要取反加 1 再乘 ,即可得到实际的温度值。 如 MS Byte所示,是 DS18B20 的温度与数据的对应关系。 单片机对 DS18B20 的控制方法 DS18B20 采用严格的单总线通信协议,以保证数据的完整性。 该协议定义了 几种信号类型:复位脉冲、应答脉冲、写 0、写 读 0 和读 1。 除了应答脉冲所有 这些信号都由主机发出同步信号。 总线上传输的所有数据和命令都是以字节为单 表 33 单总线通信协议 位。 且低位在前,高位在后。 温度 输出 (2 进制 ) 输出 (16 进制 ) +125℃ 0000 0111 1101 0000 07D0H +85℃ 0000 0101 0101 0000 0550H +℃ 0000 0001 1001 0001 0191H +℃ 0000 0000 1010 0010 00A2H +℃ 0000 0000 0000 1000 0008H 0℃ 0000 0000 0000 0000 0000H ℃ 1111 1111 1111 1000 FFF8H ℃ 1111 1111 0101 1110 FF5EH ℃ 1110 1110 0110 1111 EE6FH 55℃ 1111 1110 1001 0000 FE90H 23 22 21 20 21 22 23 24 S S S S S 26 25 24 11 ( 1)初始化序列:复位脉冲和应答脉冲 在初始化过程中,主机通过拉低单总线至少 480181。 s,以产生复位脉冲 (TX)。 然 图 34 DS18B20 初始化时序 后主机释放总线并进入接收 (RX)模式。 当总线被释放后, 5kΩ的上拉电阻将单总线拉高。 DS18B20 检测到这个上升沿后,延时 15181。 s~60181。 s,通过拉低总线 60181。 s~240181。 s 产生应答脉冲。 初始化脉冲如图 34 所示。 DS18B20 的初始化应答 C 语言程序如下所示: bit resetpulse(void) { DQ=0。 delay600us()。 DQ=1。 delay60us()。 return(DQ)。 } DS18B20 的初始化 C语言程序如下所示 : void Ds18b20_Init(void) { while(1) { if(!resetpulse()) //收到 ds18b20 的应答信号 { DQ=1。 delay600us()。 //延时 240us break。 } else resetpulse()。 //否则再发复位信号 }} 至少 480 us 至少 480 us主机初始化主机初应答P r e s e n c e pu ls e60 240 us 12 ( 2) DS18B20 的读写控制 在写时序期间,主机向 DS18B20 写入数据;。基于at89c51单片机温度测量系统的设计
相关推荐
........................................................................ 13 致 谢 .....................................................................................................................
目前约 100 单 /天,客单价 200 元,选择组合购买的用户约为 10%,用户男女比例持平,下单用户年龄集中在 1835 岁之间,目前它采用与合作商分成的盈利模式,分成比例高达 20%30%,就蛋糕、鲜花、礼品三类商品而言,目前销售比例约为 65%、 20%和15%。 随着产品的主体功能由记录工具向社交消费服务转变,生日管家的产品设计也正在朝着这个方向发展。 发展趋势 随着 3G
工具的使安康学院本科生毕业论文(设计) 29 用。 实验操作法 通过对前面整理知识的积累和软件的熟悉,能够架设出系统的 基本框架,然后进一步优化设计,完成软件的功能,在操作过程中发现问题。 技术概述 Android 平台及 java 语言 本系统是以 java 为编程语言,从接口到功能,灵活多变。 主要运用的事 Activity之间的相互跳转,然后利用 Intent 实现多个程序同时运行的效果。
实被按下了,此时就跳转至相应的程序标号处,执行相应的功能。 (3)开始计时 若确认“开始计时”键被按下,则跳转至程序标号“ RUN”处,将定时器 0 计时允许控制位 TR0 置位 ,则定时器开始运行。 此动作完成后,返回按键检测程序,等待操作者的下一次指令。 (4)计时程序 定时器 0 计时至 10ms,溢出,引发中断,程序跳转至定时器 0 中断服务程序入口 000BH 处执行。
统电路搭建起温度测量系统的硬件部分。 图 电源电路的硬件设计 5 图 温度测量系统硬件连接图 2. 2 各电路模块分析 2. 2. 1 电源电路 单片机、温度传感器、数码管都支持 5V 电源工作,因此电源只需要单一 5V 供电即可,然后用芯片 7805 将直流电压降到稳定到 5V,特别的芯片 7805 的输入电压应比输出电压高47V,所以最好选用输出电压 9~12V 的变压器。 如 图 1,
和显示模式设置 I/D:光标移 动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效。 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字