数字温度自动控制系统毕业设计正文_第1页
数字温度自动控制系统毕业设计正文_第2页
数字温度自动控制系统毕业设计正文_第3页
数字温度自动控制系统毕业设计正文_第4页
数字温度自动控制系统毕业设计正文_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

1、数字温度自动控制系统毕业设计摘 要随着科技的不断进步,在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制已成为当今的主流。本文介绍了数字温度测量及自动控制系统的设计。阐述了以at89c2051单片机为核心的温度控制系统的工作原理和设计方法。主要组成部分:at89c2051单片机、温度传感器、显示电路、温度控制电路。它可以实时的显示和设定温度,实现对温度的自动控制。而且设有大功率驱动电路。测试表明,本设计对温度的控制有方便、简单的特点,大幅提高了被控温度的技术指标。温度信号由温度芯片ds18b20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度

2、检测与温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。关键词: 温度自动控制;at89c2051;ds18b20目 录绪 论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数据采集和显示模

3、块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绪 论 温度是表征物体冷热程度的物理量。在很多生产过程中,特别是在冶金、化工、建材、食品、机械、石油等工业中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。将单

4、片机控制方法运用到温度控制系统中,可以克服温度控制系统中存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和控制精度。现代自动控制越来越朝着智能化发展,在很多自动控制系统中都用到了工控机,小型机、甚至是巨型机处理机等,当然这些处理机有一个很大的特点,那就是很高的运行速度,很大的内存,大量的数据存储器。但随之而来的是巨额的成本。在很多的小型系统中,处理机的成本占了系统成本的比例高达20%,而对于这些小型的系统来说,配置一个如此高速的处理机没有任何必要,因为这些小系统追求经济效益,而不是最在乎系统的快速性,所以用成本低廉的单片机控制小型的,而又不是很复杂,不需要大量复杂运算的

5、系统中是非常适合的。 随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。现在完全可以运用单片机和电子温度传感器对某处进行温度检测,而且可以很容易地做到多点的温度检测,如果对此原理图稍加改进,还可以进行不同地点的实时温度检测和控制。第1章 系统总体设计1.1 系统设计任务与要求1.1.1 系统设计任务与要求该温度自动控制系统采用at89c2051单片机为主控芯片,传感器采用数字温度传感器ds18b20,实现对温度的检测和控制。主要技术指标:可调节的范围为099。该温度自动控制系统由温度信号采样电路,键盘及显示电路,温度控制电路,

6、电源电路,时钟信号电路等构成,并运用程序算法进行温度控制和调整。根据设计任务,详细分析温度自动控制系统的设计需求,并进行软硬件的总体设计。由键盘电路输入设定温度信号给单片机,温度信号采集电路采集现场温度信号给单片机,单片机根据输入与反馈信号的偏差进行计算,输出反馈量给温度控制电路,实现升温。显示电路实现现场温度的实时监控。设计人员需完成全部硬件和软件的设计,做出成品并对设计结果进行验证。1.1.2 重点研究内容本设计包括硬件设计和软件设计。硬件设计主要包括温度信号采样电路,键盘及显示电路,温度控制电路,电源电路,时钟信号电路等,其中硬件设计重点是键盘及显示电路和温度控制电路。软件设计主要完成系

7、统初始化、键盘处理子程序、ds18b20和数码管的子程序设计、温度控制计算子程序等工作。1.1.3 实现途径及方法本系统主要通过资料查找、系统需求分析、系统总体设计,软硬件总体设计、详细的软件与硬件设计、调试、资料整理等步骤来完成。本系统利用proteldxp软件完成硬件电路版设计工作,利用keil51软件完成系统控制软件的编译调试工作,通过制作成型来用现实生活进行对设计的真实考验。1.2 系统总体方案设计 在这个系统中我们从性能及设计成本考虑,我们选择at89c2051芯片。at89c2051的广泛使用,使单片机的价格大大下降。目前,at89c2051的市场零售价已经低于8255、8279、

8、8253、8250等专用接口芯片中的任何一种;而at89c2051的功能实际上远远超过以上芯片。因此,如把at89c2051作为接口芯片使用,在经济上是合算的。在温度传感器的选择上我们采用温度芯片ds18b20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在01000c时,最大线形偏差小于10c。该芯片直接向单片机传输数字信号,便于单片机处理及控制。本制作的最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。采用温度芯片ds18b20测量温度,体现了作品芯片化的这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成

9、块的使用,有效地避免外界的干扰,提高测量电路的精确度。本方案应用这一温度芯片,也是顺应这一趋势。对于温度的调节系统,我们采用的只是简单的升温方法,当温度低于我们设定的最低温度值时,则单片机系统控制加热装置产生热量来提高温度。在这个过程中,我们通过单片机将传感器所测量出来的温度通过两位数码管可以显示出来。这样就能实时显示温度情况。本设计采用了程序控制。在工程实际中,程序算法控制以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型,控制理论的其他技术也难以采用,系统控制器的结构和参数必须依靠经验和现场调试来确定时,应用程

10、序算法控制技术最为方便。   温度自动控制系统原理框图如图1-1所示:键盘数码管功率驱动加热装置ds18b20at89c2051图1.1 温度自动控制系统原理框图第2章 系统硬件各功能模块的设计2.1 主控模块的设计2.1.1单片机的选择 由于本设计所要完成的功能并不是特别强大,而且对硬件的控制io口数量要求也不是很多,同时要求有较低的成本控制。因此本设计打算使用比较常用的一款单片机那就是at89c2051。因为它能满足以上的要求,同时它的开发环境也比较成熟。以下是这款单片机的介绍: at89c2051是一种低功耗、高性能cmos8位微控制器,具有2k 在系可编程

11、flash 存储器。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使at89c2051为众多嵌入式控制应用系统提供高灵活、有效的解决方案。 at89c2051具有以下标准功能:2k字节flash,128字节ram,15位i/o 口线,2个数据指针,两个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片外晶振及时钟电路。另外,at89c2051 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,

12、振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 at89c2051的广泛使用使得市面价格较8155、8255、8279要低,所以说用它是比较经济的。该芯片具有如下功能:有15个通用用的io接口;有1个全双工异步串行通信接口;有2个16位定时/计数器。这样,1个at89c52,承担了2个专用接口芯片的工作;不仅使成本大大下降,而且优化了硬件结构和软件设计,给用户带来许多方便。at89c2051有20个引脚,有15个输入端口(i/o),有2个读写口线,可以反复插除。所以可以降低成本1。其主要工作特性为:l 内含2kb的flash存储器,擦写次数达1000次;l 内含128字节的r

13、am;l 具有16根可编程i/o线;l 具有2个16位可编程定时器;l 具有6个中断源、5个中断矢量、2级优先权的中断结构;l 具有1个全双工的可编程串行通信接口;l 具有1个数据指针dptr;l 两种低功耗工作模式,即空闲模式和掉电模式;l 具有可编程的3级程序锁定位;l 工作电源电压为5±1.3v,典型值为5v;l 最高工作频率为24mhz。l 引脚排列如图2-1所示。图2-1 at89c2051引脚排列(pdip)2.1.2 温度传感器的选择 本设计的温度传感器采用的是dallas公司的ds18b20传感器元件原因有它比常用的热电偶传感器有以下好处:它与热电偶相比少去了一个a/

14、d(模数转换芯片)从而使电路有了很大的简化。同时本电路的温度测量范围比较小此器件可以满足,同时此器件的测量精度比较高基本能满足本设计的要求。ds18b20的简介如下:ds18b20原理与特性:本系统采用了ds18b20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。首先来介绍一下ds18b20这块传感器的特性及其功能: dsl8b20的管脚及特点 ds18b20可编程温度传感器有3个管脚。内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。ds18b20的外形及管脚排列如图2.2所示。图2.2 ds18

15、b20的外形及管脚图gnd为接地线,dq为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。vdd为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3o5.5 v。本文使用外部电源供电。主要特点有: 1. 用户可自设定报警上下限温度值。 2. 不需要外部组件,能测量55+125 范围内的温度。3. 10 +85 范围内的测温准确度为±05 。4. 通过编程可实现9l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达00625 。 5. 独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。6. 测量结果直接输出数字

16、温度信号,以"一线总线"串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力。7. 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。8. ds18b20支持多点组网的功能,多个ds18b20可以并联在唯一的三线上,实现组网多点测温2。ds18b20内部功能模块如图2.3所示,图2.3 ds18b20内部功能模块ds18b20的工作原理:ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同ds18b20 为9位12位a/d转换精度,而ds1820为9位a/d转换,虽然我们采用了高精度的芯片,但在实际情况上由于技

17、术问题比较难实现,而实际精度此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。且温度转换时的延时时间由2s减为750ms。 ds18b20测温原理如图4.3所示。图2.4 ds18b20的测温原理框图图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。则高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的。一个基数值时。计数器1对低温度系数晶振产生脉冲信号,进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将

18、重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值。ds18b20使用中注意事项 ds18b20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: 1) 较小的硬件开销需要相对复杂的软件进行补偿,由于ds18b20与微处理器间采用串行数据传送,因此,在对ds18b20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds18b20操作部分最好采用汇编语言实现。 2) 在ds18b20的有关资料中均未提及单总线上所挂

19、ds18b20数量问题,容易使人误认为可以挂任意多个ds18b20,在实际应用中并非如此。当单总线上所挂ds18b20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 3) 连接ds18b20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用ds18b20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题

20、。 在ds18b20测温程序设计中,向ds18b20发出温度转换命令后,程序要等待ds18b20的返回信号,一旦某个ds18b20接触不好或断线,当程序读该ds18b20时,将没有返回信号,程序进入死循环。这一点在进行ds1820硬件连接和软件设计时也要给予一定的重视。测温电缆线采用屏蔽4芯双绞线,其中有一对接地线与信号线,另一组接vcc和地线。2.1.3复位和时钟电路的设计本系统中采用上电复位和手动复位键复位相结合的方式。系统时钟电路设计采用内部方式。at89c2051内部有一个用于构成振荡器的高增益反相放大器。这个放大器与作为反馈元件的片外晶体谐振器构成一个自激振荡器。外接晶体谐振器以及电

21、容构成并联谐振电路,接在放大器的反馈回路中。本系统电路采用的晶体振荡器频率为110592mhz。采用这种频率的晶体振荡器的原因是可以方便的获得标准的波特率,为以后的升级留下空间。复位电路和时钟电路如图2-5所示。复位电路有上电自动复位和按钮手动复位两种。上电复位是利用电容充电来实现的,上电瞬间rst/vpd端的电位与vcc相同,随着充电电流的减少,rst/vpd的电位逐渐下降,图2.5中的10k的电阻是施密特触发器输入端的一个下拉电阻,时间常数为10*10-6*10*103s=100ms,只要vcc的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作6。上电复

22、位所需最短时间是震荡周期建立时间加上2个机器周期时间。按钮复位采用电平复位方式,按下复位电钮时,电源对外接电容充电,使rst/vpd端为高电平,复位按钮松开后,电容通过内部下拉电阻放电,逐渐使rst/vpd端恢复低电平。图2.5 复位电路和时钟电路2.1.4 温度采集电路数据采集电路如图2.6所示,1脚接地,2脚即为单总线数据口,3脚接电源。温度传感器ds18b20采集被控对象的实时温度,提供给at89c2051的p3.5口作为数据输入。 图2.6 数据采集电路2.2 人机接口设计2.2.1 键盘的设计在本设计中采用了矩阵式,键盘分布如图2.7所示。各键设在行列线的交差点上,有键合上时行列线接

23、通,否则不连通。行线p10p13(即a1a4)通过上拉电阻接+5v,处于输入状态,列线p14p17(即b1b4)为输出状态7。图2.7 键盘电路2.2.2 显示电路的设计本设计的显示采用两位0.5寸共阳数码管,采用动态显示方式,因为此种方式的显示比液晶显示要更直观同时更节约成本。数码管的引脚图如图2.8所示。 图2.8 数码管引脚图数码管采用红色管,其接口为: 第1脚:为数码管的e端控制脚,来控制数码管的d点的亮灭。第2脚:为数码管的d端控制脚,来控制数码管的d点的亮灭。第3脚:为数码管的公共极,通过接入一个三极管来控制此数码管的亮灭,同时起到一个动态显示的作用。第4脚:为数码管的c端控制脚,

24、来控制数码管的c点的亮灭。第5脚:为数码管的dp端控制脚,来控制数码管的点的亮灭。第6脚:为数码管的b端控制脚,来控制数码管的b点的亮灭。第7脚:为数码管的a端控制脚,来控制数码管的a点的亮灭。第8脚:为数码管的公共极与3脚内部相连其作用相同这里不做介绍。第9脚:为数码管的f端控制脚,来控制数码管的f点的亮灭。第10脚:为数码管的g端控制脚,来控制数码管的g点的亮灭。在本设计中数码管与单片机的连接如图2.9所示。单片机的p0口为数据输出口,接到两个的数码管的相同接口,p3.0p3.1为控制端,分别选择在某一个瞬间是哪个数码管工作。图2.9 显示电路图2.3 功率驱动电路设计本设计的加热电阻丝的

25、驱动电路采用的是继电器驱动形式,因为继电器驱动与晶闸管形式驱动相比有可靠性高,成本低,不易损坏,电路简单等优点。因此本设计采用继电器驱动形式。本设计的驱动电路如图2.10所示。图2.10 继电器驱动电路第3章 软件设计由于整个系统软件比较复杂,为了便于编写、调试、修改和增删,系统程序的编制适合采用模块化的程序结构,故要求整个控制系统软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内数据关系紧凑,模块间数据关系松散的原则,将各功能模块组织成模块化的软件结构。系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工

26、作;数据采集模块的作用是将数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是将采集回的数字信号转换为实际温度的程序:控制算法模块完成控制系统的运算并且输出控制量。3.1主程序模块主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化、数码管的初始化等。然后等待温度设定,判断是否温度设定完成,若温度设定已完成则系统继续正常运行,则依次调用各个相关模块,循环控制直到系统停止运行。主程序模块的程序流程图如图3-1所示。ynynny ny图3-1 主程序流程图开始读温度设定值等待数据采集温度显示比较运算控制输出系统初始化

27、温度是否被设温度设定完成温度是否达到设定值更改注:详细部分子程序详见附录2的/* 主程序 */函数;/*系统初始化程序*/;3.2数据采集和显示模块数据采集模块的任务是负责温度信号的采集以及将采集到的数字量提供给单片机。at89c2051通过控制ds18b20读取实时温度,然后,通过p0口送到两位数码管进行显示。数据采集模块的程序流程图如图3.2所示,显示程序设计框图如图3.3所示。开始结果保存返回图3-2 数据采集模块程序流程图两位数码管初始化开始清除显示 n送显示位置 送显示数据 n 判断是否达到显示次数 返回 y图3.3 显示程序设计框图注:ds18b20和数码管显示的子程序设计详见附录

28、2的/*ds18b20程序:*/*数码管显示程序:*/3.3输入模块键盘选择程序扫描方式工作,利用cpu在完成其它工作的空闲时间中,调用键盘扫描子程序,来处理键的输入要求。在执行键功能处理程序时,cpu不再响应其它键输入要求9。键盘处理子程序流程图如图3.4所示:延时去抖动开 始有键闭合找到闭合键延时去键抖动扫描键盘键值计算闭合键释放结 束建立有效标志建立无效标志nynyny图3.4 键盘程序设计框图注:键盘模块部分子程序详见附录2的/* void anjianjianche() */第4章 调试与仿真 4.1 调试本设计的调试主要分为硬件调试,软件调试和综合调试三部分,以下对其做具体的讲解。

29、4.1.1硬件调试由于本设计采用的是由工厂代工制作的成品pcb板为焊接平台,所以在本设计的硬件调试上并没有花费太多的时间,当电路板焊接完成后,首先对电路板进行了一次目检,看看是否有焊盘漏焊和虚焊。当检查完成时发现一处虚焊后进行二次焊接进行补救。目检完成后又对电路进行了一次上电监测,对各引脚的电压都进行了测量,结果没有发现异常。基本检查完成后对电路板进行了一次实际程序实跑监测,像那些大公司一样在硬件焊接完成后要进行一次硬件检测程序的校验已发现有哪些硬件不能正常工作。因此本设计也写了一个单独对硬件各部分检测的程序,当程序烧写完成后,对电路板进行了一次综合性的检查,结果发现电路板一切正常。硬件调试结

30、束。4.1.2软件调试本设计的软件调试采用的是模块化方式,分别把程序中的每一个子函数做相应的改动后单独烧入芯片后,观察其相应的表现,以此来判断此子函数是否能正常工作。当每一个子程序检测完成后。要将程序中体的写在一起来检查一下是否存在个别子程序不兼容的情况,如果发现就予以改正。至此本设计的软件调试也将告一段落。 4.1.3综合性能调试综合调试的目的是检测程序中的某些参数是否合理,如不合理将予以改正,还有为各个电路模块安装到现成的盒子内的适当位置。例如在本设计中由于显示函数中的一个参数写的不合理,导致了当改变预定温度数值时,数码管不能及时的显示出预设的温度,发现了问题后予以改正,问题解决。在电路模

31、块的安装期间也遇到了问题,发现有些位置不能很可靠的安装到盒子内,后对盒子进行了改造,电路模块顺利的安装完成。到此调试结。4.2 仿真 本设计的仿真是通过对人为的假的工作环境进行模仿来验证本设计的准确性和可靠性。具体仿真如下:将设备接入220伏50赫兹的交流电,然后对设备进行具体的温度设定,大约将温度定在室温以上体温以下。这时由于室温没有达到预定温度设定值,因此此时单片机控制的加热器具的驱动电路开始工作,继电器被吸合,加热指示灯点亮。当用手摸住温度传感器后,由于体温高于温度设定值,所以单片机控制用于加热控制的继电器释放,加热器停止加热,同时停止加热的指示灯被点亮。当手一开后加热器又开始处于加热状

32、态。说明本设计可以满足我们正常的基本要求,达到了设计标准。到此仿真结束。 结 论本设计使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。该智能温度控制器只是ds18b20在温度控制领域的一个简单实例,还有许多需要完善的地方,例如可以将测得的温度通过单片机与通讯模块相连接,以手机短消息的方式发送给用户,使用户能够随时对温度进行监控。同时通过本次的毕业设计也让我深刻的体会到从一个想法到制作成型的艰辛历程。使我对未来的学习和工作有了一个新的认识和看法。此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。本温度控制系统可以应用于多种场合,像的温度、育婴房的温度、水温的控制。用户可

33、灵活选择本设计的用途,有很强的实用价值。参考文献1 马忠梅.单片机的c语言应用程序设计m.北京:北京航空航天大学出版社,1998 2 李晓荃.单片机原理与应用m.北京:电子工业出版社,2000年8月3 何立民 avr单片机原理与接口技术m.北京:北京航空航天大学出版社,20024 杨邦文 新型继电器实用手册m.北京:北京人民邮电出版社.20045 何立民 单片机的语言应用程序设计m.北京:北京航空航天大学出版社,19976模拟电子技术基础 第三版  高等教育出版社  童诗白 华成英主编7数字电子技术 清华大学出版社 庞学民主

34、编8单片机原理及接口技术 北京航空航天大学出版社  李朝青编著9单片机原理及实用技术 高等教育出版社  李刚民、曹巧媛、曹琳琳、陈忠平编著10王幸之,钟爱琴,王雷,王闪at89系列单片机原理与接口技术m北京:北京 航空航天大学出版社2004,511张迎新单片微型计算机原理 应用及接口技术m北京:国防工业出版社2004,112孙传友,孙晓斌,汉泽西,张欣测控系统原理与设计m北京:北京航空航天大学出版社2002,913汪道辉单片机系统设计与实践m北京:电子工业出版社2006,514谢宜仁,谢炜,谢东辰单片机实用技术问答m北京:人民邮电出版

35、社2003,215杨拴科模拟电子技术基础m北京:高等教育出版社2003,1致 谢本论文在黄冬梅老师的细心指导和严格要求下已完成,从课题选择到具体构思和内容,无不凝聚着老师的心血和汗水,特别是老师严格的教学要求和一丝不苟的工作精神,让我非常敬佩。在三年的大学学习和生活期间,我也始终感受着导师的精心培养和无私的关怀,我受益匪浅。在此向各位老师表示深深的感谢和崇高的敬意。这次做论文的经历也会使我终身受益,我感受到做论文是要的的确确用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励

36、我继续进步。不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向系的全体老师表示由衷的感谢,感谢你们3年来的辛勤栽培。在此,我还要特别感谢我的同学们,由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,你们对本课题做了不少工作,直至本文的顺利完成,给予我不少的帮助,谢谢你们!附录1:源程序#include<reg52.h>#include"intrins.h" sbit eq=p30;/定义p3.7为18b20数据端 s

37、bit q=p31; sbit led=p32; sbit q1=p34; sbit q2=p33; sbit key2=p37; sbit key1=p35; unsigned char t=0x00,th,tl;/声明温度变量 unsigned char dingwd=20,t1=0,t2=0,td1,td2; unsigned char num=0x08,0x6e,0x14,0x24,0x62,0x21,0x01,0x6c,0x00,0x20; unsigned int bz=0; void xianshi(); void xianshi1(); void anjianjianche()

38、; void shujuzhuanhuan(); void delay50_us(unsigned char t)/50us延时函数 unsigned char j,k; for(j=0;j<t;j+) for(k=0;k<19;k+); void csh_18b20()/初始化函数 bit i; eq=1; eq=0; delay50_us(16);/拉低800微秒 eq=1; /变高电平 delay50_us(3);/等待150微秒 i=eq; /读取初始化返回信号 eq=1; delay50_us(2);/延时400us unsigned char read(void)/读数

39、据函数 unsigned char h,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; else dat|=0x00; dat>>=1; eq=1; delay50_us(2); return dat; void write(unsigned char cmd)/写数据函数 unsigned char i; for(i=0;i<8;i+)/循环8次 eq

40、=1; _nop_(); eq=0;/拉低电平2us _nop_(); _nop_(); eq=cmd&0x01; delay50_us(2); cmd>>=1; eq=1; _nop_(); void duquwendu()/读取温度总函数 unsigned int g; csh_18b20();/初始化18b20 write(0xcc);/跳过rom write(0x44);/温度转换命令 for(g=0;g<8000;g+) anjianjianche(); shujuzhuanhuan(); if(bz=0) xianshi();/延时800毫秒 else x

41、ianshi1(); csh_18b20();/初始化18b20 write(0xcc);/跳过rom write(0xbe);/读取数据命令 tl=read();/读取温度低字节 th=read();/读取温度高字节 void wdhs()/温度换算 t=tl>>2;/温度低字节右移2位 t2=t%10;/个位 t1=t/10;/十位 void anjianjianche() if(key1=0) delay50_us(40); if(key1=0) while(key1=0) xianshi1(); if(bz=0) bz=5000; else dingwd+; bz=5000

42、; 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; void shujuzhuanhuan()/数据转换 td2=dingwd%10;/个位 td1=dingwd/10;/十位 void xianshi1() bz-; p1=numtd1;/十位 _nop_(); _nop_(); q1=0; delay50_us(1); q1=1;

43、_nop_(); p1=numtd2;/个位 _nop_(); _nop_(); q2=0; delay50_us(1); q2=1; _nop_(); void xianshi()/温度显示 p1=numt1;/十位 _nop_(); _nop_(); q1=0; delay50_us(1); q1=1; _nop_(); p1=numt2;/个位 _nop_(); _nop_(); q2=0; delay50_us(1); q2=1; _nop_(); void shujubijiao() if(t>(dingwd+1) q=1; led=0; if(t<(dingwd-1)

44、q=0; led=1; void main()while(1) anjianjianche(); shujuzhuanhuan(); duquwendu(); wdhs(); shujubijiao(); 附录2:各部分模块子程序/* 主程序 */void main()while(1) anjianjianche(); shujuzhuanhuan(); duquwendu(); wdhs(); shujubijiao(); 系统初始化程序:#include<reg52.h>#include"intrins.h" sbit eq=p30;/定义p3.7为18b2

45、0数据端 sbit q=p31; sbit led=p32; sbit q1=p34; sbit q2=p33; sbit key2=p37; sbit key1=p35; unsigned char t=0x00,th,tl;/声明温度变量 unsigned char dingwd=20,t1=0,t2=0,td1,td2; unsigned char num=0x08,0x6e,0x14,0x24,0x62,0x21,0x01,0x6c,0x00,0x20; unsigned int bz=0; void xianshi(); void xianshi1(); void anjianjianche(); void shujuzhuanhuan(); void delay50_us(unsigned char t)/50us延时函数 unsigned char j,k; for(j=0;j<t;j+) for(k=0;k<19;k+); ds18b20程序:void csh_18b20()/初始化函数 bit i; eq=1; eq=0

温馨提示

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

评论

0/150

提交评论