课程设计(论文)-基于DS18B20的温度控制系统设计.docx_第1页
课程设计(论文)-基于DS18B20的温度控制系统设计.docx_第2页
课程设计(论文)-基于DS18B20的温度控制系统设计.docx_第3页
课程设计(论文)-基于DS18B20的温度控制系统设计.docx_第4页
课程设计(论文)-基于DS18B20的温度控制系统设计.docx_第5页
免费预览已结束,剩余27页可下载查看

下载本文档

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

文档简介

目录1、前言12、温度控制系统设计22.1方案选择22.2整体电路设计23、电路模块设计33.1电源电路模块33.2 stc89c52控制芯片33.3 ds18b20温度控制芯片63.3.1 ds18b20简介63.3.2 ds18b20的性能特点63.3.3 ds18b20供电方式73.3.4 ds18b20测温原理73.4复位电路模块83.5显示电路模块93.5.1移位寄存器74hc16493.5.2数码管显示电路103.6报警电路模块113.7按键电路模块114、软件设计124.1控制流程图124.2 ds18b20工作过程及时序124.2.1初始化时序124.2.2写时序134.2.3读时序145、闭环控制165.1 被控对象的传递函数测定165.2控制算法166、系统调试197、结论20参考文献22附录231、前言温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。传统的继电器调温电路简单实用 ,但由于继电器动作频繁 ,可能会因触点不良而影响正常工作。控制领域还大量采用传统的pid控制方式,但pid控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。而采用数字温度传感器ds18b20,因其内部集成了a/d转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器ds18b20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于ds18b20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器ds18b20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器ds18b20进行范围的温度检测。2、温度控制系统设计2.1方案选择实现温度控制的方法主要有以下几种。方案一:采用纯硬件的闭环控制系统。该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。且要实现题目所有的要求难度较大。方案二:fpga/cpld或采用带有ip内核的fpga/cpld方式。即用fpga/cpld完成采集,存储,显示及a/d等功能,由ip核实现人机交互及信号测量分析等功能。这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,成本较高。方案三:单片机与高精度温度传感器结合的方式。即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。这种方案克服了方案一、二的缺点,所以本设计任务是基于stc89c52单片机和温度传感器实现对温度的控制。系统框图如下:温度传感器单片机键盘控制复位电路显示电路报警电路电源电路图2-1 系统框图2.2整体电路设计温度传感器 ds18b20从设备环境的不同位置采集温度,单片机 stc89c52 获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度值,通过加热和冷却对当前温度进行调整。采集到的温度数据传输到单片机,由单片机处理后的数据送显示部分显示,当采集的温度经处理后低于设定温度的下限或高于设定温度的上限时,单片机控制报警电路发出报警声,同时相应的发光二极管发光显示。本次设计的整体电路图见附录。3、电路模块设计3.1电源电路模块控制系统主控制部分电源需要用5v直流电源供电,其电路如图6-1所示,把频率为50hz、有效值为220v的单相交流电压转换为幅值稳定的5v直流电压。其主要原理是把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。本电路使用集成稳压芯片7805解决了电源稳压问题。电源电路如图所示。图3-1 电源电路3.2 stc89c52控制芯片stc89c52是一个低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,stc89c52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。stc89c52单片机在电子行业中有着广泛的应用。stc89c52芯片具有以下主要功能特性:1、兼容mcs51指令系统;2、8k可反复擦写(大于1000次)flash rom;3、32个双向i/o口;4、256x8bit内部ram;5、3个16位可编程定时/计数器中断;6、时钟频率0-24mhz;7、2个串行中断,可编程uart串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;11、有pdip、pqfp、tqfp及plcc等几种封装形式,以适应不同产品的需求。stc89c52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出i/o引脚。引脚图如图3-2所示:图3-2 stc89c52引脚图具体介绍如下:1.电源引脚vcc和vssvcc(40脚):接+5v电源正端;vss(20脚):接+5v电源负端。2.外接晶振引脚xtal1和xtal2xtal1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于hmos单片机,该引脚接地;对于choms单片机,该引脚作为外部振荡信号的输入端。xtal2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于hmos单片机,该引脚作为外部振荡信号的输入端。对于chmos芯片,该引脚悬空不接。3.控制信号或与其它电源复用引脚有rst/vpd、ale/p、psen和ea/vpp等4种形式。rst/vpd(9脚):rst即为reset,vpd为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当vcc发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源vpd(+5v)为内部ram供电,以保证ram中的数据不丢失。ale/ prog(30脚):当访问外部存储器时,ale(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在p0口的地址信号。psen(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期pesn两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,pesn信号将不出现。ea/vpp(31脚):ea为访问外部程序储器控制信号,低电平有效。当ea端保持高电平时,单片机访问片内程序存储器4kb(ms52子系列为8kb)。若超出该范围时,自动转去执行外部程序存储器的程序。当ea端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有eprom的单片机,在eprom编程期间,该引脚用于接21v的编程电源vpp。4.输入/输出(i/o)引脚p0口、p1口、p2口及p3口p0口(39脚22脚):这8条引脚有两种不同功能,分别适用于两种不同情况。第一种情况是89s51不带片外存储器,p0口可以作为通用i/o口使用,p0.0-p0.7用于传送cpu的输入/输出数据。第二种情况是89s51带片外存储器,p0.0-p0.7在cpu访问片外存储器时用于传送片外存储器的低8位地址,然后传送cpu对片外存储器的读写数据。p1口(1脚8脚):这8条引脚和p0口的8条引脚类似,p1.7为最高位,p1.0为最低位。当p1口作为通用i/o口使用时,p1.0-p1.7的功能和p0口的第一功能相同,也用于传送用户的输入和输出数据。p2口(21脚28脚):这组引脚的第一功能和上述两组引脚的第一功能相同,既它可以作为通用i/o口使用。它的第二功能和p0口引脚的第二功能相配合,用于输出片外存储器的高8位地址。p3口(10脚17脚):p3.0p3.7统称为p3口。它为双功能口,可以作为一般的准双向i/o接口,也可以将每1位用于第2功能,而且p3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。p3口的第2功能见表3-1。表3-1 单片机p3口管脚第2功能引脚第2功能p3.0p3.1p3.2p3.3p3.4p3.5p3.6p3.7rxd(串行口输入端)txd(串行口输出端)int0(外部中断0请求输入端,低电平有效)int1(外部中断1请求输入端,低电平有效)t0(时器/计数器0计数脉冲端)t1(时器/计数器1计数脉冲端)wr(外部数据存储器写选通信号输出端,低电平有效)rd(外部数据存储器读选通信号输出端,低电平有效)3.3 ds18b20温度控制芯片3.3.1 ds18b20简介ds18b20是dallas公司生产的一线式数字温度传感器,具有3引脚to92小体积封装形式;温度测量范围为55 125,可编程为9位12位a/d转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个ds18b20可以并联到3根或2根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使ds18b20非常适用于远距离多点温度检测系统。其封装图如图3-3所示。图3-3 ds18b20引脚图3.3.2 ds18b20的性能特点a、独特的单线接口仅需要一个端口引脚进行通信;b、多个ds18b20可以并联在惟一的三线上,实现多点组网功能;c、无须外部器件;d、可用数据线供电,电压范围:3.05.5v;e、测温范围:-55 +125 ,在-10 +85 时精度为0.5 ;可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625;f、12位分辨率时最多在750ms内把温度值转换为数字;g、用户可定义的非易失性温度报警设置;h、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;i、负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。j、温度转换时间由ds1820的2s降为750ms,且灵敏度大为提高,在逐渐升温的水中与精度为0.5的温度计几乎同步,且回复性很好;k、每个芯片唯一编码,支持联网寻址,零功耗等待。3.3.3 ds18b20供电方式在硬件上,ds18b20与单片机的连接有两种方法,一种是用寄生电源供电,此时vcc、gnd接地,i/o接单片机i/o如图3-4所示;另一种是vcc接外部电源,gnd接地,i/o与单片机的i/o线相连如图3-5所示。无论是内部寄生电源还是外部供电,i/o口线要接5k左右的上拉电阻。图3-4寄生电源方式图3-5外接电源方式本设计中,采用第二种方法,这样简化硬件电路设计,降低了整个系统的复杂度。3.3.4 ds18b20测温原理当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625 形式表示。温度值格式如图4-6所示。图3-6 温度值格式当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制。表3-2是一部分温度值对应的二进制温度数据。表3-2 部分温度值对应的二进制数据温度二进制表示十六进制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90hds18b20完成温度转换后,就把测得的温度值与ram中的th、tl字节内容作比较。若tth或tl,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。因此,可以用多只ds18b20同时测量温度并进行报警搜索。在64位rom的最高有效字节中存储有循环冗余检验码(crc)。主机根据rom的前56位来计算crc值,并和存入ds18b20的crc值作比较,以判断主机收到的rom数据是否正确。ds18b20有六条控制命令,如表3-3所示:表3-3 ds18b20控制命令指 令约定代码操 作 说 明温度转换读暂存器写暂存器复制暂存器重新调e2ram读电源供电方式44hbeh4eh48hb8hb4h启动ds18b20进行温度转换读暂存器9个字节内容将数据写入暂存器的th、tl字节把暂存器的th、tl字节写到e2ram中把e2ram中的th、tl字节写到暂存器th、tl字节启动ds18b20发送电源供电方式的信号给主cpucpu对ds18b20的访问流程是:先对ds18b20初始化,再进行rom操作命令,最后才能对存储器操作,数据操作。ds18b20每一步操作都要遵循严格的工作时序和通信协议。如主机控制ds18b20完成温度转换这一过程,根据ds18b20的通讯协议,须经三个步骤:每一次读写之前都要对ds18b20进行复位,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。3.4复位电路模块复位电路有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,只要电源vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与vcc电源接通而实现的,而按键脉冲复位则是利用rc微分电路产生的正脉冲来实现的。本系统的复位电路采用上电复位方式。电路图如图所示:图4-7 复位电路3.5显示电路模块本电路主要使用八段数码管和移位寄存器芯片74hc164。单片机通过数据总线将要显示的数据信号传送到移位寄存器芯片74hc164,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率达到12m,移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。3.5.1移位寄存器74hc16474hc164、74hct164 是高速硅门 cmos 器件,与低功耗肖特基型 ttl (lsttl) 器件的引脚兼容。74hc164、74hct164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(dsa 或 dsb)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。图3-8 74hc164引脚图3.5.2数码管显示电路显示部分采用led静态显示方式,共阳极的数码管的公共端com连接在一起接地,每位的段选线与74hc164的8位并口相连,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符,考虑到节约单片机的i/o资源,因而采用串行接口方式,外接8位移位寄存器74hc164构成显示电路,显示电路如图所示。图3-9 显示电路3.6报警电路模块报警电路用于在温度超出设定值范围时提供声音报警,它由单片机的p1.7引脚控制。并且通过发光二极管实现对系统运行状态的显示。报警电路如图所示。图3-10报警电路3.7按键电路模块利用单片机的io口实现按键的中断输入。另外需要一个与门实现与中断端口的连接。按键电路如图所示。图3-11 按键电路4、软件设计系统软件设计主要包括系统程序和控制流程图,根据整个系统要求的温度测量与控制写出系统的控制流程图,然后进行编程。具体程序见附录。4.1控制流程图图4-1 系统流程图4.2 ds18b20工作过程及时序ds18b20工作过程中的协议如下:(1)初始化(2)rom操作命令(3)存储器操作命令(4)处理数据4.2.1初始化时序时序如图4-2所示。主机总线发送483s复位脉冲,接着再释放总线(置总线为高电平)并进入接收状态。ds18b20在检测到总线的上升沿后等待60s发出器件存在脉冲(低电平持续60240s)。初始化程序如下所示:init_1820:mov r1,#2h ;两次查询复位18b20存在tsr0: clr p2.0 mov r0,#161 ;主机发出延时483微秒的复位低脉冲tsr1: nop djnz r0,tsr1 setb p2.0 ;然后拉高数据线 mov r0,#20;延时60ustsr2: nop djnz r0,tsr2 mov r0,#20htsr3: jnb p2.0,tsr4 ;等待ds18b20回应 djnz r0,tsr3 ljmp tsr5 ;延时tsr4: setb flag1 ;置标志位,表示ds1820存在 setb p1.5; 清除ds1820不存在显示信号 setb p1.6 setb p1.7 ljmp tsr6tsr5: djnz r1,tsr0 clr flag1 ;清标志位,表示ds1820不存在 clr p1.6 ;ds1820不存在警告信号 clr p1.7 clr p1.5;如果18b20不存在处理跳转 ljmp tsr8tsr6: mov r0,#117tsr7: djnz r0,tsr7 ;时序要求延时一段时间tsr8: setb p2.0 ret单片机主动释放60-240s60s483s图4-2 初始化时序图此初始化程序功能为:检测ds18b20是否存在,如存在,将位地址38h置1;如不存在,将位地址38h清零。4.2.2写时序单片机写ds18b20的时序如图4-3所示,当主机总线从高拉至低电平时就产生写时间隙,ds18b20在检测到下降沿后15s时开始采样总线上的电平,所以15s之内应将所需写的位送到总线上,ds18b20在60s以内对总线采样,每写一位总时间必须在60120s之间完成。若低电平写入的位是0,高电平写入的位是1,连续写时位间的间隙应大于1s。程序如下所示:writer_1820: mov r2,#8 ;一共8位数据 clr cwr1:clr p2.0 mov r3,#5;要求15us内写数 djnz r3,$ rrc a mov p2.0,c mov r3,#21 ;时序要求,所有写时序至少维持60us djnz r3,$;执行该条指令用时间2us setb p2.0 nop djnz r2,wr1 setb p2.0 ret写060-120s写1,ds18b20在检测到下降沿15s后采样,采样时间为60s1560-120sds18b20检测到下降沿15s后采样15s图4-3 单片机写ds18b20时序图4.2.3读时序单片机读ds18b20的时序如图5-4所示,单片机主动产生一个下降沿的启动信号,并维持低电平大于1s后释放总线,15s后ds18b20占主动权,ds18b20会将数据按位放在总线上(低位在先,当读取两个字节的温度值时,低字节在先),这时单片机可读取信号,读取一位的时间应在60s内完成。当需要读取下一位时再产生下降沿启动信号。t60s单片机采样第二位启动脉冲t60s单片机采样第一位启动脉冲图4-4 单片机读ds18b20的时序图read_1820:mov r4,#2 ;将温度高位和低位从ds18b20中读出mov r1,#temper_l ;低位存入29h(temper_l),高位存入28h(temper_h)re00: mov r2,#8 ;数据一共有8位re01: clr csetb p2.0nopnopclr p2.0nopnopnopsetb p2.0mov r3,#4re10: djnz r3,re10mov c,p2.0rrc a mov r3,#20re20: djnz r3,re20djnz r2,re01mov r1,adec r1djnz r4,re00ret此程序功能为:读取ds18b20 a/d转换后的温度值,转换后的二进制存入29h、28h单元。5、闭环控制pid调节器在工业控制领域得到了很大的发展和广泛的应用。它的结构简单,参数易于调整,而且人们在长期的应用中积累了丰富的经验,再加上计算机控制技术的结合,使得pid具有很大的灵活性和适用性。考虑各种因素,本设计中采用了pid调节器进行控制。此温度闭环控制系统设定四个温度值,分别为50、60、70、80。用户可以根据需要进行温度的设定,在与18b20实际测得温度进行比较,得到的偏差(此时的偏差是实际温度,即输出值,与给定温度的差值)作为数字控制器的输入,数字控制器的输出经过数模转换后作用于被控对象(加热杯)进行偏差调整。其闭环控制系统框图如下所示:图5-1 闭环控制系统的结构框图5.1 被控对象的传递函数测定采用阶跃响应曲线法对其进行传递函数gp(s)的测定。5.2控制算法适用pid控制器。计算机控制系统是一种采样控制系统,其只能根据采样时刻的偏差值计算控制量。因此,利用外接矩形法进行数值积分,一阶后向差分进行数值微分,当选定的采样周期为t时,有如果采样周期足够小,这种离散逼近相当准确。但周期小对于硬件的要求也将提高很多,故需要对以上算式进行改进。由上式可导出下面的式子:此式称为增量型pid控制式。增量型控制算式具有如下优点:1. 计算机只输出控制增量,即执行机构位置的变化部分,因而误动作影响较小2. 在i时刻的输出,只需要用到此刻的偏差以及前一时刻、前两时刻的偏差和前一次的输出值,这大大节约了内存和计算时间。3. 在进行手动-自动切换时,控制量冲击小,能平滑地过渡。增量型pid算式经过移项可以写成如下式所示:按照上式表示的递推pid算式,计算出每输出一次,要做四次加法、两次减法、四次乘法和两次除法。若将该式稍加合并整理写成如下形式:其中可以离线算出,即可加快算法程序的运算速度。按上式编制的数字控制器的程序框图如下图所示。图5-2 递推型pid控制器程序框图5.3 数字控制器的确定为了保持系统的稳定性,减少频谱混叠现象,保持稳态增益不变,本设计中采用阶跃响应不变法对数字控制器d(z)进行确定。阶跃响应不变法的基本思想是:离散近似后的数字控制器的阶跃响应序列与模拟控制器的阶跃响应的采样值一致。设连续系统的控制器为gc(s),输入信号为单位阶跃函数。构造新的控制器如下所示(在gc(s)前增加一个零阶保持器):g0s=1-e-tssgcs=1-e-tsgcs1s取z变换,的相应的数字控制器为:dz=zg0s=1-z-1zgcs1s则对于单位阶跃输入的响应序列为:此式表明,数字控制器d(z)的阶跃响应与模拟控制器的阶跃响应的采样值相同,即两个控制器是等效关系,使其满足控制要求。6、系统调试系统可以自由设定不同的加热温度,温度设定当环境温度低于设定温度时系统启动加热,当环境温度高于或等于设定温度时,系统停止加热。经过反复测试,系统温度设定范围为099(本实验中为了效果更加明显,设定的范围为3070),最小区分度为1,温度控制的误差1;能够测量并用数码管显示当前实际温度值;通过复位键可以使系统设定温度还原默认值,通过温度设定键可以设置预定温度;环境温度低于设定温度时,启动加热,环境温度高于或等于设定温度时,停止加热,达到了实习要求的技术指标。7、结论本设计详细介绍了基于单片机stc89c52的温度控制系统的设计方案与软硬件实现。系统温度设定范围为099,最小区分度为1,温度控制的误差1;能够测量并用数码管显示当前实际温度值;通过复位键可以使系统设定温度还原默认值,通过按键可以设置预定温度;当检测温度超出设定温度域则启动蜂鸣器报警,若超出低温限,同时绿灯亮,若超出高温限,同时红灯亮。具体可以实现的功能如下: 1、温度设定范围为099(本设计中为了使效果更加明显,设置的低温线为30度,高温限为70度),最小区分度为1,温度控制的误差1;2、能够用数码管显示当前实际温度值;3、按键控制:设置复位键、温度设置键;4、超温报警。系统包括电源模块、温度控制模块、温度检测模块、复位模块、显示模块、温度报警模块和按键模块七个部分。文中对每个部分功能、实现过程作了详细介绍。完成了实习的基本任务,达到了预期的目标。系统具有如下特点:.采用温度传感器ds18b20采集温度数据,简化了硬件电路设计,温度采集数据更加精准;.stc89c52单片机的采用,有利于功能扩展;.电路设计充分考虑了系统可靠性和安全性。本系统没有增加外部存储器,设定温度不能保存,断电复位后必须重新设置温度;采用静态显示方式,从而使用了较多的驱动芯片,增加了硬件电路的复杂性;只使用两位显示,即显示温度的十位、个位,没有充分发挥ds18b20的特性。心得体会在做课程设计的过程中,通过理论联系实际,不断的学习和总结经验,巩固了所学的知识,提高了处理实际问题的能力。我的理论和实践水平都有了较大的提高。在本设计中,我熟练掌握了单片机硬件设计和接口技术,同时对温度传感器的原理及应用有了一定的了解,掌握了各种控制电路及其相关元器件的使用。这次课程设计过程中也让我认识到了团队合作的重要性。通过这次课程设计,我不仅学会如何将所学专业知识运用到实际生活中,还学会如何克服未知的困难,解决难题的方法,为将来毕业设计的顺利进行打下了基础。这次设计过程中也让我认识到了很多不足,在今后的学习过程中我一定努力补缺补漏,多实践,将理论知识更好地应用于实践。最后感谢各位指导老师的指导。参考文献1 童诗白,华成英.模拟电子技术基础m. 北京:高等教育出版社,20062 张齐,杜群贵.单片机应用系统设计技术m.北京:电子工业出版社,20073 中国机械工业教育协会组编.单片机原理与应用.机械工业出版社.20014 求是科技单片机通信技术与工程实践m北京:人民邮电出版社,20055 张洪润电子线路与电子技术m.清华大学出版社m,20056郭永贞主编数字电子技术m 西安电子科技大学出版社 20007 李广弟单片机基础m,北京:北京航空航天大学出版社,20018杨金岩等.8051单片机数据传输接口扩展技术与应用实例m北京:人民邮电出版社,2005。附录附录一:总体程序;*;所用芯片at89s52,晶振11.0592m;*temper_l equ 29h;用于保存读出温度的低8位temper_h equ 28h;用于保存读出温度的高8位temper_set equ 27h;用于保存用户设定的温度值flag1 equ 38h;是否检测到ds18b20标志位org 0000h ljmp main org 001bhljmp interrupt ;中断入口org 0100h main: mov sp,#60h ;堆栈指针设置 lcallinit_t1_key ; 中断初始化 lcall init_1820 ; 18b20初始化loop: lcall get_temper ;读取18b20温度 lcall writer_smg ; 调用数码管显示 ;以下延时可酌情删减,具体根据系统周期和系统采样周期确定 lcall delay lcall delay lcall delay lcall delay sjmp loop ;* ;初始化18b20 ,若18b20不存在,红灯、绿灯同时亮,同时,蜂鸣器响 ;18b20数据端口接单片机p2.0 ;*init_1820: mov r1,#2h ;两次查询复位18b20存在tsr0: clr p2.0 mov r0,#161 ;主机发出延时483微秒的复位低脉冲tsr1: nop djnz r0,tsr1 setb p2.0 ;然后拉高数据线 mov r0,#20;延时60ustsr2: nop djnz r0,tsr2 mov r0,#20htsr3: jnb p2.0,tsr4 ;等待ds18b20回应 djnz r0,tsr3 ljmp tsr5 ;延时tsr4: setb flag1 ;置标志位,表示ds1820存在setb p1.5; 清除ds1820不存在显示信号setb p1.6;setb p1.7 ljmp tsr6tsr5: djnz r1,tsr0 clr flag1 ;清标志位,表示ds1820不存在 clr p1.6 ;ds1820不存在警告信号 clr p1.7 clr p1.5;如果18b20不存在处理跳转 ljmp tsr8tsr6: mov r0,#117tsr7: djnz r0,tsr7 ;时序要求延时一段时间tsr8: setb p2.0 ret;*;t1初始化的子程序;*init_t1_key:mov tmod,#60h;t1方式2,两位8位计数自动重装mov th1,#0ffhmov tl1,#0ffhsetb et1setb p3.5 setb tr1setb eaclr p1.0clr p1.1clr p1.2clr p1.3ret;*;写ds18b20的子程序;*writer_1820:mov r2,#8 ;一共8位数据 clr cwr1: clr p2.0 mov r3,#5;要求15us内写数 djnz r3,$ rrc a mov p2.0,c mov r3,#21 ;时序要求,所有写时序至少维持60us djnz r3,$;执行该条指令用时间2us setb p2.0 nop djnz r2,wr1 setb p2.0ret;*; 读ds18b20的程序,从ds18b20中读出一个字节的温度数据;*read_1820:mov r4,#2 ;将温度高位和低位从ds18b20中读出mov r1,#temper_l ;低位存入29h(temper_l),高位存入28h(temper_h)re00: mov r2,#8 ;数据一共有8位re01: clr csetb p2.0nopnopclr p2.0nopnopnopsetb p2.0mov r3,#4re10: djnz r3,re10mov c,p2.0rrc a mov r3,#20re20: djnz r3,re20djnz r2,re01mov r1,adec r1djnz r4,re00ret;*; 写数码管两位显示子程序 ,74hc164的data端口接p2.3,; 时钟clk端口接p2.2;*writer_smg: ;mov a,temper_lmov b, #0ahdiv ab;取出十位和个位,十位放在a中,个位在b中mov r0,a;将十位暂存在寄存器r6中mov r3,#2;数码管两位显示mov dptr,#smg_num ;数码管段码表地址mov a,b;个位给a wrs2:movc a ,a+dptr ; 查表mov r2,#8 ;单口串行输出8个二进制数至74hc164数据端口clr c wrs1:rlc a ;带进位左循环clr p2.2mov p2.3,cnopsetb p2.2;上升沿74hc164输出下移djnz r2,wrs1mov a,r0 ;将十位移入a中,进行十位输出至数码管djnz r3,wrs2ret;*; 获取18b20测量的温度,并进行转换,判断报警;*get_temper: setb p2.0 lcall init_1820 ;先复位ds18b20 jb flag1,tss2 ;ds18b20已经被检测到,跳到tss2子程序 ret ;若ds18b20不存在则返回tss2: mov a,#0cch ;跳过rom匹配 lcall writer_1820 mov a,#44h ;发出温度转换命令 lcall writer_1820 lcall init_1820 ;准备读温度前先复位 mov a,#0cch ;跳过rom匹配 lcall writer_1820 mov a,#0beh ;发出读温度命令 lcall writer_1820 lcall read_1820 ;将读出的温度数据保存到29h/28h setb p2.0lcall swapw; 调用转换温度程序lcall cmp_tem_alarm; 调用比较报警子程序ret;*;温度转换子程序:;将temper_h中的低4位移入temper_l中的高4位,;temper_l中的高4位移入temper_l中的低4位,;这样获得一个不带小数的实际测量温度值;*swapw: mov

温馨提示

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

评论

0/150

提交评论