基于单片机的电热炉温度控制系统设计76835_第1页
基于单片机的电热炉温度控制系统设计76835_第2页
基于单片机的电热炉温度控制系统设计76835_第3页
基于单片机的电热炉温度控制系统设计76835_第4页
基于单片机的电热炉温度控制系统设计76835_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、1 绪论单片机具有体积小、可靠性高、功能强、使用方便、性能价格比高等特点。国际上从1970年开始,国内自1980年以来,单片机已广泛应用于国民经济的各个领域,对各个行业的技术改造和产品的更新换代起重要的推动作用。温度是工业生产和科学实验中一个非常重要的参数。许多生产过程都是在一定的温度范围内进行的,甚至对温度的要求相当严格,因此生产现场需要测量温度和控制温度。温度是电热炉需要控制的主要参数。在传统的电热炉温度控制系统中,炉温控制多采用人工调节和温度仪表监视相结合的方式,电热炉的电源通断大多采用交流接触器来控制。这种控制方式结构简单,但控制精度差,控制速度慢,在资源方面耗费人力且本身耗能多,控制

2、器的噪音大,并且在控制温度的过程中由于接触器需要频繁接通与断开,会经常发生触点电弧放电的现象,极易造成短路,损坏接触器,对操作人员和设备带来不利影响和安全隐患。而传统的定值开关温度控制法存在温度滞后的问题,多数传统基于常规PD控制的控制装置,存在精度不高、效率低等问题。1.1 课题背景及意义随着社会的发展,温度的测量及控制已经变得越来越重要了。工业中的许多的装置的温度常常需要保持在一个既定的温度值上。传统的利用炉温控制采用温度仪表监视和人工调节相结合的方式已经不能够再满足生产的需要。并且随着科技的进步以及新产品的开发,温度的要求变得十分的重要,同时对于温度的精度方面的要求也变得越来越高了。在这

3、一背景条件下,利用单片机对温度进行采样、控制等方面的优点,可以很好的满足工艺的要求。另外,随着科技的进步,单片机的发展也十分的迅猛。因其本身固有的体积小重量轻价格便宜,功耗低,控制功能强及运算速度快等特点,所以基于单片机的温度控制系统具有非常广阔的前景。1.2 课题设计任务单片机广泛应用于现代工业控制中,采用单片机系统对温度进行控制不仅具有着控制方便、简单和灵活性大等优点,而且还可以大幅度的提高被控温度的技术指标,从而可以大大的提高产品的质量。在本课题研究中,需要深入的了解51单片机在控制领域中的发展现状以及其应用前景,提高对大学本科阶段所学专业知识的融合和运用的能力,锻炼自己独立查阅和学习文

4、献的能力,培养独立分析和解决问题的能力,通过软件的设计、程序的编写调试和硬件的制作切实锻炼自己的科研开发能力,加强自己的科技创新能力。主要任务如下:1)系统学习和查阅了各类模拟电路以及电子元器件的功能、管脚图以及工作特性等一系列参数和使用方法,学习和实践多功能数字时钟的硬件电气设计原则及印刷电路板的制作;学习和研究AT89C51单片机相关的汇编语言程序编程、外部硬件接口以及内部定时中断等功能。2)设计基于单片机的电热炉温度控制系统。3)硬件电路设计和完成相应控制软件设计。4)完成Keil+Proteus环境下的软硬件联调和仿真。1.3 当今国内外研究动向(1) 国外温度测控系统研究国外对温度控

5、制技术研究的比较早,开始于20世纪70年代左右。先是采用模拟式的组合仪表,采集现场的信息并进行指示、记录和控制等。80年代末出现了分布式的控制系统。目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。现在世界各国的温度测控技术发展十分迅猛,一些国家在所实现自动化的基础上正向着完全自动化、无人化的方向发展。(2) 国内温度测控系统研究我国对于温度测控技术的研究一些较晚,开始于20世纪80年代左右。我国的工程技术人员在吸收和借鉴发达国家温度测控技术的基础上,掌握了温度室内微机控制技术,不过该技术仅限于对温度的单项环境因子的控制的方面。我国的温度测控设施计算机方面的应用,总体上正在从消化吸收

6、、简单应用阶段向实用化、综合性应用阶段过渡和发展。在技术上,以单片机控制单参数单回路的系统居多,目前还没有真正意义上所讲的多参数综合控制系统,与发达国家相比,我国的温度控制系统方面仍然存在着比较大的差距。我国的温度测量控制现状还远远没有达到工厂化的程度,生产实际中仍然存在着种种的问题,存在着装备配套能力差,产业化的程度低,环境控制水平落后,软硬件资源不能共享和可靠性差等缺点。 随着科技的发展和全球化的经济日益趋于整体化,以单片机为核心的控制温度的系统必将成为单片机发展的整体趋势。在不久的未来,依靠着单片机控制温度所带来的便捷将充斥着日常生活各个方面,而且在工业化方面也将体现出单片机控制温度系统

7、所带来的益处。总之,单片机控制温度系统将会有光明的发展前景。2 总体方案论证2.1 系统方案 此系统主要包括单片机控制系统、温度采集系统、温度显示模块、温度上下限调节模块以及外部存储模块等几部分组成。如下为系统的总体框架由系统总体框架图可知,在温度控制系统中,经过DS18B20传感器检测到的温度值送入单片机中,在单片机内部经过数据的处理信号与给定的对应的所要求的温度值进行比较,同时还可以经过按键来调节温度的实时值,产生的温度值可以与存储器中存储的温度值进行比较,根据比较的结果来控制相应的指示灯的亮与灭,从而可以方便地控制温度的变化。此外,电热炉的温度控制的性能至关重要,传统的装置通常是基于常规

8、的PID控制方案,往往会存在着精度不高以及工作效率较低的特点。特别是对于难以准确的确定其数学模型或者是具有非线性、纯滞后和时变的温度的控制过程,仅仅依靠传统的PID控制方案难以满足电热炉温度控制的高精度的要求。为了确保电热炉温度控制高性能目标的实现,可以根据其数学模型、典型的控制方案和仿真运行的结果进行分析和研究,从而可以发现模糊自适应整定的PID控制方案通过模糊规则和模糊的推理方法能够对PID控制器参数进行校正,因而具有实用和高性能的特点。3 硬件电路设计3.1 单片机系统设计 所谓的单片机系统,就是应用单片机作为核心,外围增加一些辅助的电路,能够完成一定的功能的系统。本文采用的单片机为AT

9、89C51。它是由美国ATMEL公司生产的8位Flash ROM单片机,它的突出的优点是片内的ROM是Flash ROM,易于方便地擦写,价格低廉,并且指令丰富,编译工具多,仿真环境好。另外它还具有着集成度高、系统简单、体积小、可靠性强、处理功能强、速度快等特点。并且其内部还含有8位CPU的程序存储器、256bytes的数据存储器、21个专用寄存器以及32条I/O口线等等。因此往往会被广泛的应用于各种控制的领域。如下图所示为51单片机的管脚图。如下为单片机AT89C51的管脚相关说明:VCC:供电电压。 GND:接地标志。 P0口:P0口是作为一个8位漏级开路的双向I/O口,每脚可吸收8TTL

10、门电流。当P0口的管脚第一次写1时,就会被定义为高阻输入。P0亦能够用于外部程序数据存储器,它能够被定义为数据/地址的第八位。在FIASH的编程时,P0 口可作为原码输入口,当FIASH进行校验时,P0会输出原码,不过此时的P0的外部必须被拉高。 P1口:P1口是一个内部提供了上拉电阻的8位双向的I/O口,P1口缓冲器能够接收输出4TTL门电流。当P1口管脚写入1后,会被内部上拉为高电平,此时可用作输入,当P1口被外部下拉为低电平时,将会输出电流,这是因为内部上拉的缘故。在FLASH校验和编程时,P1口均可作为第八位地址接收。 P2口:P2口是一个内部上拉电阻的8位双向I/O口,P2口缓冲器可

11、以用于接收,此时会输出4个TTL门电流,当P2口被写“1”时,它的管脚就会被内部上拉电阻拉高,并且可以作为输入。当作为输入时,P2口的管脚会被外部拉低,此时将输出电流,这是由于内部上拉的缘故。当P2口用于外部程序存储器或者是16位的地址外部数据存储器进行存取时,此时P2口输出地址会是高八位。当在给出地址“1”时,它就会利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口就会输出其特殊功能寄存器的内容。P2口在FLASH校验和编程时接收的是高八位的地址信号和控制信号。 P3口:P3口的管脚是8个带内部上拉电阻的双向I/O口,可用于接收输出4个TTL门电流。当P3口写入“1”后,它们就会

12、被内部上拉为高电平,并可以用作输入。作为输入,因为外部下拉为低电平,P3口将会输出电流(ILL)这是由于上拉的缘故。P3口也可以作为AT89C51的一些特殊的功能口,如下表所示: 管脚备选功能 :端口引脚功能说明P3.0/RXD串行数据输入端P3.1/TXD串行数据输出端P3.2/INT0外部中断0申请信号P3.3/INT1外部中断1申请信号P3.4/T0定时/计数器T0计数输入端P3.5/T1定时/计数器T1计数输入端P3.6/WR外部数据RAM写控制信号P3.7/RD外部数据RAM读控制信号P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件需要响应时,需要

13、保持RST脚两个机器周期的高电平时间。如下图为复位电路图:ALE/PROG:访问外部存储器时,地址锁存所允许的输出电平就会用于锁存地址的地位字节。在FLASH的编程期间,这个引脚会用于输入编程脉冲。在通常状况下,ALE端会以不变的频率周期输出正脉冲信号,这个频率将是振荡器频率的1/6。因此它也可以用作对外部输出的脉冲或者也可以用于以定时作为目的。但是应该注意到的是:每一次作为外部数据存储器时,就会跳过一个ALE脉冲。如果想要使ALE的输出禁止,可以在SFR8EH的地址端置0。此时, ALE仅会在执行到MOVX指令时,MOVC指令是ALE才将起作用。另外,该引脚会被稍稍的拉高。如果微处理器在外部

14、执行的状态ALE被禁止时,那么置位将会无效。 EA/VPP:当/EA保持低电平的状态时,那么在此期间外部的程序存储器(0000H-FFFFH),不管其是否有内部程序存储器。注意加密方式1时,/EA将会内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH的编程期间,这个引脚也可以用于施加12V的编程电源(VPP)。 /PSEN:外部程序存储器的选通信号。当外部程序存储器读取指令的时候,每个机器周期两次的/PSEN才会有效。但当在访问外部数据存储器的时侯,这两次有效的/PSEN信号将不会再出现。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自

15、反向振荡器的输出。 振荡器特性: XTAL1为反向放大器的输入,XTAL2是反向放大器的输出。该反向放大器将会配置为片内振荡器。石晶振荡和陶瓷振荡都可以采用。如果采用的是外部时钟源驱动器件,XTAL2应该不接。有余输入到内部时钟信号需要通过一个二分频的触发器,因此对外部时钟信号的脉宽将无任何的要求,但必须要满足脉冲的高低电平要求的宽度。振荡电路的接线如下图所示:3.2 温度采集模块温度由DALLAS公司所生产的一线式数字温度传感器DS18B20采集。DS18B20的测温范围位- 55°125°C,测试的分辨率能够达到0.0625°C,测试的温度用符号扩展位16位形

16、式串行输出。CPU只需一根端口线就可以与多个DS18b20进行通信,占用的微处理器的端口较少,进而可以节省大量的引线与逻辑电路。DS18B20的内部是一个9字节的高速存储器,存储器用来存储所设定的温度值。其中它的前两个字节是将要测得的温度数据,第一字节所存储的是温度的低八位,第二字节会是温度的高八位,第三和第四字节将是温度的上限Th与温度的下限TL的易失性拷贝,第五字节会是结构存储器的易失性拷贝,此三字节的内容在每一次的上电复位时均会被刷新,第六、七、八三个字节是用于内部的计算,而第九字节为冗余校验字节,用于保证通信的准确性。当温度转换命令发出转换命令后,经过转换的温度值将会以二字节补码的形式

17、存放在此存储器的第一和第二字节中。单片机能够通过单线接口读到数据,读数据时低位在前,高位在后,其中的高五位是符号位,中间的七位是整数位,最低四位将会是小数位。DS18B20的最大特点是单总线数据的传输方式,因而对于读写的数据位有着严格的时序要求。例如包括初始化时序、读时序、写时序。每一条命令和数据的传输都是从单片机写时序开始的,如要求DS18B20回送数据,那么在进行写命令后,单片机需要启动读时序才能够完成数据的接收。命令和数据的传输都是低位在先。如下图为DS18B20在proteus中的的实物图以及对于DS18B20的特性的介绍:DS18B20是DALLAS公司生产的1Wire,即单总线器件

18、,具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,与单片机接口时仅需占用一个I/O端口,无须任何外部元件,就直接可以将环境温度转化成串行数字信号供处理器处理。其特性如下:(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都会有独一无二的序列号。(3)测量的温度范围是55到125之间。(4)在实际的应用中不需要任何外部元器件即可实现测温。 (5)内部有温度上限和下限的报警设置。 (6)用户可以从9位到12位来选择数字温度计的分辨率。 (7)支持多点测温的功能,若干个DS18B20可以并联在唯一的三线上,实现组网思维多点测温。(8)电源极性接反时,芯片不会因为发热

19、而烧毁,但不能正常的工作。如果需要控制多个DS18B20进行温度采集时,只需将DS18B20的I/O口都连到一起。如下图所示。DS18B20的引脚功能为:DQ为数字信号的输入/输出端;GND为电源接地标志;VCC为外接供电电源的输入端。本设计使用单片机AT89C51的P3.4口与DS18B20的单总线端口DQ相连。DS18B20内部结构主要是由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL以及配置寄存器。DS18B20在出厂时的默认设置为12位,最高位为符号位,温度值共11位。单片机在读取数据时可以一次读取2个字节共16位,前5位为符号位,当前5位为1时,当读取的温

20、度为负值时,读到的数值要取反加1再乘以0.0625才是它的实际温度值。而当前5位为0时,读取的温度为正值,读到的数值直接乘以0.0625便是实际的温度值。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:在每一次的读写之前都需要对DS18B20进行复位,并且在复位成功后还要发送一条ROM指令,最后再发送RAM指令,只有这样才能够对DS18B20进行预定的操作。复位成功后会要求主CPU将数据线下拉500微秒左右,然后将会释放,DS18B20在收到信号后将会等待1660微秒左右,然后将发出60240微秒的存在低脉冲,此时主CPU收到此信号才能够表示复位成功。在实际使

21、用的中,DS18B20有以下事项需要注意:在对DS18B20的读写的编写程序时,必须严格的保证读写时序,如若不然将会无法读取到测得的温度结果。在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。因为连接DS18B20的总线电缆是有长度限制的。当向DS18B20发出温度转换的指令后,程序要等待DS18B20的返回信号,假如某个DS18B20接触不好,当程序读该DS18B20时,将没有返回信号,程序会进入死循环。DS18B20与单片机的连接如下图所示:3.3 液晶显示器 液晶显示器也成为LCD,由于LCD的控制必须使用专用的驱动电路,且LCD面板的接线需要特殊的技巧,再

22、加上LCD面板十分的脆弱,因此一般不单独的使用,而是将LCD面板、驱动电路与控制电路组合成LCM模块一起使用。LCM是一种很省电的电子设备,常被应用在数字或单片机控制系统中。液晶显示器选用LM016L,它是显示两行的字符型LCD显示器,它是由32个字符点阵块组成。每个字符点阵块都是由5×7或5×10个点阵组成,并可以显示ASCII表中所有的可视字符。它的内部内置了字符产生器ROM,字符产生器RAM和显示数据RAM,CGROM的内部内置了192个常用字符的字模,且CGRAM包含了8个字节的RAM,可以用来存放用户自定义的字符,DDRAM就是用来寄存等待选择的字符的代码。LM0

23、16L字符型与单片机之间的连接主要有两种:直接访问方式连接和间接控制方式连接。 直接访问方式连接是由单片机的读、写和高位地址线共同控制LCM的E端,由高位地址线其中的两条分别与RS端和R/W端相连,由单片机的P0口与LCM的DB0DB7相连,这样就可以构成了三总线(数据总线DB、地址总线AB和控制总线CB)的连接方式。由于构成了三总线的结构,所以在软件控制上比较简单,用通过访问外部地址的方式就能访问LCM。但是,在使用这种连接方式时需要注意单片机的控制总线时序和地址总线时序必须要与LCM所需要的时序相匹配,否则将无法访问。LM016L主要技术参数如下:显示容量:16*2个字符芯片工作电压:4.

24、55.5V工作电流:2.0mA字符尺寸:2.95*4.35(W*H)mm管脚号名称电平功能描述1VSS0V2VDD5.0V3VEE4RSH/LH:数据线上为数据信号;L:数据线上为指令信号5RWH/LH:读数据模式;L:写数据模式6EH/L使能信号端714DB0DB7H/L数据口采用液晶显示装置即把温度信号显示在液晶显示器上,不仅结构简单清新可见,而且省电容易控制。数据的传输采用P0口进行控制, 与显示器的D0D7脚相连,同时连接一个8脚排阻。其引脚VSS和VEE接地,VDD接高电平,RS和RW、E是显示器的控制端,分别由单片机的引脚P2.0、P2.1、P2.2进行控制。如下图所示:液晶显示器

25、与单片机的连接图3.4 外部存储模块外部存储器选用的是美国ATMEL公司生产的低功耗的CMOS型E2PROM器件AT24C02C,它的内部含有256×8位的存储空间,而且它还具有工作电压宽,擦写次数多、写入速度快、数据不易丢失等特点。它采用了I2C的总线规程,能够使主机和从机实现双向通信。主机会通过SCL引脚产生串行的通信时钟信号并且可以发出控制字,用于控制总线的数据传输的开始、方向和停止。不管是主机或者是从机,每当接收到一个字节后必须发出一个确认信号。AT24C02C占用很少的资源和I/O线,且支持在线编程,数据实时存取十分的方便。如下图为存储器相关的电路图:3.5 键盘的设置键盘

26、可以分为两种:非编码式键盘和编码式键盘。非编码式键盘是利用按键直接与单片机进行连接而成的,这种键盘通常使用的按键数量较少,使用这种键盘,系统的功能通常比较简单,需要完成的任务较少,同时可以降低系统的成本、简化电路的设计。非编码式键盘的接口电路需要根据设计者的需要自行决定,按键信息是通过单片机的接口软件来获取。编码式键盘是较多按键和专用驱动芯片组合而成的,当某个按键按下时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件的干预。键盘的工作方式有三种:编码扫描工作方式、中断工作方式和定时扫描工作方式。本文的键盘设置包括四个按键:启动键、温度的增加键、温度的降低键和确认键。通过这四个

27、键的整体配合,可以方便快捷的调节温度的值,从而可以根据设置的温度的上下限值观察报警灯的工作状态,使调节的过程安全可靠。如下为此次电路的相关的按键的电路图:3.6 控制电路模块该部分电路有光耦合元件4N25、继电器、三极管、指示灯以及若干电阻构成。该部分电路的主要作用是光电隔离,即消除后级电路对前级单片机的影响。三极管是使用NPN型的,把其集电极接+5V电压,射极接继电器。当单片机的引脚给出低电位时,光耦合元件4N25内部的发光二极管亮,使其内部的三极管导通,进而使引脚上的10K电阻分得电压。控制电路可以实时的反应温度值的大小,可以为温度的变化带来迅速、准确的响应。如下为控制电路图:在本设计中控

28、制方法是定值开关温度控制,没有采用PID控制算法,基本可以满足本设计要求。在实际应用中还有PD、PID算法,可以达到比较高的精度。对于不同的控制对象,所采用的算法也应该有所不同。比如对于热惯性大、耦合强、时间滞后明显、难以建立精确数学模型的大型立式淬火炉,有时就会采用人工智能模糊控制的算法,借以对淬火炉电热元件通断比的调节,来实现对炉温的自动控制,有时也可以采用仿人智能控制(SHIC)算法结合PID控制算法的联合控制方案,对于不同的对象在实际应用时应该灵活运用。4 系统软件设计及调试4.1 程序流程图 如下图所示为主程序的流程图:由主程序流程图可知:主程序调用了5个子程序,它们是按键扫描及处理

29、程序、LCD显示程序、AT24C02C读写程序、温度的采集程序、温度越界判决程序等。LCD显示程序是用于将温度的值实时的显示在屏幕上;按键扫描及处理程序是按键的输入、实现各个按键的功能;温度的采集程序就是将DS18B20所采集到的现场温度读入到指定的数组中;温度越界判决程序是根据存储器存储的温度的上下限值与实际的温度进行比较,如果温度的实际值超过了温度的上限值,指示红灯就亮,如果温度的实时值低于设定的温度的下限值,这指示绿灯就亮。从而可以根据指示灯的情况对温度的值进行判断;AT24C02读写程序,是用于存储和调用所设定的温度的上下限值。4. 2 系统的Proteus仿真4.2.1 Proteu

30、s仿真软件的简单介绍Proteus是英国Labcenter electronics公司研发的EDA设计软件,是一个基于ProSPICE混合模型仿真器的,完整的嵌入式系统软、硬件设计仿真平台。 Proteus不仅可以做数字电路、模拟电路、数模混合电路的仿真,还可进行多种CPU的仿真,涵盖了51、PIC、AVR、HC11、ARM等处理器,真正实现了在计算机上从原理设计、电路分析、系统仿真、测试到PCB板完整的电子设计,实现了从概念到产品的全过程。下面介绍一下PROTEUS的编辑环境。(1)工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图4.2.1所示。包括:绘图工具栏

31、、标题栏、预览窗口、对象选择器窗口、预览对象方位控制按钮、主菜单、标准工具栏、图形编辑窗口、状态栏、对象选择按钮、仿真进程控制按钮。图4.2.1 Proteus ISIS的工作界面(2) 主菜单PROTEUS包括File、 Edit、View等12个菜单栏,如图5.2所示。每个菜单栏又有自己的菜单,PROTEUS的菜单栏完全符合WINDOWS操作风格。图4.2.2 Proteus ISIS的菜单栏(3) 工具栏工具栏包括菜单栏下面的标准工具栏和图5.1右边的绘图工具栏,标准工具栏的内容与菜单栏的内容一一对应,绘图工具栏有丰富的操作工具,选择不同的按纽会得到不同的工具。4.2.2 编程软件Kei

32、l的简单介绍 Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。首先新建工程(Project-new project),如图4-2-1所示。图 4-2-1 新建工程 文件保存类型为.uv2,如下图所示:图 4-2-2 保存工程 点击保存后在跳出来的对话框中选择Ateml下面的89c51单片机。如图4-2-3所示。图 4-2-3 选择单片机类型此时的工程管理窗口的文件页(Files)上会出现“Target1”,点击前面的+,接着选择Source Group1,右键单击会弹出快捷菜单,然后选择“Add File to Group Source

33、Group1”这一命令,如图4-2-4所示。出现了一个对话框,需要寻找并加入源文件,源文件后缀为.c或.asm,如图4-2-5所示。打开空白c文件就可以开始编写程序了。图 4-2-4 添加源文件图 4-2-5 源文件4.3 相关程序的简单的介绍4.3.1 DS18B20测温程序设计1、DS18B20的控制指令如下: CCH跳过ROM。忽略64位ROM地址,直接向DS18B20发送温度变换命令。 55H匹配ROM,发出此命令后发出64位ROM编码,访问单总线上与该编码相对应的DS18B20并使之做出响应。 33H读ROM中的编码。如果主机只对一个DS18B20进行操作(即本设计这样的情况),只需

34、用跳过ROM(CCH)命令就可进行温度转换和读取操作。如下: 44H温度转换。启动DS18B20进行温度转换,结果存入内部9字节的RAM中。 BEH读暂存器。读内部RAM中9字节的温度数据。 4EH写暂存器。发出向内部RAM的第2、3字节写上下限温度数据命令,随后传送两字节的数据。2、工作时序及相应程序:初始化:先将数据线置高电平1;延时;数据线拉到低电平0;延时;数据线拉到高电平1;延时等待;数据线再次拉到高电平1。具体的程序应用如下:void dsreset(void)uint i; ds=0;i=103;while(i>0)i-;ds=1;i=4;while(i>0)i-;写

35、数据:数据线置低电平0;延时15us;按从低位到高位的顺序发送数据;延时45 us;将数据线拉到高电平1;重复步骤,直到发送完整个字节;再次将数据线拉高到1。读数据:将数据线拉高到1;延时2us;将数据线拉低到0;延时6us;将数据线拉高到1;延时4us;读数据线的状态得到一个状态位,并进行数据处理;延时30us;重复步骤,直到读取完一个字节。在编写具体的程序时,首先要对DS18B20进行复位初始化,其次编写读一位数据函数、读一个字节数据函数、写一个字节数据函数、温度的获取转换程序、读温度程序等子程序。4.3.2 LM016L显示程序设计1、显示器与单片机的接口程序如下:#include &l

36、t;at89x51.h> /用AT89C51时就用这个头文件#include <intrins.h>sbit LcdRs= P20;sbit LcdRw= P21;sbit LcdEn = P22;sfr DBPort = 0x80; /P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口2、初始化设置:原则上每次进行读/写之前都必须进行读/写检测,但由于单片机的操作速度慢于液晶控制器的反应速度,因此可以用简单延时代替读/写检测。其内部等待函数的程序如下:unsigned char LCD_Wait(void)LcdRs=0;LcdRw=1;_nop_()

37、;LcdEn=1;_nop_()LcdEn=0;return DBPort;3,、写操作时序:通过RS确定是写数据还是写命令。写命令包括使液晶的光标显示/不显示,需/不需要移屏,在液晶的什么位置显示等等,写数据是写要显示的内容。读/写控制端设置为写模式,即低电平。将数据或命令送达数据线上。给E使能端一个高脉冲将数据送入液晶控制器,完成写操作。例如,写命令的程序如下: #define LCD_COMMAND0 / Command #define LCD_DATA1 / Data #define LCD_CLEAR_SCREEN0x01 / 清屏 #define LCD_HOMING 0x02 /

38、 光标返回原点 void LCD_Write(bit style, unsigned char input) LcdEn=0; LcdRs=style; LcdRw=0; _nop_(); DBPort=input; _nop_();/注意顺序 LcdEn=1; _nop_();/注意顺序 LcdEn=0; _nop_(); LCD_Wait(); 本设计显示程序包括LCD清屏程序、写入控制命令子程序、写入数据子程序、初始化程序等。4.4 Keil与Proteus联调程序编写完成后,进行编译及联调。步骤如下:1、把安装目录ProteusMODELS 下的VDM51.dll 文件复制到Keil

39、安装目录的C51BIN 目录中。2、修改Keil 安装目录下Tools.ini 文件,在C51 字段加入TDRV5=BINVDM51.DLL(“PROTEUS 6 EMULATOR”)并保存。不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以。引号内的名字随意。 3、单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮,弹出窗口,图 4-4-1 仿真设置界面点击“Debug”按钮后,在出现的对话框里的右上栏Use后面的下拉菜单里选中“Proteus VSM Monitor一51 Driver”这一命令,此后还

40、要点击一下“Use”前面表明选中的小圆点。如图4-4-2所示。图 4-4-2 仿真设置再点击“Setting”按钮,此时需要设置通信的接口,在“Host”后面需要添上“127.0.0.1”,当使用的不是同一台电脑时,则需要在这里添上另一台电脑的IP地址。在“Port”后面添加“8000”。设置好的情形如图4-4-3所示,点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。图 4-4-3 通信接口设置4、Proteus的设置进入Proteus的ISIS,左键单击菜单“Debug”,然后选中“use romotedebuger monitor”,这一命令,如图4-4-4所示。此后,即可实现

41、KeilC与Proteus的连接调试。 图 4-4-4 选择远程控制5、KeilC与Proteus连接仿真调试(1)单击仿真运行开始按钮,开始仿真。仿真图如下A所示A.仿真开始时 (2)当按下Set按键后,仿真如B图所示 B.按下Set键 (3)当按下UP键后,仿真如C所示 C.按下UP键 (4)当按下DOWN键,仿真如D图所示 D.按下DOWN键 (5)当按下OK键,仿真如图E图所示 E.按下OK键总体的仿真效果如图4-4-5所示。图 4-4-5 仿真效果图结束语本设计的课题任务是显示实际温度值、设定温度值,并对这两个温度进行比较控制,使实际温度始终保持在一定范围内。在实际工业生产中,设定温

42、度的范围会比较广泛,相应的实际温度范围可能也比较宽泛,DS18B20温度范围窄有可能不适合,需要选用其他适合的温度传感器。生产中的温度控制精度会比较高,需要使用先进控制算法,比如模糊PID控制。本设计中报警系统采用了发光二极管,还可以加上蜂鸣器报警。显示器也有使用温度的限制,总之,对不同的要要选用合适的元器件。本设计初步实现了温度的控制功能,在此基础上可以提高控制精度及显示精度,扩大温度控制范围,实现更多的控制报警功能,并可根据本设计制作出硬件电路板。用单片机控制电热炉的温度是一种主流趋势,并有可能在今后用嵌入式系统来进行温度控制,采用先进控制算法来进行设计。经过半个多学期的学习,基本完成了本次毕业

温馨提示

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

评论

0/150

提交评论