目录摘要 (2)第1章系统综述 (3)第2章开发平台及模块介绍 (3)2.1开发工具 (3)2.2处理器AT89C51简介 (5)2.3芯片DS18B20的介绍 (6)第3章系统的软硬件设计 (7)3.1设计框图 (7)3.2硬件电路设计 (8)3.2软件设计 (9)第4章调试及结果 (13)4.1调试中所遇问题以及解决方法 (13)4.2仿真结果 (13)结束语 (14)致谢 (15)参考文献 (15)简易温度控制系统摘要单片机在日用电子产品中的应用越来越广泛,温度则是人们日常生活中常常需要测量和控制的一个量。
本文采用AT89C51单片机和温度传感器DS18B20,从硬件和软件两方面介绍一款简易温度控制器的设计过程,并对硬件原理图和流程图做了简要的描述。
本系统要求能够实时可靠监控温度变化,指示准确,要实现温度的自动控制,首先,要准确的检测环境温度;其次,要把检测到信号转换成控制器件可识别的数字信号;再次,用单片机完成控制加热,保证温度不低于设定值。
如果温度将高于设定值,关闭加热器件,使其自行冷却。
保持温度在设定值,误差不高于1℃。
关键字:单片机;AT89C51 ;温度传感器;DS18B20第1章系统综述随着单片机技术的不断发展,单片机在日常电子产品中的应用越来越广泛,温度传感器DS18B20具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等特点,广泛应用于冰箱、空调器、饮水机等日常生活中温度的测量和控制。
传统的温度控制器反应速度慢,读数麻烦,测量精度不高,误差大等缺点,本文利用集成温度传感器DS18B20设计制作了一款基于AT89C51的1位数码管显示的温度控制器,其电路简单,软硬件结构模块化易于实现。
该温度控制器利用DS18B20集成温度传感器及其接口电路完成温度的测量,最后将温度值显示在2位数码管上。
数码管实时显示温度值,温度测量值与温度设定值送入由AT89C51组成的控制主板后,由处理器AT89C51对数据进行处理和比较分析。
若测量温度值低于设定温度界限,根据系统程序控制,由单片机发出控制信号,经过驱动电路使加热器工作。
当加热后的温度达到设定的温度界限,则停止加热,单片机发出一个控制信号,关闭加热器。
整个控制系统的组成可以分成以下几个部分:控制主板,电源,复位电路,时钟电路,温度采集电路、键盘和显示。
控制主板,本测控系统采用Atmel系列的AT89C51单片机作为核心处理器,采用ADS18B20作为温度传感器,处理器通过一个I/O口输出高低电平信号来控制加热器的开关。
电源部分采用了抗干扰技术,为整个系统提供电源。
复位电路采用常用的电容加电阻的形式。
处理器通过一个并口与两位数码管相连,实现数据的显示。
第2章开发平台及模块介绍2.1 开发工具本系统采用了Proteus软件做仿真:Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。
Proteus软件提供多种现实存在的虚拟仪器仪表。
此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
提供Schematic Drawing、SPICE仿真与PCB设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、A VR、PIC等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。
Proteus 提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持等编译器。
一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。
以虚代实、以软代硬,就建立一个完善的虚拟实验室。
在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
该软件的特点:①全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。
②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
③目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
④支持大量的存储器和外围芯片。
总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。
该系统还采用了Keil编程软件:Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil 软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.2 处理器AT89C51简介此系统用的处理器是AT89C51。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
Atmel公司生产的AT89C51单片机是一种低功耗、低电压、高性能的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断,2个16位可编程定时计数器,片内集成4K字节可改变程序FLASH存储器,具有低功耗,速度快,程序擦写方便等优点,完全满足本系统的设计需要。
处理器外部引脚图如图1所示。
图1 AT89C51外部引脚图2.3 芯片DS18B20的介绍DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3 根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系统。
特性如下:(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;(2)在使用中不需要任何外围元件;(3)可用数据线供电,电压范围:+3.0~+5.5 V;(4)测温范围:-55 ~+125 ℃,固有测温分辨率为0.5 ℃;(5)通过编程可实现9~12位的数字读数方式;(6)用户可自设定非易失性的报警上下限值;(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温;(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;(9)精度高、抗干扰能力强、工作稳定可靠。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都需要主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的内部结构主要由4部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端。
ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。
64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。
ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20有两种封装模式:3脚和8脚封装,管脚排列如图所示,其中3脚封装比较常用。
DS18B20各种封装如图2所示。
图2 DS18B20芯片封装DS18B20内部结构图如图3所示图3 DS18B20内部结构图第3章系统的软硬件设计3.1 设计框图此方案采用89C51单片机系统来实现。
单片机软件编程灵活、自由度大,可用软件编程实现各种控制看法和逻辑控制。