收藏 分享(赏)

单片机温度采集与显示.doc

上传人:精品资料 文档编号:10814691 上传时间:2020-01-11 格式:DOC 页数:25 大小:1.25MB
下载 相关 举报
单片机温度采集与显示.doc_第1页
第1页 / 共25页
单片机温度采集与显示.doc_第2页
第2页 / 共25页
单片机温度采集与显示.doc_第3页
第3页 / 共25页
单片机温度采集与显示.doc_第4页
第4页 / 共25页
单片机温度采集与显示.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、单片机课程设计第 1 页 共 25 页1、课程设计目的(1)利用单片机及相应温度传感器设计单检测节点或多检测节点数字温度计(2)精度误差:0.5 摄氏度以内;测温范围:10-50 摄氏度(3)LED 数码管或 LCD 直接显示(4)完成对设计系统测试2、数字温度计正文 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,本文主要介绍了一个基于 89C52 单片机的测温系统,详细描述了利用数字温度传感器DS18B20 开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行介绍

2、,该系统可以方便的实现温度采集和显示,并可根据需要任意设定上下限报警温度,使用起来相当方便,适合于我们日常生活和嵌入其它系统中,作为其 AT89C52 结合最简温度检测系统,该系统恶劣环境下进行现场温度测量,有广泛的应用前景。本文将介绍一种基于单片机往制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。关键词:单片机,数字控制,温度计,DSIBB20, AT89C522.1 引言随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(

3、即传感器技术)、信息传输(通信技术)和信息处理(计算机技构中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域己经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段传统的分立式温度传感器模拟集成温度传感器智能温度传感器目前的智能温度传感器(亦称数字温度传感器)是在 20 世纪 90 年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据

4、及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器 DS18B20 的结构特征及控制方法,并对以此传感器,AT89C52 单片机为控制器构成的数字温度测量装置的工单片机课程设计第 2 页 共 25 页作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要

5、用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用 ATMBL 公司的 AT89C52 单片机,测温传感器使用 DALLAS 公司 DS18B20,用液晶来实现温度显示。2.2 系统方案论证该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出一种在日常生活中和工农业生产中经常用到的实现方案:2.2.1 系统设计方案数字温度芯片 DS18B20 测量温度,输出信号全数字化.便于单片控制,省去传统的测温方法的很多外围电路。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计 DS18B20 和微控制器 AT89C52 构成的温度测量装置,它直接输

6、出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单体积也不大。采用 51 单片机控制,软件编程的自由度大,可通过控制工作,还可以与 PC 机通信上传数据,另外AT89C52 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用 AT89C52 芯片控制温度传感器 DS18B20 进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度该系统扩展性非常强,它可以在设计中加入时钟芯片 DS1302 以获取时间数据,在数据处理同时显示时间,并可以利用 AT24C16 芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用

7、键盘来进行调时和温度查询,获得的数据可以通过 MAX232 芯片与计算机的 RS232 接口进行串口通信,方便的采集和整理时间温度数据。2.2.1.1 数字温度计设计方案论证由于本设计是测温电路,可以使用温度传感器利用其感温效应,在将随被测温度变化的电压或电流采集过来,在其内部进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,将被测温度显示出来,这种设计不需要用到 A/D 转换电路,感温电路比较容易,所以采用了温度传感器 DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。2.2.2 方案的总体设计框图温度计电路设计总体设计方框图如图 1 所示

8、,控制器采用单片机 AT89C52,温度传感器采用 DS18B20,用3 位 LED 数码管以串口传送数据实现温度显示。单片机课程设计第 3 页 共 25 页单片机 温度传感器 LED 显示温度时钟震荡 温度报警单片机复位图 l 总体设计方框图2.3 系统器件的选择和性能介绍2.3.1 单片机的性能介绍AT89C52 单片机为 40 引脚双列直插式封装。引脚排列和逻辑符号如图 2 所示:各引脚功能简单介绍VCC:供电电压GND:接地P0 口:P0 口为一个 8 位漏级开路双向 1/O 口,每个管脚可吸收 8TTL 门电流。当 P1 口的管脚写“1”时,被定义为高阻态输入。PO 能够用于外部程序

9、数据存储器,它可以被定义为数据地址的第八位. 在 FLASH 编程时,PO 口作为原码输入口,当 FLASH 进行校验时,PO 输出原码,此时 PO 外部电位必须被拉高P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 1/0 口,P1 口缓冲器能接收输出 4TTL 门电流.P1 口管脚写入“1“后,电位被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。图 2 AT89C52 单片机引脚图单片机课程设计第 4 页 共 25 页P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,

10、P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2 口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。当 P2 口用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入,“1

11、”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3 口将输出电流(ILL),也是由于上拉的缘故,P3 口也可作为 AT89C52 的一些特殊功能口:P3.0 RDX(串行输入口)P3.1 RDX(串行输出口)P3.2 INTO(外部中断 0)P3.3 INTO(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 Tl(记时器 1 外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通) 同时 P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。A

12、LE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,Al 王端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部偷出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFRBEH 地址上置 0。此时,ALE 只有在执行 MOVX 或 MOVC 指令时ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。PSEN: 外部程序存储器的选通信号。在由外部程序存储器取址期间,每个

13、机器周期 PSEN 两次有效。但在访问外部数据存储器时,这两次有效的 PSEN 信号将不出现.EA/VPP:当 EA 保持低电平时,访问外部 ROM;注意加密方式 1 时,EA 将内部锁定为 RESET;当 EA 端保持高电平时,访问内部 ROM。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入XTAL2:来自反向振荡器的输出。2.3.2 温度传感器的选择和性能介绍单片机课程设计第 5 页 共 25 页这里采用 DALLAS 公司的数字温度传感器 DS18B20 作为测温元件2.3.2.1 DS18B20 性能介绍

14、DALLAS 最新单线数字温度传感器 DS18B20 是一种新型的“一线器件” ,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器 DS18B20 是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为 9 位12 位转换精度,测温分辨率可达0.0625 摄氏度,分辨率设定参数以及用户设定的报警温度存储在 EEPROM 中,掉电后依然保存。被测温度用符号扩展的 16 位数字量方式串行输出:其工作电源既可以在远端引入,也可以采用寄生电源方式产生:多个 DS18B20 可以并联到 3 根或 2 根线上,CPU

15、只需一根端口线就能与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20 的性能特点如下:独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内适应电压范围更宽,电压范围:3.0-5.5V,在寄生电源方式下可由

16、数据线供电测温范围-55+125,在-10+85时精度为+/-0.5零待机功耗可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625,可实现高精度测温在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快用户可定义报警设置报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件测量结果直接输出数字温度信号,以“一线总线”串行传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使 DSI

17、SB20 非常适用与多点、远距离温度检测系统。DSISB20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的管脚排列、各种封装形式如图 4.2 所示,DQ 为数据输刀输出引脚.开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GDN 为地信号;VDD 为可选择的 VDD 引脚。当工作于寄单片机课程设计第 6 页 共 25 页生电源时,此引脚必须接地。其电路图 3 所示:图 3 外部封装形式和传感器电路图2.3.2.2 DS18B20 使用中的注意事项DS18B20 虽然具有测温系统简单、测温精度高

18、、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示 85。在实际使用中发现,应使电源电压保持在 5V 左右,若电源电压过低,会使所测得的温度精度降低。较小的硬件开销需要相对复杂的软件进行补偿,由于 DS1820 与微处理器间采用串行数据传送,因此,在对 DS1820 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果在使用 PL/M、C 等高级语言进行系统程序设计时,对 DS1820 操作部分最好采用汇编语言实现。在 DS18B20 的

19、有关资料中均未提及单总线上所挂 DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂 DS18B20 超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。在 DS18B20 测温程序设计中,向 DS18B20 发出温度转换命令后,程序总要等待 DS18B20 的返回信号,一旦某个 DS18B20 接触不好或断线,程序读该 DS18B20 时,将没有返回信号,程序进入死循环,这一点接和软件设计时也要给予一定的重视。2.3.2.3 DS18B20 内部结构单片机课程设计第 7 页 共 25 页图 4 为

20、DS18B20 的内部框图,它主要包括寄生电源、温度传感器、64 位激光 ROM 单线接口、存放中间数据的高速暂存器(内含便笺式 RAM),用于存储用户设定的温度上下限值的 TH 和 TL 触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。DS18B20 采用 3 脚 PR-35 封装或 8 脚 SOIL 封装,其内部结构框图如图 4 所示:图 4 DS18B20 内部结构64 位 ROM 的结构开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个 DS18320 可以采用一线进行通信的原因。温度报

21、警触发器 TH 和 TL,可通过软件写入报警上下限。DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为 8 字节的存储器,结构如图 3 所示。头 2 个字节包含测得的温度信息,第 3 和第 4 字节 TH 和TL 的拷贝,是易失的,每次上电复位时被刷新。第 5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20 工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图 5 所示。低 5 位一直为 1,TM 是工作模式位,用于设置 DS18B20 在工作模式还是在测试模式,DS

22、18B20 出厂时该位被设置为 0,用户要去改动,R1 和 RO 决定温度转换的精度位数,来设置分辨率。单片机课程设计第 8 页 共 25 页图 5 DS18B20 字节定义 表 1 DS18B20 温度转换时问表由表 1 可见,DS18B20 温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存 RAM 的第 6、7, 8 字节保留未用,表现为全逻辑 1。第 9 字节读出前面所有 8 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以

23、 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1、2 字节。单片机可以通过单线接口读出该数据读数据时低位在先,高位在后,数据格式以 0.0625/ LSB 形式表示。表 2 LSB 和 MSB 的位定义当符号位 S=0 时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位 S=1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表 3 是一部分温度值对应的二进制温度数据。DS18B20 完成温度转换后,就把测得的温度值与 RAN 中的 TH, T L 字节内容作比较。若 T TH 或 T=1;delay(4);2.5.2.4 DS18B20 读

24、 1 字节程序读时间时序:当从 DS18B20 读数据时,主机生成读时间隙。当主机把数据从高电平拉到低电平时,写时间隙开始,数据线必领保持至少 1us;从 DS18B20 输出的数据在读时间隙的下降沿出现后 15us 内有效.因此,主机在读时间隙开始后必须把 I/O 脚驱动拉为的电平保持 l5us,以读取 I/O 脚状态。在读时间隙的结尾,I/O 引脚将被外部上拉电阻拉到高电平。所有读时间隙必须最少 60us,包括两个读周期至少 1us 的恢复时间。读数据流程图见图 10。源程序:从总线上取 1 个字节int read_byte1() /读一个字节for(k=0;k=1;DQ1=1; /释放总

25、线if(DQ1)value=value|0x80;delay(4);return value;单片机课程设计第 16 页 共 25 页图 10 读数据流程图 图 9 写命令流程图2.5.2.5 读温度子程序读出温度子程序的主要功能是读出 RAM 中的 9 字节,在读出时需进行 CRC 校验,校验有错时不进行温度数据的改写。把读到的数据分别转化成整数部分和小数部分。当符号位为 1,即温度为零下时,进行报警程序。其程序流程图如图 11 所示.源程序:int read_temperature1() /读温度函数init1();write_byte1(0xcc); /跳过 ROM 命令write_by

26、te1(0x44); /写转换指令单片机课程设计第 17 页 共 25 页delay(300);init1();write_byte1(0xcc);write_byte1(0xbe); /写读温度指令LSB=read_byte1();MSB=read_byte1();ss=MSBif(ss=0x00)MSB4; /整数部分elseDP=0;delay(50);DP=1;P2=7;P0=table0;MSB=0x00;return MSB;单片机课程设计第 18 页 共 25 页图 11 读温度程序流程图2.5.2.6 温度数据处理程序温度数据处理部分在硬件上使用 74HC373 锁存器和 74

27、LS138 译码器分别控制段选和位选,利用动态显示。好处是 LED 数码管数量大时,电路简单。而软件部分则通过向 74LS138 译码器发送信号选中某个 LED 后再将相应的数据发给 74HC373 锁存器进行显示。本设计运用了 5 个 LED,其中第 1 个为两个 DS18B20 的序号,第 2 个显示“” ,后三个为温度,其中最后一位为小数部分。如当前 1 号 DS18B20 所测得的温度为 30.5,则显示“130.5” 。而且,当温度不在 1050之间时,蜂鸣器响且灯亮。源程序:void display1() /显示函数while(MSB50)DP=0;delay(50);DP=1;P

28、2=7;P0=table0;read_temperature1();P2=4;P0=0x40;单片机课程设计第 19 页 共 25 页delay_50us(5);P2=5;P0=tabletemp/10+1;delay_50us(5);P2=6; /整数部分显示P0=tabletemp%10+1|0x80;delay_50us(5);LSB=LSBP2=7;P0=tableLSB%10+1; /小数部分显示delay_50us(5);2.5.3 整体源程序#includesbit DQ1=P13;sbit DQ2=P14;/温度输入口sbit DP=P12;int table=0xff,0x3

29、f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,i,k,value,MSB,LSB,temp,ss,w1,w2,w3,w4;void delay_50us(int m)int j;for(;m0;m-)for(j=5;j0;j-);void delay(int t)while(t-);/*DS18B20 复位函数*/void init1()DQ1=1;delay(8);DQ1=0;delay(80); /大约 600u 秒,在 12M 晶振下DQ1=1;delay(15);单片机课程设计第 20 页 共 25 页/*DS18B20 写命令函数*/向

30、 1-WIRE 总线上写 1 个字节void write_byte1(int dat) /写一个字节for(i=0;i=1;delay(4);/*DS18B20 读 1 字节函数*/从总线上取 1 个字节int read_byte1() /读一个字节for(k=0;k=1;DQ1=1; /释放总线if(DQ1)value=value|0x80;delay(4);return value;/*读出温度函数 */int read_temperature1() /读温度函数init1();write_byte1(0xcc); /跳过 ROM 命令write_byte1(0x44); /写转换指令de

31、lay(300);init1();write_byte1(0xcc);write_byte1(0xbe); /写读温度指令LSB=read_byte1();MSB=read_byte1();ss=MSBif(ss=0x00)MSB4; /整数部分?elseDP=0;delay(50);DP=1;P2=7;P0=table0;MSB=0x00;return MSB;/*温度数据处理函数 */void display1() /显示函数while(MSB50)DP=0;delay(50);DP=1;P2=7;P0=table0;read_temperature1();P2=4;P0=0x40;del

32、ay_50us(5);P2=5;P0=tabletemp/10+1;delay_50us(5);P2=6; /整数部分显示P0=tabletemp%10+1|0x80;delay_50us(5);LSB=LSBP2=7;P0=tableLSB%10+1; /小数部分显示delay_50us(5);/*DS18B20 复位函数*/void init2()DQ2=1;delay(8);DQ2=0;delay(80); /大约 600u 秒,在 12M 晶振下DQ2=1;delay(15);/*DS18B20 写命令函数*/向 1-WIRE 总线上写 1 个字节void write_byte2(in

33、t dat) /写一个字节单片机课程设计第 22 页 共 25 页for(i=0;i=1;delay(4);/*DS18B20 读 1 字节函数*/从总线上取 1 个字节int read_byte2() /读一个字节for(k=0;k=1;DQ2=1; /释放总线if(DQ2)value=value|0x80;delay(4);return value;/*读出温度函数 */int read_temperature2() /读温度函数init2();write_byte2(0xcc); /跳过 ROM 命令write_byte2(0x44); /写转换指令delay(300);init2();

34、write_byte2(0xcc);write_byte2(0xbe); /写读温度指令LSB=read_byte2();MSB=read_byte2();ss=MSBif(ss=0x00)MSB4; /整数部分?else单片机课程设计第 23 页 共 25 页DP=0;delay(50);DP=1;P2=7;P0=table0;MSB=0x00;return MSB;/*温度数据处理函数 */void display2() /显示函数while(MSB50)DP=0;delay(50);DP=1;P2=7;P0=table0;read_temperature2();P2=4;P0=0x40;

35、delay_50us(5);P2=5;P0=tabletemp/10+1;delay_50us(5);P2=6; /整数部分显示P0=tabletemp%10+1|0x80;delay_50us(5);LSB=LSBP2=7;P0=tableLSB%10+1; /小数部分显示delay_50us(5);void main()DP=1;while(1)for(w1=0;w15;w1+)for(w2=0;w250;w2+)init1();P2=3;P0=0x06;temp=read_temperature1();display1();单片机课程设计第 24 页 共 25 页for(w3=0;w35

36、;w3+)for(w4=0;w450;w4+)init2();P2=3;P0=0x5b;temp=read_temperature2();display2();3、课程设计总结经过将近两周的单片机课程设计,终于完成了我的数字温度计的设计。在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事。比如,时序问题,尤其是 DS18B20 的时序与单片机的时序结合,真的很不容易,若不是反反复复的看DS18B20 的时序要求和介绍,直至真正弄懂

37、,程序是写不出来的。再比如说,通过查阅资料知道,DS18B20 支持单总线协议,可以通过将多个 DS18B20 并联到 1 根线上,实现 CPU 只需一根端口线就能与诸多 DS18B20 通信,占用较少的微处理器的端口就可以实现多点测温监控系统。但我曾尝试着通过编程找到了 2 个 DS18B20 的序列号,也编写了序号匹配函数(mach 函数) ,但没行通,这也让我明白理论和实际的差距。但总体来说,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。所以从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学

38、的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的读与写的过程中才能提高,这就是我在这次课程设计中的最大收获。同时,也要细细的阅读资料,尤其是没学过的芯片。最后,还要感谢吴开兴老师,在设计期间吴老师的指导和建议给了我们很大帮助。4、参考文献1李朝青.单片机原理及接口技术简明修订版). 杭州: 北京航空航天大学出版社, 19982李广弟.单片机*MB rmi.北京: 北京航空航天大学出版社,19943孙育才.单片机微型计算机及其应用.东南大学出版社, 20044沈德金,陈粤初.单片机接口电路与应用称序实例.北京航天航空大学出版社, 1990.单片机课程设计第 25 页 共 25 页5李广弟.单片机基础M.北京 :北京航空航天大学出版杜,1994课程设计评 语课程设计成 绩指导教师(签字) 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报