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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于数字温度传感器DS18B20的测温设计.docx

1、基于数字温度传感器DS18B20的测温设计基于数字温度传感器 DS18B20 的测温设计一功能要求1 三位数码管显示温度值,保留小数点后一位。2 温度超过 50摄氏度,红灯亮,低于 50摄氏度,绿灯亮。二方案论证在日常生活及农业生产中经常要用到温度的检测及控制,传统的测温元件有 热电偶和热电阻。而热电偶和热电阻测出的一般都是电压, 在转化成对应的温度, 需要比较多的外部硬件电路支持,硬件电路复杂,软件调试复杂,制作成本高。本数字温度计设计采用美国DALLA半导体公司继DS182后推出的一种改进型 智能温度传感器DS18B2作为检测元件,测温范围为-55 C125 C,最大分辨率 可达0.062

2、5 Co DS18B2可以直接读出被测温度值,而且采用 3线制与单片机相 连,减少了外部电路,具有低成本和易使用的特点。按照系统设计功能的要求,确定系统由 3个模块组成:主控制器( P89C51)、 测温电路(DS18B20、显示电路(四数码管及其驱动电路)和温度值高低报警电 路(两红绿二极管)。三系统硬件电路的设计3.1PHILIPS P89C51RD2HBP3.1.1P89C51 概述:P89C5采用高性能的静态80C51采用了静态设计可提供很宽的操作频率范围 频率可降至 0,可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式 冻结CPU但RAM定时器串口和中断系统仍然工作掉电模式保

3、存 RAM 的内容但是冻结振荡器导致所有其它的片内功能停止工 作由于设计是静态的 , 时钟可停止而不会丢失用户数据运行可从时钟停止处恢复 分别包含128字节和256字节RAM 32条I/O 口线3个16位定时/计数器6输 入4优先级嵌套中断结构1个串行I/O 口可用于多机通信I/O扩展或全双工 UART以及片内振荡器和时钟电路,设计由先进CMOS工艺制造并带有非易失性 Flash 程序存储器全部支持 12 时钟和 6 时钟操作 .3.1.2P89C51 特性:采用80C51核心处理单元,含4k字节FLASH 128字节RAM布尔处理器,全静 态操作,12时钟操作可选6个时钟通过软件或并行编程器

4、,存储器寻址范围64K 字节ROM和64K字节RAM,电源控制模式:时钟可停止和恢复,空闲模式,掉电模式两个工作频率范围:6时钟模式时为020MHz 12时钟模式时为033MHz 其他:扩展温度范围,双数据指针,3个加密位,4个中断优先级,6个中断源, 4个8位I/O 口,全双工增强型UART帧数据错误检测,自动地址识别,3个16 位定时/计数器T0 T1标准80C51和增加的T2捕获和比较,可编程时钟输出,异 步端口复位,低EMI (禁止ALE以及6时钟模式),掉电模式可通过外部中断唤醒3.1.3P89C51 管脚图(见图 3-1)图3-1nw6?裘璋名赫和功號DIPLC CQFPVss20

5、221(5IMi: Ov曲标准Vcc404438I电淋:捉供棹融、I闲、|常电用P0 0-0 7393243-3J7-30IOP0 1 I.P0 11星开滉取向rL可也写1用作高阻抗昌浮也可 亂作参路转橫.处访问外部程序仃储器时作地址的任f戌 在访何外部敲捌 存佛JS时作iftiK楚趣.当送1 .通过内制 上拉Pl.0-1.71-8122-92340+1-3toP1 口: P1 口足帶内部上拉的炬向1O 口I4PI 口卡1 L-t.l r 1槪内部上14曲高电平.并且可M用作愉人口一当柞光入 禅时;Pl UtTW被外醉拉低.因沖外部上抽血严卞电施一(见 DC的电特性1 112功能:T2(P1.

6、0:时器2/计散黠2的外部输入/时钟辑1出(见呵编 程输出T2EX(P l .iy淀时器&计数春2車隸载/JH提/方向控;MP2 C-2 72i-2824-3118-25IOP1门是带内部上竝的亚向VO n,向P2 r IT l tH.l 口推 内醉上拉为离 电平.井且以用作输入口 当作対卷入脚 时冲 口暂IMft外部粒低*冈为外部1拉血严十屯滝(W.DC 的电特悝丄 衽访闻外部程序存fift翳淘和外部敷据时杵15 忖地Jd frjj ? 1XMOVX道DPTRX当向口送1时采用崗内 郵上拉一当访呵B性外部戦IS存储轟时(MOV Ri,P2 If 的内片送tP2的特殊阴能离疔黠小P3 7101

7、71011121314151617IL13-1911 im 】斗151617IS197-1357SP )C l: 賈LOP3 口是帯内部上竝的亚向I/O n,向P3 n吗1时口槪 内部上扌*为尚电平幷R汉用件输入u严件为輸人陶时,i_iP3管脚秋外郃拉低.创为卄部 上捡而产生电述血 DC的电 特性X8PC51 .8PC529C54/8S)C5S 在 P3 口JM也握供特殊 功龍:RxD(p3 一仍: 串行自入】TxD(Pj.ly 卅厅埔小LJINT0P3 2):知部朮噺0INT1(P3 3):外部屮慚T(XP3 4)= 定时黑0外部樹入T1(P3 5): 应:时詰1冷卜部眉入WR(F3 : 产

8、紳竝谢fr诽婕J| ;忙专RD(P3 7) 外祁敌.抓存蛀曙i :; 打RST910斗I貝何:呷晶撮rr运和,只豐冥何悴脚出现2个机器周期烏电 屮LU珂亘位.内部带屯阻连接到 VssdKH理一牛外部ife容 接 HVce fl.ALE303327O地址镇存愷龍:在访问外部存储时出關冲用束镇存低地 址的字节在正常皓况下,綸出1A5的振鵲频率可以当作外 BE时懈或定时.谊童毎抉苗问外部和 ALE以冲羁被.,U.AJJE 可 L乩通.:设讥 SFR 竹 aiixliLarvO 设时 V | AUE. 煌背WUE几適白MOVX 卅9削城薄満PSEN293227O程序存備ttfife:凄外部程序存储一当

9、从外部读取程序 时.PSEN超亍机器周期被滋活曲按“狂访问外部數碾器 PSEN 冇效,防列内部秽序旳PEEM匕散EA Vpp313529I外部訂址便龍/呵和电用:EA 鱼颈置低“訪间整亍艸苦; 程序存條罄时.如畢EA为面时.棉执材内部程序.障非程序 计数1K可器人于0EFFFH可纠訪何4K HSN nlFFFH 可朝访 创SK 3FFFH叫以讪何】l 1 Pl 1氏“423aCoouooi07D0U低C*i :HJ.- :; ! ?l-l0550br25 06257COOtoOOOl 1001 W01C191h+ 10 125 COCGU 0( i):i lUHlOOlOOOA2h-0.5 C

10、1X)00 0000 0000 i 000OCOSh化0000 W00 001 -: I;-;OOOOh-0.5 (HU mj mi loooFHlSh-10 125 匚MIL 111】(H01 1 1 1 irr?i ii二伽2、HE 110 OHO MH1;列h55 CHit H00 100 0000FC90I1丁he po认reset 耐【ue of Ihe temp即萌ur亡叱回 Her j $ 榻I图3-7 DS18B20温度数据表3、DS18B20温度传感器的高速RAM存储器高速暂存存储器由9个字节组成,其分配如图3-8所示。当温度转换命令发 布后,经转换所得的温度值以二字节补码形

11、式存放在高速暂存存储器的第 0和 第1个字节。单片机可通过单线接口读到该数据, 读取时低位在前,高位在后, 对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时, 先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。寄存器内容字节地址温度值低位 (LS Byte )0温度值高位 (MS Byte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值8图3-8 DS18B20暂存寄存器分布4、DS18B2C配置寄存器该字节各位的意义如图3-9 :TMR1R011111图3-9 :配置寄存器结构低五位一直都是1,TM是测试模式位,用于设置 D

12、S18B2C在工作模式还 是在测试模式。在DS18B2C出厂时该位被设置为0,用户不要去改动。R1和 R0用来设置分辨率,如图3-10 : ( DS18B20出厂时分辨率被设置为12位)R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms图 3-10根据DS18B20的通讯协议,主机(单片机)控制 DS18B20完成温度转 换必须经过三个步骤:每一次读写之前都要对 DS18B20进行复位操作,复位成功 后发送一条ROM旨令,最后发送RAM旨令,这样才能对DS18B20进行预定的操作。 复位要求主CPU各数据线下拉500微秒,然后释

13、放,当DS18B20攵到信号后等待 1660微秒左右,后发出60240微秒的存在低脉冲,主 CPU攵到此信号表示 复位成功。表6: ROM指令表指令约定 代码功能读ROM符合ROM33H55H读DS1820温度传感器ROM中的编码(即64位地址)发出此命令之后,接着发出64位ROM编码,访问单总线上与 该编码相对应的 DS1820使之作出响应,为下一步对该 DS1820 的读写作准备。搜索ROM0FOH用于确定挂接在同一总线上DS1820的个数和识别64位ROM 地址。为操作各器件作好准备。跳过ROM0CCH忽略64位ROM地址,直接向DS1820发温度变换命令。适用 于单片工作。告警搜 索命

14、令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。表6: RAM指令表指令约定代 码功能温度变换44H启动DS1820进行温度转换,12位转换时最长为750ms (9位 为93.75ms)。结果存入内部9字节RAM中 0读暂存器0BEH读内部RAM中 9字节的内容写暂存器4EH发出向内部RAM勺3、4字节写上、下限温度数据命令,紧跟 该命令之后,是传送两字节的数据。复制暂存 器48H将RAM中第3、4字节的内容复制到 EEPROI中o重调EEPROM0B8H将EEPROI中内容恢复到 RAM中的第3、4字节。读供电方 式10B4H读DS1820的供电模式。寄生供电时 DS1820发

15、送“ 0 ”,夕卜 接电源供电DS1820发送“ 1 ”。325 DS18B20初始化及读写时序:1 初始化序列:复位和应答脉冲单总线上的所有通信都是以初始化序列开始,包括主机发出复位脉冲及从机的应答脉冲。如图3-11所示当从机发出响应主机的应答脉冲时, 即向主机表明它处于总线上且工作准备就绪,在主机初始化过程主机通过拉低单总线至少 480 s以产生Tx复位脉冲,接着主机释放总线并进入接收模式 Rx,当总线被释放后, 5k上拉电阻将单总线拉高在单总线器件检测到上升沿后延时 15-60 s ,接着通过拉低总线60-240 s以产生应答脉冲脉冲。主机拉丘总线从机检低总址 电阻上拉图 3-112.读

16、/写时隙在写时隙期间主机向单总线器件写入数据而在读时隙期间主机读入来自从机 的数据,在每一个时隙总线只能传输一位数据。2.1写时隙存在两种写时隙写1和写0,主机采用写1时隙向从机写入1 ,而采用写0时 隙向从机写入0,所有写时隙至少需要60 s,且在两次独立的写时隙之间至少 需要1 s的恢复时间,两种写时隙均起始于主机拉低总线,如图 3-12所示,产生写1时隙的方式:主机在拉低总线后接着必须在15 s之内释放总线,由5k上拉 电阻将总线拉至高电平而产生。写0时隙的方式:在主机拉低总线后只需在整个时隙期间保持低电平即可, 至少60 s,在写时隙起始后15-60 s期间单总线器件采样总线电平状态。

17、如果在 此期间采样为高电平则逻辑1被写入该器件;如果为0则写入逻辑0。2.2读时隙单总线器件仅在主机发出读时隙时才向主机传输数据,所以在主机发出读数 据命令后必须马上产生读时隙以便从机能够传输数据。所有读时隙至少需要 60s,且在两次独立的读时隙之间至少需要1s的恢复时间,每个读时隙都由主机 发起至少拉低总线1s,如图3-13所示,在主机发起读时隙之后,单总线器件才开 始在总线上发送0或1,若从机发送1则保持总线为高电平;若发送0,则拉低 总线。当发送0时,从机在该时隙结束后释放总线,由上拉电阻将总线拉回至空 闲高电平状态,从机发出的数据在起始时隙之后保持有效时间 15 s。因而主机在读时隙期

18、间必须释放总线,并且在时隙起始后的 15 s之内采样总线状态。图 3-13 图 3-143.3设计电路图及功能说明见下页图3-14功能说明:(1)DS18B20接在P3.7 口上,采集温度数据,输入单片机(2) 数码管动态显示部分:8位数据线接在P1 口; 4位控制线接在P2.0P2.3, 并使用与非门驱动。(3) 发光二极管:单片机判断温度高于 50 C时红灯亮,否则绿灯亮图 3-14四系统程序的设计4.1主程序通过主程序调用各个子程序, 实现温度实时显示, 读出并处理温度值, 利用中 断计时,每隔 1s 测量一次温度。程序框图如图 4-14.2读出温度子程序读出温度子程序就是读出RAM中L

19、SM和MSB两个字节,框图入图4-2所示。4.3温度转换命令子程序 温度转换子程序就是向传感器发温度转换命令,由于本程序中使用的分辨率 位12位,转换时间为750ms,因此程序采用中断计时,每过1s才去转化一次温 度。具体过程见图 4-34.4计算温度子程序计算温度子程序将 RAM 中读取的温度值进行 BCD 码转换,并标记正负号, 如图 4.4所示4.5显示数据刷新子程序显示子程序是从 RAM 对应单元中读出处理好的小数位, 十位,个位,符号位, 查对应的表可得对应数码管所要显示的字型码。图4-2读取温度子程序流程图图4-1 DS18B20温度计主程序框图图4-3温度转化命令子程序流程图图4

20、.4计算温度子程序流程图4.6程序源代码FLAGBIT24HSIGNBITFLAG.1ABOVE1OOBITFLAG.2REDLIGHTEQUP3.OGREENLIGHTEQUP3.1BITSTDATA2OHTIMEHEQUOD8H;T0中断计时,方式一,1s初值TIMELEQUOFOHTEMPHEADEQU36HTIME1SOKBITBITST.1INTFIRSTBITBITST.2PORTEQUP3.7TEMPLDATA26HTEMPHDATA27HTEMPHCDATA28HTEMPLCDATA29HORG 0000HLJMP STARTORG 000BHLJMP INT_STARTORG

21、 100H; 主函数开始处 START:MOV SP,#60H ;堆栈指针初始化CLRRAM: ;清空 RAM 数据子程序 :数据较多需使用 RAM 中单元作为标志位MOV R0,#20HCLRRAM_LOOP:MOV R0,#00HINC R0CJNE R0,#80H,CLRRAM_LOOPINT_CONFIG: ;中断配置:开启内部定时中断 TO,每过1s刷新一次数据MOV TMOD,#21HMOV THO,#TIMEHMOV TLO,#TIMELSETB ETOSETB TROSETB EAMOV PSW,#OOHCLR INTFIRSTSJMP MAININT_START:PUSH P

22、SWMOV PSW,#1OHMOV THO,#TIMEHMOV TL0,#TIMELINC R7CJNE R7,#64H,INTMOV R7,#00HSETB TIME1SOKINT: POP PSWRETIMAIN:; TIME1SOK =0, 表示中断开启,计时进 ; 行中,将循环刷新 LED;单片机内部进行温度转换LCALL DISPJNB TIME1SOK,MAIN CLR TIME1SOKJNB INTFIRST,MAIN2LCALL READ_TEMPLCALL CONVTEMPLCALL DISPBCDLCALL DISPMAIN2:LCALL CONVER_TEMP SETB INTFIRST LJMP MAIN* J;DS18B20 底层功能子函数定义:; INIT_DS:初始化 DB0832; READ_BYTE:读取 DS18B20 一字节数据; WRITE_BYTE:写入 DS18B20 一字节数据 ,即写入 ROM 命令*

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

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