2022年DSB的数字温度计设计方案.docx

上传人:Che****ry 文档编号:12795590 上传时间:2022-04-26 格式:DOCX 页数:13 大小:290.83KB
返回 下载 相关 举报
2022年DSB的数字温度计设计方案.docx_第1页
第1页 / 共13页
2022年DSB的数字温度计设计方案.docx_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年DSB的数字温度计设计方案.docx》由会员分享,可在线阅读,更多相关《2022年DSB的数字温度计设计方案.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品学习资源目录第 1 章单片机把握步进电机的现实意义2第 2 章 总体方案设计 错误!未定义书签;2 .1DS18B20的工作原理 22.2AT89C51的优点 错误!未定义书签;第 3 章 硬件部分设计 33.1 硬件设计思路 33.2 温度传感器电路 33.3 温度显示电路 错误!未定义书签;3.4 复位电路设计 错误!未定义书签;第 4 章 软件电路设计 错误!未定义书签;4.1 主程序错误!未定义书签;4.2 读出温度子程序 错误!未定义书签;4.3 温度转换命令子程序 错误!未定义书签;4.4 运算温度子程序4.5 显示数据刷新子程序 错误!未定义书签;第 5 章 系统所运用的功能

2、介绍 错误!未定义书签;5.1 系统的调试及性能分析 错误!未定义书签;5.2 测试结果 错误!未定义书签;心得体会 8致谢 9附件错误!未定义书签;欢迎下载精品学习资源第 1 章基于 DS18B20数字温度计的设计课题介绍本设计是一款简洁有用的小型数字温度计,所接受的主要元件有传感器DS18B20,单片机 AT89C51,四位共阴极数码管一个,电容电阻如干;DS18B20支持“一线总线”接 口,测量温度范畴 -55 C+125C;在-10+85C范畴内 , 精度为 0.5 C;DS18B20的精度较差为 2 C ;现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性;适合于恶劣

3、环境的现场温度测量,如:环境把握、设备或过程把握、测温类消费电子产品等;本次数字温度计的设计共分为五部分,主把握器,LED显示部分,传感器部分,复位部分,时钟电路;主把握器即单片机部分,用于储备程序和把握电路;LED显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路;测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判定后将温度传递到数码管显示;本设计能完成的温度测量范畴是 -55 C+128C,由于才能有限,不能实现报警功能;第 2 章总体方案2.1 DS18B20 的工作原理DS18B20温

4、度传感器是美国 DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可依据实际要求 通过简洁的编程实现 912 位的数字值读数方式2.2 AT89C51 的优点AT89C51单片机;很明显可以看出方案二只用到一个芯片,元器件数量少,接线简洁,易对端口进行操作,特殊是编程涉及到的变量少,不易出错;欢迎下载精品学习资源第 3 章 硬件部分设计3.1 硬件设计思路依据系统设计功能的要求,确定系统由3 个模块组成:主把握器、测温电路和显示电路;数字温度计总体电路结构框图所示:AT89C51欢迎下载精品学习资源主DS18B20控制3.2 温

5、度传感器电路器显示电路扫描驱动欢迎下载精品学习资源DS18B20温度传感器是美国 DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可依据实际要求 通过简洁的编程实现 912 位的数字值读数方式 , 现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性 ;:3.3 温度显示电路欢迎下载精品学习资源四位共阳极数码管,能够显示小数和负温度;零下时,第一个数码管显示负号;当温度超过99.9时,四个数码管全部亮;列扫描用P3.0P3.3口来实现,驱动方式接受串联电阻直接驱动;3.4 复位电路设计单片机系统的复位电路在这里接

6、受的是开机复位电路形式,其中电阻R接受 6.8K 的阻值,电容接受电容值为 10F 的电解电容,系统开机自动复位,不能中途用按键进行复位;欢迎下载精品学习资源3.5 系统总电路图如下:第四章:软件的设计主要包括主程序、读出温度子程序、温度转换命令子程序、运算温度子程序和现实欢迎下载精品学习资源数据刷新子程序等;初始化欢迎下载精品学习资源主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值;温度测量每 1S 进行一次;主调流用程显图示如程下序:1s 到?Y初次上电N读出温度值温度运算处理显示数据刷发温度转换开头命令欢迎下载精品学习资源4.2 读出温度子程序读出温度子程

7、序的主要功能是读出RAM中的 9 字节;在读出时须进行CRC校验,校验有错时不进行温度数据的改写;流程图如下:4.3 温度转换命令子程序发 D温S度18转B2换0复命位令命子令程序主要是发温度转换开头命令;当采 用 12 位辨论率时,转换时间约为 750ms;在本程序设计中,接受 1s 显示程序延时法等欢迎下载精品学习资源待转换的完成;流程图如下:发跳过 ROM命令欢迎下载精品学习资源欢迎下载精品学习资源4.4 运算温度子程序进行温度值正负的判定;发 DS18B20复位命令运算发温读度取子温程度序命将令 RAM中读取值进行 BCD码的转换运算,并读发取跳操过作,ROCMR命C令校验开Y始欢迎下

8、载精品学习资源9 字节完?N N发温度转温换度开零始下命.令YCRC校验YN欢迎下载精品学习资源温度值取结补束码置“ -”标志移入温度暂存器置“ +”标欢迎下载精品学习资源运算小数位温度 BCD终止运算整数位温度 BCD值欢迎下载精品学习资源4.5 显示数据刷新子程序终止显示数据刷新子程序主要是对显示缓冲器中的显示数据欢迎下载精品学习资源进行刷新操作,当最高数据显示位为0 时,将符号显示位移入下一位;欢迎下载精品学习资源温度数据移入显示寄存十位数百位数十位数显示符号百位数显示数据终止第五章:系统所运用的功能介绍:DS18B20与单片机之间接受串行通信的方式进行数据读写5.1 系统的调试及性能分

9、析:硬件调试比较简洁,第一焊接是否正确,然后可用万用表测试或通电检测;软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、运算温度子程序和现实数据刷新子程序等的编程及调试由于 DS18B20与单片机接受串行数据传送,因此,对DS18B20进行读 / 写编程时必需严格地保证读 / 写时序;否就将无法读取测量结果;本程序接受单片机C语言编写用 Keil C3 编译器编程调试;并且应用 PROTUES7进行电路的仿真及 PCB班的设计布线;软件调试到能显示温度值,并且在有温度变化时显示温度能转变,就基本完成;性能测试可用制作的温度机和已有的成品温

10、度计同时进行测量比较;由于DS18B20的精度很高,所以误差指标可以限制在0.5以内;另外, -55+125的测温范畴使得该温度计完全适合一般的应用场合,其低电压供电特性可做成用电池供电的手持温度计;5.2 测试结果在 Protues 中通过调剂 DS18B20的温度示数加减, LED会自动显示当前 DS18B20温度示数,但有延时(系统程序中设定)欢迎下载精品学习资源心得体会通过本次数字电子的课程设计加强了我们动手,摸索,解决问题的才能;此外培养了我们当代高校生所缺失的一种认真细致,思维严谨的科学精神;耐心,沉稳,细致, 可谓是试验者必备的一种素养,缺一不行;在连接线路的过程中只要一不留神就

11、会接错管脚,导致整个试验的失败,花费过多的时间来查找错误不如起初就多细心找一个比较完善的方案;这是所谓的欲速就不达,事半功倍;本次的课程设计使我们进一步巩固了书本上的学问,做到了学以致用;这是我们其次次自己动手设计的电路,通过系统仿真软件protues 和编译软件 keil,使我们进一步明白了单片机的设计制作过程,其中最为困难的是软件部分,即编程部分,我们上网找了好多资料,虽然经过自己的修改,但仍是有很多功能不能实现,如温度上下限设置;由于protues 并不是很娴熟,在使用的过程中有很多原件的名称不知道,从而花费了大量的时间在网上查找,今后应当在这方面多多努力;最终一步的焊接硬件也遇到了不少

12、麻烦, P0 端口没有加上拉电阻, P1 端口加三极管驱动导致数码管不亮;总结体会的时候我们得出这样的结论,学习应当学以致用,有目的的去学习,假如学了不用等于没学;其次, 要学以致用,理论联系实际,这样才会取得事半功倍的成效;欢迎下载精品学习资源致谢经过两个多星期的努力,我们顺当把试验要求做出来了;虽然整个过程很艰苦,从刚开头的半知不懂,一步不懂解决一步,总结不足得出改善;但最终我得到的是满满的收成;有时候理论明明已经完全应用实际就是会出问题,但是我没有舍弃;由于老师说过理论与实践相差特殊大,实际要考虑的问题远远比理论的多的 多;所以我不断地查资料、不断地调试;最终最终成功了;这让我深刻体会到

13、有付出才有回报过程是有些许曲折;感谢这次电子课程设计,让我所学的理论学问不再只是纸上谈兵;我信任只要不舍弃,不抛弃,勇于摸索,迎难而上,拥有发觉问题独立解决问题的才能,在以后任何一件事上都能单挡独挑;着重感谢老师的细心指导,耐心指教,准时排忧解难;也同样感谢本组其他每个成员的大力支持和帮忙,团结的力气使得难题变得简洁攻破,由于众多的聪慧组成的合力是不行估量的超能量,每个组员都是解决问题的强者;让我深刻熟识到团结合作的重要性,以后也会始终把它当做宝贵财宝;附件:程序如下:/ 使用 AT89C2051单片机, 12MHZ 晶振,用共阳 LED数码管/P1 口输出段码, P3 口扫描/#pragma

14、 srcd:aa.asm #include reg51.h#include intrins.h/_nop_ ;延时函数用欢迎下载精品学习资源#define DisdataP1/段/ #define discanP3/扫/码输出口描口欢迎下载精品学习资源#define uchar unsigned char #define uint unsigned intsbitDQ=P37;/温度输入口sbitDIN=P17;/LED小数点把握uinth;/*温度小数部分用查表法 */ uchar codeditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x0

15、5,0x06,0x06,0x07,0x08,0x08,0x09,0x 09;uchar code dis_712=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x;40/* 共阳 LED段码表0 1 2 3 4 5 6 7 8 9 不亮 - */欢迎下载精品学习资源uchar code scan_con4=0xfe,0xfd,0xfb,0xf7;/ 列扫描把握字uchar data temp_data2=0x00,0x00;/读出温度暂放欢迎下载精品学习资源uchar data display5=0x00,0x00,0x00,0

16、x00,0x00;暂存用/*11微秒延时函数 */ void delayuint tfor;t0;t-;/*显示扫描函数 */ scanchar k;fork=0;k0; i- /DQ=1;_nop_;_nop_;DQ = 0;_nop_;_nop_;_nop_;_nop_;_nop_;/5us DQ = val&0x01;/最低位移出delay6;/66usval=val/2;/右移一位DQ = 1;delay1;/*18B20读 1 个字节函数 */ 从总线上读取一个字节uchar read_bytevoiduchar i;uchar value = 0;for i=8;i0;i-DQ=1

17、;_nop_;_nop_;value=1;DQ = 0;/_nop_;_nop_;_nop_;_nop_; /4usDQ = 1;_nop_;_nop_;_nop_;_nop_; /4us ifDQvalue|=0x80;delay6;/66us欢迎下载精品学习资源DQ=1;returnvalue ;/*读出温度函数 */ read_tempow_reset;/总线复位write_byte0xCC; / 发 Skip ROM命令write_byte0xBE; /发读命令temp_data0=read_byte; / 温度低 8 位temp_data1=read_byte; / 温度高 8 位o

18、w_reset;write_byte0xCC; / Skip ROM write_byte0x44 ; / 发转换命令/*温度数据处理函数 */ work_tempuchar n=0;/ iftemp_data1127iftemp_data0.=0x00temp_data1=255-temp_data1 ;temp_data0=256-temp_data0 ;n=1;/ 负温度求补码elsetemp_data1=256-temp_data1 ;n=1;/ 负温度求补码display4=temp_data0&0x0f ;display0=ditabdisplay4 ;display4=temp_

19、data0&0xf04|temp_data1&0x0f4 ;/ display3=display4/100 ;display1=display4%100;display2=display1/10;display1=display1%10;if.display3display3=0x0A;if.display2display2=0x0A;/ 最高位为 0 时都不显示ifndisplay3=0x0B;/ 负温度时最高位显示 -欢迎下载精品学习资源/*主函数*/ mainDisdata=0xff; / 初始化端口discan=0xff;forh=0;h4;h+displayh=8;/ 开机显示 8888ow_reset;/ 开机先转换一次write_byte0xCC; / Skip ROM write_byte0x44 ; / 发转换命令forh=0;h500;h+scan;/开机显示 88882 秒while1read_temp;/读出 18B20 温度数据work_temp ;/处理温度数据forh=0;h500;h+scan;/显示温度值 2 秒欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁