数字温度计DS18B20_第1页
数字温度计DS18B20_第2页
数字温度计DS18B20_第3页
数字温度计DS18B20_第4页
数字温度计DS18B20_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要随着现代信息化技术的飞速发展和传统工业改造的逐步实现,能独立工作的温度检测系统已广泛应用于各种不同的领域。本文介绍了一个基于89C51单片机和数字温度传感器DS18B20的测温系统,并用LED数码管显示温度值,易于读数。重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中。关键词:温度测量;DS18B20;

2、AT89C51;温度计目录绪论11 设计背景21.1课题背景21.2设计内容22 总体方案设计32.1 方案选择32.2 系统原理32.3 总体设计框图43 系统硬件设计53.1 主控制器选择53.2 显示电路73.3 温度传感器简介73.4 DS18B20温度传感器与单片机的接口电路123.5 时钟电路123.6 复位电路133.7系统总体电路图144 软件设计154.1 C语言简介154.2程序编译软件keil介绍164.3温度数据采集164.4主程序设计174.5 复位子程序设计194.6 读写程序设计195电路仿真215.1 Proteus软件介绍215.2 智能温度计Ptoteus仿

3、真21总结23参考文献24附录:源程序代码25绪论随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,各种数字系统的应用也使人们的生活更加舒适。数字化控制、智能控制为现代人的工作、生活、科研等方面带来方便。其中数字温度计就是一个典型的例子。 数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温精确、功能多样话等优点。其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用AT89C51单片机作控制器,数字温度传感器DS18B20测量温度,单片机接受传感器输出,经处理用LED数码管实现温度值显示。温度的测量对人类日常生活、工业生产、

4、气象预报、物资仓储等都起着极其重要的作用,因此研究温度的测量方法和装置具有重要的意义。近年来,温度检测领域发展迅速,并且随着数字技术的发展,温度的测控芯片也相应的登上历史 的舞台,能够在工业、农业等各个领域中广泛使用。温度的测量的关键之处是温度传感器,其往往决定着一个温度检测系统的性能。传统的温度检测以热敏电阻和AD590为温度敏感元件。热敏电阻虽成本低, 但需信号处理电路,电路复杂,可靠性较低,测温准确度及抗干扰能力也有一定的不足。近年来,传感器正处于传统型向新型传感器转型的发展阶段。新型的温度传感器的特点是微型化、数字化、智能化、多功能化、系统化、网络化,它提高了抗干扰能力和可靠性,而且使

5、系统结构更简洁,维护方便,缩小了空间。单片机具有集成度高、功能强、体积小、价格低、抗干扰能力等优于一般CPU的优点,因此往往采用单片机作为数字控制器取代模拟控制器。1 设计背景1.1 课题背景温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,

6、对相关企业资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。1.2 设计内容本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:(1)利用温度传感器(DS18B20)测量某一点环境温度;(2)测量范围为-5599,精度为±0.5;(3)用LED进行实际温度值显示。2 总体方案设计2.1 方案选择考虑到在单片机属于数字系统,容易想到数字温度传感器,可选用DS18B20数字温度传感器,此传感器为单总线数字温度传感器,体积小、构成的系统结构简单,它可直接将温度转化成串

7、行数字信号给单片机处理,即可实现温度显示。另外DS18B20具有3引脚的小体积封装,测温范围为-55+125摄氏度,测温分辨率可达0.0625摄氏度,其测量范围与精度都能符合设计要求。采用51单片机控制软件编程的自由度大,而且体积小,硬件实现简单,安装方便。2.2 系统原理由于单片机具有以下的很多优点,被我们选定为制作该作品的首选芯片。单片机特点:(1)高集成度,体积小,高可靠性 单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的。芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的CPU。单片机程序指令,常数及表格等固化在ROM中不易破坏,许多

8、信号通道均在一个芯片内,故可靠性高。 (2)控制功能强 为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:分支转移能力,I/O口的逻辑操作及位处理能力,非常适用于专门的控制功能。 (3)低电压,低功耗,便于生产便携式产品 为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为1.8V3.6V,而工作电流仅为数百微安。 (4)易扩展 片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。 (5)优异的性能价格比 单片机的性能极高。为了提高速度和运行效率,单片机已开始使用RISC流水线和DSP等技术。单片机的寻

9、址能力也已突破64KB的限制,有的已可达到1MB和16MB,片内的ROM容量可达62MB,RAM容量则可达2MB。由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高。 采用AT89S51。AT89S51片内具有8K字节程序存储空间,256字节的数据存储空间没有EEPROM存储空间,也与MCS-51系列单片机完全兼容,具有在线编程可擦除技术。两种单片机都完全能够满足设计需要,STC89C51相对ATS89C52价格便宜,且抗干扰能力强。考虑到成本因素,因此选用STC89C51。2.3 总体设计框图本方案设计的系统由单片机系统、数字温度传感器、LED显示模块

10、、按键控制模块、温度报警模块组成,其总体架构如下图2.1.单片机测温电路显示电路驱动电路按键输入电路报警电路时钟、复位电路 图2.1 系统总体方框图3 系统硬件设计3.1 主控制器选择AT89C51 ATMEL公司生产的低电压,高性能CMOS 8位单片机片内含4K byTES的可反复擦写的只读程序存储器(PEROM)和128 byTES的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052 产品引脚兼容,片内置通用8位中央处理器(CPU )和FLASH由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。图3.

11、1 AT89C51引脚图STC89C51主要功能如表3.1所示,其PDIP封装如图3.1所示。表3.1 STC89C51主要功能 主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20)

12、:片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P0口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/

13、O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.73.2 显示电路使用四位一体共阳数码管,并外接上拉电阻,已达到较好效果,如图3.2。图3.2 数码管显示电路3.3 温度传感器简介温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和

14、开发温度相关的小产品的不二选择。了解其工作原理和应用可以拓宽您对单片机开发的思路。DS18B20的主要特征:(1)全数字温度转换及输出。(2)先进的单总线数据通信。(3)最高12位分辨率,精度可达土0.5摄氏度。(4)12位分辨率时的最大工作周期为750毫秒。(5)可选择寄生工作方式。(6)检测温度范围为55°C +125°C (67°F +257°F)。(7)内置EEPROM,限温报警功能。(8)64位光刻ROM,内置产品序列号,方便多机挂接。(9)多样封装形式,适应不同硬件系统。DS18B20的另一个功能是可以在没有外部电源供电的情况下工作。当总线处

15、于高电平状态,DQ与上拉电阻连接通过单总线对器件供电。同时处于高电平状态的总线信号对内部电容(Cpp)充电,在总线处于低电平状态时,该电容提供能量给器件。这种提供能量的形式被称为“寄生电源”。作为替代选择,DS18B20同样可以通过VDD引脚连接外部电源供电。图3.3 DS18B20方框图 图3.4 引脚排列引脚说明:GND地 DQ数据I/O对于单线操作:漏极开路。当工作在寄生电源模式时,用来提供电源(建“寄生电源”节)。VDD可选电源电压NC无连接单总线信号DS18B20 需要严格的单总线协议以确保数据的完整性。协议包括集中单总线信号类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有这些

16、信号,除存在脉冲外,都是由总线控制器发出的。复位序列:复位和存在脉冲和DS18B20 间的任何通讯都需要以初始化序列开始,初始化序列见图3.5。一个复位脉冲跟着一个存在脉冲表明 DS18B20已经准备好发送和接收数据。在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX)。单总线由5K上拉电阻拉到高电平。当DS18B20探测到I/O引脚上的上升沿后,等待15-60us,然后发出一个60-240us 低电平信号构成的存在脉冲。单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。图3.5初始化时序读/写时序D

17、S18B20 的数据读写是通过时序处理位来确认信息交换的。写时序由两种写时序:写1时序和写0时序。总线控制器通过写1时序写逻辑1到DS18B20,写0时序写逻辑0到DS18B20。所有写时序必须最少持续60us,包括两个写周期之间至少1us 的恢复时间。当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始(见图3.6)。总线控制器要生产一个写时序,必须把数据线拉到低电平然后释放,在写时序开 始后的15us释放总线。当总线被释放的时候,5K的上拉电阻将拉高总线。总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持(至少60us)。总线控制器初始化写时序后,DS18B20 在一个1

18、5us到60us的窗口内对I/O 线采样。如果线上是高电平,就是写1。如果线上是低电平,就是写0。读时序总线控制器发起读时序时,DS18B20仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令BEh或读电源模式指令B4H后必须立刻开始读时序,DS18B20可以提供请求信息。除此之外,总线控制器在发出发送温度转换指令44h或召回EEPROM指令B8h之后读时序,详见DS18B20功能指令节。所有读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放(见图3.6)。在总线控制器发出读时序

19、后,DS18B20通过拉高或拉低总线上来传输1或0。当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。从DS18B20输出的数据在读时序的下降沿出现后15us内有效。 因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚状态。图3.6 DS18B20读写时序图3.7 DS18B20读取温度数值流程图3.4 DS18B20温度传感器与单片机的接口电路单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。图3.8 DS18B20接线原理图3.5 时钟电路单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片

20、机工作所需要的时钟信号。单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式。图3.9 时钟电路3.6 复位电路复位电路的用途:单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。51单片机要复位只需要在第9引脚接个高电平持续2US就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位

21、一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。图3.10 复位电路3.7系统总体电路图当接通电源以后,温度传感器正常工作,温度传感器将根据被测温度的不同来采集不同的数据,然后将所采集到的数据传送到比较器到中,然后由比较器将采集到的数据转变成高低电平,在送入单片机,单片机通过控制各个引脚电平的高低来来控制温度的显示输出。图3.11 总体设计图4 软件设计4.1 C语言简介C语言是目前世界上流行、使用最广泛的高级程序设计语言。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型

22、应用软件都是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。 常用的编译软件有Microsoft Visual C+,Borland C+,Watcom C+ ,Borland C+, Borland C+ Builder,Borland C+ 3.1 for DOS,Watcom C+ 11.0 for DOS,GNU DJGPP C+, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等。C语言的发展历史:C语言的发展颇为有趣。它的原型ALGOL 60语言。1

23、963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。 为

24、了使UNIX操作系统推广,1977年Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本可移植的C语言编译程序。 1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著The C Programming Language,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。1988年,随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准3.C语言的主要特点 。C语言发展迅速,而

25、且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASEPLUS、DBASE都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。4.2程序编译软件keil介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合

26、在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil 的优势。4.3温度数据采集根据DS18B20的通讯协议,单片机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令

27、,这样才能对DS18B20进行预定的操作,复位要求单片机将数据线下拉50微秒,然后释放,当DS18B20受到信号后等待1660微秒左右,然后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。表4.1 指令与约定代码指令约定代码功能读ROM33H读DS1820温度传感器ROM中的编码(即64位地址)符合ROM55表4.1 指令与约定代码H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的BS1820使之作出响应,为下一步对该DS1820的读写作准备。搜索ROMOFOH用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。为操作各器件作好准备。跳过RO

28、MOCCH忽略64位ROM地址,直接向DS1820发温度变换命令。适用与单片工作。温度变换44H启动DS1820进行温度转换12位转换时最厂为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器OBEH读内部RAM中9字节的内容。写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中重EEPROMOB8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式OB4H读DS1820的供电模式。寄生东佃时DS1820发送“0”,外界电源供电DS1820发送“1”

29、。4.4主程序设计整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型的时候软件也基本定下拉了,从软件的功能不同,可以分为两的类:一是主程序,它是整个软件的核心,专门用来协调各个执行模块和操作者的联系。二是子程序,它是用来完成各种实质性的工作的,如测量、计算、显示、通讯等。每一个执行软件就是一个小的执行模块,这里将每一个模块一一列出来,并为每个执行模块进行功能定义和接口定义。各执行模块规划好以后,就可以规划监控软件了。首先要根据系统的总体功能选择一种最合适的主程序结构,然后根据实时性的条件,合理安排监控软件和执行软件之间的调度关系。当DS18B20接受到温度转换命令后,开始启动温度转换。

30、转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的0,1字节。单片机可以通过单线总线读到该数据,读取时低位字节在前,高位字节在后,数据格式以0.0625摄氏度/LSB形式表示。温度值低位和高位字节格式如表5所示,其中“S”为标志位,对应的温度计算:当符号位S=0时,直接将二进制位转换成10进制位;当S=1时,先将二进制各位取反加一后再计算十进制值。表4.2 温度值低/高位字节DS18B20在完成温度转换后,会把测得的温度值与TH,TL作比较,若TTH或T<TL,则将该器件内的报警标志位置位,并对主机发出报警搜索命令作出响应。主程序的主要功能是负责温度的实时显示、

31、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1所示。图4.1主程序流程图通过调用读温度子程序把存入内存储中的整数部分与小数部分分开存放在不同的两个单元中,然后通过调用显示子程序显示出来。4.5 复位子程序设计DS18B20复位时序图参看后面芯片功能部分有详细的介绍。在这一部分只给出程序流程图,然后给出根据流程图所编写的DS18B20复位子程序。图4.2 复位程序流程图4.6 读写程序设计写时序:对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。当主机总线 t o 时刻从高拉至低电平时,就产生写时间隙,从t

32、o时刻开始15us 之内应将所需写的位送到总线上。DSl820 -在t o后1560us间对总线采样。若低电平写入的位是0;若高电平写入的位是1。连续写2位间的间隙应大于 1us。DS18B20写出子程序流程图如图4.3所示。读时序:主机总线t0时刻从高拉至低电平时,总线只需保持低电平1us,之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t2时刻前有效。t2距t0为15us,也就是说,t2时刻前主机必须完成读位,并在DS18B20读出子程序流程图如图4.4所示。图4.3 DS18B20写入子程序流程图 图4.4 DS18B20读出子程序流程图5电路仿真5.1 Proteus软件介

33、绍Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。功能特点 Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能

34、是:1原理布图2PCB自动或人工布线3SPICE电路仿真革命性的特点1互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。2仿真处理器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。5.2 智能温度计Ptoteus仿真1.首先启动KEIL C51软件的集成开发环境,从桌面上双击uVision图标以启动软件。2.建立工程文件。通常单

35、片机应用系统软件包含多个源程序文件,KEIL C51使用工程这一概念,将这些参数设置和所需的所有文件都加在一个工程中。因此,需要建立一个工程文件,并为这个工程选择CPU,确定编译,汇编,连接的参数,指定调试的方式。3.建立并添加源文件。使用菜单或者单击工具栏的新建文件按钮,出现文本便捷窗口,在该窗口中输入新编制的源程序并保存该文件。然后,我打开已经画好的仿真图,再将生成的HEX文件导入单片机里,点击开始按钮,电路正常工作,并且能够实现预先设想的所有功能,而且效果很好,从而验证了我的程序的正确性。图5.1 仿真结果图总结此次创新实践中,难点在于DS18B20的使用,即对它的时序控制、初始化以及字

36、节读写方法,任何一个环节出错或是时序控制不到位的话就不能得到正确的数据。一旦学会了正确的使用方法,就能感觉到它带来的便利是热电偶不能比拟的,以后再次使用的话就能很快上手了。软件设计中,把程序按功能分模块的话能提高编程效率,把问题一一解决,同时画流程图能帮助理清思路,使问题简单化。定义变量时,尽量定义局部变量,在字符型变量能达到要求的情况下就不用定义成整形变量了,以节省内存空间。同时局部变量应避免与全局变量取同名,否则全局变量将被屏蔽或与局部变量相冲突而达不到设计的效果。另一方面,取变量名时也要讲究技巧,应尽量使其见名知意,同样地,写程序时加注释确是非常必要的,否则隔一段时间后,想再改进或做扩展

37、的话就比较困难了,因为即使是自己写的程序也变得难读难懂了。总的来说,自己从这次独立的课程设计中收获了一些知识与经验,一些从书本中学之不来的东西,不是说理论无用,而这恰恰是在理论的土壤中开出的花朵,是在理论的肩膀望见的更宽广的道路。参考文献1孙育才.单片微型计算机及其应用.南京:东南大学出版社,20042潘新民 王燕芳.微型计算机控制技术.北京:电子工业出版社,2003 4李群芳.单片机原理及接口技术.北京:电子工业出版社,20085李光飞.单片机课程设计实例指导.北京:北京航空航天大学出版社,20046徐玮. C51单片机高效入门(第2版).北京:机械工业出版社,2010附录:源程序代码#in

38、clude<reg52.h> #define ui unsigned int#define uc unsigned char /宏定义sbit DQ =P37; /定义DS18B20总线I/Obit bdata fuhao;uc qian,bai,shi,ge;uc code led=0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7;uc code led_dian=0x7f,0x64,0xbd,0xf5,0xe6,0xf3,0xfb,0x67,0xff,0xf7;=DS18B20=/*延时子程序*/void Delay(int n

39、um)while(num-) ;/*初始化DS18B20*/void Init_DS18B20()DQ = 1; /DQ复位Delay(8); /稍做延时DQ = 0; /单片机将DQ拉低Delay(80); /精确延时,大于480usDQ = 1; /拉高总线Delay(40);/*读一个字节*/uc ReadOneChar()uc i=0;uc dat = 0;for (i=8;i>0;i-)DQ = 0; / 给脉冲信号dat>>=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;Delay(4);return(dat);/*写一个字节*/void WriteOneChar(uc dat)uc i=0;for (i=8; i>0; i-)DQ = 0;DQ = dat&0x01;D

温馨提示

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

评论

0/150

提交评论