数字温度计课程设计_第1页
数字温度计课程设计_第2页
数字温度计课程设计_第3页
数字温度计课程设计_第4页
数字温度计课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书 第 18页目 录1 绪论11.1 课题描述11.2 基本工作原理及框图12 硬件电路设计22.1 AT89C51简介 22.1.1 AT89C51概述 22.1.2 AT89C51特性32.1.3 AT89C51引脚工作说明32.1.4复位电路的设计 42.2温度传感器DS18B2052.2.1 DS18B20工作原理52.2.2 DS18B20内部结构52.2.3 DS18B20技术性能描述62.2.4 DS18B20硬件说明62.2.5 DS18B20接线方法72.2.6 DS18B20特点73软件设计 83.1主程序设计83.2温度

2、采集模块设计 93.3温度计算模块设计 93.4编程语言及程序103.4.1编程语言选择103.4.2汇编程序104 总电路图145 调试15总 结16致 谢17参考文献18 1 绪论1.1 课题描述随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。在信息采集(传感器技术)、信息传输(通信技术)和信息处理(计算机技术)三大信息技术中,传感器属于信息技术的

3、前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。本次课程设计的内容是开发一个基于AT89C51单片机的测温系统,并采用了数字温度传感器DS18B20,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详细研究,对各部分的电路也一一进行了设计,该系统可以方便的实现对三路温度的采集、传输、处理和显示,并可设定上下限报警温度。它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优

4、点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。1.2 基本工作原理及框图本课程设计的温度计测温系统由温度传感器电路、信号放大电路、A/D转换电路、单片机系统、温度显示系统构成。其基本工作原理:温度传感器电路将测量到的温度信号转换成电压信号输出到信号放大电路,与温度值对应的电压信号经放大后输出至转A/D换电路,把电压信号转换成数字量送给单片机系统,单片机系统根据显示需要对数字量进行处理,再送温度显示系统进行显示1。基本工作原理框图如图1所示。温度传感器89C51单片机系统发光二极管显 示电路 图1基本工作原理框图2 硬件电路设计

5、2.1 AT89C51简介 2.1.1 AT89C51概述 AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控

6、制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。单片机引脚分布图如图2所示:图2 AT89C51管脚图2.1.2 AT89C51特性AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保

7、存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、的8位双向I/O口。当P2口被写入“1”时,其管脚被内部上拉电阻拉高,且作为输入。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口。当P3口写入“1”后,它们被内部上拉为高电平并用作输入。  P3口:除作I/O口使用外,还有特殊功能如表格1所示表1 P3口特殊功能表P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(计时器0外部输入

9、)P3.5T1(计时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为编程和校验接收一些控制信号。  RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。  ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FALSH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作外部数据存储器时,将跳过一个ALE脉冲。如果想禁止ALE的输出可在SFR8EH地址上置0.此时,ALE只有

10、在执行MOVX,MOVC指令时ALE才起作用。另外,该指令被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。  /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有校。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。  /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器,注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。&#

11、160; XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入  XTAL2:来自反向振荡器的输出。  ISP:在线编程引脚。 P1.5、P1.6、P1.7、RST四个引脚可以作为在系统编程引脚3。2.1.4复位电路的设计 单片机的复位电路如图3所示。图3单片机的复位电路该复位电路采用手动复位与上电复位相结合的方式。当按下按键S1时,VCC通过R2电阻给复位输入端口一个高电平,实现复位功能,即手动复位。上电复位就是VCC通过电阻R2和电容C构成回路,该回路是一个对电容C1充电和放电的电路,所以复位端口得到一个周期性变化的

12、电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能4。2.2温度传感器DS18B202.2.1 DS18B20工作原理DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。

13、因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。2.2.2 DS18B20内部结构DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图4所示。图4 DS18B20内部结构2.2.3 DS18B20技术性能描述独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。测温范围 55+125,固有测温误差(注意,不是分辨率,这里之前是错误的)1。支持多点组网功能,多个DS18B20可以并联在唯一的三线

14、上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。工作电源: 3.05.5V/DC (可以数据线寄生电源)在使用中不需要任何外围元件测量结果以912位数字量方式串行传送不锈钢保护管直径 6适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温标准安装螺纹 M10X1, M12X1.5, G1/2”任选PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。2.2.4 DS18B20硬件说明 DS18B20外形及引脚如图5所示图5 DS18B20外形及引脚GND:地DQ:单线运用的数据输入/输出引脚VD:可选的电源引脚2

15、.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温度传感器可编程的分辨率为912位,温度转换为12位数字格式最大值为

16、750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制、工业系统、消费电子产品温度计、或任何热敏感系统描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数)。由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个DS18b20S可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。DS18B20采用一线通信接口。因为一线通信接口,必须在先

17、完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一:(1)读ROM,(2)ROM匹配,(3)搜索ROM,(4)跳过ROM,(5)报警检查。这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20

18、不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始4。3软件设计 3.1主程序设计主程序的主要功能是负责多点温度数据的实时采集、传输,处理和显示。其程序流程如图6所示。图6程序流程图3.2温度采集模块设计 为本温度采集系统开发的软件程序,可以对DS18B20内部的寄存器编程控制DS18B20的工作方式,以及从这些数据寄存器读取温度值,最后把经过单片机数据处理后的温度送到LED上显示。AT89C51扮演着上传下达的角色

19、,单片机端的程序采用了C语言。DS18B20一侧的通信程序将利用并行端口P3.0和P3.1来模拟I2C总线协议,总线上的通信通过程序来实现。 整个软件采用了模块化的程序设计方法。为了实现AT89C51和DS18B20之间I2C协议之下的串行通信,编写了一些专用子程序。这些子程序段包括:符号定义、AT89C51的端口初始化、启动信号时序产生、停止信号时序产生、发送字节、读取字节、读取温度、显示。 系统电路在上电后开始工作,最先程序单片机进行初始化设置,然后单片机利用模拟I2C总线对DS18B20进行寻址。单片机在接收到DS18B20应答后,紧接着单片机利用命令(AAh、ACh

20、、EEh、22h)将设置/状态寄存器的值通过I2C总线写入DS18B20状态寄存器,该系统中把DS18B20设置为连续温度转换工作方式,之后DS18B20在单片控制下进行温度测量,然后DS18B20把所采集的温度传输给单片机,最后单片机把温度数据送到LED上显示5。3.3温度计算模块设计 计算温度子程序将从DS18B20中读取的温度值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图7所示。图7计算温度子程序流程图3.4编程语言及程序3.4.1编程语言选择AT89C51的编程语言常用的有两种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高但可读性却并不强,

21、C语言在大多数情况下其机器代码生成效率和汇编语言相当,C语言的结构性和模块化容易阅读和维护6。 3.4.2汇编程序程序如下:ORG 00HMAIN: MOV 30H,#00H MOV 31H,#00H LCALL RESET ;复位 MOV A,#0CCH ;跳过ROM LCALL WRITE MOV A,#44H ;启动转换 LCALL WRITE ;延时 MOV R7,#100D1: MOV R4,#20D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R7,D1 LCALL RESET ;复位 MOV A,#0CCH ;跳过ROM LCALL

22、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 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

23、 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,AJIN: MOV A,39H JNB ACC.2,JIN1 MOV A,38H ADD A,#25H MOV 38H,AJIN1: MOV A,39H JNB ACC.1,JIN2 MOV A,38H ADD A,#12H MOV 38H,AJIN2: MOV A,39H JNB ACC.0,JIN3 MOV A,38H ADD A,#06H MOV 38H,AJIN3: MOV A,38H

24、SWAP A ANL A,#00001111B MOV 38H,A SJMP $ ;数据处理RESET: NOPL0: CLR P1.4 MOV R2,#200L1: NOP DJNZ R2,L1 SETB p1.4 MOV R2,#30L4: DJNZ R2,L4 CLR C ORL C,p1.4 JC L3 MOV R6,#80L5: ORL C,p1.4 JC L3 DJNZ R6,L5 SJMP L0L3: MOV R2,#250L2: DJNZ R2,L2 RETWRITE: MOV R3,#8WR1: SETB p1.4 MOV R4,#8 RRC A CLR p1.4WR2: D

25、JNZ R4,WR2 MOV p1.4,C MOV R4,#20WR3: DJNZ R4,WR3 DJNZ R3,WR1 SETB p1.4 RETREAD: MOV R6,#8RE1: CLR p1.4 MOV R4,#6 NOP SETB p1.4RE2: DJNZ R4,RE2 MOV C,p1.4 RRC A MOV R5,#30RE3: DJNZ R5,RE3 DJNZ R6,RE1 MOV 3DH,A SETB p1.4 RETEND4 总电路图温度计电路设计原理图如图8所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,使用LED数码管以动态扫描法实现温度显示7。图8总电路图5 调试单片机系统的硬件调试和软件调试是不能分开的,硬件错误是在软件调试中发现和纠正,但是硬件的调试是基础,如果硬件调试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论