版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文正文第53页哈尔滨职业技术学院印制数字温度自动控制系统毕业设计摘要随着科技的不断进步,在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制已成为当今的主流。本文介绍了数字温度测量及自动控制系统的设计。阐述了以AT89C2051单片机为核心的温度控制系统的工作原理和设计方法。主要组成部分:AT89C2051单片机、温度传感器、显示电路、温度控制电路。它可以实时的显示和设定温度,实现对温度的自动控制。而且设有大功率驱动电路。测试表明,本设计对温度的控制有方便、简单的特点,大幅提高了被控温度的技术指标。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测与温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。关键词:温度自动控制;AT89C2051;DS18B20目录TOC\o"1-3"\f\h\z\u绪论 2第1章 系统总体设计 31.1系统设计任务与要求 31.1.1 系统设计任务与要求 31.1.2 重点研究内容 31.1.3实现途径及方法 41.2 系统总体方案设计 4第2章 系统硬件各功能模块的设计 62.1主控模块的设计 62.1.1单片机的选择 62.1.2温度传感器的选择 82.1.3复位和时钟电路的设计 122.1.4温度采集电路 132.2 人机接口设计 142.2.1键盘的设计 142.2.2显示电路的设计 14第3章 软件设计 183.1主程序模块 183.2数据采集和显示模块 203.3输入模块 21第4章调试与仿真 234.1调试 234.1.1硬件调试 234.1.2软件调试 244.1.3综合性能调试 244.2仿真 25结论 26参考文献 27致谢 29附录1:源程序 30附录2:各部分模块子程序 41绪论温度是表征物体冷热程度的物理量。在很多生产过程中,特别是在冶金、化工、建材、食品、机械、石油等工业中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。将单片机控制方法运用到温度控制系统中,可以克服温度控制系统中存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和控制精度。现代自动控制越来越朝着智能化发展,在很多自动控制系统中都用到了工控机,小型机、甚至是巨型机处理机等,当然这些处理机有一个很大的特点,那就是很高的运行速度,很大的内存,大量的数据存储器。但随之而来的是巨额的成本。在很多的小型系统中,处理机的成本占了系统成本的比例高达20%,而对于这些小型的系统来说,配置一个如此高速的处理机没有任何必要,因为这些小系统追求经济效益,而不是最在乎系统的快速性,所以用成本低廉的单片机控制小型的,而又不是很复杂,不需要大量复杂运算的系统中是非常适合的。随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。现在完全可以运用单片机和电子温度传感器对某处进行温度检测,而且可以很容易地做到多点的温度检测,如果对此原理图稍加改进,还可以进行不同地点的实时温度检测和控制。
系统总体设计系统设计任务与要求系统设计任务与要求该温度自动控制系统采用AT89C2051单片机为主控芯片,传感器采用数字温度传感器DS18B20主要技术指标:可调节的范围为0℃—99℃该温度自动控制系统由温度信号采样电路,键盘及显示电路,温度控制电路,电源电路,时钟信号电路等构成,并运用程序算法进行温度控制和调整。根据设计任务,详细分析温度自动控制系统的设计需求,并进行软硬件的总体设计。由键盘电路输入设定温度信号给单片机,温度信号采集电路采集现场温度信号给单片机,单片机根据输入与反馈信号的偏差进行计算,输出反馈量给温度控制电路,实现升温。显示电路实现现场温度的实时监控。设计人员需完成全部硬件和软件的设计,做出成品并对设计结果进行验证。重点研究内容本设计包括硬件设计和软件设计。硬件设计主要包括温度信号采样电路,键盘及显示电路,温度控制电路,电源电路,时钟信号电路等,其中硬件设计重点是键盘及显示电路和温度控制电路。软件设计主要完成系统初始化、键盘处理子程序、DS18B20和数码管的子程序设计、温度控制计算子程序等工作。实现途径及方法本系统主要通过资料查找、系统需求分析、系统总体设计,软硬件总体设计、详细的软件与硬件设计、调试、资料整理等步骤来完成。本系统利用ProtelDXP软件完成硬件电路版设计工作,利用Keil51软件完成系统控制软件的编译调试工作,通过制作成型来用现实生活进行对设计的真实考验。系统总体方案设计在这个系统中我们从性能及设计成本考虑,我们选择AT89C2051芯片。AT89C2051的广泛使用,使单片机的价格大大下降。目前,AT89C2051的市场零售价已经低于8255、8279、8253、8250等专用接口芯片中的任何一种;而AT89C2051的功能实际上远远超过以上芯片。因此,如把AT89C2051作为接口芯片使用,在经济上是合算的。在温度传感器的选择上我们采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在0—本设计采用了程序控制。在工程实际中,程序算法控制以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型,控制理论的其他技术也难以采用,系统控制器的结构和参数必须依靠经验和现场调试来确定时,应用程序算法控制技术最为方便。
温度自动控制系统原理框图如图1-1所示:键盘键盘数码管功率驱动加热装置DS18B20ATAT89C2051图1.1温度自动控制系统原理框图系统硬件各功能模块的设计主控模块的设计2.1.1单片机的选择由于本设计所要完成的功能并不是特别强大,而且对硬件的控制IO口数量要求也不是很多,同时要求有较低的成本控制。因此本设计打算使用比较常用的一款单片机那就是AT89C2051AT89C2051是一种低功耗、高性能CMOS8位微控制器,具有2K在系可编程Flash存储器。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使AT89C2051为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89C2051具有以下标准功能:2k字节Flash,128字节RAM,15位I/O口线,2个数据指针,两个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片外晶振及时钟电路。另外,AT89C2051AT89C2051的广泛使用使得市面价格较8155、8255、8279要低,所以说用它是比较经济的。该芯片具有如下功能:①有15个通用用的IO接口;②有1个全双工异步串行通信接口;③有2个16位定时/计数器。这样,1个AT89C52,承担了2个专用接口芯片的工作;不仅使成本大大下降,而且优化了硬件结构和软件设计,给用户带来许多方便。AT89C2051有20个引脚,有15个输入端口(I/O),有2个读写口线,可以反复插除。所以可以降低成本[1]。其主要工作特性为:内含2KB的Flash存储器,擦写次数达1000次;内含128字节的RAM;具有16根可编程I/O线;具有2个16位可编程定时器;具有6个中断源、5个中断矢量、2级优先权的中断结构;具有1个全双工的可编程串行通信接口;具有1个数据指针DPTR;两种低功耗工作模式,即空闲模式和掉电模式;具有可编程的3级程序锁定位;工作电源电压为5±1.3V,典型值为5V;最高工作频率为24MHz。引脚排列如图2-1所示。图2-1AT89C2051引脚排列(PDIP)2.1.2温度传感器的选择本设计的温度传感器采用的是DALLAS公司的DS18B20传感器元件原因有它比常用的热电偶传感器有以下好处:它与热电偶相比少去了一个A/D(模数转换芯片)从而使电路有了很大的简化。同时本电路的温度测量范围比较小此器件可以满足,同时此器件的测量精度比较高基本能满足本设计的要求。DS18B20的简介如下:DS18B20原理与特性:本系统采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。首先来介绍一下DS18B20这块传感器的特性及其功能:DSl8B20的管脚及特点DS18B20可编程温度传感器有3个管脚。内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如图2.2所示。图2.2DS18B20的外形及管脚图GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.O~5.5V。本文使用外部电源供电。主要特点有:1.用户可自设定报警上下限温度值。不需要外部组件,能测量-55~+125℃-10℃~+85℃范围内的测温准确度为±0.通过编程可实现9~l2位的数字读数方式,可在至多750ms内将温度转换成12位的数字,测温分辨率可达0.0625℃独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。DS18B20支持多点组网的功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温[2]。DS18B20内部功能模块如图2.3所示, 图2.3DS18B20内部功能模块DS18B20的工作原理:DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同DS18B20为9位~12位A/D转换精度,而DS1820为9位A/D转换,虽然我们采用了高精度的芯片,但在实际情况上由于技术问题比较难实现,而实际精度此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。且温度转换时的延时时间由2s减为750ms。DS18B20测温原理如图4.3所示。图2.4DS18B20的测温原理框图图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。则高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值时。计数器1对低温度系数晶振产生脉冲信号,进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值。DS18B20使用中注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。2)在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。3)连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。测温电缆线采用屏蔽4芯双绞线,其中有一对接地线与信号线,另一组接VCC和地线。2.1.3复位和时钟电路的设计本系统中采用上电复位和手动复位键复位相结合的方式。系统时钟电路设计采用内部方式。AT89C2051内部有一个用于构成振荡器的高增益反相放大器。这个放大器与作为反馈元件的片外晶体谐振器构成一个自激振荡器。外接晶体谐振器以及电容构成并联谐振电路,接在放大器的反馈回路中。本系统电路采用的晶体振荡器频率为11.0592MHz。采用这种频率的晶体振荡器的原因是可以方便的获得标准的波特率,为以后的升级留下空间。复位电路和时钟电路如图2-5所示。复位电路有上电自动复位和按钮手动复位两种。上电复位是利用电容充电来实现的,上电瞬间RST/VPD端的电位与VCC相同,随着充电电流的减少,RST/VPD的电位逐渐下降,图2.5中的10K的电阻是施密特触发器输入端的一个下拉电阻,时间常数为10*10-6*10*103s=100ms,只要Vcc的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作[6]。上电复位所需最短时间是震荡周期建立时间加上2个机器周期时间。按钮复位采用电平复位方式,按下复位电钮时,电源对外接电容充电,使RST/VPD端为高电平,复位按钮松开后,电容通过内部下拉电阻放电,逐渐使RST/VPD端恢复低电平。图2.5复位电路和时钟电路2.1.4温度采集电路数据采集电路如图2.6所示,1脚接地,2脚即为单总线数据口,3脚接电源。温度传感器DS18B20采集被控对象的实时温度,提供给AT89C2051的P3.5图2.6数据采集电路人机接口设计键盘的设计在本设计中采用了矩阵式,键盘分布如图2.7所示。各键设在行列线的交差点上,有键合上时行列线接通,否则不连通。行线P10—P13(即A1—A4)通过上拉电阻接+5V,处于输入状态,列线P14—P17(即B1—B4)为输出状态[7]。图2.7键盘电路显示电路的设计本设计的显示采用两位0.5寸共阳数码管,采用动态显示方式,因为此种方式的显示比液晶显示要更直观同时更节约成本。数码管的引脚图如图2.8所示。图2.8数码管引脚图数码管采用红色管,其接口为:第1脚:为数码管的e端控制脚,来控制数码管的d点的亮灭。
第2脚:为数码管的d端控制脚,来控制数码管的d点的亮灭。第3脚:为数码管的公共极,通过接入一个三极管来控制此数码管的亮灭,同时起到一个动态显示的作用。第4脚:为数码管的c端控制脚,来控制数码管的c点的亮灭。第5脚:为数码管的dp端控制脚,来控制数码管的点的亮灭。
第6脚:为数码管的b端控制脚,来控制数码管的b点的亮灭。第7脚:为数码管的a端控制脚,来控制数码管的a点的亮灭。第8脚:为数码管的公共极与3脚内部相连其作用相同这里不做介绍。第9脚:为数码管的f端控制脚,来控制数码管的f点的亮灭。第10脚:为数码管的g端控制脚,来控制数码管的g点的亮灭。在本设计中数码管与单片机的连接如图2.9所示。单片机的P0口为数据输出口,接到两个的数码管的相同接口,P3.0—P3.1为控制端,分别选择在某一个瞬间是哪个数码管工作。图2.9显示电路图功率驱动电路设计本设计的加热电阻丝的驱动电路采用的是继电器驱动形式,因为继电器驱动与晶闸管形式驱动相比有可靠性高,成本低,不易损坏,电路简单等优点。因此本设计采用继电器驱动形式。本设计的驱动电路如图2.10所示。图2.10继电器驱动电路软件设计由于整个系统软件比较复杂,为了便于编写、调试、修改和增删,系统程序的编制适合采用模块化的程序结构,故要求整个控制系统软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内数据关系紧凑,模块间数据关系松散的原则,将各功能模块组织成模块化的软件结构。系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工作;数据采集模块的作用是将数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是将采集回的数字信号转换为实际温度的程序:控制算法模块完成控制系统的运算并且输出控制量。3.1主程序模块主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化、数码管的初始化等。然后等待温度设定,判断是否温度设定完成,若温度设定已完成则系统继续正常运行,则依次调用各个相关模块,循环控制直到系统停止运行。主程序模块的程序流程图如图3-1所示。YNYNNYNYNYNNYNY图3-1主程序流程图开始读温度设定值等待数据采集温度显示比较运算控制输出系统初始化温度是否被设温度设定完成温度是否达到设定值更改注:详细部分子程序详见附录2的/*主程序*/函数;/*系统初始化程序*/;
3.2数据采集和显示模块数据采集模块的任务是负责温度信号的采集以及将采集到的数字量提供给单片机。AT89C2051通过控制DS18B20读取实时温度,然后,通过P0口送到两位数码管进行显示。数据采集模块的程序流程图如图3.2所示,显示程序设计框图如图3.3所示。开始开始结果保存结果保存返回返回图3-2数据采集模块程序流程图两位数码管初始化开始两位数码管初始化开始清除显示N清除显示送显示位置送显示位置送显示数据N送显示数据判断是否达到显示次数判断是否达到显示次数返回Y返回图3.3显示程序设计框图注:DS18B20和数码管显示的子程序设计详见附录2的/*DS18B20程序:*//*数码管显示程序:*/3.3输入模块键盘选择程序扫描方式工作,利用CPU在完成其它工作的空闲时间中,调用键盘扫描子程序,来处理键的输入要求。在执行键功能处理程序时,CPU不再响应其它键输入要求[9]。键盘处理子程序流程图如图3.4所示:延时去抖动开始延时去抖动开始有键闭合找到闭合键延时去键抖动扫描键盘键值计算闭合键释放结束建立有效标志建立无效标志NYNYNY图3.4键盘程序设计框图注:键盘模块部分子程序详见附录2的/*voidanjianjianche()*/第4章调试与仿真4.1调试本设计的调试主要分为硬件调试,软件调试和综合调试三部分,以下对其做具体的讲解。4.1.1硬件调试由于本设计采用的是由工厂代工制作的成品PCB板为焊接平台,所以在本设计的硬件调试上并没有花费太多的时间,当电路板焊接完成后,首先对电路板进行了一次目检,看看是否有焊盘漏焊和虚焊。当检查完成时发现一处虚焊后进行二次焊接进行补救。目检完成后又对电路进行了一次上电监测,对各引脚的电压都进行了测量,结果没有发现异常。基本检查完成后对电路板进行了一次实际程序实跑监测,像那些大公司一样在硬件焊接完成后要进行一次硬件检测程序的校验已发现有哪些硬件不能正常工作。因此本设计也写了一个单独对硬件各部分检测的程序,当程序烧写完成后,对电路板进行了一次综合性的检查,结果发现电路板一切正常。硬件调试结束。4.1.2软件调试本设计的软件调试采用的是模块化方式,分别把程序中的每一个子函数做相应的改动后单独烧入芯片后,观察其相应的表现,以此来判断此子函数是否能正常工作。当每一个子程序检测完成后。要将程序中体的写在一起来检查一下是否存在个别子程序不兼容的情况,如果发现就予以改正。至此本设计的软件调试也将告一段落。 4.1.3综合性能调试综合调试的目的是检测程序中的某些参数是否合理,如不合理将予以改正,还有为各个电路模块安装到现成的盒子内的适当位置。例如在本设计中由于显示函数中的一个参数写的不合理,导致了当改变预定温度数值时,数码管不能及时的显示出预设的温度,发现了问题后予以改正,问题解决。在电路模块的安装期间也遇到了问题,发现有些位置不能很可靠的安装到盒子内,后对盒子进行了改造,电路模块顺利的安装完成。到此调试结。4.2仿真本设计的仿真是通过对人为的假的工作环境进行模仿来验证本设计的准确性和可靠性。具体仿真如下:将设备接入220伏50赫兹的交流电,然后对设备进行具体的温度设定,大约将温度定在室温以上体温以下。这时由于室温没有达到预定温度设定值,因此此时单片机控制的加热器具的驱动电路开始工作,继电器被吸合,加热指示灯点亮。当用手摸住温度传感器后,由于体温高于温度设定值,所以单片机控制用于加热控制的继电器释放,加热器停止加热,同时停止加热的指示灯被点亮。当手一开后加热器又开始处于加热状态。说明本设计可以满足我们正常的基本要求,达到了设计标准。到此仿真结束。 结论本设计使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。该智能温度控制器只是DS18B20在温度控制领域的一个简单实例,还有许多需要完善的地方,例如可以将测得的温度通过单片机与通讯模块相连接,以手机短消息的方式发送给用户,使用户能够随时对温度进行监控。同时通过本次的毕业设计也让我深刻的体会到从一个想法到制作成型的艰辛历程。使我对未来的学习和工作有了一个新的认识和看法。此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。本温度控制系统可以应用于多种场合,像的温度、育婴房的温度、水温的控制。用户可灵活选择本设计的用途,有很强的实用价值。
参考文献[1]马忠梅.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1998[2]李晓荃.单片机原理与应用[M].北京:电子工业出版社,2000年8月[3]何立民AVR单片机原理与接口技术[M].北京:北京航空航天大学出版社,2002[4]杨邦文新型继电器实用手册[M].北京:北京人民邮电出版社.2004[5]何立民单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1997[6]《模拟电子技术基础》
第三版
高等教育出版社
童诗白
华成英主编[7]《数字电子技术》
清华大学出版社
庞学民主编[8]《单片机原理及接口技术》
北京航空航天大学出版社
李朝青编著[9]《单片机原理及实用技术》
高等教育出版社
李刚民、曹巧媛、曹琳琳、陈忠平编著[10]王幸之,钟爱琴,王雷,王闪.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社.2004,5[11]张迎新.单片微型计算机原理应用及接口技术[M].北京:国防工业出版社.2004,1[12]孙传友,孙晓斌,汉泽西,张欣.测控系统原理与设计[M].北京:北京航空航天大学出版社.2002,9[13]汪道辉.单片机系统设计与实践[M].北京:电子工业出版社.2006,5[14]谢宜仁,谢炜,谢东辰.单片机实用技术问答[M].北京:人民邮电出版社.2003,2[15]杨拴科.模拟电子技术基础[M].北京:高等教育出版社.2003,1
致谢本论文在黄冬梅老师的细心指导和严格要求下已完成,从课题选择到具体构思和内容,无不凝聚着老师的心血和汗水,特别是老师严格的教学要求和一丝不苟的工作精神,让我非常敬佩。在三年的大学学习和生活期间,我也始终感受着导师的精心培养和无私的关怀,我受益匪浅。在此向各位老师表示深深的感谢和崇高的敬意。这次做论文的经历也会使我终身受益,我感受到做论文是要的的确确用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向系的全体老师表示由衷的感谢,感谢你们3年来的辛勤栽培。在此,我还要特别感谢我的同学们,由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,你们对本课题做了不少工作,直至本文的顺利完成,给予我不少的帮助,谢谢你们!附录1:源程序#include<reg52.h>#include"intrins.h"sbiteq=P3^0;//定义p3.7为18B20数据端sbitq=P3^1;sbitLED=P3^2;sbitQ1=P3^4;sbitQ2=P3^3;sbitkey2=P3^7;sbitkey1=P3^5;unsignedcharT=0x00,TH,TL;//声明温度变量unsignedchardingwd=20,t1=0,t2=0,td1,td2;unsignedcharnum[]={0x08,0x6e,0x14,0x24,0x62,0x21,0x01,0x6c,0x00,0x20};unsignedintbz=0;voidxianshi();voidxianshi1();voidanjianjianche();voidshujuzhuanhuan();voiddelay50_us(unsignedchart)//50us延时函数{unsignedcharj,k;for(j=0;j<t;j++)for(k=0;k<19;k++);}voidcsh_18b20()//初始化函数{biti;eq=1;eq=0;delay50_us(16);//拉低800微秒eq=1;//变高电平delay50_us(3);//等待150微秒i=eq;//读取初始化返回信号eq=1;delay50_us(2);//延时400us}unsignedcharread(void)//读数据函数{unsignedcharh,i,dat=0x00;for(i=0;i<8;i++){eq=1;_nop_();eq=0;_nop_();eq=1;_nop_();_nop_();_nop_();_nop_();_nop_();h=eq;if(h==1)dat|=0x80;elsedat|=0x00;dat>>=1;eq=1;delay50_us(2);}returndat;}voidwrite(unsignedcharcmd)//写数据函数{unsignedchari;for(i=0;i<8;i++)//循环8次{eq=1;_nop_();eq=0;//拉低电平2uS_nop_();_nop_();eq=cmd&0x01;delay50_us(2);cmd>>=1;eq=1;_nop_();}}voidduquwendu()//读取温度总函数{unsignedintg;csh_18b20();//初始化18B20write(0xcc);//跳过ROMwrite(0x44);//温度转换命令for(g=0;g<8000;g++){anjianjianche();shujuzhuanhuan();if(bz==0)xianshi();//延时800毫秒elsexianshi1();}csh_18b20();//初始化18B20write(0xcc);//跳过ROMwrite(0xbe);//读取数据命令TL=read();//读取温度低字节TH=read();//读取温度高字节}voidwdhs()//温度换算{T=TL>>2;//温度低字节右移2位t2=T%10;//个位t1=T/10;//十位}voidanjianjianche(){if(key1==0){delay50_us(40);if(key1==0) { while(key1==0)xianshi1();if(bz==0){bz=5000;}else{dingwd++;bz=5000;if(dingwd==100)dingwd=0;}}}if(key2==0){delay50_us(40);if(key2==0) { while(key2==0)xianshi1();if(bz==0){bz=5000;}else{if(dingwd==0)dingwd=100;dingwd--;bz=5000;}}}}voidshujuzhuanhuan()//数据转换{td2=dingwd%10;//个位td1=dingwd/10;//十位}voidxianshi1(){bz--;P1=num[td1];//十位_nop_();_nop_();Q1=0;delay50_us(1);Q1=1;_nop_();P1=num[td2];//个位_nop_();_nop_();Q2=0;delay50_us(1);Q2=1;_nop_();}voidxianshi()//温度显示{P1=num[t1];//十位_nop_();_nop_();Q1=0;delay50_us(1);Q1=1;_nop_();P1=num[t2];//个位_nop_();_nop_();Q2=0;delay50_us(1);Q2=1;_nop_();}voidshujubijiao(){if(T>(dingwd+1)){q=1;LED=0;}if(T<(dingwd-1)){q=0;LED=1;}}voidmain(){while(1){anjianjianche();shujuzhuanhuan();duquwendu();wdhs();shujubijiao();}}
附录2:各部分模块子程序/*主程序*/
voidmain(){while(1){anjianjianche();shujuzhuanhuan();duquwendu();wdhs();shujubijiao();}}系统初始化程序:#include<reg52.h>#include"intrins.h"sbiteq=P3^0;//定义p3.7为18B20数据端sbitq=P3^1;sbitLED=P3^2;sbitQ1=P3^4;sbitQ2=P3^3;sbitkey2=P3^7;sbitkey1=P3^5;unsignedcharT=0x00,TH,TL;//声明温度变量unsignedchardingwd=20,t1=0,t2=0,td1,td2;unsignedcharnum[]={0x08,0x6e,0x14,0x24,0x62,0x21,0x01,0x6c,0x00,0x20};unsignedintbz=0;voidxianshi();voidxianshi1();voidanjianjianche();voidshujuzhuanhuan();voiddelay50_us(unsignedchart)//50us延时函数{unsignedcharj,k;for(j=0;j<t;j++)for(k=0;k<19;k++);}DS18B20程序:voidcsh_18b20()//初始化函数{biti;eq=1;eq=0;delay50_us(16);//拉低800微秒eq=1;//变高电平delay50_us(3);//等待150微秒i=eq;//读取初始化返回信号eq=1;delay50_us(2);//延时400us}unsignedcharread(void)//读数据函数{unsignedcharh,i,dat=0x00;for(i=0;i<8;i++){eq=1;_nop_();eq=0;_nop_();eq=1;_nop_();_nop_();_nop_();_nop_();_nop_();h=eq;if(h==1)dat|=0x80;elsedat|=0x00;dat>>=1;eq=1;delay50_us(2);}returndat;}voidwrite(unsignedcharcmd)//写数据函数{unsignedchari;for(i=0;i<8;i++)//循环8次{eq=1;_nop_();eq=0;//拉低电平2uS_nop_();_nop_();eq=cmd&0x01;delay50_us(2);cmd>>=1;eq=1;_nop_();}}voidduquwendu()//读取温度总函数{unsignedintg;csh_18b20();//初始化18B20write(0xcc);//跳过ROMwrite(0x44);//温度转换命令for(g=0;g<8000;g++){anjianjianche();shujuzhuanhuan();if(bz==0)xianshi();//延时800毫秒elsexianshi1();}csh_18b20();//初始化18B20write(0xcc);//跳过ROMwrite(0xbe);//读取数据命令TL=read();//读取温度低字节TH=read();//读取温度高字节}voidwdhs()//温度换算{T=TL>>2;//温度低字节右移2位t2=T%10;//个位t1=T/10;//十位}数码管显示程序:voidxianshi1(){bz--;P1=num[td1];//十位_nop_();_nop_();Q1=0;delay50_us(1);Q1=1;_nop_();P1=num[td2];//个位_nop_();_nop_();Q2=0;delay50_us(1);Q2=1;_nop_();}voidxianshi()//温度显示{P1=num[t1];//十位_nop_();_nop_();Q1=0;delay50_us(1);Q1=1;_nop_();P1=num[t2];//个位_nop_();_nop_();Q2=0; delay50_us(1);Q2=1;_nop_();}键盘程序设计如下:voidanjianjianche(){if(key1==0){ delay50_us(40);if(key1==0) { while(key1==0)xianshi1();if(bz==0){bz=5000;}else{dingwd++;bz=5000;if(dingwd==100)dingwd=0;}}}if(key2==0){delay50_us(40);if(key2==0) { while(key2==0)xianshi1();if(bz==0){bz=5000;}else{if(dingwd==0)dingwd=100;dingwd--;bz=5000;}}}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《技术经济学》练习题集
- 青年教师演讲稿挥洒青春汗水追逐教育梦想
- 桂林24年小学四年级英语第三单元暑期作业
- 人教PEP版英语三年级下册期末重点复习与讲义
- 珠宝生产企业账务处理实例-记账实操
- 2023年高纯镓及氧化镓资金申请报告
- 2024年电动助力转向装置项目资金筹措计划书代可行性研究报告
- 2024年石材、石料加工品及制品项目投资申请报告代可行性研究报告
- 强化中学英语教学中的学法指导
- 2023年油冷器资金需求报告
- 江苏省中等职业学校学业水平考试语文卷含答案
- 售后服务保障方案3篇
- 2025届江苏省南通市海安市海安高级中学物理高三上期中联考试题含解析
- 2024-2025学年二年级上学期数学期中模拟试卷(苏教版)(含答案解析)
- 劳务派遣 投标方案(技术方案)
- 辽宁抗日战争的起始地
- 小学六年级数学100道题解分数方程
- 礼修于心 仪养于行 课件-2023-2024学年高一上学期文明礼仪在心中养成教育主题班会
- 麻醉学第二十二章 多器官功能障碍综合征
- 入团志愿书(2016版本)(可编辑打印标准A4) (1)
- 客户资信管理制度
评论
0/150
提交评论