1、 基于 51 单片机的温度控制系统设计 姓 名: XXX 学 号: XXX 专 业:电器自动化 指导教师: XXX 完成时间: 2013.XX.XX 摘要 本文提出了基于 MCS-51 系列单片机的数字温度计的制作电路和编程思想。该数字温度计以 ATMEL 公司的 AT89S52 单片机为主控,配以达拉斯公司的 DS18B20 数字温度传感器,采用 1602 双行英文字符液晶作显示。实现了对温度的测量,显示,和报警等功能。 关键词: AT89S52 单片机;数字传感器 DS18B20;显示器 1602LCD; 目 录 摘要 . I ABSTRACT. 错误 !未定义书签。 1 绪论 . 3 1
2、.1 选题的背景 . 3 1.2 数字温度计简介 . 3 1.2.1 数字温度计的特征 .3 1.2.2 设计 实现的目标 .4 2 数字温度计的方案设计 . 5 2.1 设计方案论证与比较 . 5 2.1.1 显示电路方案 .5 2.1.2 测温电路方案 .5 2.2 系统总体方案 . 5 3 数字温度计的硬件电路设计 . 6 3.1 控制电路 . 6 3.1.1 MCU 简介 .6 3.2.2 最小系统模块 . 12 3.3 温度传感器 设计 . 13 3.3.1 DS18B20 简介 . 13 3.3.2 温度传感器与单片机的连接 . 15 3.3.3 复位信号及外部复位电路 . 16
3、3.4 单片机与报警电路 . 17 3.5 显示电路 . 17 4 软件设计 . 19 4.1 DS18b20 的读操作 . 19 4.2 DS18b20 的温度数据处理 . 20 4.3 1602 显示部分 . 21 5 运行测试 . 23 5.1 温度测试 27 5.2 报警设置 27 5.3 报警测试 27 参考文献 . 30 附录 1 程序源代码 . 错误 !未定义书签。 1 绪论 1.1 选题的背景 随着现代信息技术的飞速发展和传统工业改造的逐步实现能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元 件。热敏电阻的成本低,但需后续信号处理电路,而且可
4、靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。选用 AT89S52 单片机作为主控制器件, DSl8B20 作为测温传感器通过LCD1602 并行 传送数据,实现温度显示。通过 DSl8B20 直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在 -55 125 最大线性偏差小于 0.1 。该器件可直接向单片机传输数字信号,便于单片机处理及控制。 另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。 1.2 数字温度计简介 1.2.1 数字温度
5、计的特征 温度 是 我们日常生产和生活中实时在接触到的物理量,但是它是看不到的,仅凭感觉只能感觉到大概的温度值,传统的指针式的温度计虽然能指示温度,但是精度低,使用不够方便,显示不够直观,数字温度计的出现可以让人们直观的了解自己想知道的温度到底是多少度。 数字温度计采用进口芯片组装精度高、高稳定性,误差 0.5% , 内电源、微功耗、不锈钢外壳,防护坚固,美观精致。数字温度计采用进口高精度、低温漂 、超低功耗集成电路和宽温型液晶显示器,内置高能量电池连续工作 5 年无需敷设供电电缆,是一种精度高、稳定性好、适用性极强的新型现场温度显示仪。是传统现场指针双金属温度计的理想替代产品,广泛应用于各类
6、工矿企业,大专院校,科研院所。 数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即 AD 转换电路将模拟信号转换为数字信号,数字信号再 送给处理单元,如单片机或者 PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如 25.0 摄氏度,然后通过显示单元,如 LED,LCD或者电脑屏幕等显示出来给人观察。这样就完成了数字温度计的基本测温功能。数字温度计根据使用的传感器的
7、不同, AD转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的数字温度计。 1.2.2 设计实现的目标 1) 采集测温范围为 -55 +120 . 2) 温度精度在 0.1 ;误差 0.2以内 . 3) 显示模块, 采用 1602 液晶显示 . 4) 按键 3 个 ,设置、加、减 . 5) 报警设置 10-90 度 .低于下限报警,高于上限报警。 2 数字温度计的方案设计 2.1 设计方案论证与比较 2.1.1 显示电路方案 方案一:采用数码管动态显示 使用七段 LED 数码管,采用动态显示的方法来显示各项指标,此方法虽然价格成本低,但是显示单一
8、,且功耗较大。 方案二:采用 LCD 液晶显示 采用 1602 LCD 液晶显示,此方案显示内容相对丰富,且价格不高。 综合上述原因,采用方案二,使用 LCD 液晶作显示电路。 2.1.2 测温电路方案 方案一:采用模拟温 度传感器测温 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到 A/D 转换电路,感温电路比较麻烦。 方案二:采用数字温度传感器 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想
9、到的,所以可以采用一只温度传感器 DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 综合考虑,很容易看出,采 用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。 2.2 系统总体方案 根据上述方案比较,结合题目要可以将系统分为主控模块,显示模块,温度采集模块和报警模块,其框图如下: 图 2-1 系统总体设计框图 驱动显示 报警 电路 设置按键键 MCU DS18B20 温度数据采集 3 数字温度计的硬件电路设计 3.1 控制电路 3.1.1 MCU 简介 CPU 是整个控制部分的核心。在考虑经济性和满足需求的前提下,本系统选用 ATMEL 公司生
10、产的 8 位 AT89S52 单片机作为整个系统的控制中心。 AT89S52 是 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4k bytes 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚,它集 Flash存储器既可在线编辑( ISP)也可用传统方法进行编辑及通用 8位微处理器于单片芯片中,功能强大 AT89S52 单片机可为您提供许多高性价比的应用场合。器管脚图如图 3-2: 图 3-1 AT89S52 管脚图 在本系统中, AT89S52 单片机内部的功能单元已经能够满足系统
11、设计需要,不需要系统扩展。 AT89S52 具有以下的特点 : 8031 CPU 与 MCS-51 兼容 寿命: 1000 写 /擦循环 4K 字节可编程 FLASH 存储器 全静态工作: 0-24MHz 三级程序存储器保密锁定 128*8 位内部 RAM 32 条可编程 I/O 线 两个 16 位定时器 /计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟 AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非 易失性存储器技 术制造,与工业 80C51 产品指令和引脚完 全兼容。
12、片上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统 可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52 具有以下标准功能: 8k字节 Flash, 256 字节 RAM, 32 位I/O 口线,看门狗定时器, 2 个数据指针,三个 16 位 定时器 /计数器,一个 6 向量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。 此外, AT89S52 可降至 0Hz 静 态逻 辑操作,支持 2 种软件可选择节电模式。空闲模式下, CPU 停止工作,允许 RAM、定时器
13、 /计数器、串口、中断继续工 作。掉电保护方式下, RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 8 位微控制器 8K 字节在系统可编程 Flash。同时该芯片还具有 PDIP、 TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。 3、 AT89S52 引脚功能 AT89S52 单片机为 40 引脚芯片见图 3.2.1-2。 图 3.2.1-2 AT89S52引脚图 ( 1) 口线: P0、 P1、 P2、 P3 共四个八位口。 P0 口: P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL 逻辑电平。
14、 对 P0 端口写 “1” 时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时, P0 口也被作为低 8 位地址 /数据复用。在这种模式下 , P0 不具有内部上拉电阻。 在 flash 编程时, P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口: P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口, p1 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P1 端口写 “1” 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 此外, P1.0 和 P1.1分别作定时器 /计数器 2的外部计数输入( P1.0/T2)和定时器 /计数器 2 的触发输入( P1.1/T2EX),具体如下表所示。 在 flash编程和校验时, P1口接收低 8 位地址字节。