ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:319.84KB ,
资源ID:9941111      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9941111.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的温度采集仪.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的温度采集仪.docx

1、基于单片机的温度采集仪 电气信息工程学院2014 年 12 月 12 日 目 录序 言 .3第一章 系统方案 .41.1课题的意义和目的 .41.2主要设计内容 .41.3课题的任务要求. 41.4 单片机选型 .51.5 系统框图 .6第二章 硬件设计72.1单片机模块设计72.1.1 引脚描述 72.1.2 时钟电路设计 92.1.3 复位电路设计 92.1.4 中断系统 102.2 LCD1602显示电路 112.2.1 LCD1602工作原理及引脚功能 112.2.2 LCD1602硬件原理图 122.3 RS232通信电路设计 122.4 DS18B20电路设计 132.5 外围报警

2、、按键电路 132.5.1 温度上下限值电路设计 132.5.2 蜂鸣器、灯连接报警电路 13第三章 软件设计 163.1主程序设计 143.2 LCD液晶显示软件设计 143.3温度采集软件设计 14第四章 系统的软硬件调试 204.1 硬件调试 204.1.1 上电前的调试 154.1.2 上电后的调试 154.1.3 各模块调试 154.2软硬件联调 15参考文献 16附 录 17附录一 硬件原理图 17附录二 源程序清单 18附录三 实物图 21附录四 元器件清单 22序 言 本设计是一个基于单片机的温度采集仪,该采集仪能够实现温度的采集、显示、上下限报警温度值设定、报警和与PC机的串

3、行通信等功能。本设计中主要分硬件与软件的设计,硬件包括:主控模块 、温度传感模块、显示模块、按键模块、报警模块、通信模块等,软件包括:温度采集、按键与报警、显示、PC机上的温度界面等。 系统采用AT89C52单片机进行控制,利用DS18B20温度传感器进行温度检测,并通过串口通信将采集的温度传送至PC机;采用VB6.0软件设计了上位机的实时监测界面,系统设计电路简单,成本低廉,能较好地显示出实际环境温度,且反应迅速,可以应用于很多温度检测领域。第一章 系统方案1.1课题的意义和目的温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,不管是在工业生产过程中还是在农业生产过程中都离不开温度

4、的控制,随着人们生活水平的不断提高,人们对于温度的要求也就越来越高,因此研究温度的检测方法和装置具有重要的意义。温度现场如果比较恶劣,远程测温就变得比较重要。利用RS-232进行串口接收数据来模拟现实生活中对温度的实时观测与控制。1.2主要设计内容本设计是以单片机AT89C52为主控, 结合RS-232总线功能,利用DS18B20温度传感器,实现对温度的远程测量。具体课题设计研究内容如下:1提出基于单片机的远程测温的设计方案。选用“单片机+RS232+DS18B20”的设计方案制作出一个远程测温系统;2完成单片机最小系统电路、RS-232接口电路、LCD显示电路等硬件设计;3完成远程测温硬件电

5、路相配套的软件程序编写;4最终完成系统板的制作安装,对其软硬件的进行综合调试。1.3课题的任务要求根据课题的意义和目的,经分析本次课题需要研究的内容,提出了该课题相应的设计任务的要求,具体如下:1. 温度测量范围-15到+100; 2. 自定义的通信协议可靠,传输误码率低;3. 用LCD显示器直接显示读数、显示清晰直观;4. 稳定性好。1.4 单片机选型在本次设计中,经过分析与比较,选择了单片机AT89C52,这是因为:1.单片机AT89C52采用的是CHMOS工艺:高速度、高密度、低功耗。也就是说AT89C52单片机是一种低功耗单片机。2.可靠性高、便于扩展。3.控制功能强。4.单片机AT8

6、9C52片内存储容量较小,除此之外,单片机AT89C52还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特点。5.单片机AT89C52的引脚是和80C52一样的,所以,当单片机AT89C52取代8052时,可以进行代换。综合以上,单片机AT89C52是最佳选择。1.5 远程测温中通讯方式的选择方案:使用RS232进行通讯。RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。

7、 在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。 RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。1.6 系统框图本次设计选用基于AT89C52单片机通过RS232总线通信的远程测温系统。其系统框图如图1-1所示。图1-1系统结构框图第2章 硬件设计2.1单片机模块设计如图2-1所

8、示为单片机基本系统结构框图:图2-1单片机基本系统结构框图单片机的基本系统也称为最小系统,这种系统所选择的单片机内部资源已能满足系统的硬件需求,不需外接存储器或I/O接口,含有时钟电路和复位电路,外由电源供电。2.1.1 引脚描述如图2-2所示为AT89C52的引脚结构图:AT89C52有40 条引脚,分为端口线、电源线和控制线三类。图2-2 AT89C52的引脚结构图1.端口线(4*8=32条)AT89C52有四个并行I/O端口,每个端口有8条口线,用于传送数据和地址。P0.0P0.7:这组引脚共有8条,为P0口所专用,其中P0.7为最高位,P0.0为最低位。这8条引脚口有两种不同的功能,分

9、别使用于两种不同的功能。第一种情况是AT89C52不带片外存储器,P0口可以作为通用I/O使用,P0.0P0.7用于传送CPU的输入/输出数据。这时,输出数据可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是AT89C52带片外存储器,P0.0P0.7在CPU访问片外存储器时用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。P1.0P1.7:这8条引脚和P0口的8条引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O使用时,P1.0P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。P2.0P2.7

10、:这组引脚的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O口使用。它的第二功能和P0口的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像P0口那样是可以传送存储器的读写数据。P3.0P3.7:这组引脚的第一功能和其余端口的第一功能相同。第二功能作控制用,每个引脚并不完全相同,如表2-1所示为P3口第二功能:表2-1 P3口第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6(外部数据存储器写选通)P3.7(外部数

11、据存储器读选通)2.电源线(2条)VCC为+5V电源线,VSS为接地线。3.控制线(6条)外接晶体引脚XTAL1和XTAL2MCS-51的时钟可以利用它内部的振荡器产生,只要在XTAL1、XTAL2引脚上外接这时反馈电路,内部振荡器便自激振荡,产生时钟输出到内部的定时控制逻辑。定时反馈电路一般为石英晶振和电容组成的并联回路,这种方式称为内部方式。如果振荡器已起振,则在XTAL2引脚上输出3V左右的正弦波。ALE/PROG:地址锁存允许/编程线,配合P0口引脚的第二功能使用,在访问片外存储器时,AT89C52的CPU在P0.0P0.7引脚线上输出片外存储器低8位地址的同时还在ALE/PROG线上

12、输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器读写数据。在不访问片外存储器10时,AT89C52自动在ALE/PROG线上输出频率为F0SC/6的脉冲。:允许访问片外存储器编程电源线,可以控制AT89C52使用片内ROM还是使用片外ROM。若EA=1,则允许使用ROM;若EA=0,则允许使用片外ROM。:片外ROM选通线,在执行访问片外ROM的指令MOVC时,AT89C52自动在PSEN线上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下,PSEN线均为高电平封锁状态。 RST/VPD:复位电源线,可以使AT89C52处于复位工作状态。通常,AT89C52的复

13、位有自动上电复位和按钮复位两种。2.1.2 时钟电路设计时钟电路是计算机的心脏,它控制着计算机的工作节奏。单片机AT89C52允许的时钟频率是因型号而异的,典型值为12MHZ,单片机AT89C52内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。定时反馈电路一般为石英晶振和电容组成的并联回路。如果振荡器已起振,则在XTAL2引脚上输出3V左右的正弦波。2.1.3 复位电路设计计算机在启动运行是都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。单片机AT89

14、C52有一个复位引脚RST,它是施密特触发输入,当振荡器起振后,该引脚上出现2个机器周期(即24个时钟周期)以上的高电平。使器件复位,只要RST保持高电平,MCS-52保持复位状态。此时ALE、P0、P1、P2、P3口等都输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。复位以后内部寄存器的初始状态为(SP=07),P0、P1、P2、P3为0FFH外,其它寄存器都为0。如图2-3所示为复位电路图:图2-3复位电路图2.1.4 中断系统1.概念在中断系统中,通常将CPU所发出的请求中断的信号称为中断请求信号,CPU接受中断申请终止现行程序而转去为服务对象服务程中断相应,为服务对

15、象服务的程序称为中断服务程序(也称中断处理程序)。现行程序中断的地方称为断点,为中断服务对象服务完后返回原来的程序称为中断返回。整个过程称为中断。2.中断源AT89C52单片机本身有5个中断源,它们分别是:由P3.2和3.3引脚输入的外部中断0和外部中断1;内部中断源分别是定时器/计数器T0和T1溢出中断,串行口中断(TXD和RXD。3.中断允许控制单片机中断系统中有两种不同类型的中断:一类称为非屏蔽中断;另一类称为可屏蔽中断。可以通过对IE的某位置位或清零,从而允许或禁止某个中断,也可通过软件对IE中的EA位清零,可实现对全部中断源的屏蔽。中断允许寄存器IE,它的字节地址为A8H,其格式如表

16、2-2所示:表22 中断允许寄存器IE格式D7D6D5D4D3D2D1D0EAXXESET1EX1ET0EX0EA:总开关。EA=1,CPU开放中断;EA=0,CPU屏蔽所有的中断申请。ET1:定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。2.2 LCD1602显示电路 2.2.1 LCD1602工作原理及引脚功能字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵式的LCD,目前常用的是16*1、16*2,20*2和40*2行等。本次设计中采用的1602字符型液晶显示器,一行是用来实测温度,另一行是用来显示报警温度的上下限。1602采用标准14脚(

17、无背光)或16脚(带背光)接口,各引脚功能如表2-3所示。 表2-3 1602引脚功能介绍VL为液晶显示器对比度调整端, 接正电源时对比度最弱, 接地时对比度最强。若对比度过高会产生“ 鬼影” , 使用时可以通过一只10K电阻来调整对比度。 RS为寄存器选择端, RS为高电平时选择数据寄存器, 为低电平时选择指令寄存器。 R/W为读写信号线, 为高电平时进行读操作, 为低电平时为写操作。当R/W和RS同为低电平时可以写人指令或者显示地址;当RS为低电平、R/W为高电平时,可以读忙信号。当RS为高电平、R/W为低电平时,可以读写数据。 E为使能端, 当E端由高电平跳变成低电平时, 液晶模块执行命

18、令。 D0D7为8位双向数据线。2.2.2 LCD1602硬件原理图 本设计中RS,R/W,E/N分别接单片机的P2.5,P2.6,P2.7口,8个数据口接单片机的P0口,如图2-4所示。 图2-4液晶与单片机的连接电路2.3 RS232通信电路设计在控制电路板上做一个串行通信接口可以用PC机通过串口线直接对电路板上的单片机编程,无需专用编程器,不仅简化了编程操作,也方便了系统的调试工作,有利于缩短系统的开发周期。电路如图所示。它由一片MAX232串口电平转换芯片Ul及一个9针的串口插座J1组成。其连接图如下图2-5所示。图2-5 单片机与PC机连接电路 2.4 DS18B20电路设计DS18

19、B20是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。它具有3引脚TO92小体积封装形式,温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大

20、量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。DS18B20温度传感器用来检测当前外部温度,将检测到的温度送入单片机。应用图如2-6所示:1脚为GND为电源地2脚为DQ为数字信号输入/输出端3脚为VCC为外接供电电源输入端图2-6 DS18B20外形管脚排列及单片机与温度传感器电路图DS18B20采用外部电源供电方式,通过AT89C52的P2.5口对其进行读写操作。在I/O线上接一4.7K上拉电阻,以防止电流不足的问题。外部电源供电方式是DS18B20的最佳工作方式,工作稳定可靠,抗干扰能力强。2.5 外围报警、按键电路2.5.1 温度上下限值电路设计本设计中的

21、按键电路 在本设计中主要选用了单片机的P1.0,P1.1,P1.2口进行上限温度、下限温度及温度的确定。硬件电路如图2-7所示。 图2-7 温度上下值按键控制电路2.5.2 蜂鸣器、灯连接报警电路当P3.2输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当P3.2输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,可以通过程序控制P3.2脚的电平来使蜂鸣器发出声音和关闭。蜂鸣器、灯连接报警电路如下图2-8所示。图2-8蜂鸣器、灯连接报警电路第三章 软件设计3.1 主程序设计主程序流程图如图3-1所示。 图3-1主程序流程图3.2 LCD液晶显示软件设计液晶显示主要实现

22、的功能就是对实测温度,报警温度上下限值进行显示。LCD液晶显示软件流程图如图3-2所示。图3-2 LCD液晶显示软件流程图3.3温度采集软件设计第四章 系统的软硬件调试4.1 硬件调试硬件调试主要分成两大块:上电前的调试和上电后的调试。4.1.1 上电前的调试在上电前,必须确保电路中不存在断路或短路14情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。通过万用表的检测,没有发现短路和断路的地方,电路基本正常。4.1.2 上电后的调试在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的

23、目的是检验电路是否接错,同时还要检验原理是否正确。4.1.3 各模块调试串口通信电路编写一个串口测试程序,不断的通过串口发送数据,并且在上位机上通过串口调试助手观察数据,以此判定通信线路是否完好。并且通过示波器观察数据线,看信号的毛刺等状况是否满足通信可靠性要求。只有串口通信电路调试完成后才可以保证对MAX485芯片的控制准确无误。1602液晶电路编写一个液晶测试程序,让其显示中文字符,来液晶调试15程序是否正确。4.2软硬件联调接通电源线。检查无误后给板子上电。上电后,从机上的LCD1602液晶显示温度值正常,按键也可以进行温度上下限的调整,LED灯可以正常工作。用手握住DS18B20,对应

24、节点的温度数据就会发生变化,所以可以证明从机采集温度和主从机的232通信都是成功。综上所述,本设计完成了预期功能目标。附 录附录一 硬件原理图 附录二 源程序清单typedef unsigned char uchar;typedef unsigned int uint;#include#includeds18b20.h#includelcd_1602.h#includekey.h#includedelay.hsbit hh = P32;sbit ll = P33;sbit alarm = P34;uchar code dis_buf1 = teH: 35;uchar code dis_buf2

25、 = teL: 20;uchar code dis_buf3 = temp:;uchar s1num = 0, s2num = 0;uchar teH = 35,teL = 20,flag = 0;void init_timer1() TMOD = 0x20; /设置定时器1工作模式2 TH1 = 0xfd; TL1 = 0xfd; TR1 = 1; SCON = 0x40; void display() lcd_pos(1,0); str_dis(dis_buf1); lcd_pos(1,8); str_dis(dis_buf2); lcd_pos(0,0); str_dis(dis_buf

26、3);s1num+; if(s1num = 1) lcd_pos(1,14); write_cmd(0x0f); else if(s1num = 2) lcd_pos(1,6); else s1num = 0; flag = 0; write_cmd(0x0c); void add(void) /加 if(s1num = 1) teL+; if(teL = 36) teL = 0; lcd_pos(1,13); int_dis(teL); lcd_pos(1,14); if(s1num = 2) teH+; if(teH = 51) teH = 10; lcd_pos(1,5); int_di

27、s(teH); lcd_pos(1,6); void minus(void) /减 if(s1num = 1) teL-; if(teL = -1)void settings(void) /设置 teL = 35; lcd_pos(1,13); int_dis(teL); lcd_pos(1,14); if(s1num = 2) teH-; if(teH = 9) teH = 50; lcd_pos(1,5); int_dis(teH); lcd_pos(1,6); void baojing(uchar a) /报警 if(a = teH) hh = 1; alarm = 0; ll = 0; else if(a teL) ll = 1; alarm = 0; hh = 0; else hh = 0; ll = 0; alarm = 1; void main(void) float a; uchar b,key_value; lcd_init(); init_timer1(); display(); hh=0; ll=0; while(1) if(flag = 0) a = read_temp();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1