当前位置:文档之家› 【完美升级版】基于51单片机数字温度计毕业论文

【完美升级版】基于51单片机数字温度计毕业论文

单片机原理及应用课程设计

题目基于单片机的数字温度计

《单片机原理及应用课程设计》任务书

目录

1.绪论 (1)

2.设计目的 (1)

3.设计正文 (1)

4.系统各模块介绍 (2)

4.1 AT89C52芯片介绍 (2)

4.2温度检测电路设计 (6)

4.3显示电路 (8)

5.系统软件设计 (9)

5.1主程序流程图 (9)

5.2 温度检测数据读取图 (10)

6.编程与仿真 (11)

6.1 Keil软件 (11)

6.2 仿真软件Proteus (11)

6.3仿真界面 (12)

7.结论 (13)

参考文献 (14)

附录 (15)

1.绪论

随着时代的发展,控制智能化,仪器小型化,功耗微量化得到广泛关注。单片机控制系统无疑在这些忙面起到了举足轻重的作用。单片机的应用系统设计业已成为新的技术热点,其中数字温度计就是一个典型的例子。随着人们生活水平的提高,人们对各种测量器具的智能化、多功能化提出了更高的要求,而电子技术的飞速发展使得单片机在各种测量产品领域中的应用越来越广泛。把以单片机为核心,开发出来的各种测量及控制系统作为测量产品的主要部分,使各种测量产品更具智能化、拥有更多功能、便于人们操作和使用,更具时代感,这是测量产品的发展方向和趋势所在。这就要求我们的生产具有自动控制系统,自动控制主要是由计算机的离线控制和在线控制来实现的,离线应用包括利用计算机实现对控制系统总体的分析、设计、仿真及建模等工作;在线应用就是以计算机代替常规的模拟或数字控制电路使控制系统“软化”,使计算机位于其中,并成为控制系统、测试系统及信号处理系统的一个组成部分,这类控制由于计算机要身处其中,因此对计算机有体积小、功耗低、价格低廉以及控制功能强有很高的要求,为满足这些要求,应当使用单片机。单片机在电子产品中应用的广泛,在很多的电子产品中也用到了温度检测和温度控制,但那些温度检测与控制电路通常较复杂,成本也高,本设计提供了一种低成本的利用单片机多余IO口实现的温度检测电路,该电路非常简单,且易于实现,并且适用于几乎所有类型的单片机。

2.设计目的

温度作为一个重要的物理量,是工业生产过程中最普遍、最重要的工艺参数之一,所以温度测量技术和测量仪器的研究是一个重要的课题。随着时代的进步和发展,单片机技术已经伸入到各个领域,基于单片机数字

温度计与传统的温度计相比,具有读数方便,测温范围广,其输出温度采用数字显示。

本次设计目是利用51单片机及温度传感器设计一个温度采集系统,通过学过的单片机和数字电路及面向对象编程等课程的知识设计。要求的功能是能通过温度传感器采集的数据在液晶屏显示,采集的温度达一定的精度。

3.设计正文

系统的硬件电路包括微控制器部分(主机),温度检测,显示三个主要部分。温度检测部分采用DS18B20这个芯片大大简化了温度检测模块的设计,它无需AD转换,可直接将测得的温度值以二进制形式输出。单片机主要控制LCD显示器显示正确的温度值,LCD显示器实现显示功能。系统结构框图和硬件原理图分别如图2.1所示。

DS18B20是美国达拉斯半导体公司生产的新型温度检测器件,它是单片结构,无需外加AD即可输出数字量,通讯采用单线制,同时该通讯线还可兼作电源线,即具有寄生电源模式。它具有体积小、精度易保证、无需标定等特点,特别适合与单片机合用构成智能温度检测及控制系统。4.系统各模块介绍

4.1 AT89C52芯片介绍

本设计以AT89C52单片机系统为核心。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位 IO 口线,看门狗定时器,2个数据指针,三个 16位定时器计数器,一个6 向量2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

AT89C52的引脚图如图4.1所示。

图4.1 AT89C52芯片引脚图

0口:P0口是一个8位漏极开路的双向 IO 口。作为输出口,每位能驱动8个TTL 逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址数据复用。在这种模式下,P0具有内部上拉电阻。在flash编

程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校时,需要外部上拉电阻。

P1口:P1口是一个具有内部上拉电阻的8位双向 IO 口,p1输出缓

冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P2口:P2口是一个具有内部上拉电阻的8位双向 IO 口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行 MOVX @DPTR)时,P2口送出高八位地址。

P3口:P3口是一个具有内部上拉电阻的8位双向 IO 口,p2输出缓冲器能驱动4个TT逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C52特殊功能(第二功能)使用AT89C52的P3口的第二功能表如表4.2所示。

4.2 AT89C52的P3口的第二功能表

RST: 复位输入。晶振工作时,RST 脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址 8EH)上的 DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALEPROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EAVPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA 必须接GND。为了执行内部程序指令,EA 应该接VCC。在flash编程期间,EA 也接收12V编程电源( VPP)。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:振荡器反相放大器的输出端。

(2)晶振电路

晶振电路是单片机的最小系统的组成部分。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)12MHz(产生精确的uS级时歇,方便定时操作)。

特别注意:对于31脚(EAVpp),当接高电平时,单片机在复位后从内部

ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H 开始执行。

(3)复位电路

复位电路也是单片机的最小系统的组成部分。当单片机系统在运行中,受到环境干扰出现程序执行错乱的时候,按下复位按钮内部的程序自动从头开始执行。

复位电路的原理是单片机RST引脚接收到2us以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。

单片机最小系统如图4.3所示。

图4.3 单片机最小系统图

4.2温度检测电路设计

DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:

(1)独特的单线接口仅需一个端口引脚进行通讯

(2)简单的多点分布应用

(3)无需外部器件

(4)可通过数据线供电

(5)零待机功耗

(6)测温范围-55~+125℃,以0.5℃递增。华氏器件-67~+2570F,以0.90F 递增

(7)温度以9 位数字量读出

(8)温度数字量转换时间200ms(典型值)

(9)用户可定义的非易失性温度报警设置

(10)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。D电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,次引脚必须接地。

测温电路:如图4.4DS18B20测温电路

图4.4 DS18B20测温电路

DS18B20的测温原理如图4.5所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图5.3.3中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。

另外,由于DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。在正常测温情况下,DS1820的测温分辨力为0.5℃。

图4.5测温原理

4.3显示电路

1602LCD液晶屏为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字。液晶1、2端为电源;15、16为背光电源;为防止直接加5V而烧坏背光灯,在15脚串联一个1K电阻晶3端为液晶对比度调节端,通过一个10K的电位器来调节液晶显示对比度。用于限流。液液晶4端为向液晶控制器写数据写命令选择端,接单片机P1.0端口。液晶5端为读写选择端,因为我们不需要从液晶中读取数据,只向其写入命令和数据,因此此端始终选择为写状态,即低电平接地。液晶6端为使能信号,是操作必须的信号,接单片机的P1.1口。

1602LCD液晶屏显示电路如图4.6所示:

图4.6 显示电路

5.系统软件设计

5.1主程序流程图

主程序流程图如图5.1

图5.1 主程序流程图

5.2 温度检测数据读取图

温度检测数据读取图如图5.2

图5.2 温度程序读取图6.编程与仿真

6.1 Keil软件

Keil C51是美国Keil software 公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil需要win98、NT、win2000、winXP、win7等操作系统。2009年2月发布的Keil uVision4,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方,新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁、高效的环境来开发应用程序。

6.2 仿真软件Proteus

Proteus软件是Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

6.3仿真界面

仿真如图所示:图6.1为温度检测部分;图6.2为显示部分。

图6.1 温度检测部分

图6.2 显示部分

由图6.1和图6.2可以看出检测温度与显示温度一致。电路仿真成功。

相关主题
文本预览
相关文档 最新文档