毕业设计(论文)-基于8051单片机的温度控制系统的设计_第1页
毕业设计(论文)-基于8051单片机的温度控制系统的设计_第2页
毕业设计(论文)-基于8051单片机的温度控制系统的设计_第3页
毕业设计(论文)-基于8051单片机的温度控制系统的设计_第4页
毕业设计(论文)-基于8051单片机的温度控制系统的设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

学号20080603050111密级公开毕业论文基于8051单片机的温度控制系统的设计学院名称专业名称电子信息科学与技术学生姓名指导教师二一二年五月BACHELORSDEGREETHESISOFLANZHOUCITYUNIVERSITYTHEDESIGNOFTEMPERATURECONTROLSYSTEMBASEDON8051SCMCOLLEGESCHOOLOFPEILIENGINEERNINGDS18B20SENSORSTHETEMPERATURECONTROLSMANIFESTATIONGIVESORGETANLECTRICSHOCKIV目录第1章绪论111引言112项目要求113研究意义1第2章硬件设计221硬件设计概要222单片机控制部分223温度检测电路6231温度检测电路6232报警电路9233控制电路及显示电路9第3章软件设计1331中断控制程序1332显示程序1433温度测量1534温度处理21结论23参考文献24致谢261第1章绪论11引言水温控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过低过高的水温都会使水资源失去应有的作用,从而造成水资源的极大浪费,给生活生产带来许多不利因素。在能源日益紧张的今天,电热水器、饮水机、电饭煲之类的家用电器在保温时,由于简单的温度控制系统,因而会造成很大的能源浪费。基于8051单片机的水温控制系统与传统的水温控制系统相比具有操作方便、价格便宜、精确度高和开展容易等优点,因此市场前景看好1。12项目要求设计制作一个水温自动控制系统,控制对象为10L水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定温度保持不变。基于8051单片机水温控制器晶振采用12MHZ,具体要求如下1初始温度设置为50度,温度低于50度加热;2越限报警温度为70度,温度高于70度,报警,停止加热;3控制精度为1度4控制范围为环境温度室温到70度13研究意义在人类生活的环境中,温度扮演着及其重要的角色。自18世纪工业革命以来,工业的发展与是否掌握温度有着密切的联系。温度不但对于工业如此重要,在农业生产中温度的检测与控制也有着十分重要的意义。同时,温度测量系统在电子产品中的应用越来越广泛,比如空调、电饭煲、太阳能热水器等都用到了温度控制系统。当前,能源问题是最热门的话题,也是我们急需解决的,因而我们从节省能源,保护环境出发,设计出本系统。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途2。单片机对温度的控制问题是一个日常生活中经常会遇到的问题。因此,对该系统的研究有着极其重要的意义。2第2章硬件设计21硬件设计概要根据需求,我的系统以AT89S52单片机3为中心控制器件,由温度采集电路、显示电路、加热电路、报警电路组成。温度采集使用18B204,使用它可以使电路简化。控制电路用外部中断来调节温度,为了使操作方便,加一个显示控制温度值的数码管,来便于使用。报警电路,这个电路用一个三极管这为放大器去驱动一个喇叭。总硬件框图如图21所示图21总硬件设计示意图22单片机控制部分此部分是电路的核心部分,系统采用了51系列单片机。在众多的51单片机系列中,AT89系列单片机在我国得到及其广泛的应用,越来越受到人们的瞩目。AT89系列单片机是美国ATMEL公司的8位FLASH单片机产品。它的最大特点是在片内含有FLASH存储器,在系统的开发过程中修改程序容易,使开发调试更为方便。AT89系列单片机以8031为内核,是与8051系列单片机兼容的系列,其型号可以分为标准型、低档型和高档型3类。高档型单片机有AT89S51、AT89S52、AT89S53和AT89S8252等型号,其中AT89S52为ATMEL所生温度采集电路AT89S52加热电路显示电路报警电路3产的一种低功耗、高性能CMOS8位微控制器,内部有8KB的可下载FLASH存储器,2KB的EEPROM,提高了存储容量,系统不必扩展外部程序存储器和数据存储器这样大大的减少了系统硬件部分5。因此,本系统使用AT89S52单片机作为微处理器,微处理器电路如图22所示图22微处理器电路图1、AT89S52主要功能列举如下(1)拥有灵巧的8位CPU和在系统可编程FLASH(2)晶片内部具时钟振荡器(传统最高工作频率可至12MHZ)(3)内部程序存储器(ROM)为8KB(4)内部数据存储器(RAM)为256字节(5)32个可编程I/O口线(6)8个中断向量源(7)三个16位定时器/计数器(8)三级加密程序存储器(9)全双工UART串行通道2、AT89S52各引脚功能介绍6如图23所示4图23AT89S52引脚图VCCAT89S52电源正端输入,接5V。VSS电源地端。XTAL1单芯片系统时钟的反相放大器输入端。XTAL2系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。RESETAT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序7。EA/VPP“EA“为英文“EXTERNALACCESS“的缩写,表示存取外部程序代码之5意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用8751内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(VPP)。ALE/PROGALE是英文“ADDRESSLATCHENABLE“的缩写,表示地址锁存器启用信号。AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN此为“PROGRAMSTOREENABLE“的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P00P07)端口0是一个8位宽的开路汲极(OPENDRAIN)双向输出入端口,共有8个位,P00表示位0,P01表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0A7,再配合端口2所送出的A8A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P20P27)端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当做I/O来使用了。PORT1(P10P17)端口1也是具有内部提升电路的双向I/O端口,其6输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P10又当做定时器2的外部脉冲输入脚,而P11可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P30P37)端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下P30RXD,串行通信输入。P31TXD,串行通信输出。P32INT0,外部中断0输入。P33INT1,外部中断1输入。P34T0,计时计数器0输入。P35T1,计时计数器1输入。P36WR外部数据存储器的写入信号。P37RD,外部数据存储器的读取信号。整个单片机系统接口分配情况如下P0口复用于传输LED位数据以及值数据传输、P2口的P20P21作为六位LED的公共端的控制信号、P1口分配做键盘接口、P30和P31分别用于串口通信的数据的接收端和发送端、P32用于温度数据接口8。23温度检测电路231温度检测电路DS18B20数字传感器是DALLAS公司生产的1WIRE总线技术的典型产品9。它可以将被测温度直接转换成数字量,因此单片机可以方便的通过串行总线实现读取。另外,1WIRE具有成本低、节省I/O口、抗干扰能力强,便于总线扩展和维护等特点。DS18B20通过编程后,可以实现912位的温度度数。由于DS18B20可以由数据线本身提供电源,因此单片机与其连接时,需要一根数据线和地线。DS18B20的工作性能如下(1)1WIRE数据通信7(2)可用数据线供电,电压范围355V(3)最高12位分辨率(4)12位分辨率时的最大工作周期为750MS(5)可选择寄生工作方式(6)检测温度范围为55C125C(7)被测温度在10C85C时,精度为05C(8)内置EEPROM,限温报警功能(9)64位光刻ROM,内置产品序列号,方便多机挂接(10)封装形式多样(11)负压特性。电源极性接反时,芯片不会烧毁DS18B20内部结构10主要由四部分组成64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图24所示图24DS18B20的结构图DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是开始8位(28H)是产品类型标号,接8着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRCX8X5X41)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例用16位符号扩展的二进制补码读数形式提供,以00625/LSB形式表达,其中S为符号位。表2112位转化后得到的12位数据LSBYTEM231201234BI76T5BI4TBI0SS645398这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于00625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0062511即可得到实际温度。例如125的数字输出为07D0H,250625的数字输出为0191H,250625的数字输出为FF6FH,55的数字输出为FC90H。温度检测控制电路如图25所示GNDVCS18B20VCR47KAT89S52P32图25温度检测控制电路图232报警电路报警电路设计12的工作过程如图26所示,该报警电路由两个主要部件组成,BUZZ喇叭报警装置和三极管,如果来自单片机P11端的信号使三极管的发9射极导通,即有电流通过时,那么从VCC到BUZZ到集电极也会有电流通过,这样会让BUZZ报警装置发出报警声音,如果来自来单片机P11端的信号使三极管的发射极没有导通,则无电流通过,喇叭不发声音。即当P11端的信号为低电平时,喇叭报警,当P11端的信号为高电平时喇叭不响。图26报警电路233控制电路及显示电路通过2个外部电路来控制温度,只要在中断口让2个开关接地。然后把调节后的温度通过数码管显示出来。1、LED显示器13结构与原理LED显示器由7条发光二极管组成显示字段,有的还带有一个小数点DP将7段发光二极管阴极连在一起,成为共阴极接法,当某个字段的阳极为高电平时,对应的字段就点亮。共阳极接法是将LED的所有阳极并接后就连到5V上,当某一字段的阴极为0时,对应的字段就点亮。静态串行显示器的结构图如27所示10ABCDEFGDPVCCABCDEFGDP共阴极共阳极图27静态串行显示器的结构图点亮LED显示器有静态和动态两种方法14。所谓静态显示,就是显示某一字段时,相应的发光二极管恒定的导通或截止,这种方式,每一显示位都需要一个8位输出口控制,占用硬件较多,一般仅用于显示器位数较少的场合。所谓动态显示,就是一位一位地轮流点亮各位显示器。对每为显示器而言,每隔一段时间显示一次。显示位的亮度既跟导通电流有关,也和点亮时间与间隔时间的比例有关。动态显示器因硬件成本较低而被采用。为了显示字符,要为LED显示器提供显示段码,组成一个“8”字形的7段,再加上1个小数点位,共计8段,因此提供LED显示器的显示段码为一个字节。2、LED显示器与单片机的接线图本设计通过单片机P0口并经总线驱动器74LS245控制6位数码管的段码,通过位选线P2021经三极管逐位逐位去控制数码管扫描显示。由于采用动态显示,其优点是占用硬件资源少,功耗小。但必须注意扫描周期必须控制在视觉停顿时间内,一般在20MS以内,否则会出现闪烁或跳动现象。如图28所示为LED与单片机的接线图15。11图28LED与单片机的接线图显示器有四个LED数码管组成。输入串行数据线DIN和位移信号CLK,四个串/并移位寄存器与芯片74LS245相连。每片的并行输出作为LED数码管的码段。74LS245是用来驱动LED的设备16,它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当AT89S52单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端CE低电平有效时,DIR“0”,信号由B向A传输(接收);DIR“1”,信号由A向B传输(发送);当CE为高电平时,A、B均为高阻态。P0口与74LS245输入端相连,E端接地,保证数据现畅通。AT89S52的RD和PSEN相与后接DIR,使得RD或PSEN有效时,74LS245输入,其它时间处于输出。74LS245的电路如图29所示12图2974LS245电路示意图第3章软件设计总体设计程序总体是控温,所以应该不断测温并控制。如图31所示NYY开始初始化调各显示子程序调温度转换子程序温度70C报警温度50C加热N结束停止加热13图31程序总体设计流程图31中断控制程序中断程序的流程图如图32所示图32中断程序的流程图首先设计控温的程序17,程序如下外部中断1KEY_1CLREA关闭外部中断INCDIS1把个位加一MOVA,DIS1CJNEA,10,KEY判断个位是否为十MOVDIS1,0是十把它置一显示并打开中断外部中断1处理温度的个位结束外部中断2处理温度的十位结束14KEYMOVA,DIS2MOVB,10MULABADDA,DIS1求出调整后的温度MOVTEMPER_CONFIG,A保存调整后的温度LCALLDISPLAY显示调整后的温度SETBEX0SETBEX1SETBEA打开中断RETI中断返回外部中断2KEY_2CLREAINCDIS2MOVA,DIS2CJNEA,10,KEYMOVDIS2,0AJMPKEY其中DIS1,DIS2是定义的变量,用来保存数码管的显示数字。TEMPER_CONFIG也是定义变量用来保存设定温度值。32显示程序根据数码管的显示特点,要在实现一位后延时一会儿再显示下一位。下面是数码管显示代码18显示DISPLAYMOVA,DIS2MOVDPTR,TABLEMOVCA,ADPTRMOVP0,A15SETBP21DSDELY1MOVR6,11DJNZR6,DJNZR7,DSDELY1MOVA,DIS1MOVDPTR,TABLEMOVCA,ADPTRMOVP0,ASETBP20MOVR7,25DSDELY2MOVR6,11DJNZR6,DJNZR7,DSDELY2RET33温度测量根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。当主机收到DS18B20的响应信号后,便可以发出操作命令,这些命令可以分为ROM命令和RAM命令两种19。CPU的操作过程如图33所示。由于DS18B20与单片机间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。操作时序主要有初始化时序、读时序和写0时序和写1时序四种,如图34所示。在温度测量仪表中,对DS18B20的操作主要是复位、读数据和写数据三种,而两种操作又都是按位进行的,所以首先应该按照DS18B20的时序要求,编写读、写时间片的程序,其流程图如图35所示。开始元件复位写SKIPROM命令(CCH)写启动转换命令(44H)延时750S等待转换结束元件复位写SKIPROM命令(CCH)写读转换结果命令(BEH)读转换结果CRC校验结束16图33DS18B20操作过程115S60120S30S15S115S15S115S1560S复位脉冲480960S应答脉冲60240S(A)初始化信号(B)写1信号(C)写0信号(D)读信号17图34DS18B20操作时序图35DS18B20操作程序流程图根据上述可以得到18B20的操作的3个函数20初始化18B20INIT_1820SETBDQNOPCLRDQMOVR0,06BHTSR1DJNZR0,TSR1延时SETBDQ开始总线置1并延时总线置0并延时480S总线置1返回开始设循环次数为8总线置0并延时16S写1位数据延时480S总线置1并延时16S8位写完返回开始设循环次数为8总线置0并延时16S写1位数据延时100S总线置1并延时60S8位读完返回(A)复位操作流程(B)写操作流程(C)读操作流程18MOVR0,25HTSR2JNBDQ,TSR3DJNZR0,TSR2LJMPTSR4延时TSR3SETBFLAG1置标志位,表示DS1820存在LJMPTSR5TSR4CLRFLAG1清标志位,表示DS1820不存在LJMPTSR7TSR5MOVR0,06BHTSR6DJNZR0,TSR6延时TSR7SETBDQRET把A的值写入18B20WRITE_1820MOVR2,8CLRCWR1CLRDQMOVR3,6DJNZR3,RRCAMOVDQ,CMOVR3,23DJNZR3,SETBDQNOPDJNZR2,WR1SETBDQRET读温度READ_18200MOVR4,2将温度高位和低位从DS18B20中读出MOVR1,77H低位存入77HTEMPER_L,高位存入1976HTEMPER_HRE00MOVR2,8RE01CLRCSETBDQNOPNOPCLRDQNOPNOPNOPSETBDQMOVR3,7DJNZR3,MOVC,DQMOVR3,23DJNZR3,RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00RET应为读出的温度的格式是12位21,TEMPER_L位前四位是整数部分后四位是小数,TEMLPER_H只有低四位是有效的。所以我们要有一个处理温度的函数得到整数的温度。读出的温度转换成1个字节放入TEMPER_NUMTEMPER_COVMOVA,0F0HANLA,TEMPER_L舍去温度低位中小数点后的四位温度数值SWAPAMOVTEMPER_NUM,A20MOVA,TEMPER_LJNBACC3,TEMPER_COV1四舍五入去温度值INCTEMPER_NUMTEMPER_COV1MOVA,TEMPER_HANLA,07HSWAPAORLA,TEMPER_NUMMOVTEMPER_NUM,A保存变换后的温度数据RET读温度到TEMPER_L和TEMPER_HREAD_TEMPMOVA,0CCHLCALLWRITE_1820MOVA,0BEHLCALLWRITE_1820LCALLREAD_18200LCALLINIT_1820MOVA,0CCHLCALLWRITE_1820MOVA,044HLCALLWRITE_1820RET34温度处理当温度低于50C时,进行加热,加热到50度与70度之间为正常状态。当温度大于70C时,喇叭报警,停止加热。温度处理TEMPER_WORKLCALLTEMPER_COVMOVA,TEMPER_NUMCLRCSUBBA,70JNCTEMP_OVER21MOVA,TEMPER_NUMCJNEA,TEMPER_CONFIG,TWRETTWJCOPEN_HASETBHARET温度超过70喇叭响,并停止加热TEMP_OVERSETBHAMOVR6,128BELLCLRWAMOVR7,100DJNZR7,SETBWADJNZR6,BELLRET加热OPEN_HACLRHARET结论本课程设计是8051单片机的温度控制系统。硬件设计分为了以下模块显示模块、报警模块、温度控制模块和温度传感器模块。然后设计软件,编写程序调试硬件电路各个模块的功能。最后对整个系统联调,实现了设计要求,对温度进行了控制。当温度小于50C时加热,当温度大于50C小于70C时是正常状态,当温度大于70C时报警,停止加热。通过这次的设计,实现了温度控制的硬件连接,模块的建立。最终结果表明本设计是合理的,能很好的达到预期的效果和要求。22参考文献1HUHONGBINMEASURINGFORTEMPERATURECHARACTERISTICOFTEMPERATURERELAYELECTROMECHANICALELEMENT,2003,946482李朝青单片机原理及接口技术(简明修订版)杭州北京航空航天大学出版社,1998981063李广弟单片机基础北京北京航空航天大学出版社,199415264徐同举新型传感器基础D北京北京大学数学学院,19985张友德,赵志英,涂时亮单片微型机原理、应用与实验M上海复旦大23学出版社,20003443654楼然苗,李光飞51系列单片机设计实例M北京北京航空航天大学出版社,200327566何立民编MCS51系列单片机应用系统设计M,北京航空航天大学出版社,19901471657余锡存,曹国华单片机原理及接口技术S西安西安电子科技大学出版,20078陈伟人MCS51系列单片机实用子程序集锦北京清华大学出版社,19989廖常初现场总线概述J电工技术,1999223596410GAWOOLVET,TRANSDUCERSINDIGITIALSYSTEMS,PETERPEREGRINUSLTD,197711SUNKAICONTROLLINGTEMPERATURESYSTEMOFRESISTANCESTOVESENSORTECHNOLOGY,2003,222505212郑步生,吴渭MULTISIM200L电路设计及仿真入门与应用M北京电子工业出版社,200213梁纯,王军基于MCS一51单片机的LED点阵图文显示屏设计J工矿自动化,20056909214AMPEREXELECTRONICCOMPANY,CHARACTERTYPELCDMODULES,TECHNICA

温馨提示

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

评论

0/150

提交评论