八位单片机ad转换如何采集20位AD发出的有符号数

查看: 160056|回复: 4
基于单片机的温度采集系统设计论文
完整的word格式的论文下载:
(1.23 MB, 下载次数: 98)
03:09 上传
点击文件名下载附件
下载积分: 黑币 -5
温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度。随着半导体技术的飞速发展,各种数字化、智能化温度测量技术的应用范围越来越广,因此掌握温度测控系统的硬件组成及系统软件设计尤为重要。整个系统采用模块化设计,硬件结构由DS18B20和单片机、LCD1602、蜂鸣器等装置组成,DS18B20温度传感器将物理参量转变为电压并完成信号的调理,调整为数字量,再送入单片机AT89C52读取,单片机对数字量的温度进行处理,并将数据通过LCD1602显示,同时根据预设定的参数控制蜂鸣器是否报警,提醒工作人员注意。本设计在proteus上画出原理图并进行仿真,实现了温度采集的整体功能,包括温度显示和高温报警。验证本设计所使用方案的有效性和正确性,最终完成丰富发展了相应的理论知识。
关键字:AT89C52;LCD1602;RS-232;DS18B20
Design Of Digital Thermometer Based On MCUAbstract
Temperature is one of the most basic environmental paramenters,and it usually must be measured in daily life and industrial & agricultural production. With the rapid development of semiconductor technology,more and more,digital & intelligent temperature measuring technology is widely applied.So it is particularly important to master the technology of designing a temperature measurement & control system in hardware and software.In this project,a temperature measuring & transmition system controlled by SCM is designedll. At front end, the real-time temperature data acquired and converted to digital type through DS18B20 sensor are sent into SCM, and it is display on LCD1602 module . In addition , the acquired temperature data are transmitted to back end PC via RS-232 interface so as to be displayed ,storied an continued process.The design achieved the results in proteus. It verify the validity and correctness of the proposed scheme. Finally, it complete and developed the theoretical knowledge.
Key words:AT89C52;LCD1602;RS-232;DS18B20
目录引言第一章 绪论1.1 课题背景及实际意义1.2本课题的研究现状及发展趋势1.3课题研究的主要内容第二章 总体设计方案2.1系统方案选择2.1.1温度测量的选择2.1.2显示电路的选择2.1.3系统各模块的最终方案2.2方案的总体设计电路图第三章 硬件设计3.1单片机AT89C523.1.1简介3.1.2单片机最小系统3.2温度传感器DS18B203.2.1 简介3.2.2 DS18B20温度传感器与单片机的接口电路3.3LCD1602显示模块设计3.3.1 LCD1602简介3.3.2&&LCD1602与单片机的接口电路3.4报警器的设计第四章 系统软件设计4.1Keil软件概述4.2主程序4.3读出温度子程序4.4温度报警命令子程序4.5显示数据刷新子程序第五章 调试与仿真5.1Proteus简介5.2调试与仿真结论与展望致谢参考文献附录A:电路原理图绘制附录B:一篇引用的引文文献及翻译附录C:主要参考文献与摘要附录D:程序
插图清单图 1&&总体设计方案图 2&&系统设计框图图 3&&AT89C52结构框图图 4& &TMOD特殊功能寄存器图 5& &PCON TCON 的控制字格式图 6& &SCON特殊功能寄存器图 7& &IE特殊功能寄存器图 8&&IP特殊功能寄存器图 9&&单片机最小系统图 10&&DS18B20封装图 11&&温度传感器模块图 12&&LCD尺寸图图 13&&LCD 内部显示地址图 14&&LCD模块电路图图 15&&报警模块电路图
表格清单表格 1&&工作方式选择表表格 2 串口方式选择表格 3&&配置寄存器结构表格 4&&引脚接口说明表格 5控制命令表表格 6基本操作时序表
安徽工程科技学院毕业设计(论文)引言温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度,随着半导体技术的飞速发展,各种数字化、智能化温度测量技术的应用范围越来越广,因此掌握温度测控系统的硬件组成及系统软件设计尤为重要。而传统的测温方法多以热电阻和热电偶等为温度敏感元件,但这些温度传感器构成的测温系统必须经过A/D转换环节获得数字信号后才能与单片机等微机处理器接口,使得硬件电路结构复杂,制作成本较高,本设计研究的是数字温度计,它是通过一定的电路和温度传感器进行测控,将温度用数字准确的显示出来。数据显示比较直观而且测量精度也比较高,范围比较大。整个系统采用模块化设计,硬件结构由DS18B20和单片机、LCD、蜂鸣器等装置组成,DS18B20温度传感器将物理参量转变为电压并完成信号的调理,调整为数字量,再送入单片机AT89C52读取,单片机对数字量的温度进行处理,并将数据通LCD1602显示,同时根据预设定的参数控制蜂鸣器是否报警,提醒工作人员注意。本设计在POTEUS上画出了原理图并进行仿真,实现了温度采集的整体功能,包括温度显示和高温报警,此次设计验证了所使用方案的有效性和正确性,最终完成丰富发展了相应的理论知识。
第一章 绪论1.1 课题背景及实际意义温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度,随着半导体技术的飞速发展,各种数字化、智能化温度测量技术的应用范围越来越广,因此掌握温度测控系统的硬件组成及系统软件设计尤为重要。尤其在过程控制的实时监测和监控系统中,温度的采集是很普片的,快速可靠的采集到工业现场中的高精度温度数据可以为过程控制系统提供可靠的依据。而传统的测温方法多以热电阻和热电偶等为温度敏感元件,但这些温度传感器构成的测温系统必须经过A/D转换环节获得数字信号后才能与单片机等微机处理器接口,使得硬件电路结构复杂,制作成本较高,而美国DALLAS公司生产的DS18B20数字温度传感器集温度测量和A/D转换于一体,直接输出数字量,硬件电路结构简单,与单片机接口几乎不需要外围元件,广泛使用与距离远,节点分布多的场合,具有较强的推广应用价值。数字温度计有手持式,盘装式,及医用的小体积的等等,它是采用进口高精度、低温漂、超低功耗集成电路和宽温型液晶显示器,内置高能量电池连续工作≥5年无需敷设供电电缆,是一种精度高、稳定性好、误差≤0.5%、微功耗、不锈钢外壳,防护坚固,美观精致、适用性极强的新型现场温度显示仪。是传统现场指针双金属温度计的理想替代产品,广泛应用于各类工矿企业、大专院校、科研院所。最早的温度计是在1593年由意大利科学家伽利略发明的。后来又相继出现华氏温度及、列式温度计、摄氏温度计,均采用水银和酒精等制作,现在英、美国家多用华氏温度计,德国多用列式温度计,而世界科技界和工农业生产中,以及我国、法国等大多数国家则多用摄氏温度计。随着科学技术的发展和现代工业技术的需要,测温技术也在不断地改进和提高。由于测温范围变得越来越广,根据不同的要求,又制造出不同的测温仪器:气体温度计、电阻温度计、温差电偶温度计、高温温度计等。耳本设计研究的是数字温度计,它是通过一定的电路和温度传感器进行测控,将温度用数字准确的显示出来。数据显示比较直观而且测量精度也比较高,范围比较大。1.2本课题的研究现状及发展趋势国外对温度控制技术研究较早,始于20世纪70年代。先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。80年代末出现了分布式控制系统。目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。现在世界各国的温度测控技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。我国对于温度测控技术的研究较晚,始于20世纪80年代。我国工程技术人员在吸收发达国家温度测控技术的基础上,才掌握了温度室内微机控制技术,该技术仅限于对温度的单项环境因子的控制。我国温度测控设施计算机应用,在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展。在技术上,以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统,与发达国家相比,存在较大差距。我国温度测量控制现状还远远没有达到工厂化的程度,生产实际中仍然有许多问题困扰着我们,存在着装备配套能力差,产业化程度低,环境控制水平落后,软硬件资源不能共享和可靠性差等缺点。温度计的进一步完善和发展是沿着两个方向进行的,一是测温物质的选择;二是刻度标准的确定。1.测温物质的研究和确定除上述用酒精取代水作测温物质的尝试外,1659年法国天文学家布(I.Boulliau)制造一个温度计,他把玻璃泡的体积缩小,第一次使用水银作测温物质。他本人从1658年5月起至1660年9月,连续进行了两年多的温度观察记录,仅次于开始于1655年的佛罗伦萨的温度观察记录,成为现存最古老的温度记录之一。这样的温度计已具备了现在温度计的雏形。但到了18世纪,法国的勒奥默有鉴于水银的膨胀系数小,曾强烈反对使用水银作测温物质。他致力于制造一个既方便又能达到精度要求的酒精温度计。但由于他的温度计结果不好,并且不同的温度计也不一致,日内瓦的德吕斯()又恢复使用水银,并以一个物理学家的身份热情地呼喊:“自然界给我们这个矿物肯定是为了做温度计”。2.刻度标准的研究和确定从伽利略到布里奥,测温术从定性发展到定量,但读数还没有统一的标准。西曼托科学院的成员们为温度计选择了两个固定的温度:一个是冬冷,一个是夏热。冬冷是指最冷的冰冻时期的雪或冰的温度,夏热指奶牛或鹿的体温。在两个固定的温度点之间,他们又分成80或40个相等的间隔。1829年,曾在旧的玻璃器皿中发现了当年佛罗伦萨的温度计的发展速度很快,从原来的煤油温度计、酒精温度计、水银温度计等发展到了现在的热电阻温度计、热电偶温度计、气体温度计、电子温度计、电阻温度计、温差电偶温度计、辐射温度计和光测温度计、双金属温度计……这些温度计都或多或少有着反应速度慢、读数麻烦、测量精度不高、误差大等缺点。传统的指针式的温度计虽然能指示温度,但是精度低,使用不够方便,显示不够直观。目前市场上使用最为广泛的测温仪器类型莫过于是数字温度计(digital thermometer),数字温度计的出现可以让人们直观的了解自己想知道的温度到底是多少度,它可以准确的判断和测量温度,以数字显示,而非指针或水银显示。故称数字温度计或数字温度表。数字温度计有手持式,盘装式,及医用的小体积的等等,它是采用进口高精度、低温漂、超低功耗集成电路和宽温型液晶显示器,内置高能量电池连续工作≥5年无需敷设供电电缆,是一种精度高、稳定性好、误差≤0.5%、微功耗、不锈钢外壳,防护坚固,美观精致、适用性极强的新型现场温度显示仪。是传统现场指针双金属温度计的理想替代产品,广泛应用于各类工矿企业、大专院校、科研院所。数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即A/D转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED、LCD或者电脑屏幕等显示出来给人观察。这样就完成了数字温度计的基本测温功能。随着时代的进步和电子技术的不断发展,采用单片机控制进行采集温度无疑是人们追求的目标之一,也是未来温度计发展的主要方向。它所给人带来的方便也是不可否认的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人生活、工作、学习、科研等社会各领域提供更好的更方便的“温度计”,就需要从数单片机技术入手,将温度测量技术一切向着数字化控制,智能化控制方向发展。综合分析本次毕业设计(论文),可以预研作出该系统的发展趋势如下:1.温度传感器高精度化由于采集温度的精度必须高于控制处理的精确度,否则无从实现控制的精度要求。目前的温度采集系统中温度传感器是它的重要组成部分,它的精度灵敏度基本决定了本温度采集系统的精度、测量范围、控制范围和适用范围等。数字温度传感器将会集成更好的模拟传感器、转换速度更快精度更高的A/D转换器。传感器应用极其广泛,目前已经研制出多种新型传感器。但是,作为应用系统设计人员需要根据系统要求选用适宜的传感器,并与自己设计的系统连接起来,从而构成性能优良的监控系统。未来的温度传感器必然向高精度化、高集成化发展。2.单片机微型化常见单片机都是将中央处理器、随机存取数据存储、只读程序存储器、并行和串行通信接口、中断系统、定时电路、时钟电路等集成在一块单一的芯片上。但是,随着人们对电子产品的要求越来越高:要求体积小、质量轻,这也就要求单片机除了功能强和功耗低外,还要求其体积要小、质量轻。单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。现在的许多单片机都具有多种封装形式,其中表面封装越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。此外,微型化的单片机还可以集成了如 A/D 转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将 LED驱动电路都集成在一个单片机的芯片上,这样单片机包含的单元电路就更多,功能就越强大,也逐渐实现微型化。3.接口标准化当前采用的通用标准接口主要有两种:IEEE-488和CAMAC。以微处理器为基础的数据采集与控制系统有许多是采用IEEE-488接口总线技术的。用这种总线一台计算机接口就可连接多达15台仪器而且它们之间还可相互通信。因此用这种总线可以组成一种多用途自动测试系统, 从而使各个仪器都能充分发挥作用。对于一些对温度把握非常严格和准确的场合,温度测量系统的不准确会带来非常大的麻烦。本温度采集系统设计结构简单,价格低廉,精度高,使用方便,功能全,便于集成,可以广泛地应用于家庭、医院以及电影院、广场、汽车站、火车站等公共场所,将会受广大消费者的喜爱。由于该系统便于集成,故可以作为单独使用,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。因此,接口电路的标准化也是必然的发展趋势之一。4.系统模块化六十年代到七十年代中期,数据采集系统的器件主要还是半导体分立器件,但是到了七十年代末和八十年代初,随着大规模和超大规模集成电路技术的发展而出现了单芯片器件以及高集成度的单芯片数据采集器件。由于出现了这些先进的器件,不仅剧烈地改变着传统的老方法而且也大大地改变了数据采集系统元件的销路。本次毕业设计的基于单片机的温度采集系统完全可以发展成模块化的器件,将会更广的销售市场。5.智能化现代数据采集系统主要是向与微型处理器或者微型计算机通信相兼容的方向发展,即实现由微处理器控制的或者以微处理器为基础的智能化数据采集系统。现代数据采集系统随着电子技术的发展获得很大的成功和发展,尤其在配上微处理器或者微计算机后,其能力有了显著的提高,而且与普通的数据采集系统很难区别开来。当前以微型计算机为中心的系统普遍采用数据记录器组成复杂的分布监控系统, 用计算机进行控制和用数据记录器进行数据采集或作为系统记录装置来实现工业过程自动化。总之, 当前以微处理机或微型计算机为基础的数据采集与处理系统大大提高了测试设备的灵活性、可靠性和经济益效性。随着高性能机器的发展, 微型计算机控制逻辑能力大为提高, 而且能单独完成数据采集和联机有限数据处理, 并且还具有代码浮动性、多处理功能和增强型指令和寻址能力。6.软件高级语言化硬件的作用是要通过软件编程调试运行发挥的, 因此温度采集系统的软件编程也是至关其要的。当前以单片机为控制核心的系统主要是采用汇编语言编写程序。从长远的发展看,为了能够实现测量与控制向高度自动化智能化发展,控制系统势必要采用通用的高级语言,如C/C++等高级汇编语言编写程序,实现系统软件向高级语言发展。1.3课题研究的主要内容本设计是基于单片机的温度采集系统,此系统以AT89C52单片机为控制核心,以数字传感器DS18B20作为前端,采集温度经过单片机处理后,通过LCD1602液晶显示器将温度显示出来。本设计将首先介绍系统的设计方案,接着对系统硬件进行选型,然后介绍系统的结构框图,详细介绍系统的硬件设计,在给出系统的连接图,通过PROTEL 99SE进行系统电路原理图的绘制,生成相应的PCB板,并分析系统的工作原理,在软件方面对整体和各个模块的程序进行设计,在KEIL中进行汇编语言程序的编写与调试,最后,在仿真软件PROTEUS中进行系统的仿真实验。此次设计是一种基于单片机的温度采集系统设计,以温度传感器DS18B20自动对温度进行采集,采集精度要求为0.001℃,控制温度范围为-55℃~ +120℃。同时采用了LCD显示实时温度。总体的设计方案如图1所示:
0.png (29.15 KB, 下载次数: 42)
03:17 上传
图 1&&总体设计方案具体章节介绍如下:& &第一章为绪论主要是介绍课题的背景与实际意义以及本课题的研究现状与发展趋势,和本课题所研究的主要内容 。& && && && && &&&第二章为总体设计方案,对应本课题设计的两种设计方案,综合系统的硬件与软件方面进行比较,第二种方案的硬件电路简单,软件设计也相对容易,所以课题最终方案采用第二种方案 ,本章也介绍了系统总体电路图。& & 第三章为硬件设计,主要包括单片机介绍,单片机最小系统,温度传感器模块与LCD显示模块的介绍。硬件电路的各个模块的电路设计,画出了与单片机的外围连接图。第四章为软件设计,Keil软件简介,系统的程序和程序的流程图。& & 第五章为调试与仿真主要包括Proteus软件的简介以及系统的调试与仿真。
第二章 总体设计方案2.1系统方案选择& & 整个系统采用模块化设计,硬件结构由传感器和单片机、LCD、蜂鸣器等装置组成,传感器将物理参量转变为电压并完成信号的调理,在送入下位单片机AT89C52读取,单片机将数据通过LCD1602显示,根据预想设定的参数决定要采取的措施。2.1.1温度测量的选择温度测量一般有两种方案,第一种采用热电偶温差电路测量温度,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一的导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小,容易遭受来自导线环路的噪声影响以及飘移较高的缺点,并且种种设计需要用到A/D转换电路,感温电路比较麻烦。第二种是采用温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测量方法的很多外围电路。DS18B20的最大优点之一是采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的就比较简单,体积也不大。采用52单片机控制,软件编程的自由度大,可通过编程实现各种各样的算法和逻辑控制,且体积小,硬件实现简单,安装方便。从以上两种方案,很容易看出方热电偶的测温装置可测温度范围宽、体积小,但是线性误差较大,外围电路复杂。而DS18B20的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本设计采用DS18B20采集温度。2.1.2显示电路的选择方案一是使用LED数码管动态显示,此方法需要外加外部驱动以此增加输出电流来更好的驱动数码管显示,电路简单,但成本较高,需要特定的编程来完成动态刷新,如果用静态显示,占用的I/O口多,最重要的是在进行多路的温度采集实验时,不能同时显示多路温度值,所以用数码管显示温度弊多利少,本课题采用方案二作为显示电路。方案二是使用LCD1602液晶显示,在单片机系统中应用晶液显示器作为输出器件有以下几个优点:(1)显示质量高,由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。(2)数字式接口,液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。 体积小、重量轻&&液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。(3)功耗低 ,相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。2.1.3系统各模块的最终方案最终确定了本设计的各模块硬件选择,总结如下,单片机选用AT89C52,温度采集用DS18B20,显示模块用LCD1602,蜂鸣器实现报警功能。连接各模块实现最终的温度采集功能。2.2方案的总体设计电路图
0.png (14.62 KB, 下载次数: 29)
03:18 上传
图 2&&系统设计框图框图中单片机采用的的是AT89C52单片机,首先单片机控制DS18B20数字温度感器,把温度信号通过单总线从数字温度传感器传递到单片机上,单片机数据处理后,发出控制信号改变报警即控制执行模块的状态,同时将当前温度信息发送到LCD1602液晶屏进行显示。本次设计的重点在于温度采集系统和显示系统部分,这两个部分直接关系到设计的成功与否。
第三章 硬件设计3.1单片机AT89C523.1.1简介AT89C52 具有以下标准功能:8K 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器,8K 字节在系统可编程Flash。下面对本课题使用到的相关部分作详细介绍。一.结构框图图 3.1 是单片机 AT89C52 的内部结构总框图。它可以划分为 CPU、存储器、并行口、串行口、定时器/计数器和中断逻辑几个部分。
1.013.jpg (28.26 KB, 下载次数: 23)
03:12 上传
图 3&&AT89C52结构框图二.存储器MCS-51 器件有单独的程序存储器和数据存储器。程序存储器用来存放程序和始终要保留的常数;数据存储器常用来存放程序运行中所需要的常数或变量。1.程序存储器AT89S52 具有 8Kbytes Flash 片内程序存储器,可以外接达到 64K 字节的外部程序存储器。AT89S52 单片机复位后程序计数器 PC 的内容为 0000H,系统从 0000H 单元开始取指令,并执行程序。 若EA引脚接地,程序读取只从外部存储器开始。 对于 AT89S52 而言,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。2.数据存储器AT89S52 有 256 字节片内数据存储器。高 128 字节与特殊功能寄存器重叠。也就是说 128 字节与特殊功能寄存器有相同的地址,而物理上是分开的。 AT89S52 数据存储器根据不同的寻址方式和不同的功能分成四个部分,即 DATA区、特殊功能寄存器、IDATA 区、XDATA区。三.定时器/计数器AT89S52 有 3 个 16 位可编程定时计数器。1.定时器方式寄存器 TMOD其每位的定义如图 3.2 所示。
1.014.jpg (13.41 KB, 下载次数: 20)
03:12 上传
图 4& &TMOD特殊功能寄存器1)GATE:定时器/计数器运行控制位,用来确定对应的外部中断请求引脚 INT0,INT1 是否参与 T0、T1 的操作控制。 当 GATE=0时,只要定时器控制寄存器 TCON 中的 TR0 或 TR1 置 1 时,T0 或 T1 运行开始计数; 当 GATE=1 时,不仅要定时器控制寄存器 TCON中的 TR0 或 TR1 被置 1 时,还需要P3 口中的 INT0 或 INT1 引脚为高电平,T0 或 T1 才被允许开始计数。2)C/T:定时器或计数器方式选择位。C/T=1 时,为计数器方式;C/T=0 时,为定时器方式。3)M1M0:定时器/计数器四种工作方式的选择。工作方式选择如表 1 所示。表格 1&&工作方式选择表M1M0方式说明00013位定时器/计数器01116位定时器/计数器102自动装入时间常数的8位13位定时器/计数器113对T0分两个8位计数器,对T1置方式3时停止工作2.定时器控制寄存器 TCON:用于定时器操作及对定时器中断控制。其中D0~D3 位与外部中断有关。TR0:T1 的运行控制位,给该位置 1 或清 0,用来实现启动计数或停止计数。TF0:T0 的溢出中断标志位。当计数器溢出时由硬件自动置 1,在 CPU 中断处理时由硬件清为 0。TR1:T1 的运行控制位,功能同 TR0。TF1:T1 的中断标志位,功能同 TF0。TMOD 和 TCON 寄存器在复位时每一位均清 0。四.串行口AT89S52 有 1 个全双工串行口,串行口的寄存器有:一个发送 SBUF,一个接收SBUF,一个移位寄存器。发送和接收的 SBUF 对应同一地址(99H),但在物理上是两个分开的寄存器。串行口为全双工工作方式,而且还要缓冲的作用。& & 1.特殊功能寄存器 PCON:没有位寻址能力,字节地址 87H。其中的 D7 位(称为SMOD)为波特率的选择位,其他无意义。复位时SMOD 为 0。当 SMOD=1 时,在串行口方式 1、2 或 3 的情况下,波特率提高一倍。如图 3.4 所示。
1.015.jpg (7.61 KB, 下载次数: 18)
03:12 上传
图 5& &PCON TCON 的控制字格式2.特殊功能寄存器 SCON:用于串口操作方式选择和对它进行控制,其字节地址为 98H。1)RI:接收中断标志。在方式 0 中,当串行接收到第 8 位结束时由硬件置位;在其他方式中,在接收到停止位的中间时刻由硬件置位。当 RI=1 时,申请中断,要求 CPU 取走数据。 在方式 1 中,SM2=1,若未收到有效的停止位,则不会 RI 置位,在任何方式下必须由软件清零。2)TI:发送中断标志。在方式 0 中,串行发送完第 8 位数据时由硬件置位,在其他方式中,发送停止位的开始由硬件置位。当 TI=1时,申请中断,CPU 响应后,发送下一帧数据。任何方式下必须由软件清零。3)TB8:是在方式 2 和 3 中要发送的第 9 位数据,可由软件置位或清零。4)RB8:是在方式 2 和 3 中已接收到的第 9 位数据。在方式 1 中,若 SM2=0,RB8转载接收到的停止位。在方式 0 中 RB8 不被使用。5)REN:允许串行接收,由软件置位或清零,允许接收或禁止接收。6)SM2:允许方式 2 和方式 3 进行多机通信。7)SM0、SM1:串行口操作方式选择位。两个选择位对应于四种状态,所以串口能以四种工作方式工作,如表 2 所示。
表格 2 串口方式选择SM0SM1方式功能说明波特率000移位寄存器方式fosc/120118位UART可变1029位UARTfosc/64或fosc/321139位UART可变系统复位时,SCON 中的所有位都被清零。五.中断系统当 CPU 正在处理某件事情的时候,外部发生的某一事件如电平变化,一个脉冲沿的发生或定时器的溢出等请求 CPU 迅速去处理,于是CPU 暂时中止当前的工作,转去处理所发生的事件。处理完该事件之后,再回到原来被中止的地方,继续原来的工作,这样的过程称为中断。1.中断源AT89S52 共有 6 个中断源,2 个外部中断(INT0 和 INT1),三个定时器/计数器中断(定时器/计数器 T0、T1 或 T2),和一个串口中断(TXD 和 RXD)。 串口的中断请求标记由可寻址串口控制寄存器 SCON 的 TI 和 RI 来设置。SCON 字节地址是 98H,如图 3.4 所示。
1.016.jpg (4.44 KB, 下载次数: 18)
03:12 上传
图 6& &SCON特殊功能寄存器2.中断允许控制中断使能寄存器 IE 的各位如图 3.5 所示。
1.017.jpg (6.47 KB, 下载次数: 18)
03:12 上传
图 7& &IE特殊功能寄存器EA:使能标志位置位则所有中断使能复位则禁止所有中断;—:保留;ET2:定时器 2 中断使能;ES:串行通信中断使能;ET1:定时器 1 中断使能;EX1:外部中断 1 使能;ET0:定时器 0 中断使能;EX0:外部中断 0 使能。3.中断优先级每个中断源都可通过设置中断优先级寄存器 IP 来单独设置中断优先级。如果每个中断源的相应位被置位,则该中断源的优先级为高。如果相应的位被复位,则该中断源的优先级为低。图 3.6 所示为 IP 寄存器的各位,此寄存器可位寻址。
1.018.jpg (6.95 KB, 下载次数: 22)
03:12 上传
图 8&&IP特殊功能寄存器4.中断执行和中断响应CPU 一旦响应某一中断,立即按查询中得到的中断优先级置位“中断优先级状态触发器”优先级别,供下一查询周期进行判别,然后执行一条硬件的长调用指令。在执行长调用指令时,首先把当前程序计数器 PC 值压栈,然后清中断申请标志。最后把中断源相应的中断矢量压入程序计数器 PC,程序转到中断服务程序执行。在用户编写的中断服务程序中,最后一条指令一般是 RETI(中断返回)指令。执行该指令时 CPU 首先清除中断优先级状态触发器,然后把栈顶上的两个字节内容弹入程序计数器 PC,程序由此继续执行。5.AT89S52 晶振特性AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和 XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从 XTAL1 接入。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。3.1.2单片机最小系统对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。单片机虽然使用时间最早、应用范围最广,但是在实际用过程中,一个和典型的问题就是相比其他系列的单片机,单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。&&此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。复位电路:由电容串联电阻构成,由图并结合&电容电压不能突变&的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.&&一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。&&在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。单片机最小系统如图3.7。
1.019.jpg (65.59 KB, 下载次数: 38)
03:12 上传
图 9&&单片机最小系统3.2温度传感器DS18B203.2.1 简介DALLAS 最新单线数字温度传感器 DS18B20 是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器 DS18B20 是世界上第一片支持“一线总线”接口的温度传感器。一.引脚排列极其内部结构1.引脚排列DS18B20 的 3 脚封装如图 3.8所示。其中,DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端。
1.020.jpg (7.5 KB, 下载次数: 20)
03:12 上传
图 10&&DS18B20封装2.内部结构DS18B20主要由 64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器组成。3.性能特点1)独特的单线接口,既可通过串行口线,也可通过其它 I/O 口线与微机接口,无需变换其它电路,直接输出被测温度值;2)DS18B20 支持多点组网功能,多个 DS18B20 可用并联在唯一的三线上,实现组网多点测温;3)DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;4)适应电压范围更宽,电压范围:3.0~5.5V;5) DS18B20 不需要备份电源,既可用数据线供电,也可采用外部电源供电;6)测量范围为-55℃~+125℃,固有测温分辨率为 0.5℃;7)可编程的分辨率为 9~12 位,对应的可分辨温度分别为 0.5℃、0.25℃、0.125℃和 0.0625℃,可实现高精度测温;8)测量结果直接输出数字温度信号,以“一线总线”串行传送给 CPU,同时可传送 CRC 校验码,具有较强的抗干扰纠错能力;9)警告搜索命令能识别和寻址温度在编订的极限之外的器件(温度警告情况);10)应用范围包括恒温控制、工业系统、消费类产品、温度计或任何热敏系统;11)DS18B20 具有负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。二.测温原理DS18B20 的测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其振荡率明显改变所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在-55℃所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。三.DS18B20 控制接口介绍1.64 位光刻 ROM光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着的 48位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。2.温度传感器DS18B20 加电后,处在空闲状态,要启动温度测量和模数转换,处理器需要向其发出 Convert T[44h]命令,转换完后DS18B20回到空闲状态,温度数据以带符号位的 16 位补码存储在温度寄存器中。温度是正值还是负值,正值时 S=0,负值时 S=1,表 1 给出了一些数字输出数据与对应的温度值的例子。以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625℃/LSB 形式表达,其中 S 为符号位。例如+125℃的数字输出为 07D0H,+25.0625℃的数字输出为 0191H,-25.0625℃的数字输出为 FF6FH,-55℃的数字输出为 FC90H。3.非挥发的温度报警触发器 TH 和 TL& & DS18B20 完成温度转换后,就把测得的温度值与 TH、TL(TH 和 TL 分别为最高和最低检测温度)作比较。若 T〉TH 或 T〈TL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只 DS18B20 同时测量温度并进行告警探索搜索。一旦某测温点越限,主机利用告警搜索命令即可识别正在告警器件。高低温报警触发器 TH 和 TL、配置寄存器均由一个字节的 EEPROM 组成,使用一个存储器功能命令可对 TH、TL 或配置寄存器写入。4.配置寄存器配置寄存器由R0和R1组成。该字节各位的意义如表3所示,低五位一直都是“1”,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动。R1 和 R0 用来设置分辨率(DS18B20出厂时被设置为 12 位)。
表格 3&&配置寄存器结构TMR1R011111
5.高速暂存存储器高速暂存存储器由 9 个字节组成。开始两个字节包含被测温度的数字量信息;第 3、4、5 字节分别是 TH、TL、配置寄存器的临时复制,每一次上电复位时被刷新;第 6 字节未用,表现为全逻辑 1;第 7、8 字节为计数剩余值和每度计数值;第 9 字节读出的是前面所有 8个字节的 CRC 码,可用来保证通信正确。根据 DS18B20 的通讯协议,主机(单片机)控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位操作,复位成功后发送一条 ROM指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主 CPU将数据线下拉 500 微秒,然后释放,当 DS18B20 收到信号后等待 16~60 微秒左右,后发出 60~240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。3.2.2 DS18B20温度传感器与单片机的接口电路
1.021.jpg (61.04 KB, 下载次数: 25)
03:12 上传
图 11&&温度传感器模块3.3LCD1602显示模块设计在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,现在LCD1602已经很普遍了,本章重点介绍字符型液晶显示器的应用。在单片机系统中应用液晶显示器作为输出器件有以下几个优点:显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。3.3.1 LCD1602简介液晶显示简介①液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。②液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动、单纯矩阵驱动和主动矩阵驱动三种。③液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。字符型LCD1602简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。LCD1602的基本参数及引脚功能LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图3.10所示:
1.022.jpg (28.55 KB, 下载次数: 26)
03:12 上传
图 12&&LCD尺寸图LCD1602主要技术参数显示容量:16×2个字符;芯片工作电压:4.5—5.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.95×4.35(W×H)mm;第1脚:VSS为地电源;第2脚:VDD接5V正电源;第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度;第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据;第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令;第7~14脚:D0~D7为8位双向数据线;第15脚:背光源正极;第16脚:背光源负极。引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表4所示:表格 4&&引脚接口说明编号
液晶显示偏压
数据/命令选择
背光源正极8
背光源负极
LCD1602的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表5所示:
表格 5控制命令表序号指令
R/WD7D6D5D4D3D2D1D01清显示
0000000012光标返回
00000001*3置输入模式
0000001I/DS4显示开/关控制
000001DCB5光标或字符移位
00001S/CR/L**6置功能
0001DLNF**7置字符发生存贮器地址
001字符发生存贮器地址8置数据存贮器地址
01显示数据存贮器地址9读忙标志或地址
1BF计数器地址10写数到CGRAM或DDRAM)
0要写的数据内容11从CGRAM或DDRAM读数
1读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表如下:表格 6基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无
LCD1602的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3.13是1602的内部显示地址。
1.023.jpg (21.09 KB, 下载次数: 22)
03:12 上传
图 13&&LCD 内部显示地址3.3.2 LCD1602与单片机的接口电路
1.024.jpg (69.63 KB, 下载次数: 27)
03:12 上传
图 14&&LCD模块电路图3.4报警器的设计报警模块采用了蜂鸣器报警,由软件编程,当温度高于预设值是蜂鸣器急促响起。提醒工作人员注意温度过高,蜂鸣器与单片机的连接电路如图3.19
1.025.jpg (55.7 KB, 下载次数: 29)
03:12 上传
图 15&&报警模块电路图
第四章 系统软件设计4.1Keil软件概述单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。& &&&1. 系统概述& & Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。& &&&Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2.Keil C51单片机软件开发系统的整体结构&&C51工具包的整体结构, uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
0.png (12.17 KB, 下载次数: 52)
03:20 上传
4.3读出温度子程序本次设计的重点在于温度采集系统和显示系统部分,这两个部分直接关系到设计的成功与否
4.4温度报警命令子程序
4.5显示数据刷新子程序
第五章 调试与仿真5.1Proteus简介& & Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus提供了丰富的资源& &(1)Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。& &(2)Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。& &(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。5.2调试与仿真绘制原理图如附录A调试与仿真步骤如下:第一步:启动软件,双击桌面的Keil C51快捷图标,进入如图5.1所示的Keil C51集成开发环境。
1.078.jpg (13.03 KB, 下载次数: 28)
03:12 上传
图5.1第二步:建立工程项目,选择菜单栏的PROJECT,NEW PROJECT命令,建立一个新的UVISION3工程,命名为毕业设计,单击保存按钮,选择CPU型号如图5.2
1.079.jpg (24.78 KB, 下载次数: 26)
03:12 上传
图5.2第三步:建立项目文件,单击FILE,NEW 新建一个名为Tewt1的空白文件,单击FILE,save,如图5.3所示。
1.080.jpg (25.59 KB, 下载次数: 28)
03:12 上传
图5.3第四步:添加项目文件,右击Source Group1,选择Add Files to Group “Source Group1”如图5.4。
1.081.jpg (23.05 KB, 下载次数: 24)
03:12 上传
图5.4然后找到刚才新建的源文件并选择,单击Add,加载完成后单击Close。第五步:工程的详细设置,在uvision3的菜单PROJECT,OPTIONS FOR TARGET TAGET1的OUTPUT选项卡中,选择Create HEX File以产生hex文件。第六步:工程编译,选择菜单Project,Rebuild all target files后,程序会进行编译。若没有错误则生成相应的工程名.HEX的文件,用于下载程序到单片机上单独硬件运行,如图5.5.
1.082.jpg (17.9 KB, 下载次数: 14)
03:12 上传
图5.5第七步:仿真,在proteus上画好的原理图上双击单片机,选择刚才编译好的.HEX文件确定,如图5.6.
1.083.jpg (32.49 KB, 下载次数: 23)
03:12 上传
图5.6最后单击run,进行仿真。结果如图5.7所示。DS18B20温度在LCD1602第一行实时显示出来,第二行显示本课题设计作者名字的拼音。
1.084.jpg (32.61 KB, 下载次数: 42)
03:12 上传
结论与展望在本次测温系统设计中,低成本、模块化和可控性是主线。一.在模块化设计方面,按每个要求的功能,从单片机、显示器、传感器等都尽量选择市场上通用性最好的产品,在满足性能的前提下,尽量选择低成本元件,最大限度地降低了整个系统的成本。特别是选用了 DS18B20 传感器,它集温度与 A/D 转换于一身,大大提高了系统的可靠性,使整个电路变得简洁。二.在硬件电路设计方面,也预留了管脚空间,为以后的功能扩展做好准备。三.在软件设计中融入模块化、通用化思想,核心的方法就是每个功能程序化,主程序只是对各个功能的标志位进行判断,依照标志位来决定程序的走向,可以实现了温度在液晶上显示,不用的模块进入休息状态以最大限度地降低功耗。随着时代的进步和电子技术的不断发展,采用单片机控制进行采集温度无疑是人们追求的目标之一,也是未来温度计发展的主要方向。它所给人带来的方便也是不可否认的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人生活、工作、学习、科研等社会各领域提供更好的更方便的“温度计”,就需要从数单片机技术入手,将温度测量技术一切向着数字化控制,智能化控制方向发展。
致谢本课题是在导师查君君老师的悉心指导下完成的,从论文的选题、系统设计、到修改定稿都没有离开查老师的无私帮助,本人从查老师那里学到了很多的知识,使本人受益匪浅,在此向查老师表以崇高的敬意和由衷的感谢。本次课题设计的顺利完成更是离不开安徽工程科技学院电气工程系的老师们在平时严谨的治学和勤恳的教育,因此在此要向他们致以深深的谢意。在课题进行期间,还得到了同学们无私的帮助和支持,在此同样对他们表示深深的感谢。还有就是要感谢,大学四年来一直支持我的亲人,朋友,本次论文的完成也是离不开他们的鼓励和支持的。
& && && && && && && && && && && && && && && &作者:
& && && && && && && && && && && && && && && & 2016年& & 6 月&&25日1
安徽工程科技学院毕业设计(论文)参考文献[1] 朱群峰,王晓芳,黄磊基于DS18B20的多路温度采集系统[J].船电技术.-9[2] 江太辉,邓展威.DS18B20数字温度传感器的特征与应用[J].电子技术,-49[3]&&袁东等编著.51单片机应用开发实战手册[C].北京:电子工业出版社,9[4]&&陶冶,袁永超,罗平.基于DS18B20的单片机温度测量系统[J].农机化研究,-164[5]&&易丽华,黄俊.基于AT89C51单片机与DS18B20的温度测量系统[J].电子与封装,(5):39-43[6]&&李广明,袁华强.基于嵌入式和DS18B20的温度采集系统[J].东莞理工学院学报,(3):1-4[7]& &樊强,张敏,李霞.基于DS18B20的温度采集系统设计与实现[J].农机化研究,-164.[8]&&阴志国,袁兵,陈云辉.基于DS18B20多点温度采集兼红外无线传输系统研究[J].现代商贸工业,-373.[9]&&陈桂友等编著.单片微型计算机原理及接口技术,2012.4[10] 邢鹏康,刘彦华.基于Proteus和LabVIEW软件的温度采集系统的设计与仿真[11] 郭庆锋,基于单片机温度采集系统的开发与应用,41[12] 旷爱华,李萍,基于单片机的远程多路温度采集系统,-9416[13] DS18B20数据手册.pdf[14]Halang W A.Measuring the Performance of Real-time Systems[J].The International Journal of Time-critical Computing Systems , 2000 , 18( 1): 59-68[15]Stao N, Hasegawa K.A computer controlled irrigation system for muskmelon using stem diameter sensor[J].Acta Horticulturae, : 91-98.[16]Kang Jianli, Wu Zhiqian. Methods of data fitt ing and graph draw ing in Visual Basic[ J].Comput er and Applied Chemistry , ) : 763- 766.附录A:电路原理图绘制
1.085.jpg (103.72 KB, 下载次数: 39)
03:12 上传
附录B:一篇引用的引文文献及翻译DS18B20,Programmable Resolution,1-Wire® Digital Thermometer(P1 ~ P4) DESCRIPTIONThe DS18B20 Digital Thermometer provides 9 to 12–bit centigrade temperature measurements and has an alarm function with nonvolatile user-programmable upper and lower trigger points.The DS18B20 communicates over a 1-wire bus that by definition requires only one data line (and ground) for communication with acentral microprocessor.It has an operating temperature range of –55°C to +125°C and is accurate to ±0.5°C over the range of –10°C to +85°C.In addition, the DS18B20 can derive power directly from the data line (“parasite power”), eliminating the need for an external power supply.Each DS18B20 has a unique 64-bit serial code,which allows multiple DS18B20s to function on the same 1–thus,it is simple to use one microprocessor to control many DS18B20s distributed over a large area.Applications that can benefit from this feature include HVAC environmental controls,temperature monitoring systems inside buildings,equipment or machinery,and process monitoring and control systems.DETAILED PIN DESCRIPTIONS Table 18-PIN SOIC*TO-92SYMBOLDESCRIPTION51GNDGround. 4 2 DQData Input/Outputpin.Open-drain 1-wire interface pin.Also provides power to the device when used in parasite power mode (see “Parasite Power” section.)33VDDOptional VDDpin.VDD must begrounded for operation in parasite power mode.*All pins not specified in this table are “No Connect” pins.OVERVIEWFigure 1 shows a block diagram of the DS18B20,and pin descriptions are given in Table 1.The 64-bit ROM stores the device’s unique serial code.Thescratchpad memory contains the 2-byte temperature register that stores the digital output from the temperature sensor.In addition,the scratchpad provides accessto the 1-byte upper and lower alarm trigger registers(TH and TL),and the 1-byte configuration register.The configuration register allows the user to set theresolution of the temperature-to-digital conversion to 9,10,11,or12 bits.The TH,TL and configuration registers are nonvolatile(EEPROM),so they will retain datawhen the device is powered down.The DS18B20 uses Dallas’ exclusive 1-wire bus protocol that implements bus communication using one control signal.The control line requires a weak pullup resistor since all devices are linked to the bus via a 3-state or open-drain port(the DQ pin in the case of the DS18B20).In this bus system,the microprocessor(the master device)identifies and addresses devices on the bus using each device’s unique 64-bit code.Because each device has a unique code, the number of devices that can be addressed on one bus is virtually unlimited.The 1-wire bus protocol, including detailed explanations of the commands and “time slots,” is covered in the 1-WIRE BUS SYSTEM section of this datasheet.Another feature of the DS18B20 is the ability to operate without an external power supply.Power is instead supplied through the 1-wire pullup resistor via the DQ pin when the bus is high.The high bus signal also charges an internal capacitor (CPP), which then supplies power to the device when the bus is low.This method of deriving power from the 1-wire bus is referred to as “parasite power.”As an alternative, the DS18B20 may also be powered by an external supply on VDD.DS18B20 BLOCK DIAGRAM Figure 1
1.086.jpg (24.84 KB, 下载次数: 21)
03:12 上传
1.087.jpg (28.87 KB, 下载次数: 28)
03:12 上传
OPERATION –MEASURINGTEMPERATUREThe core functionality of the DS18B20 is its direct-to-digitaltemperature sensor. The resolution of the temperature sensor isuser-configurable to 9,10,11,or 12 bits, corresponding toincrements of 0.5°C,0.25°C,0.125°C,and0.0625°C, respectively.The default resolution at power-up is 12 bit.The DS18B20 powers-up in a low-to initiate a temperature measurement and A-to-D conversion, the master mustissue a Convert T[44h] command.Following the conversion, theresulting thermal data is stored in the 2-byte temperature register inthe scratchpad memory and the DS18B20 returns to its idle state.Ifthe DS18B20 is powered by an external supply, the master can issue “read time slots” (see the 1-WIRE BUS SYSTEM section) after the Convert T command and the DS18B20 will respond by transmitting 0 while the temperature conversion is in progress and 1 when the conversion is done.If the DS18B20 is poweredwith parasite power, this notification technique cannot be used since the bus must be pulled high by a strong pullup during the entire temperature conversion.The bus requirements for parasite power are explained in detail in the POWERING THE DS18B20 section of this datasheet.The DS18B20 output temperature data is calibrated ifor Fahrenheit applications,a lookup table or conversion routine must be used.The temperature data is stored as a 16-bit sign-extended two’s complement number in the temperature register (see Figure 2).The sign bits (S) indicate if the temperatureis positive or negative:for positive numbers S=0 and for negative numbers S=1.If the DS18B20 is configured for 12-bit resolution,all bits in the temperatureregister will contain valid data.For 11-bit resolution,bit 0 is undefined.For 10-bit resolution, bits 1 and 0 are undefined,and for 9-bit resolution bits 2,1 and 0 areundefined.Table 2 gives examples of digital output data and the corresponding temperature reading for 12-bit resolution conversions.TEMPERATUREREGISTERFORMATFigure 2
1.088.jpg (11.59 KB, 下载次数: 34)
03:12 上传
TEMPERATURE/DATARELATIONSHIPTable2 TEMPERATUREDIGITALOUTPUT (Binary)DIGITAL OUTPUT(Hex)+125°C01 000007D0h+85°C*01 00000550h+25.0625°C01 00010191h+10.125°C10 001000A2h+0.5°C00 10000008h0°C 00 00000000h-0.5°C 11 1000FFF8h-10.125°C 01 1110FF5Eh-25.0625°C 10 1111FE6Fh-55°C 01 0000FC90h
*The power-on reset value of the temperature register is +85°COPERATION –ALARMSIGNALINGAfter the DS18B20 performs a temperature conversion, the temperature value is compared to the user-defined two’s complement alarm trigger values storedin the 1-byte TH and TL registers (see Figure 3).The sign bit(S) indicates if the value is positive or negative: for positive numbers S=0 and for negative numbersS=1.The TH and TL registers are nonvolatile (EEPROM) so they will retain data when the device is powered down.TH and TL can be accessed through bytes 2and 3 of the scratchpad as explained in the MEMORY section of this datasheet. THAND TLREGISTER FORMATFigure 3bit 7& &bit 6& && && && && && &bit 5& &&&bit 4& && &bit 3& && &bit 2& && & bit 1& && &bit 0 S26252525222120Only bits 11 through 4 of the temperature register are used in the TH and TL comparison since TH and TL are 8-bit registers.If the result of a temperaturemeasurement is higher than TH or lower than TL,an alarm condition exists and an alarm flag is set inside the DS18B20.This flag is updated after every te therefore, if the alarm condition goes away, the flag will be turned off after the next temperature conversion.The master device can check the alarm flag status of all DS18B20s on the bus by issuing an Alarm Search [ECh] command.Any DS18B20s with a set alarmflag will respond to the command, so the master can determine exactly which DS18B20s have experienced an alarm condition.If an alarm condition exists and theTH or TL settings have changed,another temperature conversion should be done to validate the alarm condition.POWERING THEDS18B20The DS18B20 can be powered by an external supply on the VDD pin, or it can operate in “parasite power” mode, which allows the DS18B20 to functionwithout a local external supply.Parasite power is very useful for applications that require remote temperature sensing or that are very space constrained. Figure 1shows the DS18B20’s parasite-power control circuitry, which “steals” power from the 1-wire bus via the DQ pin when the bus is high.The stolen charge powers the DS18B20 while the bus is high, and some of the charge is stored on the parasite power capacitor (CPP) to provide power when the bus is low.When the DS18B20 is used in parasite power mode, the VDD pin must be connected to ground. 外文译文:(From:DS18B20,Programmable Resolution,1-Wire® Digital Thermometer)DS18B20,可编程的单总线数字温度计(P1 ~ P4)
描述数字温度计DS18B20可以提供9至12位摄氏温度测量和非易失性用户可编程上限和下限触发点报警功能。DS18B20的通信使用单总线,只需要一个数据线(和地线)为与中央微处理器。它用于测量温度的范围为-55°C至+125°C,当被测温度范围为-10°C至+85°C时可以精确到±0.5℃以上。此外,DS18B20的可以直接从数据线(“寄生电源”)得到电压,无需外部电源供应器。每个DS18B20都有一个唯一的64位串行代码,这使得多个DS18B20在同一个单总线上运作,因此,使用一个微处理器控制多个DS18B20就变得很简单。正因为DS18B20的这一特点,这使得包括暖通空调环境控制,温度监测系统内的建筑物,机器设备,和过程的监测和控制系统等都将受益于此应用程序。具体的芯片管脚说明如下表:表-18脚SOIC*TO-92符号说明51GND地42DQ单线应用的数据输入/输出引脚:漏极开路,还提供电源的装置在使用寄生模式时(见“寄生电源”一节)33VDD可选VDD引脚:有关连接的细节见“寄生电源”一节*本表中未指定的引脚是“无连接”引脚。概述图1给出了DS18B20的内部结构框图和引脚,表1已经给出了引脚说明。64位的ROM中存储设备的独特串行码。暂存存储器包含双字节温度寄存器,用于存储温度传感器的数字输出。此外,暂存器还提供获得1个字节的上限和下限报警触发寄存器(TH和TL)和1个字节的寄存器配置。配置寄存器允许用户设定的温度到数字的决议转换为9,10,11,或者12位。TH、TL和配置寄存器都是EEPROM,因此当丢电时将保留设备断电时的数据。DS18B20利用达拉斯独家单总线协议,实现了用一个控制信号通信。由于所有设备连接到总线通过一个三态或漏极开路端口(DS18B20中DQ引脚),控制线需要一个弱上拉电阻。在这种总线系统中,微处理器(主设备)和地址识别设备的总线使用每个设备的唯一的64位代码。因为每个装置有一个唯一的代码,一些设备可以在一个总线处理几乎是无限的。这种单总线协议,包括命令和“时段”的详细解释,是在此资料的关于单总线系统部分。DS18B20的另一个特点是无需外部电源进行工作。当总线电压很高时,电源是由通过DQ引脚的一线上拉电阻来提供的。这个总线信号为高电平时,可以控制内部电容(CPP),然后作为供电设备时总线信号为低电平。这种从一线总线产生电源的方法称为“寄生电源”。此外,DS18B20也可由外部电源供电。DS18B20框图如图1
1.089.jpg (24.23 KB, 下载次数: 25)
03:12 上传
1.090.jpg (29.72 KB, 下载次数: 20)
03:12 上传
应用- 测量温度DS18B20的核心功能是它的直接数字式温度传感器。温度传感器的分辨率为用户配置分别为9,10,11或12位,对应增量为0.5℃,0.25°,0.125°C和0.0625°C,默认分辨率是12 位。DS18B20的电源在低功耗空闲状态;启动温度测量和A/D转换时,主机必须发出一个转换命令T[44H]。转换后产生的热数据存储在2个字节的温度寄存器暂存器,DS18B20的返回到其空闲状态。如果DS18B20是由外部电源供电,当发出转换T命令后,主机可以发出“读时隙”(见单总线系统部分),此时DS18B20 将发送0以响应正在进行温度转换,当变成1时表示转换完成。如果DS18B20是寄生电源供电,上述通信技术不适用,因为在整个温度的转换过程中总线必须通过一个上拉电阻来保持高电平。总线对寄生电源要求高的原因已经在本手册的DS18B20的供电部分作了详细解释。DS18B20的输出温度数据进行校准摄氏度输出;为华氏应用,必须使用查表或转换例程。温度数据存储在温度寄存器为一个16位符号扩展的补码(见图2)标志位(S)表示温度是正还是负:零上(正)时,S= 0,零下(负)时,S = 1。如果为负数DS18B20的12位分辨率的配置,在温度寄存器所有位将包含有效位。当分辨率为11位时,位0是不确定的。对于10位分辨率,位1和0是不确定的,并为9位位分辨率位2,1和0是不确定的。表2给出的数字输出数据的例子和相应的12位分辨率的温度转换。温度寄存器的格式如图2
1.091.jpg (11.59 KB, 下载次数: 27)
03:12 上传
温度数据关系表2温度/°C输出数据(二进制)输出数据(十六进制)+125°C01 000007D0h+85°C*01 00000550h+25.0625°C01 00010191h+10.125°C10 001000A2h+0.5°C00 10000008h0°C 00 00000000h-0.5°C 11 1000FFF8h-10.125°C 01 1110FF5Eh-25.0625°C 10 1111FE6Fh-55°C 01 0000FC90h
*以上电源复位温度值寄存器是+ 85°C应用–报警信号DS18B20进行温度转换后,温度值和用户定义的存储在一个字节TH和TL存储器中(见图3)的报警触发值相比较。符号位(S)表明温度值是正数或负数:正时,S=0,负时,S=1。TH和TL存储器都是EEPROM,所以当设备丟电时,他们将保留数据,TH和TL可以存储在暂存器的字节2和3中,在本数据手册的内存部分已经解释过。TH和TL寄存器格式图3第7位&&第6位& & 第5位& &第4位& & 第3位& &&&第2位& &第1位& &第0位 S26252525222120由于TH和TL是8位寄存器,所以只有第11位通过4个温度寄存器在TH和TL比较中有用。如果温度测量结果高于TH或低于TL就会存在报警状态,同时报警标志被设置在DS18B20。每一个温度测量这个标志都会更新;因此,如果报警条件消失,该标志将被关闭,直到下一个温度转换结束。主设备可以通过发出报警搜索命令[ECh]检查所有的DS18B20总线上的报警标志状态。所有含有报警标志的DS18B20s都将响应命令,因此主设备可以准确地确定哪些DS18B20已经经历了一个报警状态。如果存在报警条件并且TH或TL的设置已经改变了,另一个温度转换应该做验证报警条件。DS18B20的供电DS18B20可以由VDD引脚上的外部电源供电,它可以工作在“寄生电源”模式下,它允许DS18B20的功能没有本地外部电源供电。对于某些需要远程温度传感或非常空间受限的情况下,寄生电源是非常有用的。图1显示了DS18B20的寄生虫电源控制电路,当总线为高电平时,从单总线上“窃取”的电流通过DQ引脚。这些窃取”的电流给DS18B20供电。当总线为低电平时,一些存放在寄生电力电容器(CPP)电流提供电源。当DS18B20工作在寄生电源模式时,VDD引脚必须接地。
附录C:主要参考文献与摘要 [1] 周驰. 基于Atmega128单片机的机房空调温度控制系统设计, 2015。【摘 要】随着信息化时代的到来,通信机房的数量也在急剧增多,作为通信机房主要的散热设备,精密空调的控制也越来越受到广大用户的关注与重视。本文结合通信机房的温度环境特征和控制系统的功能要求,给出了精密空调温度控制系统的总体设计方案,并对温度控制系统进行了控制算法研究和软、硬件设计。控制系统采用了手操板加核心板的设计思路,两板都以Atmega128单片机为控制核心,手操板则配以按键、显示、通信等模块电路,核心板上则设计了系统的温湿度采集电路(通过DS18b20和DHT1l等数字温湿度传感器)、基于SPI通信的温度控制电路、基于单片机PWM功能模块的湿度控制电路、风机控制电路和通信模块电路等外围电路,详细阐述了系统的软件设计,重点给出了控制算法的实现过程和中断服务过程。控制系统可实现信号采集、调湿装置控制、调温装置控制、风机控制、数据计算、数据通信以及数据显示等功能。【关键词】Atmega128;DS18b20;串行通信[2]张博涛,刘华。基于单片机的温度采集系统的设计,2008.【摘 要】介绍了一种温度采集系统,分析了其测量原理。给出了其系统设计。本系统采用PT100热电阻作为温度传感器,使用C单片机完成温度采集,并给出了该系统的硬件结构和软件流程。经现场调试、运行,温度测量的准确度、精度都达到了设计要求,系统运行良好。【关键词】MCU;C;测温[3]刘永春,王秀碧。基于单片机的分布式温度采集系统设计,2008.【摘 要】本文分析和设计了一款基于单片机和集成单总线温度传感器DS18B20和支持I~2C技术的LED和键盘驱动模块ZLG7290的分布式温度采集系统,主要包括系统控制、温度信号采集、温度信号显示及控制等功能模块。【关键词】AT89S52;LED;DS18B20[4]刘莹。基于单片机的精密仪器生产车间温湿度自动控制系统,2014【摘 要】该设计是基于单片机的温湿度检测控制系统,采用模块化、层次化设计。采用新型的数字型温湿度传感器DHT11,它可以实现对温度、湿度的采集,并将采集到的模拟信号转换成数字信号;运用单片机STC89C52对数据进行分析和处理,为显示提供信号;显示部分采用字符型LCD1602液晶显示器显示所测温度和湿度值。【关键词】智能化;DHT11;温度湿度采集[5]秋菜青。基于单片机AT89S52的温度控制系统,2010.【摘 要】以水温为主要控制目标,设计了温度实时控制系统,采用AT89S52单片机为核心控制器件,用线性度好、灵敏度高的集成温度传感器AD590及分辨率高、噪声低的A/D转换器进行温度采集,实现对水温40~90℃自动控制,系统具有设定温度显示、当前温度实时显示的功能,经过实际运行表明,系统能够较好地控制水温。【关键词】单片机;AD590;A/D[6] 刘永春,张峰。基于单片机的水温控制系统设计,2008。【摘 要】系统采用凌阳SPCE061A单片机作为水温控制中心,水温信号由DS18B20数字温度传感器采集,控制器采用数字增量式PID算法,控制信号经继电器实现对热电炉工作状态及水温控制。系统采用上位机PC机实现多个控制对象的集中监控。【关键词】智能化;DS18b20;SPCE061A[7]冯少怀,周申辉。基于DS18B20的温度测量系统,2009.【摘 要】以温度的采集处理和显示为目的,研究了基于AT89S51单片机的温度检测及显示的设计方法,给出了硬件和软件系统设计,包括温度传感器芯片的选取、单片机与温度传感器的接口设计以及实现温度采集和数据传输的软件设计。该系统结构简单,成本较低,体积小,测温范围为-55℃~125℃,可以应用在很多温度检测领域。【关键词】AT89S51;DS18b20;串行通信[8]李淑华,高翠山。基于单片机的远距离自编码数据采集系统设计,1998.【摘 要】本文介绍一种在远距离数据采集系统中,为了提高抗干扰和可靠性,利用单片机和PC机进行传输信号自编码,解码的电路设计。本系统在北京谱仪的簇设电子学系统中,对温度和电压的监控有重要意义。【关键词】温度采集;DS18b20;单片机[9]张长莲,基于AT89C51单片机的温度传感器控制电路,2007【摘 要】温度是表征物体冷热程度的物理量。本文简要介绍了采用由 AT89C51单片机及温度传感器组成数据采集电路,加上显示电路和控制电路等,根据温度数据测量,通过控制电路对温度进行控制。本系统具有快速显示、测量准确、精度高、可调温控范围、硬件结构简单等优点,是一种比较经济的温度控制系统。该系统的设计使温度传感器正向单片集成化、智能化、网络化和单片系统化方向发展。【关键词】AT89C51;单片机集成;温度传感器[10]叶华,袁运连。基于单片机的高温工业炉电视监控装置,2009【摘 要】 针对高温工业炉监控性能自动化程度较低的问题,介绍了一种用ATMega128单片机为CPU组成的电视监控装置设计和实现的基本过程。从需求和功能入手分析系统整体框架,详述了基于单片机的硬件主体设计,利用模数接口,采集现场温度传感器、冷却气流量及压力、水压力传感器等标准4~20mA模拟量信号以获取高温工业炉运行参数。单片机一方面将获取的实时参数显示在控制箱的小型液晶屏上,另一方面与监控主机实现实时数据通讯。并利用探头装置和限位开关等,控制探头电机的正反转,进而实现高温工业炉探头在不同条件下的自动退出保护控制。最后就其硬件设计和功能需求开发了实现相应功能的单片机C程序。【关键词】ATMega128;液晶;监控装置 附录D:程序#include
#define&&uchar unsigned char
#define&&uint&&unsigned int
uint code table[]={0+0x30,1+0x30,2+0x30,3+0x30,4+0x30,5+0x30,6+0x30,7+0x30,8+0x30,9+0x30};
uchar code table1[]=&liujiantao&;
uchar code table2[]=&.&;
uchar code table3[]=&C&;
sbit ds=P2^2;& &&&//温度传感器信号线
sbit beep=P2^3;&&//蜂鸣器
sbit lcden=P3^4;& && && && &&&//液晶使能端
sbit lcdrs=P3^5;& && && && &&&//液晶数据命令选择端
float f_
uint warn_l1=260;
uint warn_l2=250;
uint warn_h1=300;
uint warn_h2=320;
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
void delay(uint z)//延时函数
{
& && && && &&&uint x,y;
& && && && &&&for(x=z;x&0;x--)
& && && && && && && && && & for(y=110;y&0;y--);
}
void dsreset(void)& & //18B20复位,初始化函数
{
&&
&&ds=0;
&&i=103;
&&while(i&0)i--;
&&ds=1;
&&i=4;
&&while(i&0)i--;
}
bit tempreadbit(void)& &//读1位函数
{
& &
& &
& &ds=0;i++;& && && &//i++ 起延时作用
& &ds=1;i++;i++;
& &dat=
& &i=8;while(i&0)i--;
& &return (dat);
}
uchar tempread(void)& &//读1个字节
{
&&uchar i,j,
&&dat=0;
&&for(i=1;i&=8;i++)
&&{
& & j=tempreadbit();
& & dat=(j&&7)|(dat&&1);& &//读出的数据最低位在最前面,这样刚好一个字节在DAT里
&&}
&&return(dat);
}
void tempwritebyte(uchar dat)& &//向18B20写一个字节数据
{
&&
&&
&&
&&for(j=1;j&=8;j++)
&&{
& & testb=dat&0x01;
& & dat=dat&&1;
& & if(testb)& & //写 1
& & {
& && &ds=0;
& && &i++;i++;
& && &ds=1;
& && &i=8;while(i&0)i--;
& & }
& & else
& & {
& && &ds=0;& && & //写 0
& && &i=8;while(i&0)i--;
& && &ds=1;
& && &i++;i++;
& & }
void tempchange(void)&&//DS18B20 开始获取温度并转换
{
&&dsreset();
&&delay(1);
&&tempwritebyte(0xcc);&&// 写跳过读ROM指令
&&tempwritebyte(0x44);&&// 写温度转换指令
}
uint get_temp()& && &&&//读取寄存器中存储的温度数据
{
&&uchar a,b;
&&dsreset();
&&delay(1);
&&tempwritebyte(0xcc);
&&tempwritebyte(0xbe);
&&a=tempread();& && && &//读低8位
&&b=tempread();& && && &//读高8位
&&temp=b;
&&temp&&=8;& && && &&&//两个字节组合为1个字
&&temp=temp|a;
&&f_temp=temp*0.0625;& &&&//温度在寄存器中为12位 分辨率位0.0625°
&&temp=f_temp*10+0.5;& & //乘以10表示小数点后面只取1位,加0.5是四舍五入
&&f_temp=f_temp+0.05;
&&& && &&&//temp是整型
}
void write_com(uchar com)
{
& && && && &&&lcdrs=0;
& && && && &&&P0=
& && && && &&&delay(5);
& && && && &&&lcden=1;
& && && && &&&delay(5);
& && && && &&&lcden=0;
}
void init()
{
& && && && &&&lcden=0;
& && && && &&&write_com(0x38);//设置16X2显示,5X7点阵,8位数据接口
& && && && &&&write_com(0x0c);//设置开显示,不显示光标
& && && && &&&write_com(0x06);//写一个字符后地址指针加1
& && && && &&&write_com(0x01);//显示清零,数据指针清零
}
void write_data(uchar date)
{
& && && && &&&lcdrs=1;
& && && && &&&P0=
& && && && &&&delay(5);
& && && && &&&lcden=1;
& && && && &&&delay(5);
& && && && &&&lcden=0;
}
////////////////////显示程序//////////////////////////
void display(uint o,uint p,uint q )
{
& && && && &&&init();
& && && && &&&write_com(0x80);
& && && && &&&write_data(table[o]);
& && && && &&&write_com(0x80+0x01);
& && && && &&&write_data(table[p]);
& && && && &&&write_com(0x80+0x02);
& && && && &&&write_data(table2[0]);
& && && && &&&write_com(0x80+0x03);
& && && && &&&write_data(table[q]);
& && && && &&&write_com(0x80+0x04);
& && && && &&&write_data(table3[0]);
& && && && &&&write_com(0x80+0x40);
& && && && &&&for(num=0;num&10;num++)
& && && && &&&{
& && && && && && && && && & write_data(table1[num]);
& && && && &&&}
& && && && &&&delay(500);
}
void dis_temp(uint t)
{
&&uint i,u,v;
&&i=t/100;
&&u=t%100/10;
&&v=t%100%10;
&&display(i,u,v);
delay(500);
}
//////////////////////////////////////////////
void warn(uint s,uchar led)&&//蜂鸣器报警声音 ,s控制音调
{
& &i=s;
& && && && &&&beep=0;
& & P1=~(led);
& & while(i--)
& & {
& && &dis_temp(get_temp());
& & }&&
& && && && &&&beep=1;
& & P1=0XFF;
& &&&while(i--)
& & {
& && &delay(5);
& & }
}
void deal(uint t)
{
&&
&&if((t&warn_l2)&&(t&=warn_l1)) //大于25度小于27度
& && && && &&&{
& && & warn(40,0x01);
& && && && &&&}
&&else if(t&=warn_l2)& && && && && && & //小于25度
& && && && &&&{
& && & warn(10,0x03);
& && && && &&&}
&&else if((t=warn_h1)) //小于32度大于30度
& & {
& && & warn(40,0x04);
& && && && &&&}
&&else if(t&=warn_h2)& && && && && && & //大于32度
& && && && &&&{
& && & warn(10,0x0c);
& && && && &&&}
&&else
& & {
& && & i=40;
& && & while(i--)
& && & {
& && &&&delay(5);
& && & }
& & }
}
void main()
{
&&
&&while(1)
{& &
& && &dsreset();
& && &tempchange();
& && &for(i=10;i&0;i--)
& &&&{
& && &dis_temp(get_temp());}
& && &deal(temp);
& && && && && &
}
}
复制代码
绝世好帖!
二爱狗狗好啊 a
发一篇这样的文章收获大概多少黑币?缺币...
很需要这个文件
可是黑币不够
浏览过的版块
Powered by}

我要回帖

更多关于 单片机ad 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信