多路智能温度测控系统设计_课程设计(编辑修改稿)内容摘要:
ial Number 的值(在该对话框下 还可以改变 Granularity的数值,即改变每次调整温度的额度 )。 在 Proteus 中,可以人为改变 3 个字节的器件序列号。 要想得到全部 8个字节,一个简单的方法就是每一次总线上只连接一个器件,利用 0x33 读器件序列号的命令在程序中得到完整的器件 序列号。 将测试序列号的程序烧入 Proteus 下 AT89C51 中, 程序中定义通信端口为 只需将 DS18B20 依次与单片机连接即可。 并在运行中点击菜单项 debug,选中watch window,按 alt+A,即出现图 1所示对话框,在 Name 项中输入 a,在 Address项中输入 0x08,点击 add,在 Watch Window 窗口中即可看到序列号低八位的值。 天津理工大学 通信工程 课程设计 12 然后依次输入 0x09— 0x0f,再点击 done 键,即可获得所有 64 位序列号。 所得序列号如图 2所示(本设计共用了两个 DS18B20)。 测试程序详见附录 1 程序中包含向 DS18B20发送一个字节 ,读取 一个字节 ,以及 DS18B20的初始化等子程序。 图 1 图 2 天津理工大学 通信工程 课程设计 13 判断 K=1。 读取 1ST DS18B20 LCD显示 读取 2ND DS18B20 LCD显示 初始化 DS18B20 开始 是 否 开始 初始化 DS18B20 跳过读序列号操作 匹配 ROM 启动温度转换 读序列号 匹配 ROM 读取温度寄存器 十 、 软件设计 软件流程图 主程序流程图 DS18B20读取温度流程图 关键模块说明 本程序由主函数 、 头文件 、 (为便于调用特将其编为 .h 文件 )三部分组成。 主函数 中 处理了由 DS18B20 采集的温度信息并交由 1602LCD 显示,并设置了 一个开关,当打开开关显示 1ST 的温度,闭合开关显示 2ND 的温度。 是 DS18B20 的驱动程序,包含了 DS18B20 的初始化函数、读写一个字节的函数、匹配 ROM 函数、温度读取函数。 是 1602LCD 的驱动程序,包含了 LCD 初始化等程序,使用时只需在主程序中调用 GotoXY()函数即可让 LCD1602 显示字母数字等信息。 具体程序见附录 2。 天津理工大学 通信工程 课程设计 14 结语总结 在本次课程设计中,我对于芯片的学习能力有了一定了提高,对于初次接触的 DS18B20 芯片能通过阅读它的数据手册了解其使用方法,并付诸于软件编程思想。 在设计中碰到了一些困难,如在实现多个 DS18B20 的单总线通信时,遇到了编程上的瓶颈,接着又在 Proteus 仿真中遇到了不会读取 DS18B20 的序列号的困难,幸而被一一克服,才得以完成本设计最终的仿真实现。 第一次亲自动手编写此类较为冗长的程序,将所学的 C 语言运用到实际,才发现实践总是高于理论的,在实际应用中总会出现困难。 在完成本设计后,本人感觉工程设计能力有较大的提升,培养了系统的思维能力,总之得到了很好的锻炼。 参考文献 唐颖 . 单片 机原理与应用及 C51 程序设计 .北京:北京大学出版社, 2020 周润景 .张丽娜 .基于 Proteus 的电路及单片机系统设计与仿真 .北京:北京航空航天大学出版社, 2020 天津理工大学 通信工程 课程设计 15 附录 1 DS18B20 ROM 系列号测试程序 include sbit DQ = P1^1。 //定义通信端口 unsigned char a[8]。 //延时程序 void delay_18B20(unsigned int i) { while(i)。 } //初始化函数 Init_DS18B20(void) { unsigned char x=0。 DQ = 1。 //DQ 复位 delay_18B20(4)。 //稍做延时 DQ = 0。 //单片机将 DQ 拉低 delay_18B20(100)。 //精确延时 大于 480us DQ = 1。 //拉高总线 delay_18B20(40)。 } //读一个字节 ReadOneChar(void) { unsigned char i=0。 unsigned char dat = 0。 for (i=8。 i0。 i) { DQ = 0。 // 给脉冲信号 dat=1。 DQ = 1。 // 给脉冲信号 if(DQ) dat|=0x80。 delay_18B20(10)。 } return(dat)。 } 天津理工大学 通信工程 课程设计 16 //写一个字节 WriteOneChar(unsigned char dat) { unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。 0x01。 delay_18B20(10)。 DQ = 1。 dat=1。 } } void main(void) { unsigned char i。 Init_DS18B20()。 WriteOneChar(0x33)。 for(i=0。 i8。 i++) a[i]=ReadOneChar()。 //将 Rom 序列号存入 a[]中 }。多路智能温度测控系统设计_课程设计(编辑修改稿)
相关推荐
为契机,变压力为 动力,化挑战为机遇,坚定不移推进全面建设小康社会进程。 前进过程中,我们战胜突如其来的非典疫情,认真总结我国发展实践,准确把握我国发展的阶段性特征,及时提出和全面贯彻科学发展观等重大战略思想,开拓了经济社会发展的广阔空间。 二 〇〇 八年以后,国际金融危机使我国发展遭遇严重困难,我们科学判断、果断决策,采取一系列重大举措,在全球率先实现经济企稳回升
容 , 差分输入电压可以大于 Vcc并不损坏器件 .保护部分必须能阻止输入电压向负端超过。 LM393的输出部 分是集电极开路 ,发射极接地的 NPN输出晶体管 ,可以用多集电极输出提供或 OR ing 功能。 输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上 ,不受 Vcc端电压值的限制。 此输出能作为一个简单的对地 SPS开路 (当不用负载电阻没被运用 )
十秒后使得三极管导通,即三十秒内没有选手抢答信号灯亮;当有选手抢答时,三极管导通,信号灯亮。 电路图如下: 图 附 26 共阴数码管引脚图 图 附 27 555 定时器引脚图 总体电路设计 抢答器的使用原理。 首先是各个选手分别对应的按钮编号是 S0、 S S S S S S S7,抢答后显示器上显示的分别是 0、 7。 然后是主持人对整个电路系统清零,将开关置于“清零”的位置,输出低电平
两个自由度的回转驱动的腕部结构。 它使腕部具有水平和垂直转动的两个自由度。 (4) 机 液结合的腕部结构。 腕部结构和驱动机 构的选择 本设计要求手腕回转 0180 ,综合以上的分析考虑到各种因素,腕部结构选择具有一个自由度的回转驱动腕部结构,采用液压驱动。 腕部的设计计算 1. 腕部设计考虑的参数 夹取工件重量 30Kg ,回转 0180。 2. 腕部的驱动力矩计算 ( 1) 腕部的驱动力矩
问题和经济关系,按照经典博弈的类型和特征进行系统地分类,这样就可以根据相应的经典博弈的分析方法和模式来进行研究,并将一个领域所取得的经验运用到另一个领域。 就如本文中的古诺模型和斯坦克伯格模型的研究方法是不同的,并且将双寡头的研究结论推广到多寡头的研究。 纳什均衡理论的扩展 这样,纳什均衡理论就加强了经济学与其他社会科学和自然科学的联系。 就如纳什均衡可以应用于数学
于其他用户是否要传输数据的准确信息。 当多个准备传输的用户同时开始传输时,所有的传输多半都会失败。 随机多地址接入协议可以分为两类:一类是重复随机多地址接入协 议,如 ALOHA 协议,时隙ALOHA( slottedALOHA),载波监听 ALOHA( CSMA),以及带有集中控制的 ALOHA( ISMA)。 另一类是带有保留的随机接入协议,如带保留的 ALOHA( rALOHA)