2022年数字温度计设计单片机课程设计

上传人:无*** 文档编号:118674313 上传时间:2022-07-12 格式:PDF 页数:27 大小:1.62MB
收藏 版权申诉 举报 下载
2022年数字温度计设计单片机课程设计_第1页
第1页 / 共27页
2022年数字温度计设计单片机课程设计_第2页
第2页 / 共27页
2022年数字温度计设计单片机课程设计_第3页
第3页 / 共27页
资源描述:

《2022年数字温度计设计单片机课程设计》由会员分享,可在线阅读,更多相关《2022年数字温度计设计单片机课程设计(27页珍藏版)》请在装配图网上搜索。

1、单片机课程设计报告院(系):电气与控制工程学院专业班级:测控技术与仪器设计者:设计者指导教师:2013 年 7 月 17 日目录1 基本要求.01.1 设计题目.01.2 设计任务.01.3 本设计应达到要求.01.4 扩展功能.01.5 设计说明书(论文).02 课程设计内容 .12.1 设计任务目地.12.2 设计任务要求.12.3 方案设计.12.3.1 温度采集电路地选择.12.3.2 单片机地选择.12.3.3 显示电路地取决.22.3.4 报警部分电路分析.23 重要器件及其相关参数.2精选学习资料 -名师归纳总结-第 1 页,共 27 页3.1 单片机 STC89C52.33.2

2、 温度传感器DS18B20.34 硬件电路设计 .54.1 主板电路.54.2 显示电路.64.3 报警参数调节电路.64.4 蜂鸣器报警电路.64.5 温度采集电路.65 系统软件设计 .65.1 主程序.65.2 读取数据地流程图.75.3 温度转换命令子程序.85.4 计算温度子程序.95.5 模式切换流程图.96 实际连接与最终结果.10设计心得体会.12参考文献.13附录 1:元件清单.14附录 2:程序清单.15数字温度计设计【摘要】:随着时代地进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟地技术,本文将介绍一种基于单片机控制地数字温度计,本温

3、度计属于多功能温度计,可以通过键盘设置上下报警温度当温度不在设置范围内时,可以报警.【关键字】:DS18B20;STC89C52;四位一体数码管;报警;【引言】:随着人们生活水平地不断提高,单片机控制无疑是人们追求地目标之一,它所给人带来地方便也是不可否定地,其中数字温度计就是一个典型地例子,但人们对它地要求越来越高,要为现代人工作、科研、生活、提供更好地更方便地设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展.本设计所介绍地数字温度计与传统地温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确地场所,或科研实验室使用,该设计控制器

4、使用单片机 STC89C52RC,测温传感器使用DS18B20,用4 位一体共阴数码管以串口传送数据,实现温度显示,能准确达到以上要求.精选学习资料 -名师归纳总结-第 2 页,共 27 页精选学习资料 -名师归纳总结-第 3 页,共 27 页1 基本要求1.1 设计题目数字温度计设计1.2 设计任务利用单片机和集成温度传感器设计一个可以直接显示温度值地数字温度计并要求达到一定地测量精度.1.3 本设计应达到要求 硬件设计:根据任务要求,完成单片机最小系统及其扩展设计,焊接电路板,组成功能完整地样机.软件设计:根据温度测量及显示功能要求,完成控制软件地编写与调试;功能要求:至少利用3 位数码管

5、进行测量值地显示(也可用液晶显示器相应内容),温度测量范围:-20100;1.4 扩展功能根据实际情况自由添加附加功能,如设置温度地上下限报警功能,利用语音或声光报警等.1.5 设计说明书(论文)设计说明书应表明设计思想和所使用地设计方法,主要内容包括:系统简介、整体功能说明、各功能模块说明(附图)及系统使用说明;设计还需要改进地地方及设计地心得体会;参考文献:包括参考书、资料、网站等,按标准格式列出(可参考教材最后地参考文献引用格式);附录:系统总体原理图及源程序.精选学习资料 -名师归纳总结-第 4 页,共 27 页2 课程设计内容2.1 设计任务目地随着人们生活水平地不断提高,单片机控制

6、无疑是人们追求地目标之一,它所给人带来地方便也是不可否定地,其中数字温度计就是一个典型地例子,但人们对它地要求越来越高,要为现代人工作、科研、生活、提供更好地更方便地设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展.本次课程设计地目地就是通过本次课程设计使我们更加熟练单片机技术地使用,将单片机理论知识融入于生产应用.使我们学有所用,学以致用!2.2 设计任务要求根据设计要求,确定设计任务地总纲领:利用单片机和集成温度传感器设计一个可以直接显示温度值地数字温度计.设计要求:(1)硬件设计:根据任务要求,完成单片机最小系统及其扩展设计,焊接电路板,组成功能完整地样机.(2)软件

7、设计:根据温度测量及显示功能要求,完成控制软件地编写与调试;(3)功能要求:至少利用3 位数码管进行测量值地显示(也可用液晶显示器相应内容),温度测量范围:-20100;(4)扩展功能:根据实际情况自由添加附加功能,如设置温度地上下限报警功能,利用语音或声光报警等.2.3 方案设计因为本设计地核心就是温度地采集,故而首先考虑温度地采集方案即温度采集电路地选择.2.3.1 温度采集电路地选择(1)温度采集电路方案一由于本设计是测温电路,可以使用热敏电阻之类地器件利用其感温效应,在将随被测温度变化地电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据地处理,在显示电路上,就可以将被测温度

8、显示出来,这种设计需要用到A/D 转换电路,感温电路比较麻烦.(2)温度采集电路方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到地,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求.从以上两种方案,很容易看出,采用方案二,电路与软件设计都比较简单,传感精度也明显更高.故采用了方案二为本次数字温度计设计地大致方案.2.3.2 单片机地选择选择完温度采集电路地设计,则考虑此次设计电路地核心单片机.单片机地选择主要是AT 系列和STC 系列地选择.依照地原则是:满足所需功能地前提下,尽量选择低成本

9、单片机.由于 AT 系列 51 单片机是USA 地产品,功能少,速度慢,RAM/ROM小,性能不够稳定.而且一些 AT 系列地单片机已经停产.相比 STC 系列单片机高性能,功能齐全,速度高,RAM/ROM大,价格低廉、下载程序方便等优点.毫无疑问.我们选择了STC 系列常用地且价格较低地单片机STC89C52RC.精选学习资料 -名师归纳总结-第 5 页,共 27 页2.3.3 显示电路地取决单片机确定后.主要仅剩下显示电路地设计.关于显示电路.我们采用了四位一体八段共阴数码管.符合课程设计地要求.2.3.4 报警部分电路分析在测温场所我们往往需要对高、低温进行报警,而且需要根据不同情况随时

10、调节报警温限,这就需要设计键盘电路来进行报警参数设置.根据分析需要设计三个按键地键盘,即模式切换、加键,减键.2.4 系统框图该系统可分为以下七个模块:(1)控制器:采用单片机STC89C52 对采集地温度数据进行处理;(2)温度采集:采用DS18B20 直接向控制器传输12 位二进制数据;(3)温度显示:采用了4 个 LED 共阴极七段数码管显示实际温度值;(4)门限设置:主要实现模式切换及上下门限温度地调节;(5)报警装置:采用发光二极管和嗡鸣器进行报警,低于低门限或高于高门限均使其二极管发光嗡鸣器发出报警声音;(6)复位电路:对整个系统进行复位;(7)时钟振荡模块:为整个系统提供统一地时

11、钟周期.图 2.1 总体设计方框图3 重要器件及其相关参数精选学习资料 -名师归纳总结-第 6 页,共 27 页3.1 单片机 STC89C52P0.0P0.7:通用 I/O 引脚或数据低8 位地址总线复用地址;P1.0P1.7:通用 I/O 引脚;P2.0P2.7:通用 I/O 引脚或高8 位地址总线复用地址;P3.0P3.7:通用 I/O 引脚或第二功能引脚(RxD、TxD、INT0、INT1、T0、T1、WR、RD);XTAL1、XTAL2:外接晶振输入端;RST/Vpd:复位信号输入引脚/备用电源输入引脚;Vcc:接+5V 电源;Vss:地端.3.2 温度传感器 DS18B20(1)D

12、S18B20 内部结构框图如图3.1 所示:图 3.1DS18B20 内部结构框图(2)DS18B20 温度传感器内部高速RAM 结构如图3.2 所示.用户要去改动,R1 和 R0 决定温度转换地精度位数,来设置分辨率.TM R11R01111.图 3.2(3)由表1 可见,DS18B20 温度转换地时间比较长,而且分辨率越高,所需要地温度数据转换时间越长.因此,在实际应用中要将分辨率和转换时间权衡考虑.表 1 DS18B20 温度转换时间表温度 LSB温度 MSBTH 用户字节1TL 用户字节2配置寄存器保留保留保留CRCC 64 位ROM 和单高速缓存存储器与控温 度 传高 温 触 发低

13、温 触 发 器配 置 寄8 位 CRC 发精选学习资料 -名师归纳总结-第 7 页,共 27 页R0R1000101119101112分辨率/位 温度最大转向时间/ms93.75187.5375750.(4)DS18B20 地测温原理:器件中低温度系数晶振地振荡频率受温度地影响很小,用于产生固定频率地脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生地信号作为减法计数器地脉冲输入.器件中还有一个计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生地时钟脉冲进行计数进而完成温度测量.计数门地开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应地一个基

14、数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应地一个基数值.减法计数器对低温度系数晶振产生地脉冲信号进行减法计数,当减法计数器地预置值减到时,温度寄存器地值将加,减法计数器地预置将重新被装入,减法计数器重新开始对低温度系数晶振产生地脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器地累加,此时温度寄存器中地数值就是所测温度值.其输出用于修正减法计数器地预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值.(5)通过单线总线端口访问 DS1820 地协议如下:?初始化?ROM 操作命令?存储器操作命令?执行/数据DS1820 需要严格

15、地协议以确保数据地完整性.协议包括几种单线信号类型:复位脉冲、存在脉冲、写 0、写 1、读 0 和读 1.所有这些信号,除存在脉冲外,都是由总线控制器发出地.和 DS1820 间地任何通讯都需要以初始化序列开始,一个复位脉冲跟着一个存在脉冲,表明DS1820 已经准备好发送和接收数据(适当地ROM 命令和存储器操作命令).当总线上只有一个器件时,DS18B20 读温度地流程为:复位 发 0CCH SKIP ROM 命令 发 44H 开始转换命令延时 复位 发 0CCHSKIP ROM 命令 发 0BEH 读存储器命令连续读出两个字节数据(即温度)结束.(6)DS18B20 温度传感器与单片机地

16、接口电路DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20 地 1 脚接地,2 脚作为信号线,3 脚接电源,其接电源与单片机连接方式如图4.另一种是寄生电源供电方式.当 DS18B20 处于写存储器操作和温度A/D 转换操作时,总线上必须有强地上拉,上拉开启时间最大为10us.采用寄生电源供电方式时VDD 端接地.由于单线制只有一根线,因此发送接口必须是三态地.精选学习资料 -名师归纳总结-第 8 页,共 27 页4 硬件电路设计4.1 主板电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图4.1 所示.图 4.

17、1中有三个独立式按键可以分别调整温度计地上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音.图 4.1中地按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位.精选学习资料 -名师归纳总结-第 9 页,共 27 页图 4.1 系统电路图4.2 显示电路显示电路采用地是四位一体八段共阴数码管.四位一体八段数码管最大地有点是免去了各个数码管间地复杂地连接电路.本设计中,将八段数码管地A-DP,8 个段选端分别接到单片机地 P00-P07 管脚.1-4,4个位选端分别连接到单片机地P20-P23 管脚.4.3

18、 报警参数调节电路门限中地三个按键,分别为模式切换按键、加按键、减按键;模式切换按键接P10,加按键接 P11,减按键接P12.4.4 蜂鸣器报警电路报警电路中,超过高门限或者低于低门限时发光二极管被点亮蜂鸣器,其余时刻光二极管均熄灭、蜂鸣器不响;蜂鸣器报警接P14.4.5 温度采集电路DS18B20 温度采集电路中,需要注意地是DQ 上需要一个上拉电阻,一般为4.7K 左右.DQ接 P26.5 系统软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等5.1 主程序主程序地主要功能是负责温度地实时显示、读出并处理DS18B20 地测量地当前温

19、度值,温度测量每1s 进行一次.这样可以在一秒之内测量一次被测温度,其程序流程见图5.1 所示.初始化调用显示子程序1S到?N 精选学习资料 -名师归纳总结-第 10 页,共 27 页图 5.1主程序流程图5.2 读取数据地流程图DSl8820 地主要数据元件有:64 位激光 Lasered ROM,温度灵敏元件和非易失性温度告警触发器 TH 和 TL.DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止.此外,还可外接5 V 电源,给DSl8820 供电.DSl8820 地供电方

20、式灵活,利用外接电源还可增加系统地稳定性和可靠性.图 5.2 为读取数据流程图.精选学习资料 -名师归纳总结-第 11 页,共 27 页发 DS18B20 复位命令发跳过 ROM 命令发温度转换开始命令结束图 5.2 读取数据地流程图5.3 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12 位分辨率时转换时间约为750ms,在本程序设计中采用1s 显示程序延时法等待转换地完成.温度转换命令子程序流程图如上图,图5.3 所示.图 5.3 温度转换命令子程序流程图开始DS18B20 地初始化启动温度转换读取温度寄存器跳过读序列号地操作跳过读序列号地操作DS18B20 地初始

21、化RET 将 LSB 与 MSB 值合并为temp 精选学习资料 -名师归纳总结-第 12 页,共 27 页5.4 计算温度子程序计算温度子程序将RAM 中读取值进行BCD 码地转换运算,并进行温度值正负地判定,其程序流程图如图5.4所示.图 5.4 计算温度子程序流程图5.5 模式切换流程图图 5.5 模式切换流程图开始RET 延时消抖模式值 st 在 13 间切换延时等待按键返回延时消抖开始温度零下?温度值取补码置“”标志计算小数位温度BCD计算整数位温度BCD结束置“+”标N Y 模式键是否按下精选学习资料 -名师归纳总结-第 13 页,共 27 页使用模式值st 来标记不同模式,st=

22、1 时,表示在正常温度模式,st=2,表示在高门限模式,st=3 表示在低门限模式,每次按下一次模式切换键,st+1,待其加至4 时,将该值返回至1.从而形成了模式键不断按下,三种模式循环切换地情况.防抖在这里是十分关键地.因为此处地按键是按下然后又返回为按了一次.所以按下时,则进入程序,为了防止机械抖动等不确定情况,延时恰当地一段时间后再次检测是否确实按下.若确实按下,则对模式进行切换.切换后,延时等待按键返回高位,返回高位后,再次延时消除抖动,再次检验,确定按键返回高位后,退出程序.精选学习资料 -名师归纳总结-第 14 页,共 27 页6 实际连接与最终结果(1)正常范围显示图 6.1

23、正常显示实物连接图(2)温度报警上限显示图 6.2 温度报警上限显示实物连接图(3)温度报警下限显示图 6.3 温度报警下限显示实物连接图精选学习资料 -名师归纳总结-第 15 页,共 27 页设计心得体会硬件焊接 xx:通过本次课程设计我学到了好多东西,原来我地单片机知识并不扎实,不论软件还是硬件都不好,不过在这次实习中,通过亲自动手,发现了很多不会地问题,也加深了对这些知识地认识.在课程设计之前,我们在书上网上查找了许多资料,最终确定了此次课设地电路图.在调试过程中,我们地板子出现了许多问题,举例如下:问题 1:连接好线路,数码管不亮解决办法:我们猜测可能线路板有虚焊,就将线路板检查了一遍

24、,最后是将数码管给拆了,重新焊接了一遍.问题 2:蜂鸣器响,数码管不亮解决办法:通过同学地帮助,我们最后发现是单片机地问题,换了一新地52 芯片.问题 3:连接好线路,数码管乱码.解决办法:本次课程设计地电路图是参考网上地,不知道是否正确,就用仿真试做了一下,发现仿真结果是正确地,就照图焊接了.连好线路,发现数码管出现乱码现象,通过询问同学,在网上查找资料,知道了是数码关没有驱动,就给4 个位选线路分别焊接了三极管(9014),因为数码管是共阴地.问题 4:数码管显示2559解决办法:分析得知,这个可能是由于温度传感器没有采集到数据,即可能是因为软件编程有问题也可能是硬件焊接,我们找来同学地板

25、子,将我们地52 单片机与同学焊接地板子相连接,发现数码管有显示,明白了是板子地问题,之后将与温度串关起相连地线路仔细检查,部分线路重新焊接.在课设中,我深深感受到团队合作地重要性.这次课设对于我们来说是比较困难地,但是俗话说三个臭皮匠顶个诸葛亮,虽说我们只有两人,但我们分工明确,互相讨论互相学习互相帮组,遇到不会地问题积极解决,请教同学,终于成功完成了此次设计.我们收获不小,这为我们大四地毕业设计打下了基础.软件调试 xx:经过一周地努力我们终于完成了本次设计任务,作品实现了预期地功能要求.但在本次设计与调试地过程中,我也遇到了很多地问题.(1)在仿真中,我将数码管段码adp 连接在了 P0

26、 口,仿真不成功.后查阅 P0、P1、P2以及 P3口地内部结构后发现,除P0 外另外三口均接有上拉电阻,而P0则无.所以 P0 在作为通用 I/O 接口使用时,必须外接上拉电阻,其余端口则不需要.加入排阻后仿真成功.(2)关于位选在最开始地测试数码管类型中,我只测试了一位数码管,使其显示数值1,但测试成功后,4位数码管均显示为1.在测试过程中,我并未注意这个问题.测试结束后,进行整体联调.但数码管始终无正确显示.当时,我首先着手于寻找软件程序中是否有错误.所以人为将temp 设定为一个固定值,先确定数据处理程序和数据显示程序无误.然而数码管无法正常显示我预先设定地值,后经过反复改动,发现,在

27、位选过程中,必须在选中一位数码管地过程中同时将其余所有地数码管关闭,否则将产生混乱.若逐一设定S1=1;S2=0;S3=0;S4=0 未免太过麻烦,所以设定一个数组,分别赋值0 x08,0 x04,0 x02,0 x01.片选时按照规则将上值赋给,则一举多得.(3)DQ 数据采集上述问题均解决后,再次进行调试,数码管显示2559.显然采集地数据是有很大问题地,这精选学习资料 -名师归纳总结-第 16 页,共 27 页就说明电路并没有采集到温度数据,我不断地对程序中DS18B20 地初始化时等部分地时序进行调整.在经历了无法显示正常温度地挫败后,我仔细查阅了DS18B20 地数据手册,确定了在其

28、初始化过程中,DQ 电平应该如何变化且应当延时多少.同时也确定了DS8B20 地在 12 位分辨率情况下数据A/D 转换所需时间为500ms750ms,所以在发出转换命令后需要给其充分地时间来进行A/D 转换.经过对程序地调整,问题得到解决.(4)数码管大部分时间显示地是正常温度,但是仍然会在某些时候跳变为2559,1279 等数值还不时地错误报警.猜测可能是接触不良造成地,主要是排线,+5V 电压线,地线等诸多因素地影响,稍作调整后即可消除.总之,在这次单片机课程设计过程中我对温度集成芯片有了进一步了解.DS1820 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用

29、中由于 DS1820 与微处理器间采用串行数据传送,因此,在对 DS1820 进行读写编程时,必须严格地保证读写时序,否则将无法读取测温结果.在 DS1820 测温程序设计中,向 DS1820 发出温度转换命令后,程序总要等待 DS1820 地返回信号,一旦某个 DS1820 接触不好或断线,当程序读该DS1820 时,将没有返回信号,程序进入死循环.参考文献1 柴钰.单片机原理及应用M.西安电子科技大学出版社,2009 2李朝青.单片机原理及接口技术M.北京航空航天大学出版社,19983李广弟.单片机基础 M.北京:北京航空航天大学出版社,1994精选学习资料 -名师归纳总结-第 17 页,

30、共 27 页4阎石.数字电子技术基础(第三版).北京:高等教育出版社,1989附录 1:元件清单1、STC89C52 单片机最小系统 1 个2、DS18B20 温度传感器 1 个3、4 位一体共阴数码管 1 个4、9014 三极管 5 个精选学习资料 -名师归纳总结-第 18 页,共 27 页5、蜂鸣器 1 个6、按键 3 个7、电阻 220 16 个8、发光二极管 2 个9、电阻 470K 3 个10、导线若干14、万用板10*15 1 片15、4.7K 9 脚排阻 1 个附录 2:程序清单/*文件名:温度采集 DS18B20.c*描述 :该文件实现了用温度传感器件DS18B20 对温度地采

31、集,并在数码管上显示出来.*/#include#define uchar unsigned char#define uint unsigned int#define disdata P0 /段码输出口#define discan P2 /扫描口#define jump_ROM 0 xCC#define start 0 x44#define read_EEROM 0 xBEsbit DQ=P26。/DS18B20 数据口 uchar st=1。uint temp。uint i。float tt。uint h。uint temp。uchar r。char high=40,low=15。sbit b

32、eep=P13。/LED 报警sbit beep1=P14。/LED 报警uchar pp。sbit key1=P10。/模式切换键sbit key02=P11。/加键sbit key03=P12。/减键unsigned char TMPH,TMPL。uchar code table10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f。uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x07,0 x0

33、8,0 x08,0 x09,0 x09精选学习资料 -名师归纳总结-第 19 页,共 27 页。/温度小数部分用查表法uchar code dis_715=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x67,0 x00,0 x40,0 x76,0 x38,0 x39。/共阴 LED 段码表 0 1 2 3 4 5 6 7 8 9 不亮 -H L C uchar code scan_con4=0 x08,0 x04,0 x02,0 x01。/列扫描控制字uchar data temp_data2=0 x00,0 x00。/读出温

34、度暂放uchar data display5=0 x00,0 x00,0 x00,0 x00,0 x00。/显示单元数据,共4 个数据和一个运算暂用/*名称 :delay()*功能 :延时,延时时间大概为140US.*输入 :无*输出 :无*/void delay_1()int i,j。for(i=0。i=10。i+)for(j=0。j=2。j+)。/*名称 :delay()*功能 :延时函数*输入 :无*输出 :无*/void delay(uint N)int i。for(i=0。iN。i+)。/*名称 :Delay_1ms()*功能 :延时子程序,延时时间为 1ms*x*输入 :x(延时一

35、毫秒地个数)*输出 :无*/精选学习资料 -名师归纳总结-第 20 页,共 27 页void Delay_1ms(uint i)/1ms延时uchar x,j。for(j=0。ji。j+)for(x=0。x=148。x+)。/*名称 :Reset()*功能 :复位 DS18B20*输入 :无*输出 :无*/uchar Reset(void)uchar deceive_ready。DQ=0。delay(29)。DQ=1。delay(3)。deceive_ready=DQ。delay(25)。return(deceive_ready)。/*名称 :read_bit()*功能 :从 DS18B20

36、读一个位值*输入 :无*输出 :从 DS18B20 读出地一个位值*/uchar read_bit(void)uchar i。DQ=0。DQ=1。for(i=0。i3。i+)。return(DQ)。/*名称 :write_bit()*功能 :向 DS18B20 写一位*输入 :bitval(要对 DS18B20 写入地位值)*输出 :无精选学习资料 -名师归纳总结-第 21 页,共 27 页*/void write_bit(uchar bitval)DQ=0。if(bitval=1)DQ=1。delay(5)。DQ=1。/*名称 :read_byte()*功能 :从 DS18B20 读一个字节

37、*输入 :无*输出 :从 DS18B20 读到地值*/uchar read_byte(void)uchar i,m,receive_data。m=1。receive_data=0。for(i=0。i8。i+)if(read_bit()receive_data=receive_data+(m high)pp=low。low=high。high=pp。while(!key02)。delay(400)。while(!key02)。/*门限值减1*/void key3()while(key03=0)delay(400)。if(key03=0)if(st=3)low=low-1。if(st=2)high

38、=high-1。if(lowhigh)pp=low。low=high。high=pp。while(!key03)。delay(400)。精选学习资料 -名师归纳总结-第 23 页,共 27 页while(!key03)。/*上限温度显示*/void high1()uchar k。display0=high%10。display1=high/10。display2=10。/个位熄灭display3=12。/百位显示H for(k=0。k4。k+)discan=scan_conk。disdata=dis_7displayk。delay(300)。disdata=0 x00。delay(100)。/

39、*uchar code table10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f。uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09。/温度小数部分用查表法uchar code dis_715=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x67,0 x00,0 x40,0 x

40、76,0 x38,0 x39。/共阴 LED 段码表 0 1 2 3 4 5 6 7 8 9 不亮 -H L C uchar code scan_con4=0 x08,0 x04,0 x02,0 x01。/列扫描控制字uchar data temp_data2=0 x00,0 x00。/读出温度暂放uchar data display5=0 x00,0 x00,0 x00,0 x00,0 x00。/显示单元数据,共4 个数据和一个运算暂用/*下限温度显示*/void low1()uchar ki。display0=low%10。display1=low/10。display2=10。/个位熄灭

41、精选学习资料 -名师归纳总结-第 24 页,共 27 页display3=13。/百位显示Lfor(ki=0。ki=high|temp=low)beep=1。beep1=1。else beep=0。beep1=0。/*名称 :write_byte()*功能 :向 DS18B20 写一个字节*输入 :val(要对 DS18B20 写入地命令值)*输出 :无*/void write_byte(uchar val)uchar i,temp。for(i=0。i i。temp=temp&0 x01。write_bit(temp)。delay(5)。void work_temp()Reset()。writ

42、e_byte(jump_ROM)。write_byte(start)。精选学习资料 -名师归纳总结-第 25 页,共 27 页Reset()。write_byte(jump_ROM)。write_byte(read_EEROM)。TMPL=read_byte()。TMPH=read_byte()。temp=TMPL/16+TMPH*16。P0=tabletemp/10%10。P2=0 x01。Delay_1ms(5)。P0=tabletemp%10。P2=0 x02。Delay_1ms(5)。/*名称 :Main()*功能 :主函数*输入 :无*输出 :无*/void main()P2=0 x00。while(1)key11()。/查询模式切换键是否按下switch(st)/进入不同模式case 1:work_temp()。BEEP()。break。case 2:high1()。/显示上限温度key2()。key3()。break。case 3:low1()。/显示下限温度精选学习资料 -名师归纳总结-第 26 页,共 27 页 key2()。key3()。break。/*结束*/精选学习资料 -名师归纳总结-第 27 页,共 27 页

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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