欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年多机温度检测 .pdf

    • 资源ID:34252537       资源大小:488.80KB        全文页数:29页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年多机温度检测 .pdf

    河南理工大学单片机应用与仿真训练设计报告多机温度检测系统设计姓名:袁晓铭董新学号:310808030207 310808030202 专业班级:电信 08-2 班指导老师:胡治国刘巍所在学院:电气工程与自动化学院 2011 年 11 月 18 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 2 摘要本设计采用 2 片单片机,组成多机温度检测系统;上位单片机采集温度,通过串行通信传送至下位单片机;下位单片机用数码管显示温度大小。以 AT89S52单片机为控制核心,利用新型一线制温度传感器 DS18B20 实现环境温度的检测和报警, DS18B20 采用外部电源供电,传感器输出引脚直接和单片机相连。 DS18B20温度传感器具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。系统硬件电路包括传感器数据采集、温度显示、模式选择、上、下限报警主电路等。电路支持模式选择功能,可以选择设定报警极限值或显示当前温度值。当被测温度越限时, 报警主电路产生光报警。 拨动开关可以对设定报警极限值进行写保护。系统测温基本范围0100;精度误差小于0.5 ;可以任意设定温度的上下限报警功能。该系统精度高、测温范围广、报警及时,可广泛应用于基于单片机的测温报警场合。系统抗干扰性强、设计灵活方便,适合在恶劣的环境下进行温度测量。关键字: AT89S52 ;DS18B20 温度传感器;共阴极LED显示;报警名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 3 目录摘要 . - 1 - 1.概述. 4 1.1 设计目的 . 4 1.2 设计要求 . 4 1.3 设计任务 . 4 2.系统总体方案及硬件设计 . 5 2.1 系统概述 . 5 2.2 总体方案说明 . 5 2.3 总体方框图 . 6 2.4 系统各部分硬件电路设计. 6 2.4.1 AT89S52 单片机及最小相系统. 6 2.4.2 复位电路设计 . 7 2.4.3 时钟晶振电路 . 8 2.4.4 显示电路 . 8 2.4.5 数字温度传感器 DS18B20 . 9 3.系统软件设计 . 13 3.1 主程序方案 . 13 3.2 DS18B20的相处理子程序 . 14 3.2.1 DS18B20初始化 . 14 3.2.2 DS18B20的写操作 . 15 3.2.3 DS18B20的读操作 . 16 4.Proteus软件仿真 . 18 4.1 系统仿真环境 . 18 4.2 器件参数选取 . 18 4.3 仿真结果 . 18 5.课程设计体会 . 20 参考文献 . 21 附件 1:源程序代码 . 22 附件 2:系统原理图 . 29 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 29 页 - - - - - - - - - 4 1.概述1.1 设计目的采用 2 片单片机,组成多机温度检测系统单片机。使用AT89S52 和温度传感器 DS18B20 实现基本范围 0-110的测量,显示精度误差小于0.5,用 4位 LED 数码直接读出温度。可以任意设置温度的上下限,当所设置的温度高于所设置的上限或低于所设置的下限时可通过发光二极管报警。1.2 设计要求 1. 采用 2 片单片机,组成多机温度检测系统; 2 . 上位单片机采集温度,通过串行通信传送至下位单片机; 3 . 下位单片机用数码管显示温度大小。 4. 基本范围 0100 5.精度误差小于 0.5 6.可以任意设定温度的上下限报警功能1.3 设计任务 1. 掌握单片机 AT89S52的基本结构及工作原理 2. 了解温度传感器DS18B20 的工作原理 3. 实现温度的测量,设置温度的上下限和报警功能 4 掌握单片机系统的分析和设计方法 5 掌握仿真软件与编译软件的使用方法名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - 5 2.系统总体方案及硬件设计2.1 系统概述多机温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。本设计运用主从分布式思想,由上位机,下位机多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统。该系统采用 RS-232 串行通讯标准,通过上位机控制下位机进行现场温度采集。温度值由下位机单独工作, 实时显示当前各点的温度值,对各点进行控制。上位机采用的是单片机基于数字温度传感器DS18B20的系统。 DS18B20 利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络, 系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、 楼宇自动化系统、 温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械等。主控单元采用 AT89S52八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20 控制工作, 还可以与 PC机通信 . 运用主从分布式思想,由一台上位机, 下位机多点温度数据采集, 组成两级分布式多点温度测量的巡回检测系统 , 实现远程控制。另外 AT89S52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。2.2 总体方案说明该数字温度计由电源电路、晶振电路、复位电路、下载电路、单片机、数字显示电路、温度测量电路、报警电路和控制电路组成。可以实现基本范围0-100的测量和任意设置温度的上下限,当所设置的温度高于所设置的上限或低于所设置的下限时可通过发光二极管报警。当开关处于开的状态时才可实现上述功能,否则不可实现。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - 6 2.3 总体方框图图 1 总体框图2.4 系统各部分硬件电路设计2.4.1 AT89S52单片机及最小相系统AT89S52是一种低功耗、高性能CMOS8 位微控制器,具有8K 在系统可编程Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。 片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位 CPU 和在系统可编程Flash ,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k 字节 Flash ,256 字节 RAM ,32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个16 位定时器 / 计数器,一个6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM 、定时器/ 计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。单片机控制系统LED 显示电路报警显示电路温度传感电路复位电路时钟电路按 键 控 制电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 29 页 - - - - - - - - - 7 图 2 AT89S52最小相系统2.4.2 复位电路设计MCS-52 单片机通常采用上电自动复位、按钮电平复位、外部脉冲复位、上电+按钮电平复位、程序运行监视复位等方式。AT89S52需要外加复位电路,本设计采用按键+上电复位,上电复位是利用电容充电来实现的, 即上电瞬间 RST/Vpd端的电位与 Vcc相同,随着充电电流的减少,最后被嵌位在0V,采用 10uF的 C3和 10K的 R1可以保证加在引脚上的高电平持续 2 个机器周期, 即使单片机有效地复位。按键可以随时使电路复位,当键按下时 1K的 R1和 10K的 R2串联分压使 RST为高电平,即复位。图 3 复位电路C710uFR110k名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 29 页 - - - - - - - - - 8 2.4.3 时钟晶振电路MCS-51 内部有一个用于构成震荡器的高增益反向放大器,此放大器的输入端和输出端分别是XTAL1和 XTAL2 ,在 XTAL1和 XTAL2上外接晶振可构成时钟电路。 时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。晶振频率的大小决定了单片机系统工作的快慢。本次设计采用内部方式的外部时钟接法。为达到振荡周期是12MHZ 的要求,这里要采用12MHZ 的晶振,电容 C1 、C2对频率有微调作用,故外接晶振时,C1和 C2在本设计中选择 30pF,振荡频率取 12MHz 。晶振的两个引脚分别连到XTAL1和 XTAL2振荡脉冲输入引脚。具体连接图如图 3 所示:X1CRYSTALC130pfC230pf图 4 晶振电路2.4.4 显示电路本次设计中采用共阴极数码管作为显示器。LED的驱动电路简单,使用方便,具有耗电少、成本低廉、配置简单灵活、安装方便、耐振动、使用寿命长等优点。 LED显示器与单片机的接口一般有动态显示与静态显示接口两种电路。1、静态显示方式:是指当显示器显示某一字符时,发光二极管的位选始终被选中。在这种显示方式下, 每一个 LED数码管显示器都需要一个8 位的输出口进行控制,显示稳定,提高了 CPU 的工作效率。其不足之处是占用硬件资源较多,每个 LED数码管需要独占8 条输出线。随着显示器位数的增加, 需要的 I/O 口线也将增加。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 29 页 - - - - - - - - - 9 2、动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。 对于每一位显示器来说, 每隔一段时间轮流点亮。显示器的亮度既与导通电流有关, 也与点亮时间和间隔时间的比例有关, 由于扫描速度极快, 显示效果与静态驱动相同。通过调整电流和时间参数,可以既保证亮度,又保证显示。本次设计中, 由于单片机本身提供的I/O 口有限,本次设计采用动态显示,数码管采用的是共阴极接法。用AT89S52的 P0口作段码输出时 , 驱动能力相当大,但由于输出极为漏极开路电路,驱动拉电流负载, 引脚上应外接上拉电阻。 。因此,在本次设计中我们将数码管各段加上拉电阻后接单片机P0口。我们把 P2口的输出信号直接接到数码管的位选端作为位选信号,低电平有效。图 5 显示电路2.4.5 数字温度传感器 DS18B20 本次设计的硬件电路简单,关键的地方在DS18B20, 也是最复杂难懂的。由 DALLAS 半导体公司生产的 DS18B20 型单线智能温度传感器 , 属于新一代适配微处理器的智能温度传感器, 可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326234567891RP1RESPACK-8+5V名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 29 页 - - - - - - - - - 10 DS18B20 的性能特点:采用单总线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口,无须经过其它变换电路, 直接输出被测温度值 (9 位二进制数,含符号位)测温范围为 -55-+125,测量分辨率最小为0.0625内含 64 位经过激光修正的只读存储器ROM DS18B20 在使用中不需要任何外围元件, 全部传感元件及转换电路集成在形如一只三极管的集成电路内适配各种单片机或系统机测量结果直接输出数字温度信号,以“一线总线“串行传送给CPU ,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力用户可分别设定各路温度的上、下限适应电压范围宽, 3.0 5.5V, 在寄生电源方式下可由数据线供电 DS18B20的管脚排列如图 5 所示。引脚功能如下表所示:图 6 DS18B20 表 1 DS18B20主要包括寄生电源、 温度传感器、 64 位激光 ROM 单线接口、 存放中间数据的高速暂存器(内含便笺式RAM ) ,用于存储用户设定的温度上下限值的序号 名称 引脚功能描述1 GND 地信号。2 DQ 数据输入 / 输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3 Vcc 可选择的 Vcc 引脚。当工作于寄生电源时,此引脚必须接地。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 11 TH和 TL触发器存储与控制逻辑、 8 位循环冗余校验码( CRC )发生器等七部分内部,其内部结构框图如图6 所示。图 7 DS18B20内部结构DS18B20 有 4 个主要的数据部件: 64 位激光 ROM 。64 位激光 ROM 从高位到低位依次为8 位 CRC 、48 位序列号和 8 位家族代码 (28H)组成。 温度灵敏元件。 非易失性温度报警触发器TH和 TL。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20 在 0 工作时按此寄存器中的分辨率将温度转换成相应精度的数值,C 64 位ROM 和单线接口高速缓存存 储 器 与 控 制温度传感器高 温 触 发 器低温触发器 TL 配置寄存器8 位 CRC 发生器Vdd 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 29 页 - - - - - - - - - 12 其各位定义如图所示:TM R1 R0 1 1 1 1 1 MSB DS18B20配置寄存器结构图LSB 其中, TM :测试模式标志位,出厂时被写入0,不能改变; R0 、R1 :温度计分辨率设置位,其对应四种分辨率如下表所列, 出厂时 R0、 R1置为缺省值:R0=1 ,R1=1 (即 12位分辨率), 用户可根据需要改写配置寄存器以获得合适的分辨率。配置寄存器与分辨率关系表:R0 R1 温度计分辨率 /bit 最大转换时间 /us 0 0 9 93.75 0 1 10 187.5 1 0 11 375 1 1 12 750 高速暂存存储器。 高速暂存存储器由9 个字节组成,其分配如下图所示。当温度转换命令发布后, 经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和第 1 个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。温度低位温度高位TH TL 配置保留保留保留8 位 CRC LSB DS18B20 存储器映像图MSB 温度值格式图 DS18B20 温度数据表:23 22 21 20 2-1 2-2 2-3 2-4 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 29 页 - - - - - - - - - 13 对 DS18B20的设计,需要注意以下问题: (1)对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。 编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20 的高测温分辨率时,对时序及电气特性参数要求更高。(2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20 序列号和自动排序,以减少调试和维护工作量。(3)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接 VCC 和地线,屏蔽层在源端单点接地。DS18B20 在三线制应用时, 应将其三线焊接牢固;在两线应用时,应将VCC 与 GND 接在一起,焊接牢固。若VCC脱开未接,传感器只送85.0 的温度值。(4)实际应用时, 要注意单线的驱动能力,不能挂接过多的DS18B20 ,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。图 8 DS18B20接线图3.系统软件设计3.1 主程序方案主程序调用了数码管显示程序、温度测试程MSB LSB S S S S S 26 25 24 温度测试及处理子程序开始系统初始化系统硬件测试程序串口通讯子程序温度显示子程序拨码开关扫描子程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 29 页 - - - - - - - - - 14 序、中断控制程序、单片机与PC 机串口通讯等程序。温度测试程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码的显示送数,控制系统的显示部分。中断控制程序:实现循环显示功能。串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机。图 9 主程序流程图将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和I/O 冲突即可。程序应该尽可能多的使用调用指令代替跳转指令。因为跳转指令使得程序难以看懂各程序段之间的结构关系。而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块。3.2 DS18B20 的相处理子程序3.2.1 DS18B20初始化(1) 先将数据线置高电平“ 1”。(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“ 0”。(4) 延时 750 微秒(该时间的时间范围可以从480 到 960 微秒)。(5) 数据线拉到高电平“ 1”。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 29 页 - - - - - - - - - 15 (6) 延时等待(如果初始化成功则在15 到 60 毫秒时间之内产生一个由 DS18B20所返回的低电平“ 0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若 CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480 微秒。(8) 将数据线再次拉高到高电平“1”后结束。DS18B20 初始化子程序:void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ 复位delay_18B20(8); /稍做延时DQ = 0; /单片机将 DQ 拉低delay_18B20(80); /精确延时大于 480us DQ = 1; /拉高总线delay_18B20(14); x=DQ; /稍做延时后如果 x=0 则初始化成功x=1 则初始化失败delay_18B20(20); 3.2.2 DS18B20的写操作(1) 数据线先置低电平“ 0”。(2) 延时确定的时间为15 微秒。(3) 按从低位到高位的顺序发送字节(一次只发送一位)。(4) 延时时间为45 微秒。(5) 将数据线拉到高电平。(6) 重复上( 1)到( 6)的操作直到所有的字节全部发送完为止。(7) 最后将数据线拉高。DS18B20的写程序为 : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 29 页 - - - - - - - - - 16 void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; Delay_DS18B20(5); DQ = 1; dat=1; 3.2.3 DS18B20的读操作(1)将数据线拉高“ 1”。(2)延时 2 微秒。(3)将数据线拉低“ 0”。(4)延时 15 微秒。(5)将数据线拉高“ 1”。(6)延时 15 微秒。(7)读数据线的状态得到1 个状态位,并进行数据处理。(8)延时 30 微秒。DS18B20的读程序为:unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 29 页 - - - - - - - - - 17 if(DQ) dat|=0 x80; Delay_DS18B20(4); return(dat); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 29 页 - - - - - - - - - 18 1RP1+5V4.Proteus软件仿真4.1 系统仿真环境本设计采用Proteus仿真软件进行仿真, Proteus软件是英国Labcenter electronics公司出版的 EDA工具软件。它不仅具有其它EDA工具软件的仿真功能, 还能仿真单片机及外围器件。 它是目前最好的仿真单片机及外围器件的工具。首先在 Proteus 的元件库中找到所需的元件, 按照硬件设计中的说明把各部件连接起来组成一个数字式温度计硬件系统。然后把在Keil环境调试下生成的.HEX 文件导入到AT89S52 里,点击运行符号就可以使软硬件的配套设施在Proteus 的环境下仿真实现,以检查是否存在错误。4.2 器件参数选取单片机采用 AT89C52,时钟频率为 12MHz。时钟产生电路的晶振为12MHz,接地电容为 30pF。复位电路的电解电容为10uF,与电容并联的电阻为1K,接地的电阻为 10K。LED 数码管及 DS18B20 的工作电压为 +5V。4.3 仿真结果系统原理图见附件二:此图为正常测温数码管画面图 10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 29 页 - - - - - - - - - 19 温度超下限或者超过100数码管显示 bbbb 图 11 并且此时报警电路二极管D2 亮图 12 温度超上限数码管显示图 13 超上限时报警电路二极管D1 亮图 14 RP1+5VD1LED-REDD2LED-REDR1R910k1RP1+5VD1LED-REDD2LED-REDR810kR910k名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 29 页 - - - - - - - - - 20 5.课程设计体会课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题的能力。通过这次单片机课程设计,使我们对单片机的结构、基本工作原理、单片机应用系统开发有了进一步的了解,特别是在硬件设计和软件编程方面有了很大提高。温度计的硬件设计电路简单,但由于DS18B20,软件设计复杂,需要搞清其工作原理,时序。在设计的过程中,通过请教同学,上网或上图书馆查资料将这些问题解决。学到了很多在书本上未涉及的知识,锻炼了搜集有用信息的能力。 软件编程过程中,由于采用 C 语言编程,而我们以前从未涉足,所以参考了别人的设计思路,琢磨研究弄懂后, 又试着修改程序, 在不满足要求时反复思考, 究竟出错在哪里,经过不懈努力,找出错误所在,最终满足了要求。在编译仿真时对软件Keiv uVision4.0 和 Proteus认识更多,发现了Proteus的很多优点,同时也发现它的不足之处,过于理想化,如果完全依赖,则硬件有可能无法工作。在焊接电路的过程中, 因为芯片管脚多,一定认真仔细查看引线连接,稍不注意就有可能接错, 导致电路无法正常工作。 此次焊接过程中就因为一条引线正负极性接反,给最后调试带来很多困难。另外,虽然已有多次焊接经验但在焊接的过程中仍然避免不了虚焊现象的出现,不过经两人合作用万用表仔细排查找到错误并加以改正,但过程很麻烦。所以下次一定要注意正确的焊接方式。本次设计由两人共同完成, 也培养了我们的团队合作精神。总的来说,这次课程让我们收获很大。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 29 页 - - - - - - - - - 21 参考文献1 余发山主编 .单片机原理及应用技术 .徐州:中国矿业大学出版社.2003.12 2 白泽生. 用 MCS-51 单片机实现温度的检测 J.现代电子技术 .2005.10 3 李玉梅编著 .基于 MCS-51 系列单片机原理的应用设计.国防工业出版社4 余小平、奚大顺编著 .电子系统设计基础篇 .北京:北京航空航天大学出版社,2007.3 5 郭爱芳主编 .传感器原理及应用 .西安电子科技大学出版社.2007.5 6 http/ 7 谭浩强著 .C 语言程序设计 .清华大学出版社 .2005.7 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 29 页 - - - - - - - - - 22 附件 1:源程序代码上位机源代码#include unsigned char t=0,0,tt1=0,0,0,0,0,tt24,flag=1; unsigned char *pt; /用来存放温度值 ,测温程序就是通过这个数组与主函数通信的unsigned char code dotcode=0,25,50,75; sbit DQ = P16; sbit UP=P10; sbit DW=P11; sbit G=P12; void delay(unsigned char i) while(i-); void delay_18B20(unsigned int i) while(i-); /*ds18b20初始化函数 */ void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ 复位delay_18B20(8); /稍做延时DQ = 0; /单片机将 DQ 拉低delay_18B20(80); /精确延时大于 480us DQ = 1; /拉高总线delay_18B20(14); x=DQ; /稍做延时后如果 x=0 则初始化成功x=1 则初始化失败delay_18B20(20); /*ds18b20读一个字节 */ unsigned char ReadOneChar(void) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 29 页 - - - - - - - - - 23 unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号dat=1; DQ = 1; / 给脉冲信号if(DQ) dat|=0 x80; delay_18B20(4); return(dat); /*ds18b20写一个字节 */ void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; delay_18B20(5); DQ = 1; dat=1; /*读取 ds18b20当前温度 */ unsigned char *ReadTemperature(char TH,char TL,unsigned char RS) unsigned char tt=0,0; Init_DS18B20(); WriteOneChar(0 xCC); / 跳过读序号列号的操作WriteOneChar(0 x4E); / /写入写暂存器 命令 ,修改 TH 和 TL 和分辩率配置寄存器/先写 TH,再写 TL,最后写配置寄存器WriteOneChar(TH); /写入想设定的温度报警上限WriteOneChar(TL); /写入想设定的温度报警下限WriteOneChar(RS); /写配置寄存器 ,格式为 0 R1 R0 1,1 1 1 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 29 页 - - - - - - - - - 24 /R1R0=00 分辨率娄 9 位,R1R0=11分辨率为 12位delay_18B20(80); / this message is wery important Init_DS18B20(); WriteOneChar(0 xCC); / 跳过读序号列号的操作WriteOneChar(0 x44); / 启动温度转换delay_18B20(80); / this message is wery important Init_DS18B20(); WriteOneChar(0 xCC); /跳过读序号列号的操作WriteOneChar(0 xBE); /读取温度寄存器等(共可读9 个寄存器)前两个就是温度delay_18B20(80); tt0=ReadOneChar(); /读取温度值低位tt1=ReadOneChar(); /读取温度值高位return(tt); void init() SCON=0X40; /多机通信方式,接收允许PCON=0X00; /波特率加倍TMOD=0 x20; /定时器 1,模式 2 TH1=0 xf3; TL1=0 xf3; /定时器初值TR1=1; /启动定时器 1 void senddata(unsigned char tt2) int i; init(); for(i=0;i4;i+) SBUF=tt2i; / 写 SBUF,开始发送while(!TI); / 等待发送TI=0; /清发送标志位delay_18B20(100); void main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 29 页 - - - - - - - - - 25 unsigned char x,y; /下一步扩展时可能通过这两个变量,调节上下限unsigned int TH=100,TL=15; / 测 温 函数返回这个数组的头地址while(1) pt=ReadTemperature(TH,TL,0 x3f); /上限温度 -22,下限-24,分辨率 9 位,也就是 0.25C,TM R1 R0 1 1 1 1 1 t0=*pt; /读取温度 ,温度值存放在一个两个字节的数组中pt+; t1=*pt; t1=4; /右移 4 位x=x&0 x0f; /和前面两句就是取出t0的高四位t1=t1|x; /将高低字节的有效值的整数部分拼成一个字节tt10=(t1%100)/10; /分离出十位tt11=(t1%100)%10; /分离出个位t0=t0&0 x0c; /取有效的两位小数t0=2; /左移两位 ,以便查表x=t0; y=dotcodex; /查表换算成实际的小数tt12=y/10; /分离出十分位tt13=y%10; /分离出百分位if(G=0|UP=0|DW=0) flag=0; if(G=0) if(UP=0) TH+; if(DW=0) TH-; if(TH=100|TH=100|TL=(TH/10)&(tt11=(TH%10) tt10=10; tt11=10; tt12=10; tt13=10; if(tt10=TL/10)&(tt11=TL%10)|(tt10=TL/10) tt10=11; tt11=11; tt12=11; tt13=11; flag=1; senddata(tt1); 下位机源代码#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 29 页 - - - - - - - - - 27 #include #define uint unsigned int #define uchar unsigned char uchar code tab =0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0X88,0X83; uchar code

    注意事项

    本文(2022年多机温度检测 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开