数字温度计课程设计

更新时间:2024-04-14 01:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计说明书 第 II页

目 录

1 绪论 ........................................................................................................................................ 1

1.1 课题描述 ...................................................................................................................... 1 1.2 基本工作原理及框图 .................................................................................................. 1 2 硬件电路设计 ........................................................................................................................ 2

2.1 AT89C51简介 .............................................................................................................. 2

2.1.1 AT89C51概述 .................................................................................................... 2 2.1.2 AT89C51特性 ..................................................................................................... 3 2.1.3 AT89C51引脚工作说明 ..................................................................................... 3 2.1.4复位电路的设计 ................................................................................................ 4 2.2温度传感器DS18B20 .................................................................................................. 5

2.2.1 DS18B20工作原理 ............................................................................................ 5 2.2.2 DS18B20内部结构 ............................................................................................ 5 2.2.3 DS18B20技术性能描述 .................................................................................... 5 2.2.4 DS18B20硬件说明 ............................................................................................ 6 2.2.5 DS18B20接线方法 ............................................................................................ 7 2.2.6 DS18B20特点 .................................................................................................... 7

3软件设计 ................................................................................................................................ 8

3.1主程序设计 ................................................................................................................... 8 3.2温度采集模块设计 ...................................................................................................... 9 3.3温度计算模块设计 ...................................................................................................... 9 3.4编程语言及程序 ......................................................................................................... 10

3.4.1编程语言选择 ................................................................................................... 10 3.4.2汇编程序 ........................................................................................................... 10

4 总电路图 .............................................................................................................................. 14 5 调试 ...................................................................................................................................... 15 总 结 ...................................................................................................................................... 16 致 谢 ...................................................................................................................................... 17

课程设计说明书 第 III页

参考文献 .................................................................................................................................. 18

课程设计说明书 第 1页

1 绪论

1.1 课题描述

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。在信息采集(传感器技术)、信息传输(通信技术)和信息处理(计算机技术)三大信息技术中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。

本次课程设计的内容是开发一个基于AT89C51单片机的测温系统,并采用了数字温度传感器DS18B20,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详细研究,对各部分的电路也一一进行了设计,该系统可以方便的实现对三路温度的采集、传输、处理和显示,并可设定上下限报警温度。它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。

1.2 基本工作原理及框图

本课程设计的温度计测温系统由温度传感器电路、信号放大电路、A/D转换电路、单片机系统、温度显示系统构成。其基本工作原理:温度传感器电路将测量到的温度信号转换成电压信号输出到信号放大电路,与温度值对应的电压信号经放大后输出至转A/D换电路,把电压信号转换成数字量送给单片机系统,单片机系统根据显示需要对数字量进行处理,再送温度显示系统进行显示[1]。

基本工作原理框图如图1所示。

课程设计说明书 第 2页

传感器

图1基本工作原理框图

温度 89C51 单片机系统 发光二极管显 示电路 2 硬件电路设计

2.1 AT89C51简介 2.1.1 AT89C51概述

AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

单片机引脚分布图如图2所示:

图2 AT89C51管脚图

课程设计说明书 第 3页

2.1.2 AT89C51特性

AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位[2]。 2.1.3 AT89C51引脚工作说明

P0口:P0口为一个8位漏极开路双向I/O口。P0口能用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FALSH进行校验时,P0口输出原码,此时P0口外部必须被拉高。

P1口:P1口是 一个内部提供上拉电阻的8位双向I/O口。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流。在FALSH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口。当P2口被写入“1”时,其管脚被内部上拉电阻拉高,且作为输入。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口。当P3口写入“1”后,它们被内部上拉为高电平并用作输入。

P3口:除作I/O口使用外,还有特殊功能如表格1所示

表1 P3口特殊功能表

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断0) /INT1(外部中断1) T0(计时器0外部输入) T1(计时器1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通)

课程设计说明书 第 4页

P3口同时为编程和校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FALSH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作外部数据存储器时,将跳过一个ALE脉冲。如果想禁止ALE的输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该指令被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有校。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H~FFFFH),不管是否有内部程序存储器,注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2:来自反向振荡器的输出。

ISP:在线编程引脚。

P1.5、P1.6、P1.7、RST四个引脚可以作为在系统编程引脚[3]。 2.1.4复位电路的设计

单片机的复位电路如图3所示。

图3单片机的复位电路

该复位电路采用手动复位与上电复位相结合的方式。当按下按键S1时,VCC通过

课程设计说明书 第 5页

R2电阻给复位输入端口一个高电平,实现复位功能,即手动复位。上电复位就是VCC通过电阻R2和电容C构成回路,该回路是一个对电容C1充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能[4]。 2.2温度传感器DS18B20 2.2.1 DS18B20工作原理

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 2.2.2 DS18B20内部结构

DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图4所示。

图4 DS18B20内部结构

2.2.3 DS18B20技术性能描述

课程设计说明书 第 6页

①独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

②测温范围 -55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)1℃。

③支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。

④工作电源: 3.0~5.5V/DC (可以数据线寄生电源) ⑤在使用中不需要任何外围元件

⑥测量结果以9~12位数字量方式串行传送 ⑦不锈钢保护管直径 Φ6

⑧适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温 ⑨标准安装螺纹 M10X1, M12X1.5, G1/2”任选

⑩PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 2.2.4 DS18B20硬件说明

DS18B20外形及引脚如图5所示

图5 DS18B20外形及引脚

GND:地

课程设计说明书 第 7页

DQ:单线运用的数据输入/输出引脚 VD:可选的电源引脚 2.2.5 DS18B20接线方法

面对着扁平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!同时,接反也是导致该传感器总是显示85℃的原因。 2.2.6 DS18B20特点

独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源 测量温度范围为-55 °C至+125 °C 。华氏相当于是-67 °F到257华氏度 -10 °C至+85 °C范围内精度为±0.5 °C

温度传感器可编程的分辨率为9~12位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制、工业系统、消费电子产品温度计、或任何热敏感系统

描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数)。由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个DS18b20S可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。

DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一:

(1)读ROM, (2)ROM匹配, (3)搜索ROM, (4)跳过ROM, (5)报警检查。

课程设计说明书 第 8页

这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。

若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始[4]。

3软件设计

3.1主程序设计

主程序的主要功能是负责多点温度数据的实时采集、传输,处理和显示。其程序流程如图6所示。

图6程序流程图

课程设计说明书 第 9页

3.2温度采集模块设计

为本温度采集系统开发的软件程序,可以对DS18B20内部的寄存器编程控制DS18B20的工作方式,以及从这些数据寄存器读取温度值,最后把经过单片机数据处理后的温度送到LED上显示。AT89C51扮演着上传下达的角色,单片机端的程序采用了C语言。DS18B20一侧的通信程序将利用并行端口P3.0和P3.1来模拟I2C总线协议,总线上的通信通过程序来实现。

整个软件采用了模块化的程序设计方法。为了实现AT89C51和DS18B20之间I2C协议之下的串行通信,编写了一些专用子程序。这些子程序段包括:符号定义、AT89C51的端口初始化、启动信号时序产生、停止信号时序产生、发送字节、读取字节、读取温度、显示。

系统电路在上电后开始工作,最先程序单片机进行初始化设置,然后单片机利用模拟I2C总线对DS18B20进行寻址。单片机在接收到DS18B20应答后,紧接着单片机利用命令(AAh、ACh、EEh、22h)将设置/状态寄存器的值通过I2C总线写入DS18B20状态寄存器,该系统中把DS18B20设置为连续温度转换工作方式,之后DS18B20在单片控制下进行温度测量,然后DS18B20把所采集的温度传输给单片机,最后单片机把温度数据送到LED上显示[5]。 3.3温度计算模块设计

计算温度子程序将从DS18B20中读取的温度值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图7所示。

课程设计说明书 第 10页

图7计算温度子程序流程图

3.4编程语言及程序 3.4.1编程语言选择

AT89C51的编程语言常用的有两种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高但可读性却并不强,C语言在大多数情况下其机器代码生成效率和汇编语言相当,C语言的结构性和模块化容易阅读和维护[6]。 3.4.2汇编程序 程序如下:

ORG 00H MAIN:

MOV 30H,#00H MOV 31H,#00H LCALL RESET ;复位 MOV A,#0CCH ;跳过ROM LCALL WRITE

MOV A,#44H ;启动转换

课程设计说明书 第 11页

LCALL WRITE ;延时 MOV R7,#100 D1: MOV R4,#20 D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R7,D1

LCALL RESET ;复位 MOV A,#0CCH ;跳过ROM LCALL WRITE

MOV A,#0BEH ;启动转换 LCALL WRITE LCALL READ MOV A,3DH MOV 30H,A LCALL READ MOV A,3DH MOV 31H,A ;------------------------ MOV 36H,#00H MOV 37H,#00H MOV 38H,#00H MOV 39H,#00H ;------------------ ANL A,#00000111B MOV 36H,A MOV A,30H SWAP A

ANL A,#00001111B

课程设计说明书 第 12页

MOV 37H,A MOV A,36H SWAP A MOV 41H,A MOV A,37H ADD A,41H MOV 41H,A MOV B,#10 DIV AB MOV 46H,A MOV 47H,B MOV A,30H ANL A,#00001111B MOV 39H,A JNB ACC.3,JIN MOV A,38H ADD A,#50H MOV 38H,A JIN: MOV A,39H JNB ACC.2,JIN1 MOV A,38H ADD A,#25H MOV 38H,A JIN1: MOV A,39H JNB ACC.1,JIN2 MOV A,38H ADD A,#12H MOV 38H,A JIN2: MOV A,39H

课程设计说明书 第 13页

JNB ACC.0,JIN3 MOV A,38H ADD A,#06H MOV 38H,A JIN3: MOV A,38H SWAP A

ANL A,#00001111B MOV 38H,A

SJMP $ ;数据处理 RESET: NOP L0: CLR P1.4 MOV R2,#200 L1: NOP

DJNZ R2,L1 SETB p1.4 MOV R2,#30 L4: DJNZ R2,L4 CLR C ORL C,p1.4 JC L3 MOV R6,#80 L5: ORL C,p1.4 JC L3 DJNZ R6,L5 SJMP L0 L3: MOV R2,#250 L2: DJNZ R2,L2 RET

WRITE: MOV R3,#8

课程设计说明书 第 14页

WR1: SETB p1.4 MOV R4,#8 RRC A CLR p1.4 WR2: DJNZ R4,WR2 MOV p1.4,C MOV R4,#20 WR3: DJNZ R4,WR3 DJNZ R3,WR1 SETB p1.4 RET

READ: MOV R6,#8 RE1: CLR p1.4 MOV R4,#6 NOP

SETB p1.4 RE2: DJNZ R4,RE2 MOV C,p1.4 RRC A MOV R5,#30 RE3: DJNZ R5,RE3 DJNZ R6,RE1 MOV 3DH,A SETB p1.4 RET END

4 总电路图

温度计电路设计原理图如图8所示,控制器使用单片机AT89C2051,温度传感器使

课程设计说明书 第 15页

用DS18B20,使用LED数码管以动态扫描法实现温度显示[7]。

图8总电路图

5 调试

单片机系统的硬件调试和软件调试是不能分开的,硬件错误是在软件调试中发现和纠正,但是硬件的调试是基础,如果硬件调试不通过软件设计则是无从做起,所以我们是先排除明显的硬件故障以后,再和软件结合起来以进一步排除故障。硬件设计从布线到焊接安装完成之后,开始进入硬件调试阶段,调试大体分为以下几步: (1)硬件静态的调试

①排除逻辑故障 ②排除元器件失效 (2)联机仿真调试

联机仿真借助了仿真开发装置、示波器、万用表等工具,这些工具是单片机开发的最基本工具。

课程设计说明书 第 16页

总 结

通过此次课程设计,使我更加扎实的掌握了常用元件的识别,熟悉了常用仪器、仪表,了解了电路的连线方法,以及如何提高电路的性能等等。通过查询资料,也了解了单片机的构造及原理。在设计过程中虽然遇到了一些理论知识问题,也暴露出了前期我在这方面的知识欠缺和经验不足。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事。

课程设计说明书 第 17页

致 谢

本课程设计在选题及进行过程中得到付瑞玲老师的悉心指导。编写课程设计过程中,付老师多次帮助我分析思路,开拓视角,在我遇到困难想放弃的时候给予我最大的支持和鼓励。付老师严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。再多华丽的言语也显苍白。在此,谨向付老师致以诚挚的谢意和崇高的敬意。

课程设计说明书 第 18页

参考文献

[1]肖洪兵. 跟我学用单片机[M]. 北京:北京航空航天大学出版社, 2002.08.

[2]赵晓安. MCS-51单片机原理及应用[M]. 天津:天津大学出版社, 2001.03.

[3]何立民. 单片机高级教程[M].北京:北京航空航天大学出版社,2001.04.

[4]陈伟人.单片微型计算机原理与应用[M].北京:清华大学出版社, 2006.05.

[5]李广第.单片机基础[M].北京:北京航空航天大学出版社,1999.03.

[6] 徐惠民、安德宁. 单片微型计算机原理接口与应用[M].北京:北京邮电大学出版社,1996.06.

[7] 夏继强. 单片机实验与实践教程[M]. 北京:北京航空航天大学出版社, 2001.04

本文来源:https://www.bwwdw.com/article/4rkp.html

Top