版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、天津理工大学理学院专业设计(论文)专 业: 班级 设计题目:基于单片机的温度检测 学生姓名: 学号: 指导教师:2012年 12月 13日1摘要本文介绍了一种基于at89c51单片机与pc机串口通信的温度控制系统,用 单片机作下位机完成温度数据的采集和执行pc机发出的控制执行命令;用pc机 作上位机接收单片机发送的数据,进行数据处理,向单片机发送控制命令,四位 一体共阴数码管实时显示当前温度。pc机与单片机采用串行通信,可实现温度 检测和采集并处理数据的人机友好界面。创新之处采用虚拟仪器技术,利用 labview软件编写相应上位机软件,控制各采集模块进行温度采集,串口的数据 传输,然后对数据处
2、理和现实。关键词:at89c51单片机,pc机,串行通信,labview,数据采集一、弓i论5二、设计目的62.1、 设计目的62.2、 系统实现功能6三、系统总体方案设计71.1、 系统总体设计框图71.2、 系统硬件设计方案71.3、 系统软件设计方案8四、系统各个模块设计84. 2、显示电路84 3、串行通信电路94.1、 ds18b20温度传感器电路94.2、 5、电源电路114.3、 单片机与pc机串口连接电路11五、系统软件设计125.1、单片机软件设计135. 2、上位机软件设计15六、系统调试1717七、结论八、参考文献18九、附录19附录一、温度测试子程序流程图19附录二、系
3、统总体电路图20附录三、单片机程序20一、引论随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各 个领域,已经成为一种比较成熟的技术。温度是工业生产中主要的被控参数之一, 有些工艺过程对其温度的控制效果直接影响着产品的质量。许多化学反应的工艺 过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和 压力条件下进行分储才能得到汽油、柴油、煤油等产品。没有合适的温度环境, 许多电子设备就不能正常工作。还有比如在观察用药剂前后病人体温随时间的变 化情况,临床一般都采用水银或电子温度计,隔一段时间测量一次并手工记录结 果。这种传统方式给病人带来了很多不便,也加大了护理工
4、作量。更为欠缺的是 测量时间间隔不够短,在体温变化率较高的情况下,容易造成处理不当或不足, 达不到最理想的疾病控制与治疗效果。传统的温度记录仪通常采用的是人工记录或普通记录仪用墨水在记录纸上 绘制曲线,其体积庞大、精度低、墨水易堵塞、费时费力。无纸温度记录仪产生, 并因为其更准确地数据记录、更方便的数据存储、更便捷的数据分析功能,所占 市场份额逐年猛增;近年来推出的带usb接口的无纸记录仪更是极大的方便了数 据的下载和保存。因此可见,设计出一款测量温度并自动记录下数据的温度记录仪是多么重 要。用单片机做成的产品外围元件很少,能实现的功能却很广,广泛应用于工业, 农业等。兼于此,特用单片机设计此
5、电路。单片机发展的三个阶段:(1)第一阶段(1976-1978):单片机的控索阶段。以intel公司的mcs - 48 为代表。mcs - 48的推出是在工控领域的控索,参与这一控索的公司还有 motorola、zilog等,都取得了满意的效果。这就是scm的诞生年代,“单机片” 一词即由此而来。(2)笫二阶段(1978t982)单片机的完善阶段。intel公司在mcs - 48基础 上推出了完善的、典型的单片机系列mcs -51o它在以下儿个方面奠定了典型 的通用总线型单片机体系结构。完善的外部总线。mcs-51设置了经典的8位单片机的总线结构,包括8位数 据总线、16位地址总线、控制总线及
6、具有很多机通信功能的串行通信接口。cpu外围功能单元的集中管理模式。体现工控特性的位地址空间及位操作方式。指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。(3)第三阶段(1982-1990): 8位单片机的巩固发展及16位单片机的推出阶段, 也是单片机向微控制器发展的阶段。intel公司推出的mcs - 96系列单片机, 将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来 使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用 对象特点的软件结合,加以完善。ds18b20是美国dall
7、as公司生产的数字温度 传感器芯片,具有结构简单、体积小、功耗小、抗干扰能力强、使用方便等优点。 本文设计的一种温度控制系统,用stc89c51单片机作为温控器,选用ds18b20 数字温度传感器,单片机与上位机之间通过max232串口进行通信,对测试点温 度采集,实时显示,数据处理。本文使用at89s52单片机作为温度测量和传输的主控芯片,温度传感器采用 单总线方式的集成数字温度传感ds18b20,由at89s52和ds18b20组成温度测量 单元,一个模块放置在一个位置实现单点测量。采集得到的数据利用单片机经串 口通讯的方式传输至计算机的串口。计算机上位机软件采用基于图形化编辑语言 的la
8、bview的串口单点温度测量。二、设计目的2.1设计目的:(1) 了解电子系统的设计方法,巩固和提高学过的基础理论和专业知识;(2)学习ds18b20数字温度传感器的测温原理,(3)掌握串口通信协议及其编程方法,(4)增强对单片机的认识,掌握分析处理问题的方法,进行调试、计算等基本 技能的训练,达到具有一定程度的实际工作能力。(5)学会用protel进行电路原理图和pcb图的绘制。(6)学习用proteus仿真软件进行电路设计和仿真。2. 2.系统实现功能:1 .内容及要求:研究基于单片机的低功耗温度记录仪,可以以一定的时间间隔连续记录系统 温度,并提供通讯接口将温度数据上传到pc机。利用la
9、bview编制pc示例程序。2 .主要技术指标:(1)、温度测量范围0-70,系统实现低功耗运行;(2)、温度记录数不少于200条;(3)、提供pc机通讯接口;(4)、pc机软件实现对温度数据分析、统计和处理;三、系统总体方案设计3.1 ,系统总体构成框图如下:图1:系统总体构成框图3.2 系统硬件设计方案:1 .利用at89c51自身强大的功能和优异的可扩展性,配上四位一体数码管 和按键等少量外围电路,就能搭建合适本次实验的小系统。从而大大缩短设计流 程,把设计的重点放在温度探测单元,串行通信协议两个部分。2 .现在pc机提供的c0m1、com2是采用rs-232借口标准的。而rs-232是
10、 用正负电压来表示逻辑状态,与ttl以高低电平来表示逻辑状态的规定不同。因 此,为了能够同计算机借口或终端的ttl器件(如单片机)连接,必须在rs-232 与ttl电路之间进行电平和逻辑关系的变换,变换电路选用有德州仪器公司(tl) 推出的一款兼容rs-232标准的芯片max232.该器件包含2个驱动器、2个接收器和一个电压发生器电路提供tia/eia-232-f电平转换成5v ttl/cmos电平。每一 个发送器将ttl/cmos电平转换成tia/eia-232-f电平。3.3 系统软件设计方案:单片机软件设计单片机程序由主程序和中断子程序组成的。主程序负责对来自上位机的命 令进行解析并执行
11、读温度值、存储温度值、输出控制等等,中断服务程序只负责 单片机和上位机之间的数据发送与接收。上位机程序设计由单片机采集的测试点实时温度,通过max232传输到上位机pc,实现与 单片机串行通信,在上位机中,完成温度传感器64位激光rom读取并显示、实 时温度数据显示、数据存储、曲线绘制、历史数据查询,其中在数据查询功能中, 设计了时间查询、温度查询等功能。四、系统各个模块设计4.1显示电路数码管显示电路部分如图:图25vrp1ibibibibrespacicspoo/ado po vad1 p0 2/ad2 p0 3/ao3 pd4/ad4 pos/ace p0g/ad5 po7/ad7p2
12、0ta6 p2 1/ao p2 2/a1o4.2串行通信电路p0 3/ad3 p0wad4 p0 5/ad5 p06/ad6 po 7/ad7p2 aa8p2 va6p2 2/a1o p2.3/a11 p2 4/a12 p2 5i*a13p2cwa14p27/a15y3534 帚2a 25 k 空r2510c410ufp3qrxd p3.i(rxp p3 2/nt0 p3 3/whp3 4/to pjyri p3&v原 p3 7而0554h=ds15b20郎b20gho gto 0gno gno t1in r1oitt t2in r20ot-jivs*c2.max232c5t1cutr1int
13、2cutr3nci-10uf,cd c71cuf10uf45v fi图3: max232串口通信电路图(9孔串口接头)4. 3 ds18b20温度传感器电路其引脚排列及内部结构框图以及测温原理图如下所示:pr05封装图4:引脚排列数字温度传感器ds18b20内部结构5z电源检测64位e0m和然接口温度牛低籍媛器il|高媛器ih配置寄存器p3qrxd p3.i(rxp p3 2/nt0 r3 3/ntip3 4/to pjyrip3&v原 ps 7frd1011-jii2gno ds15b20gno u5h=4.4恒压电源电路7$l0j u3钟总浓zhk acs图74.5单片机与pc机串口连接电
14、路:tx b 6rx b 78+9v 9gndtx arx agnd图8: rs232引脚图图9:上位机和下位机的接线方法五、系统软件设计5.1单片机软件设计:图10: ds18b20存储器映像图温度啦温授局便thtl配置保留保留保留8 位 crclsbmsb图11: ds18b20存储器映像图暂存存贮器是按8位字节存储器来组织的:头两个字节包含测得温度信息; 第三和第四个字节是th和tl的易失性拷贝,在每一次上电复位时被刷新; 接着的一个字节是芯片配置字节;第六到第八个字节是保留字节;第九个字节它 可用read scratchpad (读暂存存贮器命令读出),该字节包含一个循环冗 余校验cr
15、c字节,它是前面所有8个字节的crc值。总线crc可以使用一个 移位寄存器和异或(xor)门组成的多项式产生器来产生。ds18b20中search rom命令的搜索算法一、rom搜索原理根据单线总线协议,当主机发出搜索rom命令后,从机应答时从64位rom 码的最低位开始,先发送原码,然后发送该位的补码,之后主机写入1位数据, rom码最低位与此数据相同的ds18b20继续应答,反之则不再应答,如此循环“读 2位、写1位”的过程,直至读到一个完整rom码为止,然后复位总线,进行下 一次搜索。下面对读、写进行具体分析。二、rom搜索策略根据上述rom搜索原理的描述,树形搜索策略图如下图,其中圆形
16、节点内所 示即为对应位的rom码。由图可知,只有遇到读两位为“00”才会出现分义, 这也是搜索的关键所在。每一次搜索由根(即开始节点)沿树的一条路径进行, 直到叶子(最后一位rom码),读回一个rom码,为了确保每次搜索所选路径不 同,必须对所经过的分叉进行记录。三、具体流程规则(1)复位总线,发送rom搜索命令;(2)按读两位、写一位的方式进行,寻找“00”读码。在读到“00”之前若为 “10”或“01”,直接记录对应位rom码,并写入该码;若为“11”退出搜索。 (3)第一次搜索中读到“00”时,先全部写“0”,选择rom码为“0”的路径, 将最高“00”读码(即图中最接近叶子)位置记录并
17、保存下来为“最高00位”。(4)之后每次搜索中,遇到“00”读码后,比较此位与“最高00位”的位置, 若在“最高00位”之前,则一律写上一次搜索在此位置写入的值;若位置相同, 则写“1”;若在之后则写“0”。在每一次搜索完成后,要将“最高00位”更新 为本次搜索中写“0”的最高“00”读码位置,这也是最为重要的一步。(5)当“最高00位”更新为0,即已到树的根部,则表明已搜索完全部rom码, 过程结束。图12:具体流程规则5. 2上位机软件设计 前面版:图13前面板各个部分的具体功能介绍如下:1、温度记录表和温度实时显示框,用于记录温度,必要时可以生成excel表格 永久保存。2、vsia配置
18、控件的前面板显示部分和采集次数显示控件,可以直观的知道进行 温度采集的次数。3、操作框,可以进行端口选择,设置报警温度的上限和下限值,可以停止程序 运行。程序运行前,首先要选择下位机的连接端口,才可以从下位机读取温 度检测数据。4、时间显示框,显示当前的实时时间。5、温度波形图表,直观显示温度变化曲线。6、温度报警指示灯,当温度大于上限设定值时,温度过高灯变红;当温度小于 下限设定值时,温度过低灯变红;当温度处于上限制和下限值之间时,表明 温度正常,两个指示灯均为绿色。7、实时温度表,用于检测温度变化。程序框图:图14下面介绍一下程序框图中各个重要位置的作用1、欢迎词部分,出现欢迎对话框,表明
19、vsia部分的下位机初始化已经完成,点 击确定即开始检测温度数据。2、时间显示部分,用于在前面板显示当前系统时间。3、系统延时,减缓系统的运行速度,减少上位机部分cpu和内存的使用率。4、将visa读取的字符串转换为数字,从visa缓冲区中读取的是字符串,在这 部分中分别从偏移量(第一个字节、第二个字节、第三个字节)位置截取三 个子字符串(ascii码),将子字符串送入转换子vi中分别得到三个十六进制 数字,再通过字符串整合控件,将三个十六进制数字整合成一个十六进制数 值。5、摄氏温度计算部分,将得到的十六进制数送到数值转换控件中,将其转换为 十进制数,得到的结果乘以ds18b20的精度0.0
20、625,得到的数值即为当前环 境下的摄氏温度。6、创建表格控件,将得到的温度数值和系统时间在该控件内进行整合,然后按 照指定格式显示表格。7、温度检测报警系统,实时温度值与温度设定值比较,当布尔量为f时,绿灯 凫,当布尔量为t时红灯兜,实现实时报警功能。六、系统调试硬件调试首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。 硬件调试主要是针对主控板中单片机模块和外部输入、输出模块进行调试。这一 部分硬件调试主要分成两大块:上电前的调试和上电后的调试。在电路安装焊接前,首先是对元器件的检测。对at89c51、ds18b20在未接 电路时是不能检测其好坏的。对于其他器件则可利用万用表进行测
21、量。电阻的测 量,用万用表的欧姆档测量。(1)上电前的调试在上电前,必须确保电路中不存在断路或短路情况,这一工作是整个调试工 作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用 表,用来完成检测电路中是否存在断路或者短路情况等。只要将一个表笔固定在 电源端或接地端,另仪表笔接其他连接点,指针偏转到0刻度就是通路的。通过 万用表的检测,没有发现短路和断路的地方了,电路基本正常后再进行下一步调 试。(2)上电后的调试在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的 目的是检验电路是否接错,同时还要检验原理是否正确。在本设计中,上电调试主要是检测单片机部分与外
22、部输入、输出电路是否接 对。本次调试需要通过软硬件联调来实现。由于ds18b20与单片机采用串行数据 传送,因此,对ds18b20进行读/写编程时必须严格地保证读/写时序,否则将无 法读取测量结果。本程序采用单片机c语言编写,用keil c51编译器编程调试。七、结论首先,通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和 单片机的专业知识,也深刻了解写一篇应用系统的步骤和格式,有过这样的一次 训练,相信在接下来的日子我们都会了,而且会做得更好。我所写的系统主要根据目前节省能源的发展趋势和国内实际的应用特点和 要求,系统以单片机at89c51为核心部件,采用了自动化的结构形式,实现对
23、温 度的检测、记录与数据处理。利用c语言编制,运行程序该系统的主要特点是:1)适用性强,利用labview友好的人机界面,用户只需对界面参数进行设置 并启动系统正常运行便可实现对温度的测量、记录与数据处理。2)将单片机以及温度传感器引入对温度的分析和处理中,单片机控制决策无 需建立被控对象的数学模型,系统的鲁棒性强,适合对非线性、时变、滞后系统 的控制,对温度测量系统采用单片机控制非常适合。3)系统成本低廉,操作非常简单,可扩展性强,只要稍加改变,即可增加其 他使用功能。通过对本设计的思考,更加加深了对单片机的认识,熟练了单片机的编程, 更对当前的温度传感器有了更深刻的认识与了解,但是由于此系
24、统依赖温度传感 器,因而对温度传感器的稳定性,线性等诸多方面有着严格的要求,但是传感器 的性能越好,相对而言其价格也就越高,因而在此设计中,温度传感器我个人觉 的还是存在遗憾,其次,由于采用了c语言,所以其编程过程复杂不易查错。最 后由于时间紧迫,本设计还有诸多地方需要改进,比如改用rs-485串行接口或是 网线,实现远距离操作。八、参考文献1李仁发、肖玲、吴强.数字逻辑设计(第四版).人民邮电出版社,2006.052 51 单片机学习网 3单片机学习网 4单片机c语言应用程序设计第四版,马忠梅主编,北京航空航天大学出 版社5单片机开发与典型工程项目实例详解,边海龙、孙永奎编著,电子工业出 版
25、社651单片机c语言教程-入门、提高、开发、拓展全攻略,郭天祥编著, 电子工业出版社,2009附录1:温度测试子程序流程图九、附录总体电路图 rskad *7au mwc4fcs 3p3、3 p3 2w tegnwo nan*m,q,3附录3:单片机程序:itinclude ttinclude #define uchar unsigned charbit tf lag; 温度正负标志sbit dq = p3-7;温度输入口sbit din=p07;led 小数点控制ucharcodedi tab 16=0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x04
26、, 0x05, 0x06, 0x06, 0x0 7, 0x08, 0x08, 0x09, 0x09;温度小数部分用查表法unsigned char code dispcode口=0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d,0x7d, 0x07, 0x7f, 0x6f, 0x00, 0x40;/ 共阴led段码表0x40负unsigned char dispbitcode = oxfe, oxfd, oxfb, 0xf7,);uchar data temp_data2 = 0x00, 0x00 ;/ 读出温度暂放unsigned char dispbuf 5 = 0,
27、0, 0, 0, 0);void digitalshow(unsigned char a3, unsigned char a2, unsigned char al, unsigned char ao)(unsigned char i;dispbuf0=a0;dispbufl=al;dispbuf2=a2;dispbuf3=a3;for(i=0;i4;i+)(p2=0xff;关闭所有显示po=dispcodedispbufiz;p2=dispbitcode li;if (i=l) din=1;/*该程序为总线上只有一个器件*/毫秒延时11. 059 mhzvoid dmsec (unsigned
28、 int count)unsigned int i;/ 1ms 延时while (count)( for (i=0;i125;i+)void delay (unsigned int num) / 延时函数(while( -num );复位脉冲void tmreset (void)(dq = 0;delay (90) ;/精确延时 大于480usdq = 1;delay(4);/ 90, 4可以小范围变化)存在脉冲void tmpre (void)while (dq);while cdq);delay (4);)读一个位bit tmrbit (void)unsigned int i;bit da
29、t;dq = 0; i+;/i+;大概 lusdq = 1; i+; i+;dat = dq;delay (8);return (dat);读一个比特unsigned char tmrbyte (void)unsigned char i,j,dat;dat = 0;for (i=l;i=8;i+)j = tmrbit ();dat = (j 7) | (dat 1);return (dat);写一个比特void tmwbyte (unsigned char dat) (unsigned int i;unsigned char j;bit testb;for (j=l;jlusdq = 1;delay (4); else/ write 0dq = 0;delay (4);/大一点没影响,但不能太大,写一个位在30usdq = 1;i+; i+; )/dsl820开始转换void tmstart (void)(dmsec (1);tmreset ();tmpre ();dmsec (1);tmwbyte (oxcc);tmwbyte (0x44);)读取温度read_temp () (tmreset ();tmpre ();dmsec (1);tmwbyte (oxcc);tmwbyte (oxbe);/再拉高/ skip rom/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 封神线下营销方案(3篇)
- 平江庙会活动策划方案(3篇)
- 宿舍宠物活动方案策划(3篇)
- 外企渠道营销方案(3篇)
- 传媒全网营销方案(3篇)
- 提升施工方案质量(3篇)
- 施工方案讨论意见(3篇)
- 杆变施工方案(3篇)
- 毛石砌体施工方案(3篇)
- 法庭观摩活动方案策划(3篇)
- 广东省广州市2026 届高三一模综合测试(一)政治试题(含答案)
- 2026OpenClaw入门精要课件
- 2026年江西电力职业技术学院单独招生《职业适应性测试》模拟试题及参考答案
- 拆除扬尘治理责任制度
- 《中兽医》课件-3.脏腑学说
- 行政部门内部监督制度
- (正式版)DB51∕T 2890-2022 《川西高原苹果生产技术规程》
- 勒索病毒应对方案
- 2025年四平市基层专干面试题库及答案
- 2025北京空港航空地面服务有限公司招聘50人笔试历年常考点试题专练附带答案详解2套试卷
- 上海上海市宝山区2025年青年储备人才招聘28人笔试历年参考题库附带答案详解
评论
0/150
提交评论