单片机电子温度计设计.docx
《单片机电子温度计设计.docx》由会员分享,可在线阅读,更多相关《单片机电子温度计设计.docx(32页珍藏版)》请在冰点文库上搜索。
单片机电子温度计设计
毕业设计
设计(论文)题目:
单片机电子温度计设计
专业班级:
计算机控制技术122班
学生姓名:
指导教师:
设计时间:
2015.5.20至2015.6.3
重庆工程职业技术学院
重庆工程职业技术学院毕业设计(论文)任务书
任务下达日期:
2015.5.20
设计(论文)题目:
单片机电子温度计设计
设计(论文)主要内容和要求:
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。
教研室主任签字:
指导教师签字:
年月日年月日
摘要
在我们的日常生活和生产过程中,常需要检测及控制温度,温度是生产过程和科学实验中经常遇到的重要参数之一。
在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、湿度、压力等进行有效的控制。
温度控制在生产过程起到相当重要的作用。
温度测量是温度控制的基础,技术已经趋向简单和成熟。
传统的测温元件有热电偶和二电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。
在本设计中选用AT89C51型单片机作为主控制器件,选用DS18B20温度传感器作为测温电子元件,通过4位共阳极LED数码显示管并行传送数据,实现温度显示。
本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度的采集与显示。
通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。
其系统结构简单,数据运行处理速度快,信号采集效果较好,便于实际检测使用。
关键词:
温度,DS18B20,AT89C51
1绪论
1.1课题的背景及目的
随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。
环境温度一直是生物能否较适宜生存的一个重要因素,而人们对环境温度的感知也从单纯的身体感官的感受发展到用各种温度计来对环境温度进行准确的测量。
传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
单片机自1976年由Intel公司推出MCS-48开始,迄今已有三十多年了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。
本设计讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。
不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域[1]。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。
这些厂家生产的芯片是MCS-51系列的兼容产品,准确地说是与MCS-51指令系统兼容的单片机。
MCS-51系列及80C51单片机有多种品种。
它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。
目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:
基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。
其中ATMEL公司的标准型AT89单片机因其与MCS-51的完全兼容性、优良的工作性能、使用的灵活性以及较高的性能价格比,成为AT89系列单片机的主流机型,在嵌入式控制系统中获得广泛应用。
美国Dallas公司生产的的温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
“一线总线”独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的DS18B20体积更小、更经济、更灵活。
使你可以充分发挥“一线总线”的优点。
同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等。
DSl8B20作为测温传感器通过LCD1602并行传送数据,实现温度显示。
通过DSl8B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在-55℃~125℃最大线性偏差小于0.1℃。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
1.2课题的设计目的
1.巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。
2学习DS18B20数字温度传感器的测温原理,提高运用所学专业知识进行独立思考和综合分析、解决实际问题的能力;
3通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。
4学会用PROTEL99SE进行电路原理图和PCB图的绘制。
5学习用PSPICE、MULTISIM8等仿真软件进行电路设计和仿真。
1.3国内外的研究状况
温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。
成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。
随着我国经济的发展,对科研的投入加大,对相关企业资源进行了重组,相继建立了一些国家级,省级的研发机构,开展创新性研究,使我国仪表工业得到了迅速的发展。
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
国内很多公司已经能够独立生产一些高性能的单片机了,例如华为,炬力,中兴等公司。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至几毛钱,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
单片机发展有明显的趋势,可靠性及应用越来越水平高和互联网连接已是一种明显的走向。
它所集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。
原因是其内部已集成上各种应用电路,它的功耗越来越低和模拟电路结合越来越多。
随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:
单片机与微机系统之间的距离越来越小,甚至难以辨认。
1.4课题的主要工作
本课题的研究重点是设计一种基于单片机的数字温度计控制系统。
利用数字温度传感器DS18B20,此传感器课读取被测量温度值,进行转换。
主要工作如下:
1.选好mcu和温度传感器以及显示元件,画出硬件电路图,并且焊接好电路
2.温度检测器件采用DS18B20数字式温度传感器,利用单总线式连接方式与单片机的串行接口P0.0引脚相连;
3.显示电路采用1602液晶,能准确显示温度
4.编写好程序,调试,以达到设计要求
1.5论文构成及研究内容
数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,这个电信号可以使用模数转换的电路即A/D转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,然后通过显示单元,显示出来给人观察。
这样就完成了数字温度计的基本测温功能。
其主要研究内容包括两方面,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度的采集与显示。
通过利用数字温度传感器DS18B20进行设计,能够满足实时检测温度的要求,同时通过LED数码管的显示功能,构成实现温度检测与显示的单片机控制系统,即数字温度计。
通过对单片机编写相应的程序可以实现不间断的温度显示,并带有复位功能。
2开发工具keil
2.1软件Keil介绍
编程使用的软件是KEIL,编程使用C语言。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
假如运用C语言编程,Keil的使用十分方便,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也能发挥很大作用。
2.1.1系统概述
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
2.1.2KeilC51单片机软件开发系统的整体结构
C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时,注意事项:
*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
3数字温度计的方案设计
3.1设计方案论证与比较
3.1.1显示电路方案
方案一:
采用数码管动态显示
使用七段LED数码管,采用动态显示的方法来显示各项指标,此方法虽然价格成本低,但是显示单一,且功耗较大。
方案二:
采用LCD液晶显示
采用1602LCD液晶显示,此方案显示内容相对丰富,且价格不高。
综合上述原因,采用方案二,使用LCD液晶作显示电路。
3.1.2测温电路方案
方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。
方案二
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。
3.2系统总体构成图和系统总电路图
如图3-1和图3-2所示
图3-1系统总体构成图
图3-2系统总电路图
4系统硬件设计
4.1核心处理器的设计
4.1.1STC89C52的简介
对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。
所以,我们选用51系列单片机STC89C52。
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
低价位STC89C52单片机可应用于许多高性价比的场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。
单片机STC89C52具有低电压供电和体积小等特点,很适合便携手持式产品的设计使用。
系统可用3节电池供电。
STC89C52单片机的基本组成框图见图4-1。
【2】
图4-1STC89C52单片机结构图
由图4-1可见,STC89C52单片机主要由以下几部分组成:
1.cpu系统:
8位cpu,含布尔处理器;时钟电路;总线控制逻辑。
2.存储器系统:
4K字节的程序存储器(ROM/EPROM/Flash,可外扩至64KB);128字节的数据存储器(RAM,可再外扩64KB);特殊功能寄存器SFR。
3.I/O口和其他功能单元:
中断系统(5个中断源,2个优先级);
4个并行I/O口;2个16位定时计数器;1个全双工异步串行口。
4.1.2STC89C52单片机主要特性
1.一个8位的微处理器(CPU)。
2.片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89系列单片机最多提供1K的RAM。
3.片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。
但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。
目前单片机的发展趋势是将RAM和ROM都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。
SST公司推出的89系列单片机分别集成了16K、32K、64KFlash存储器,可供用户根据需要选用。
4.四个8位并行I/O接口P0~P3,每个口既可以用作输入,也可以用作输出。
5.两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。
为方便设计串行通信,目前的52系列单片机都会提供3个16位定时器/计数器。
6.五个中断源的中断控制系统。
现在新推出的单片机都不只5个中断源,例如SST89E58RD就有9个中断源。
7.一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单机与微机之间的串行通信。
8.片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。
最高允许振荡频率为12MHz。
SST89V58RD最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。
【3】
4.1.3STC89C52单片机管脚图
STC89C52单片机管脚如图4-2所示
图4-2STC89C52单片机管脚图
部分引脚说明:
1.时钟电路引脚XTAL1和XTAL2:
XTAL2(18脚):
接外部晶体和微调电容的一端;在8051片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。
若需采用外部时钟电路时,该引脚输入外部时钟脉冲。
要检查8051/8031的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。
XTAL1(19脚):
接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。
在采用外部时钟时,该引脚必须接地。
2.控制信号引脚RST,ALE,PSEN和EA:
RST/VPD(9脚):
RST是复位信号输入端,高电平有效。
当此输入端保持备用电源的输入端。
当主电源Vcc发生故障,降低到低电平规定值时,将+5V电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
RST引脚的第二功能是VPD,即接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,从而合复位后能继续正常运行。
ALE/PROG(30脚):
地址锁存允许信号端。
当8051上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC的1/6。
CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。
平时不访问片外存储器时,ALE端也以振荡频率的1/6固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。
如果想确定8051/8031芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。
如有脉冲信号输出,则8051/8031基本上是好的。
ALE端的负载驱动能力为8个LS型TTL(低功耗甚高速TTL)负载。
此引脚的第二功能PROG在对片内带有4KBEPROM的8751编程写入(固化程序)时,作为编程脉冲输入端。
PSEN(29脚):
程序存储允许输出信号端。
在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。
此引肢接EPROM的OE端(见后面几章任何一个小系统硬件图)。
PSEN端有效,即允许读出EPROM/ROM中的指令码。
PSEN端同样可驱动8个LS型TTL负载。
要检查一个8051/8031小系统上电后CPU能否正常到EPROM/ROM中读取指令码,也可用示波器看PSEN端有无脉冲输出。
如有则说明基本上工作正常。
EA/Vpp(31脚):
外部程序存储器地址允许输入端/固化编程电压输入端。
当EA引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051为4K)时,将自动转去执行片外程序存储器内的程序。
当输入信号EA引脚接低电平(接地)时,CPU只访问外部EPROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。
对于无片内ROM的8031或8032,需外扩EPROM,此时必须将EA引脚接地。
此引脚的第二功能是Vpp是对8751片内EPROM固化编程时,作为施加较高编程电压(一般12V~21V)的输入端。
1.输入/输出端口P0/P1/P2/P3:
P0口(P0.0~P0.7,39~32脚):
P0口是一个漏极开路的8位准双向I/O口。
作为漏极开路的输出端口,每位能驱动8个LS型TTL负载。
当P0口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。
作输入口使用时要先写1,这就是准双向口的含义。
在CPU访问片外存储器时,P0口分时提供低8位地址和8位数据的复用总线。
在此期间,P0口内部上拉电阻有效。
P1口(P1.0~P1.7,1~8脚):
P1口是一个带内部上拉电阻的8位准双向I/O口。
P1口每位能驱动4个LS型TTL负载。
在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。
P2口(P2.0~P2.7,21~28脚):
P2口是一个带内部上拉电阻的8位准双向I/O口。
P口每位能驱动4个LS型TTL负载。
在访问片外EPROM/RAM时,它输出高8位地址。
P3口(P3.0~P3.7,10~17脚):
P3口是一个带内部上拉电阻的8位准双向I/O口。
P3口每位能驱动4个LS型TTL负载。
P3口与其它I/O端口有很大的区别,它的每个引脚都有第二功能,如下:
P3.0:
(RXD)串行数据接收。
P3.1:
(RXD)串行数据发送。
P3.2:
(INT0#)外部中断0输入。
P3.3:
(INT1#)外部中断1输入。
P3.4:
(T0)定时/计数器0的外部计数输入。
P3.5:
(T1)定时/计数器1的外部计数输入。
P3.6:
(WR#)外部数据存储器写选通。
P3.7:
(RD#)外部数据存储器读选通。
4.1.480C51单片机的中断系统
80C51系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。
由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。
4.1.580C51单片机的定时/计数器
在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。
80C51单片机内集成有两个可编程的定时/计数器:
T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。
4.1.6复位电路的设计
单片机复位电路的设计如图4-3所示。
该复位电路采用手动复位与上电复位相结合的方式。
当按下按键S5时,VCC通过R11电阻给复位输入端口一个高电平,实现复位功能,即手动复位。
上电复位就是VCC通过电阻R11和电容C5构成回路,该回路是一个对电容C5充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能。
图4-3单片机复位电路
4.1.7晶振电路的设计
单片机晶振电路的设计如图4-4所示