AT89C52单片机为核心的电烤箱温度控制系统-单片机课程设计_第1页
AT89C52单片机为核心的电烤箱温度控制系统-单片机课程设计_第2页
AT89C52单片机为核心的电烤箱温度控制系统-单片机课程设计_第3页
AT89C52单片机为核心的电烤箱温度控制系统-单片机课程设计_第4页
AT89C52单片机为核心的电烤箱温度控制系统-单片机课程设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

西华大学课程设计摘要温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。本设计是利用单片机的控制功能来设计一种智能的电烤箱系统,保证使用安全又达到节能的作用。本文介绍了以AT89C52单片机为核心的电烤箱温度控制系统。电烤箱的温度控制系统有两部分组成:硬件部分和软件部分。其中硬件部分包括:单片机最小系统、驱动电路、报警电路、温度检测电路、以及键盘电路。软件部分包括:主程序、运算控制程序、以及各功能实现模块的程序。温度采集由DALLAS公司生产的一线式数字温度传感器DS18B20采集。DS18B20测温范围为-55°C~+125°C,测温分辨率可达0.0625°C,被测温度用符号扩展的16位补码形式串行输。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。关键词:温度控制;电烤箱;单片机目录TOC\o"1-3"\f\h\z第1章绪论 3第2章课程设计的方案 42.1概述 42.2系统组成总体结构 4第3章硬件设计 63.1单片机最小系统的设计 63.1.1时钟电路设计 83.1.2复位电路设计 93.2温度检测模块的设计 103.2.1DS18B20芯片的内部结构 113.2.2DS18B20的测温原理 113.2.3DS18B20数据处理 123.2.4DS18B20温度检测电路设计 133.3报警电路的设计 143.4按键电路的设计 153.5驱动模块的设计 15第4章软件设计 174.1主程序流程图 174.2温度检测模块 18第5章课程设计总结 20参考文献 21绪论随着现代信息技术的飞速发展和传统工业的逐步改造,温度自动检测和显示功能在很多领域得到广泛应用。人们在温度检测的准确度、便捷性和快速等方面有着越来越高的要求。本文以电烤箱的温度控制为模型,设计了以AT89C52单片机为检测控制中心的温度控制系统。

单片机出现的历史并不长,但发展迅猛。自1975年美国德克斯仪器公司首次推出8位单片机TMS-1000后才开始快速发展。1976年9月,美国Intel公司首次推出MCS-48系列8位单片机以后,单片机发展进入了一个新的阶段。1983年Intel公司推出的MCS-96系列、1987年Intel公司又推出的80C96等位16位单片机。近年来各个计算机生产厂家已进入更高性能的32位单片机研制、生产阶段。单片机发展之快、品种之多,其中最常用的主要有:AT89系列单片机、AVR单片机Motorola公司的M68HC08系列单片机以及PIC单片机。随着社会的发展,单片机的特点体现在体积小、可靠性高、使用方便等方面。根据温度控制的特点,本次设计采用AT89C52单片机为控制核心,采用数字PID控制算法。实现对电烤箱的温度的控制。通过本次设计进一步详细说明单片机控制系统在社会生活中的应用。为以后进一步应用单片机系统提供帮助。AT89C52单片机是美国Intel公司的8位高档单片机的系列。也是目前应用最为广泛的一种单片机系列。AT89C52系列单片机主要有CPU、存储器,I\O接口电路及时钟电路等部分组成。此电烤箱温度控制系统利用单片机的控制功能来设计一种智能的烤箱系统。本文利用由DALLAS公司生产的一线式数字温度传感器DS18B20数字温度传感器采集温度。这种温度控制系统能过通过LCD1602显示屏直观的来观察电烤箱温度,通过按钮调节上限和下限温度的值。DS18B20测温范围为-55°C~+125°C,测温分辨率可达0.0625°C,被测温度用符号扩展的16位补码形式串行输出。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。课程设计的方案2.1概述本次设计主要是综合应用所学知识,设计基于单片机的电烤箱温度控制系统,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“单片机”课程中所学的基本理论和基本方法,并初步掌握小型单片机系统设计的基本方法。应用场合:温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。此电烤箱温度控制系统利用单片机的控制功能来设计一种智能的烤箱系统,避免电烤箱加热过程中发生安全事故。主要应用于需要根据外界的需要自动调节温度范围的场合。系统功能介绍:当DS18B20检测到温度超过设定的值时,发出信号到单片机AT89C52的中断端口,由AT89C52单片机控制加热系统断电,这样就能很好的解决温度过高的问题,起到一个很好的保护的作用。当DS18B20传感器检测到温度低于设定的下限值时,又会给AT89C52单片机一个启动信号,AT89C52就又会重启加热系统开始工作,这样就能保证电烤箱能正常加热了。当DS18B20传感器检测温度达到燃烧的临界点时,会给AT89C52输入一个预报警信号,AT89C52就会控制报警系统报警,这样就起到一个很好的保护作用。2.2系统组成总体结构系统主要包括单片机控制模块,驱动模块,温度检测模块,按键模块,报警模块等五大部分。AT89C52AT89C52温度显示温度显示温度传感器温度传感器报警电路时钟与复位电路报警电路时钟与复位电路按键输入按键输入电炉驱动装置稳压电源电炉驱动装置稳压电源图2.1系统组成总体框结构图控制模块主要由单片机AT89C52构成,温度检测由DS18B20传感器完成。稳压电源为整个系统提供+5V的直流电压。系统通过按键电路输入温度的设定值,通过温度检测电路检测当前的温度范围,通过单片机的控制作用得到想要的温度值,通过驱动电路来驱动电炉。当DS18B20传感器检测温度达到燃烧的临界点时,会给AT89C52输入一个预报警信号,AT89C52就会作用于报警电路发出报警。第3章硬件设计3.1单片机最小系统的设计数据处理过程是主要由AT89C52单片机等芯片完成的。AT89C52是一种带4K字节的闪烁可编程可擦除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。其中包括128字节内部RAM,32个I/O口线,2个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式[26]。空闲方式体制CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复位。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器。AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。AT89C52单片机是美国Intel公司的8位高档单片机的系列。也是目前应用最为广泛的一种单片机系列。其内部结构简化框图如下所示。AT89C52系列单片机主要有CPU、存储器,I\O接口电路及时钟电路等部分组成。AT89C52单片机管脚图如图3.1所示

图3.1单片机引脚图引脚功能说明如下:·VCC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,P1接受低8位地址。·P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位四肢的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据,在访问8位地址的外部数据存储器(例如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。Flash编程和程序校验时,P2也接收高位地址和其他控制信号。·P3口:P3是一个带有内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是,每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元D0位置位,可禁止ALE操作。该位置,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。·PSEN:程序存储允许输出是外部程序存储器的读选通型号,当89C51由外部存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12v的编程允许电源VPP,当然这必须是该器件使用12v编程电压VPP。·XTAL1:振荡器反相放大器及内部时钟发生器的输入端。·XTAL2:振荡器反相放大器的输出端。89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,外接石英晶体或陶瓷谐振器及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对电容C1、C2虽没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30Pf±10Pf,而如使用陶瓷谐振器建议选择40Pf±10Pf。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL端,即内部时钟发生器的输入端XTAL则悬空。3.1.1时钟电路设计单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。本课题采用内部时钟方式。在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。晶振频率取12MHz。外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率的作用,本课题选用33pF的电容。易知:本单片机最小系统的振荡周期=1/(12MHz)=1/12us,时钟周期=1/6us,机器周期=1us。图3.2时钟电路原理图3.1.2复位电路设计无论是在单片机刚开始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。单片机的复位条件:必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。单片机的复位形式:上电复位、按键复位。本课题采用按键复位。在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。图3.3复位电路原理图单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机之外,还需要包括电源供电电路、时钟电路、复位电路。图3.4单片机最小系统原理图3.2温度检测模块的设计温度检测模块主要是由DS18B20传感器构成。该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75

ms和750

ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。3.2.1DS18B20芯片的内部结构(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

(2)在使用中不需要任何外围元件。

(3)可用数据线供电,电压范围:+3.0~+5.5V。

(4)测温范围:-55~+125℃。固有测温分辨率为0.5℃。(5)通过编程可实现9~12位的数字读数方式。

(6)用户可自设定非易失性的报警上下限值。

(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。

存储器与控制逻辑64位ROM存储器与控制逻辑64位ROM和单线接口高速缓存高速缓存温度传感器高温触发器TH高温触发器TH低温触发器TL低温触发器TL配置寄存器配置寄存器8位8位CRC发生器图3.5DS18B20内部结构框图3.2.2DS18B20的测温原理

DS18B20的测温原理如图3.6所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3.6中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器1的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。斜率累加器计数比较器斜率累加器计数比较器减法计数器1预置减法计数器1预置预置低温度系数振荡器预置低温度系数振荡器减到0减到0增加增加温度寄存器温度寄存器停止停止减到0减法计数器2高温度系数振荡器减到0减法计数器2高温度系数振荡器图3.6DS18B20的测温原理3.2.3DS18B20数据处理

DS18B20的高速暂存存储器由9个字节组成,其分配如表3.1所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。下表是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。温度转换计算方法举例:例如当DS18B20采集到+125℃的实际温度后,输出为07D0H,则:实际温度=07D0H╳0.0625=2000╳0.0625=125℃。例如当DS18B20采集到-55℃的实际温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作为计算),则:实际温度=370H╳0.0625=880╳0.0625=55℃。表3.1DS18B20温度与表示值对应表温度二进制表示十六进制表示+125000001111101000007D0H+8500000101010100000550H+25.062500000001100100010191H+10.125000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-10.1251111111101011110FF5EH-25.06251111111001101111FE6FH-551111110010010000FC90H3.2.4DS18B20温度检测电路设计

D1S18B20有两种供电模式:外部供电模式和寄生供电模式,本设计供电模式。图3.7温度检测电路3.3报警电路的设计当温度超过设定值时,人又没又在旁边,就会带来不便,所以设计一个报警电路,当检测到温度超过设定值时提醒使用者关注电烤箱的状态。本设计的报警电路主要由蜂鸣器和2N3702型号的三极管构成,由于AT89C52的端口输出电流小驱动能力弱所以接一个2N3702放大电流驱动蜂鸣器。当电池放电结束后单片机控制P2.4输出固定频率的高低电平从而使蜂鸣器发出声音。报警电路如图3.8所示:图3,8报警电路3.4按键电路的设计由下图可以看出按键电路的工作原理。通过按键来设定温度的调节范围,确定设定值,若需要修改时,重新输入相应的数值即可。S2到s6按键功能分别为:设置、增加、减小、确定、复位。下面为按键硬件电路:图3.9按键电路3.5驱动模块的设计为保证驱动电路可靠工作,其驱动电路应满足如下要求:1)动态驱动能力强,能提供驱动脉冲,使加热电路迅速导通。2)能提供适当的正向偏压和足够的反向偏压,使加热电路可靠的开通和关断。3)有足够的输入输出电气隔离能力,使信号电路与栅极驱动电路隔离,且具有灵敏的短路、过流保护功能。所设计的驱动电路如图3.10所示。图3.10驱动电路Q1,Q2组成功率放大电路,单片机I/O接口为P2.0。该驱动电路能安全接受输入信号,在接到正确的控制信号后对加热电路进行驱动,从而实现电烤箱的加热过程。第4章软件设计4.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的温度值。主程序的另一功能是判断温度是否超过设定极限。其程序流程见图4.1所示。由总的流程图可以分析出,在整个程序中应该包括如下几个部分取DS18B20温度子程序,温度转换子程序,温度计算子程序,数据显示子程序等。主程序流程图如下所示。开始显示温度显示温度系统初始化系统初始化温度超过设定极限?温度超过设定极限?按键设定初值Y按键设定初值Y报警程序报警程序从DS18B20中读取温度从DS18B20中读取温度N返回N返回YN是否小于设定值?YN是否小于设定值?加热加热4.1主程序流程图读出温度程序的主要功能是读出RAM中的数据。在读出时需进行CRC校验,校验有错时不进行温度数据的读取。其程序流程图如图4.2所示。发DS18B20复位命令发DS18B20复位命令N发跳过ROM命令N发跳过ROM命令CRC校验?CRC校验?Y发读取温度命令Y发读取温度命令移入温度寄存器移入温度寄存器读取操作读取操作NN全部读完?结束全部读完?结束YYYY图4.2读出温度程序流程图4.2温度检测模块温度采集部分软件编程包括温度转换程序、温度计算程序及温度显示程序。温度转换程序是从发温度转化命令开始。当采用12位分辨率时,转换时间约为750ms。温度转化命令程序流程图如下所示。发DS18B20复位命令发DS18B20复位命令发跳过ROM命令发跳过ROM命令发温度转换开始命令发温度转换开始命令结束结束图4.3温度转化程序流程图温度计算程序将RAM中读取的值进行BCD码的转化运算,并进行温度值正负的判定。计算温度程序流程图如下所示。开始开始计算小数位温度BCD值计算小数位温度BCD值N温度零下?N温度零下?无标志无标志Y计算整数位温度BCD值Y计算整数位温度BCD值温度值取补码置“-”标志结束温度值取补码置“-”标志结束图4.4温度计算程序流程图第5章课程设计总结在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内微变,稳定性好,不振荡,对系统的快速性要求高。在论文中简单分析了单片机温度控制系统设计过程及实现方法。我的课设题目是基于单片机的电烤箱温度控制设计。本次课程设计的温度检测电路由DS18B20来实现,以AT89C52作为温度控制系统,因此需要通过查阅资料来了解器件的基本结构、主要功能和注意事项等。通过了解器件,比较彼此之间的优缺点,来确定设计所需的器件,如何更好的利用器件的特点成为本次设计重要的一方面。在确定了器材之后,如何利用使之最大限度的体现设计的功能,完成设计目标,这又是需要花大量时间去思考的。在此期间经历了多次的方案论证、系统的硬件、软件设计以及查阅了大量的关于传感器、单片机接口电路、控制方面的理论。经过了一番特殊的体验后,经历了失败的痛苦,也尝到了成功的喜悦,第一次通过所学的专业知识来解决问题。此过程检查了自己的知识水平,使我对自己有一个全新的认识。通过这次课程设计,不仅锻炼了自己分析问题、处理问题的能力,还提高了自己的动手能力,这些培养和锻炼对于我们大学生来说,是很重要的。参考文献[1]华成英,童诗白.模拟电子技术基础.高等教育出版社,2000[2]阎石.数字电子技术基础.高等教育出版社,1997:12-121[3]李朝青.单片机原理及接口技术.北京:北京航空航天大学出版,2007:3-64[4]楼然苗.单片机课程设计指导.北京:北京航空航天大学出版社,2012:13-134[5]康万新.应用电子技术方向.北京:清华大学出版,2009(2):8-356[6]张毅刚.基于Protel的单片机课程的基础实验与课程设计.人民邮电出版社,2012:4-65[7]周景润.Protel入门实用教程.机械工业出版社,2007[8]郁有文.传感器原理及工程应用.西安:西安电子科技大学出版,2010:1-127[9]刘畅生.电源集成电路使用速查手册.中国电力出版社,2010[10]杨永.模拟电子技术设计、仿真与制作.电子工业出版社,2012:2-232[11]余道衡,徐乘和.电子电路手册.北京:北京大学出版社,1996[12]王宗信,谢万新.传感器基础知识.煤炭工业出版社,1988:4-412[13]杨亭.单片机C51程序设计教程与实验.北京:北京航天航空出版,2006:4-211[14]张伟.单片机原理及应用.机械工业出版社,2002:5-112[15]马树华.单片机原理及接口技术.北京:北京邮电大学出版社,2005附录程序清单#include<reg52.H>#defineucharunsignedchar#defineuintunsignedintintbaii,shii,gee,sheding1;ucharflag;uintbaid,shid,ged;uinttvalue;//温度值ucharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};sbitDQ=P3^7;//ds18b20与单片机连接口sbitkong1=P3^0;sbitkong2=P3^1;sbitkong3=P3^2;sbitkong4=P3^3;sbitkong5=P3^4;sbitkong6=P3^5;sbitbai=P1^0;sbitshi=P1^1;sbitge=P1^2;sbitqueren=P1^3;sbitkaoxiang=P1^4;voiddelay(ucharz){ucharx,y;for(x=z;x>0;x--)for(y=123;y>0;y--);}voiddisplay(){P2=table[baii];kong1=1;delay(10);kong1=0;P2=table[shii];kong2=1;delay(10);kong2=0;P2=table[gee];kong3=1;delay(10);kong3=0; }voiddisplay1(){P0=table[baid];kong4=1;delay(10);kong4=0;P0=table[shid];kong5=1;delay(10);kong5=0;P0=table[ged];kong6=1;delay(10);kong6=0; }anjian(){if(queren==0){delay(10);if(queren==0){flag=1;delay(500);}delay(1500);}if(bai==0){delay(10);if(bai==0){baii=1;delay(500);}delay(1500);} if(shi==0){delay(10);if(shi==0){shii++;delay(500);if(shii==10)shii=0;}delay(1500);} if(ge==0){delay(10);if(ge==0){gee++;delay(500);if(gee==10)gee=0;}delay(1500);} sheding1=baii*100+shii*10+gee; if(sheding1>120){} if(flag==1){returnsheding1;} } //ds18b20程序voiddelay_18b20(uinti)//延时1微秒{ while(i--);}voidds18b20rst()//ds18b20初始化子函数//要求"数据线拉高-延时-数据线拉低-延时大于480微妙-数据线拉高-延时等待"{ ucharx=0; DQ=1;//信号线DQ复位 delay_18b20(4);//延时 DQ=0;//DQ拉低 delay_18b20(100);//精确延时大于480us DQ=1;//拉高 delay_18b20(40);}voidds18b20wr(ucharwdata)/*写数据子函数,无返回值,含参数*/{ uchari=0; for(i=8;i>0;i--)//要写完一个字节,故需要重复8次以下操作 { DQ=0;//数据线拉低 DQ=wdata&0x01;//wdata是一个形参,将其与00000001进行按位与//按从低到高的顺序发送数据(一次发送一位) delay_18b20(10); DQ=1;//最后将数据线拉高 wdata>>=1;//将wdata右移1位 }}uchards18b20rd()//读数据子函数,是有返回值dat{ uchari=0; uchardat=0; for(i=8;i>0;i--)//要读完一个字节,故需要重复8次以下操作 { DQ=0;//给脉冲信号 dat>>=1; DQ=1;//给脉冲信号 if(DQ) dat|=0x80; delay_18b20(10); } return(dat);//返回dat}read_temp()//读取温度值并转换的子函数,有返回值温度值tvalue{ uchara,b; ds18b20rst();//调用ds18b20初始化子函数 ds18b20wr(0xcc);//调用写数据子函数,向ds18b20写命令0xcc//ccH表示跳过ROM读序列号,适用于单机工作,直接向18b20发送温度变换命令 ds18b20wr(0x44);//调用写数据子函数,向ds18b20写命令0x44//44H表示启动ds18b20温度转换,结果自行存入9字节的RAM中 ds18b20rst();//调用ds18b20初始化子函数 ds18b20wr(0xcc);//同上 ds18b20wr(0xbe);//调用写数据子函数,向ds18b20写命令0xbe//beH表示读取RAM中9字节的温度数据 a=ds18b20rd();//调用读数据子函数,并将所得数据给a b=ds18b20rd();// tvalue=b;//把b的值给tvalue tvalue<<=8;//tvalue左移8位 tvalue=tvalue|a;//tvalue与a进行按位或 tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数 return(tvalue);//返回温度值}//温度值显示voidds18b20disp()//温度值显示{baid=tvalue/1000;//百位数shid=tvalue%1000/100;//十位数ged=tvalue%100/10;//个位数}voidmain(){flag=0;baii=0; shii=0; gee=0; while(1){display();anjian(); read_temp();//调用ds18b20读取温度ds18b20disp(); display1();//调用温度显示子函数 if(tvalue<sheding1){kaoxiang=0;} //温度小于设定值,加热,P14输出低电平(见驱动电路) if(tvalue>sheding1){kaoxiang=1;} delay(4000);}}基于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单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究

温馨提示

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

评论

0/150

提交评论