温度计实习报告单片机原理与应用技术课程设计报告(论文.doc_第1页
温度计实习报告单片机原理与应用技术课程设计报告(论文.doc_第2页
温度计实习报告单片机原理与应用技术课程设计报告(论文.doc_第3页
温度计实习报告单片机原理与应用技术课程设计报告(论文.doc_第4页
温度计实习报告单片机原理与应用技术课程设计报告(论文.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用技术课程设计报告(论文)数字式温度计专业班级:电 气 121姓名:肖 鹏 辉时 间:14.12.22-15.01.09指导教师:孔 晓 红2015年 01 月 12 日数字式温度计1.设计目的与要求(一)基本功能(1)测温范围-50110(2)精度误差不大于0.1(3)led数码直读显示 (二)扩展功能(1)实现语音报数(2)可以任意设定温度的上下限报警功能2设计内容 (1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)sch文件生成与打印输出;3编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。4答辩在规定时间内,完成叙述并回答问题。目 录1、引言42 总体设计方案42.1 设计思路42.2 方案确立42.3 设计方框43 设计原理分析53.1 最小系统的构成53.2温度检测电路的设计 53.3 数码显示与led报警83.4 软件部分的设计83.4.1 汇编程序83.4.2 仿真 144 结束语 15参考文献 16附录一17附录二18数字式温度计电气121肖鹏辉摘要:本设计是一个基于at89s51单片机的测温系统,详细描述了利用数字温度传感器ds18b20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。ds18b20与at89s51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:at89s51;ds18b20;单片机;数字控制;上下限;报警1 引言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,以单片机为核心的各种控制电路层出不穷,数字温度计就是单片机一方面的应用,在日常生活中,与温度有关的也常见,例如:烧开水的锅炉需要测温度、家庭用的电磁炉需要测温度等等;所以数字温度计也普遍存在于人们的生活当中,而本电路就是结合这种思路和参考一些资料所设计的电路,这种电路可以很方便的应用到我们的现实生活中,为人们带来便利。本文主要从单片机的应用上来实现温度的测量及显示。2 总体设计方案2.1 设计思路方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行a/d转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到a/d转换电路,感温电路比较复杂。方案二 采用一只温度传感器ds18b20,此传感器易直接读取被测温度值,进行转换,就可以满足设计要求。采用数字温度芯片ds18b20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100 摄氏度时,最大线形偏差小于1 摄氏度。ds18b20 的最大特点之一采用了单总线的数据传输,由数字温度计ds18b20和微控制器at89s52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就简单,体积不大。2.2 方案确立根据需要,方案二更为合理,采用温度控制器ds18b20来实现,首先要考虑的是ds18b20如何工作,通过查略相关资料,了解到ds18b20的主要优点是采用数字化技术,能以数字形式直接输出被测温度值,具有测量误差小、抗干扰能力强、分辨力高、能够远程传输数据、带串行总线接口等优点,适配各种单片机和系统机,另外其内部有上下限报警电路,这样温度只要在所设定的上下温度界限内,就会在数码管中精确的显示出来,如果温度超过了所设定的温度界限,就发出报警声。能够及时向温度监控人员发出温度超限信息。便于温控人员及时的调整与控制。而且此温度控制器操作简单,体积小,灵敏度高,精度高。 此外,以89s51为中心的外围部分加入报警电路和数码显示电路。采用89c51单片机对温度进行控制,不仅具有控制方便简单灵活等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。2.3 设计方框图限温度上下自动设置单 片 机数字显示 温度检测最小系统图1 总体设计方框图3 设计原理分析3.1 最小系统的构成最小系统由时钟电路和复位电路构成,如图2,时钟电路主要由12m晶振、30pf的瓷片电容、电阻、开关组成,12m晶振和30pf的瓷片电容构成稳定的自激振荡器,产生时钟信号。复位电路由rc电路构成,与时钟电路构成微型处理器。图2 最小系统3.2 温度检测电路的设计dallas 最新单线数字温度传感器ds18b20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。dallas 半导体公司的数字化温度传感器ds18b20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在eeprom 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个ds18b20可以并联到3 根或2 根线上,cpu只需一根端口线就能与诸多ds18b20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。ds18b20 的性能特点如下:独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的三线上,实现组网多点测温ds18b20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数据线供电温范围55125,在-10+85时精度为0.5零待机功耗可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快用户可定义报警设置报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件测量结果直接输出数字温度信号,以一线总线串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使ds18b20非常适用与多点、远距离温度检测系统。ds18b20内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。ds18b20的管脚排列、各种封装形式如图3 所示,dq 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;gnd为地信号;vdd为可选择的vdd引脚。当工作于寄生电源时,此引脚必须接地。封装如图3所示.。 图 3 外部封装形式主机操作rom的命令有五种,如表1所列表1 18b20rom命令格式指 令说 明读rom(33h)读ds1820的序列号匹配rom(55h)继读完64位序列号的一个命令,用于多个ds1820时定位跳过rom(cch)此命令执行后的存储器操作将针对在线的所有ds1820搜rom(f0h)识别总线上各器件的编码,为操作各器件作好准备报警搜索(ech)仅温度越限的器件对此命令作出响应当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.062 5 /lsb形式表示。温度值格式如图4图4 温度格式这是12位转化后得到的12位数据,存储在18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。图中,s表示位。对应的温度计算:当符号位s=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;当s=1时,表示测得的温度植为负值,先将补码变换为原码,再计算十进制值。例如+125的数字输出为07d0h,+25.0625的数字输出为0191h,-25.0625的数字输出为ff6fh,-55的数字输出为fc90h。ds18b20温度传感器主要用于对温度进行测量,数据可用16位符号扩展的二进制补码读数形式提供,并以0.0625lsb形式表示。表2是部分温度值对应的二进制温度表示数据,表2 部分温度值温度二进制表示十六进制表示+125000001111101000007d0h+25.062500000001100100010191h+0.500000000000010000008h000000000000000000000h-0.51111111111111000fff8h-25.06251111111001101111fe6fh-551111110010010000fc90hds18b20完成温度转换后,就把测得的温度值与ram中的th、tl字节内容作比较,若tth或ttl,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只ds18b20同时测量温度并进行告警搜索。3.3 数码显示与led报警如图5,用18b20测出温度,通过程序计算成标准的数码语言,让数码管显示。这里用四位一体的共阳数码管动态显示,下面是管脚的排列,由于单片机输出电流能力较低,所以这里用npn来做数码管的位选驱动,增加数码管的亮度。npn的b端接单片机,c端接电源,e端接数码管,p1口接片选abcdefgh。两个led灯是用来显示正常温度和报警温度的,绿灯表示温度正常,红灯表示温度超出设定范围。按键是来设置温度上下限的,如图5按键从上往下依次是上限加,上限减,下限加,下限减。按键接p0口,由于p0口不能输出高电平,所以接上拉电阻和电源;led灯接p2口,通过限流电阻接电源图5 数字显示及报警3.4 软件部分的设计 3.4.1 汇编程序tl equ 29h ;低8位存储th equ 28h ;高8位存储a_bitequ42h ;百位(负号)b_bitequ43h ;十位c_bitequ44h ;个位d_bitequ45h ;小数位dq equ p2.0bj_h equ 47h ;温度上限存储bj_l equ 49h ;温度下限存储;主程序org 0000hmov p0,#0ffhmov bj_h,#40 ;上限40度mov bj_l,#2 ;下限-2度main:lcall get_temper ;获得温度lcall start ;温度计算lcall disply ;温度显示ajmp main;获取温度子程序 get_temper:lcall rst18b20 ;初始化mov a,#0cch ;跳过rom匹配lcall wr18b20 ;调用写时序mov a,#44h lcall wr18b20 ;调用写时序lcall rst18b20 ;初始化mov a,#0cchlcall wr18b20mov a,#0beh ;发出温度转换命令lcall wr18b20 ;调用读时序lcall re18b20ret18b20初始化子程序rst18b20:setb dqnopclr dqmov r0,#06bhmov r1,#03hdsr1: djnz r0,dsr1mov r0,#6bhdjnz r1,dsr1setb dqnopnopnopmov r0,#25hdsr2: jnb dq,dsr3djnz r0,dsr2ljmp rst18b20dsr3: mov r0,#06bhdjnz r0,$setb dqret ;18b20写时序wr18b20:mov r0,#8hclr cwr1: clr dq mov r1,#6hdjnz r1,$rrc amov dq,cmov r1,#23djnz r1,$setb dqnopdjnz r0,wr1setb dqret;18b20读时序re18b20:mov r0,#29h ;低8位存在29hmov r1,#2re00: mov r2,#8re01: clr cclr dqnopnopnopsetb dqmov r3,#09ret10: djnz r3,ret10mov c,dqmov r3,#23re20: djnz r3,re20rrc adjnz r2,re01mov r0,adec r0 ;r0变成28h,存储高8位djnz r1,re00ret ;计算子程序start:mova,28h;高8位anla,#0f0h;判断温度正负,高4位全是1为负,是0为正cjnea,#0,dd1ljmpdd3dd1:mov a_bit,#10 ;温度为负,最高位显示“” mov a,29h ;低8位subb a,#1 ;补码换算mov b,pswanl b,#80hcpl amov 29h,amov a,brl amov b,amov a,28hsubb a,bcpl amov 28h,amovd_bit,29hmova,29h ;计算温度anla,#0f0hswapamov29h,a;保留低8位的高4位mova,28hanla,#0fhswapamov28h,a;保留高8位的低4位mova,29hadda,28h ;计算出8位温度值mov29h,aacall warn_l ;调用低温报警判断mov a,29hajmp dd4dd3:movd_bit,29h;温度为正,计算mova,29hanla,#0f0hswapamov29h,a ;保留低8位的高4位mova,28hanla,#0fhswapamov28h,a ;保留高8位的低4位mova,29hadda,28h ;计算出8位温度值mov29h,alcall warn_h ;调用高温报警判断mov a,29hdd6:movb,#100divabmova_bit,a ;百位mov a,bdd4:mov b,#10divabmovb_bit,a ;十位movc_bit,b ;个位mova,d_bit ;小数位计算anl a,#0fhmov b,#6mul abmov b,#10div abmov d_bit,a ;小数位ret 高温判断子程序warn_h:jnb p0.0,wa ;按键加上限jnb p0.1,ws ;按键减上限mov a,29hcjne a,bj_h,s1 ;温度比较clr p2.1 ;相等红灯亮setb p2.2;绿灯灭rets1: mov a,pswanl a,#80hcjne a,#0,s2clr p2.1 ;大于红灯亮setb p2.2 ;绿灯灭rets2: clr p2.2;小于绿灯亮setb p2.1 ;红灯灭retwa: inc bj_h 上限加1mov a,bj_hlcall dd6bb1:lcall displyjnb p0.0,bb1mov a,29hcjne a,bj_h,s1clr p2.1setb p2.2retws:dec bj_h ;上限减1mov a,bj_hlcall dd6bb2:lcall displyjnb p0.1,bb2mov a,29hcjne a,bj_h,s1setb p2.1clr p2.2ret;低温报警判断子程序warn_l:mov a,29hcjne a,bj_l,s3clr p2.1setb p2.2rets3:mov a,pswanl a,#80hcjne a,#0,s4clr p2.1setb p2.2rets4: clr p2.2setb p2.1ret;延时子程序delay:nopdl:nopdjnz r7,dlret;数字显示子程序disply:movdptr,#tabmova,d_bitmovca,a+dptrmovp1,asetbp3.3;小数位亮,其它位灭lcalldelay1msclr p3.3 mova,c_bitmovca,a+dptrmovp1,aclrp1.7 ;小数点亮setbp3.2 ; 个位亮,其它位灭lcalldelay1msclrp3.2 mova,b_bitmovca,a+dptrmovp1,asetbp3.1 ;十位亮,其它位灭lcalldelay1msclrp3.1mova,a_bitmovca,a+dptrmovp1,asetbp3.0 ;百位亮,其它位灭lcalldelay1msclrp3.0ret;延时delay1ms:mov r6,#0

温馨提示

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

评论

0/150

提交评论