1、基于DS18B20的温度采集显示系统设计任务书1.题 目:基于DS18B20的温度采集显示系统设计2、设计要求:1. 学习DS18B20功能与使用方法; 2. 每秒采集一次温度并在LED上显示; 3. 具有显示最高与最低温度的功能; 4. 设计硬件原理图; 5. 编写程序。 第一章 方案设计数字温度计的方案设计2.1 控制系统总体介绍方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案设计框
2、图如下:方案二:考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。2.2 框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机STC89C51,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。 图1总体设计方框图2.3工作原理 DS18B20本身就是一种数字温度传感器,只是得到的温度值的位数因分辨率不同而不同且温度转换时的延
3、时时间由2s 减为750ms。 它会把温度转换成数字量以后存贮在自身内部,和单片机只需要连接一个IO口,是一种单总线串行接口,然后接下来做的就是通过写控制字给DS18B20把数据读出来,接着调用ZLG7290显示程序在LED数码管上显示出来,在此程序中设置了两个中断,分别来显示一段时间内的最高温度和最低温度,而且设置的有个报警装置,超过设定的温度就会蜂鸣器发出声。 3 数字温度计硬件电路设计3.1 芯片介绍1、AT89C51芯片AT89C51是一种带4K字节闪存可编程可擦除只 读存储器(FPEROMFlash Programmable and Erasable Read Only Memory
4、)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示。 第二章 硬件系统设计CPU选型及相应外部电路设计说明2、 DS18B20芯片(1) DS18B20
5、简介 DS18B20是由美国DALLAS公司生产的单线数字温度传感器芯片。与传统的热敏电阻有所不同,DS18B20可直接将被测温度转化为串行数字信号,以供单片机处理,它还具有微型化、低功率、高性能、抗干扰能力强等优点。通过编程,DS18B20可以实现912位的温度读数。信息经过单线接口送入DS18B20或从DS18B20送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。 (2) DS18B20的引脚功能 其功能如表1所示。 表1 DS18B20分辩率的定义规定R1R0分辩率/位温度最大转换时间/ms00993.7
6、50 110187.510113751112750(3) DS18B20的主要特点v采用单线技术,与单片机通信只需一个引脚;v通过识别芯片各自唯一的产品序列号从而实现单线多挂接,简化了分布式温度检测的应用;v实际应用中不需要外部任何器件即可实现测温;v可通过数据线供电,电压的范围在35.5V;v不需要备份电源;v测量范围为-55+125,在-10+85范围内误差为0.5;v数字温度计的分辨率用户可以在9位到12位之间选择,可配置实现912位的温度读数;v将12位的温度值转换为数字量所需时间不超过750ms;v用户定义的,非易失性的温度告警设置,用用户可以自行设定告警的上下限温度。(4)DS18
7、B20内部结构64位ROM的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。 DS18B20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图3所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图
8、3所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分辨率 图2 DS18B20内部结构3、ZLG7290芯片ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动
9、电压和电流。此外,ZLG7290B的电路简单,使用也很方便。 用户按下某个键时,ZLG7290的INT引脚会产生一个低电平的中断请求信号,读取键值后,中断信号就会自动撤销。正常情况下,微控制器只需要判断INT引脚就可以得到键盘输入的信息。微控制器可通过两种方式得到用户的键盘输入信息。其一是中断方式,该方式的优点是抗干扰能力强,缺点是要占用微控制器的一个外部中断源。其二是查询方式,即通过不断查询INT引脚来判断是否有键按下,该方式可以节省微控制器的一根IO口线,但是代价是I2C总线处于频繁的活动状态,消耗电流多并且不利于抗干扰。ZLG7290能够直接驱动8 位共阴式数码管(或64 只独立的LED
10、),同时还可以扫描管理多达64 只按键。其中有8 只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt 键一样。另外ZLG7290B 内部还设置有连击计数器,能够使某键按下后不松手而连续有效。采用I2C 总线方式,与微控制器的接口仅需两根信号线。可控扫描位数,可控任一数码管闪烁。3.2 电路设计1、复位电路单片机系统的复位电路在这里采用的是上电+按钮复位电路形式,其中电阻R采用10 K的阻值,电容采用电容值为10的电解电容。电路图如下: 图3 复位电路图 2、温度采集电路B4区上面是一片DS18B20单总线数字温度传感器,可在上面进行单总线和温度采集等相关实验,电路图如下图
11、,DQ为控制信号输入端,JP12为电源控制(使用前先短接,做完实验后断开)。 图4 单总线数字温度采集电路 3、显示电路对于数字温度的显示,我们采用周立功的7290,6位LED数码管。足够显示0100中各位数,并且还能显示一位小数部分。 图5 显示电路 4、报警电路对于数字温度计的设计,除了温度的数字显示功能外还加入了报警系统,如果我们所设计的系统用来监控某一设备,当设备的温度超过我们所设定的温度值时,系统会产生报警。我们便能很好的对设备进行处理,就不会应温度的变化而造成不必要的损失。当温度高于预定设置的温度时,报警时由单片机产生一定频率的脉冲,由P1.2引脚输出,P1.2外接一只NPN的三极
12、管来驱动杨声器发出声音,以便操作员来维护,从而达到报警的目的。其电路图如下所示。图6报警电路 5、系统的总电路 系统的总电路图主要是由51单片机,ZLG7290芯片,DS18B20芯片构成。图7 总电路图3.3电路接线 D1区的LED8接A2区的P1.4引脚 D1区的KEY8接A2区的INT0引脚 D1区的KEY7接A2区的INT1引脚 D3区的GND接地 D3区的DQ接A2区J58的/RD引脚 D4区的BUZZ接J61的P1.2引脚 D7区的SDA接J61的P1.5引脚 D7区的SCL接J61的P1.6引脚 D7区的/RST接J61的P1.1引脚 第三章 软件设计主要讨论设计流程,并给出流程
13、图1、读DS18B20的子程序2、读转换温度子程序Y 发DS18B20复位命令 发跳过ROM命令 发读取温度命令 读取操作,CRC校验 9字节完? C RC校验正确? 移入温度暂存器 结束NNY 第四章 系统调试说明调试过程中出现的问题以及如何改进的,(1)根据DS18B20 的通讯协议,主机控制DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20 进行复位,复位成功后发送一条ROM 指令,最后发送RAM 指令,这样才能对DS18B20 进行预定的操作。复位要求主CPU 将数据线下拉500 微秒,然后释放,DS18B20 收到信号后等待1660 微秒左右,后发出60
14、240 微秒的存在低脉冲,主CPU 收到此信号表示复位成功(2) 动态显示方式,在某一瞬时显示一位,依次循环扫描,轮流显示,由于人的视觉滞留效应,人们看到的是多位同时稳定显示小 结本系统采用采用单片机和数字温度转换器DS18B20 来实现,具有主机接口简单,结构灵活,调试方便等特点,实验结果表明这种测温系统转换速度快、精度高。 回顾起此次课程设计,我们感慨颇多,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多东西。这次实习不仅巩固了以前所学过的知识,而且学到了很多在书本上没有的知识。通过这次课程设计,我们得到了一些工程项目知识,懂得了理论与实际相结合是很重
15、要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中,我们经常遇到问题,可以说是困难重重,这毕竟第一次做,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。虽然两个周的课程设计过去了,但此次课程设计暴露了我不少问题,虽然在课堂上我学了不少东西,但当付诸于实际时却摸不着头脑,所以我们不但要学习知识,还要在实践中运用知识,做到游刃有余。不管是在以后的工作或学习中,我都会全力以赴,积
16、极思考,勇于探索,不断创新。在设计中遇到了很多编程方面的调试问题还没有解决,例如仍没有设计出报警系统、温度上下限的限制。我想在以后我会继续查找各方面资料、请教老师、与同学共同探讨,一起来解决这些问题。同时在以后的日子里我会慢慢改正在这次课程设计中所犯的错误、把学过的知识掌握的更加牢固。附录1:原理图附录2:源程序DS18B20初始化程序 INIT_1820: SETB DQ NOP CLR DQ MOV R0,#80H TSR1: DJNZ R0,TSR1 ;延时 SETB DQ MOV R0,#25H ;96US TSR2: DJNZ R0,TSR2 JNB DQ,TSR3 LJMP TSR
17、4 ;延时 TSR3: SETB FLAG1 ;置标志位,表示DS1820存在 LJMP TSR5 TSR4: CLR FLAG1 ;清标志位,表示DS1820不存在 LJMP TSR7 TSR5: MOV R0,#06BH ;200US TSR6: DJNZ R0,TSR6 ;延时 TSR7: SETB DQ RET2记录最高最低温度程序 LOOOP1: JNB FLAG2,LOOOP CJNE A,TEMPERMAX,LOP3 MOV A,DECIMAL CJNE A,DECIMALMAX,LOP9 SJMP LOP6 LOP9: JC LOP6 MOV DECIMALMAX,A SJMP
18、 LOP6 LOP3: JC LOP4 MOV TEMPERMAX,A MOV DECIMALMAX,DECIMAL SJMP LOP6 LOP4: CJNE A,TEMPERMIN,LOP5 MOV A,DECIMAL CJNE A,DECIMALMIN,LOP10 SJMP LOP6 LOP5: JNC LOP6 MOV TEMPERMIN,A MOV DECIMALMIN,DECIMAL SJMP LOP6 LOP10: J NC LOP6 MOV TEMPERMIN,A SJMP LOP6 LOP6: JB F0,LOP2 JB FLAG0,LOP8 LOP7: LCALL BIN_BCD RET LOP2: CLR F0 MOV TEMPER_NUM,TEMPERMAX MOV DECIMAL,DECIMALMAX SJMP LOP7 LOP8: CLR FLAG0 MOV TEMPER_NUM,TEMPERMIN MOV DECIMAL,DECIMALMIN SJMP LOP7 LOOOP :MOV TEMPERMAX ,A MOV TEMPERMIN ,A MOV DECIMALMAX,DECIMAL MOV DECIMALMIN,DECIMAL SETB FLAG2 SJMP LOOOP1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1