




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【精品】基于单片机的智能温度监控毕业设计正文 引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段传感器统。本系统
2、利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非展常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。论文主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块
3、,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 1 温度检测和控制的重要性 在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。随着电子技术和微型计算机的迅速发
4、展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。传统的控制系统主要由测量电路和控制电路组成,所具备的功能较少,也比较弱,而且结构很复杂。计算机技术的迅速发展,使得传统的控制系统发生了根本性的变革,即采用微机作为控制系统的核心,代替传统的控制系统的传统的电子线路,从而成为新一代的微机化控制系统。将微机技术引入控制系统中,不仅可以解决传统控制系统不能解决的问题,而且还能简化电路、增加或增强功能、提高控制精度和可性,显著增强测控系统的自动化、智能化程度,而且可以缩短系统研制周期、降低成本、
5、易于升级和维护。因此,现代控制系统设计,特别是高精度、高性能的控制系统,目前已很少不采用计算机技术的了。计算机技术的引入,可以为控制系统带来以下一些新特点和新功能自动调零功能在每次采样前对传感器的输出值自动清零,从而大大降低因控制系统漂移变化造成的误差。 数字滤波功能利用已算机软件对测量数据进行处理,可以抑制各种干扰和脉冲信号。 数据处理功能利用计算机技术可以实现传统仪器无法实现的各种复杂的处理和运算功能。 复杂控制规律利用计算机技术不仅可以实现经典的pid控制,还可以实现各种复杂的控制规律,例如,自适应控制、模糊控制等。 自我诊断功能采用计算机技术后,可对控制系统进行监测,一旦发现故障则立即
6、进行报警,并可显示故障部位或可能的故障原因,对排除故障的方法进行提示。微机化的控制系统是以微机为核心、测量控制一体化的系统,这种系统对被控对象的控制是依据对被控对象的测量结果决定的。20+120之间的任何领域。比如:铁路,粮库,水果,蔬菜存储仓库的温度控制,以及多路温度测控仪,各种养殖场的温度控制监测。由于本系统的测温精度可达0.5,因而对于温度要求特别严格的环境来说,本系统是一个较为理想的监控系统。1.5 智能温度控制器的课题主要内容课题的任务是应用单片机及ds18b20单总线器件设计一套温度检测系统,实现对温度的测量及显示,并通过按键人为设定温度上下限!而且在温度超上限价或下限量有控制功能
7、,系统以高性能/价格比的89s52为核心,完成对数据的分析、处理、显示、温度上下限设置、超限自动控制,采用单线数字温度传感器ds18b20来完成对温度的采样和转换。由于课题是完成对温度的实时监测,因而系统的核心部分就是如何实现温度采集。系统采用的是美国dallas公司继ds1820之后推出的一种改进型智能温度传感器ds18b20来完成这一任务的。ds18b20与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要去通过简单的编程实现9-12位的数字值读数方式,可分别在93.75ms和750ms内完成9位和12位的数字量,并且从ds18b20读出的信息或写入ds18b20的信息仅从一根口线
8、,温度变换功率来源于数据总线,总线本身可以为所接的ds180b20供电,而无需外电源。ds18b20需在严格的时序控制下才能进行正常操作。对ds18b20的操作包括初始化操作、读/写时间片。总线上的所有操作均从初始化开始,初始化或对ram、rom操作。主cpu通过“时间片”来写入或读出ds18b20中的数据。概括说,主cpu经过单线接口访问ds18b20的工作流程为:对ds18b20进行初始化rom操作命令存储器(包括ram和eeram)操作命令数据处理。主cpu对rom操作完毕,即发出控制操作命令,使ds18b20完成温度测量并将测量结果存入高速暂存器中,然后单片机可读出此温度转换值,并随之
9、进行数据处理、送显示等操作。2 智能温度控制系统基本构成及工作原理2.1系统的硬件构成课题设计的硬件部分由89s52单片机、ds18b20、74ls14、74ls273锁存器以及若干电容、7个发光二极管、4只数码管、5个按键、11.0592mhz晶振组成。(结构如图2.1)图2.1 系统设计结构图 以下对各组成部件功能进行简单介绍:89s52单片机用于温度的采集,数据处理,存储温度上下限和超温控制。ds18b20是单总线数字温度传感器,输出方式为串行单线输出,主要作用是把温度值以数字形式输出和存储转换精度控制字。第三章将作出详细介绍,此处不做过多赘述。 74ls02或非门,用于选择锁存器(与写
10、信号或非)。 74ls14施密特触发器,用于键盘消抖。 74ls273锁存器。用锁存显示位、段码以及指示信号。 按键用于输入和查看温度上下限,使单片机复位,每隔2小时发送0.5秒的启动电机的正脉冲。 晶振是为单片机提供工作脉冲。 数码管用于显示温度值。发光二极管用于上下限溢出报警,温度超限报警及控制,设置上/下限指示,正常工作指示。各功能对应的指示灯设置如表2.1:表2.1 指示灯设置功 能第几灯点亮显示温度第1灯0x02显示下限温度1、20x03设下限温度标志位2、70x41设下限温度十位2、60x21设下限温度个位2、50x11设下限温度十分位2、40x09显示上限温度1、30x06设上限
11、温度 标志位3、70x44设上限温度十位3、60x24设上限温度个位3、50x14设上限温度十分位3、40x0c低于下限温度1、2、4、5、6、70x7b高于上限温度1、3、4、5、6、70x7e2.2 系统的软件构成课题原计划用汇编语言完成。后来决定使用c语音编写程序,系统的软件由温度数据采集、数据处理、温度显示及按键处理等部分组成。89s52完成的功能主要是数据处理、数据分析、控制计算、进制转换、数据显示、按键处理以及电机控制等。温度采样和转换部分由ds18b20来完成。2.2.1 系统的工作原理首先,由温度传感器ds18b20对温度进行采样和转换,将测量结果送给单片机,单片机将输入的温度
12、值进行数据处理,并将温度值与设定的温度值上下限进行比较。根据比较结果进行相应的处理。若温度超限则报警指示灯亮,以便进行及时处理。系统原理框图如图2.2所示:图2.2 系统原理图3 智能温度控制系统硬件设计本章是论文核心部分,主要介绍基于单片机的温度控制系统硬件总体设计,按照设计方案,整个温控系统硬件主要包括以下单元:按键输入,温度采集、处理,温度超限报警,定时发出脉冲等。温度控制的核心为温度的采集和处理,系统选用特别适用于编程及数据处理的ms-51单片机89s52,并通过89s52实现对其他各组成部分的编程控制。下面是核心原件的介绍:3.1 数字温度传感器ds18b20详述3.1.1 ds18
13、b20简介 ds18b20是美国dallas半导体公司生产的可组网数字式温度传感器,在其内部使用了在板(on-b0ard)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。与其它温度传感器相比,ds18b20具有以下特性:a 独特的单线接口方式:ds18b20与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯。 在使用中不需要任何外围元件。 可用数据线供电,电压范围:+3.0。? d 测温范围:-+125 。固有测温分辨率为0.。 通过编程可实现912位的数字读数方式。 )用户可自设定非易失性的报警上下限值。 )支持多点组网功能,多个ds18b20可以并联
14、在惟一的三线上,实现多点测温。图3.2 ds18b20内部结构框图3.1.4 ds18b20的测温原理ds18b20测量温度采用了特有的温度测量技术,其温度测量电路如图3.3所示。图3.3 ds18b20 测温结构图 图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计
15、数器1和温度寄存器中,减法计数器1和温度寄存器被预置在所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是ds18b20的测温原理。 另外,由于ds18b20单线通信功能是分时完成
16、的,他有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作必须按协议进行。操作协议为:初始化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。32221202-12-22-32-4msb lsbsssss262524msb lsb图中s为符号位,s 1,温度为负值;s 0,温度为正值。ds18b20用12位精度测出的数字量(用16位二进制补码形式表示)如表3.4所示:表3.4 部分温度与对应的数字温度输出之间的对应关系温度()数字输出(二进制)数字输出(十六进制)+1250000 0111 1101 000007d0+850000 0101 0101 000
17、00550+25.06250000 0001 1001 00010191+10.1250000 0000 1010 001000a2+0.50000 0000 0000 1000000800000 0000 0000 00000000-0.51111 1111 1111 1000fff8-10.1251111 1111 0101 1110ff5e-25.06251111 1110 0110 1111fe6f-551111 1100 1001 0000fc903.1.7 ds18b20的内存结构图ds18b20的存储器包括sram存储器和非易失的eeprom存储器,eeprom用于存放触发报警上
18、限值存储器(th)和触发报警下限存储器(tl)。当ds18b20在使用过程中并未使用报警功能时,th和tl可作为普通用途的存储器单元使用。ds18b20的存储组织结构如表3.5所示。表3.5 ds18b20内部存储器组织结构图便笺存储器(期间上电默认值)eeprom存储器0温度数字量低位字节(50h)无1温度数字量高位字节(05h)2th/用户寄存器字节1th/用户寄存器字节13tl/用户寄存器字节2tl/用户寄存器字节24配置寄存器配置寄存器5保留(ffh)无6保留(0ch)7保留(10h)8crc3.1.8 ds18b20的操作命令ds18b20是一种可编程的数字温度传感器,它的工作是靠计
19、算机给它发控制命令进行的,ds18b20和计算机在工作过程中的协议主要有:初始化、rom存储器操作命令、ram存储器操作命令。分别说明如下:a 初始化单总线上的所有处理均从初始化开始。初始化过程是主机通过向作为从机ds18b20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化完成后,才可进行读写操作。b 对rom的5种操作命令一旦主cpu检测到从属器件的存在,就可以发出rom操作命令。所有rom操作命令均为8位(二进制)字长。主cpu可以发出rom操作命令有以下五种:1 读rom命令(read rom,约定代码33h)。该命令允许主cpu读取ds18b20中的8位产品系列编码,48位序列号以
20、及8位的crc。该命令适用于总线上接一片ds18b20的情况。当总线上挂有多片ds18b20时禁止使用该命令,否则多片ds18b20同时发送数据,必然会导致互相冲突。2 符合rom命令(match rom,约定代码55h)。主cpu在发出“符合”rom命令后,接着发出64位的rom数据序列,从而使主cpu实现对单线总线上特定ds18b20的寻址。只有与rom序列严格相符的ds18b20,才能对后续的存储器操作命令作出响应。所有与64位rom序列不相符的ds18b20将等待复位脉冲。该命令对于总线上挂有单个、或多个器件的情况均适用。3 搜索rom命令(search rom,约定代码f0h)。搜索
21、rom命令允许主cpu使用一种“消除法”(elmination)来识别总线上所有ds18b20的64位rom编码,即完成整个系统的初始化工作。为以后对各个单线器件作好准备。该部分也是对ds18b20芯片进行软件编程的重点和难点。4 跳过rom命令(skip rom,约定代码为cch)。在单线总线系统中,该命令使主cpu不必提供64位rom编码就能访问各片ds18b20。该命令主要用于向所有的ds18b20同时发出温度转换命令,从而大大节省访问各个器件的时间。但有一点必须注意,主cpu如果在发出skip rom命令之后,又发出了读存储器命令,那么由于多片ds18b20同时向总线上提供数据且在漏极
22、开路状态下产生“线与”的结果,此时读出的数据已经没有实际意义了。5 报警搜索命令(alaram search,有约定代码ech)。该命令的流程与搜索rom命令的流程相同。仅在最后一次温度测量出现报警的情况下。ds18b20才对该命令做出响应。报警的条件定义为温度超过上限(t th),或者低于下限(t tl)。上电时,ds18b20预置报警条件为设定状态,直到首次温度测量结果既不超过上限th,也不低于tl时,报警信号才被解除。c 存储器操作命令存储器操作命令共有6条,具体如下:1 温度转换命令(convert t) 44h 。令ds18b20进行温度转换。如果住cpu在该命令之后为读时序,如果d
23、s18b20正忙于进行温度转换,即读得“0”;当温度转换完成时,ds18b20则返回“1”。假如有寄生电源给ds18b20供电,主cpu在发出该命令后立即将单线总线拉成高电平,并且保持500ms时间,以便在温度转换期间给ds18b20提供所需要的电源。2 读暂存存储器(read scratchpad) beh 。该命令为读暂存存储器9个字节的内容。从字节0开始读,直至读到字节8。主cpu可以在读暂存存储器期间发出一个复位脉冲来终止读操作。3 写暂存存储器(write scratchpad) 4eh 。主cpu送给ds18b20的2个字节数据就分别写入触发寄存器th和触发寄存器tl中,顺序是先写
24、th,到写tl。主cpu也可以在写暂存存储器期间发出一个复位脉冲来终止写操作。4 复制暂存存储器 copy scratchpad 48h 。该命令把触发寄存器中的th、tl字节分别复制到eeram的th、tl的字节上。若主cpu发出命令后又进行读操作,只要ds18b20正忙于复制,主cpu就读“0”;当复制工作完成后,ds18b20又返回“1”。如果是寄生电源供电,主cpu在发出该命令后就把单线总线拉到高电平,并保持10ms。5 重新调出eeram(recall eeram) b8h 。该命令是把存储器在e2ram温度触发器th、tl内的数据重新调入暂存器的th、tl字节。每次ds18b20上
25、电时也自动进行这种操作,因此,只要器件接通电源,暂存存储器的th、tl中已经有效的数据供使用。若主cpu在发出该命令之后又进行读操作,只要ds18b20正忙于进行调出,主cpu就读得“0”(表示“忙碌”);完成调出操作后ds18b20既返回“1”(表示“操作完毕”)。6 读电源(read power supply) b4h 。此项命令发送给ds18b20之后,对主cpu发出的每条读命令,ds18b20都向主cpu提供电源方式信号“0”(表示由寄生电源供电)或者“1”(表示由外部电源供电)。3.1.9 ds18b20的工作时序主机使用时间隙来读写ds18b20的数据位和写命令字的位。a 初始化主
26、机总线t0时刻发送复位脉冲(最短为480us的低电平信号),接着在t1时刻释放总线并进入接受状态,ds18b20再检验到总线的上升沿之后,等待15us60us,接着在t2时刻发出存在脉冲(60us240us),如图3.4所示。图3.4 ds18b20初始化时序图b 写时间隙当主机总线在t0时刻从高拉至低电平时,就产生写时间隙,如图3-5(a,b),从t0时刻开始15us之内应将所需写的位送到总线上,ds18b20在t0后15us60us间对总线采样。若为低电平,则写入的是0,如图3.5;若为高电平,则写入的位是1,见图3.5。连续写2位时间间隙应大于1us。 图3.5 写时间隙 c 读时间隙如
27、图3.6,总线t0时刻从高拉至低电平时,总线只需保持低电平1us。之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻和t2时刻前有效。t2距t0为15us,也就是说,t2时刻前主机必需完成读位,并在t0后的60us120us内释放总线。 图3.6 读时序 3.1.10 ds18b20与单片机的硬件接口因为ds18b20是单线接口器件,因此它与单片机硬件接口十分简单,只需占用单片机的一个双向的i/o口,其接口电路见图3.7。在此采用外部电源供电,占用89s52的p1.0口。图3.7 单片机接口电路3.1.11 ds18b20使用中注意事项 ?ds18b20虽然具有测温系统简单、测温精度高
28、、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: ?较小的硬件开销需要相对复杂的软件进行补偿,由于ds1820与微处理器间采用串行数据传送,因此,在对ds1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds1820操作部分最好采用汇编语言实现。 在ds1820的有关资料中均未提及单总线上所挂ds1820数量问题,容易使人误认为可以挂任意多个ds1820,在实际应用中并非如此。当单总线上所挂ds1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 连接ds1
29、820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用ds1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 在ds1820测温程序设计中,向ds1820发出温度转换命令后,程序总要等待ds1820的返回信号,一旦某个ds1820接触不好或断线,当程序读该ds1820时,将没有返回信号,程序进入死循环。这一点在进行ds1820硬件连
30、接和软件设计时也要给予一定的重视。 mcs-51系列单片机研制于1980年,由intel公司所开发,其结构是8048的延伸,改进了8048的缺点,其rom、ram都可扩充至64kb,也增添了如乘(mul)、除(div)、减(subb)、比较(cjne)、栈入(push)、栈出(pop)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。8052有6个中断源。mcs-51系列单片机特点如下: 1 专为控制应用所设计的八位cpu ; 2 具有布尔代数的运算能力; 3 32条双项且可被独立寻址的io口; 4 芯片内有128字节可供存储数据的ram(8052:256字节); 5 内部有
31、两组16位定时器(8052有3个); 6 具有全多工传输信号uart; 7 5个中断源,且具有两级(高低)优先权顺序的中断结构; 8 芯片内有4kb(8kb/8052)的程序存储器(rom); 9 芯片内有时钟(clock)振荡器电路; 10 程序存储器可扩展至64kb(rom); 11 数据存储器可扩展至64kb(ram)。3.2.2 mcs-51系列单片机引脚介绍a 时钟电路引脚 mcs51单片机的时钟可以由内部方式和外部方式产生,xtal1(19脚)和xtal2(18脚)即为单片机的两个时钟引脚。 1 内时钟引脚8052单片机片内有振荡电路,只需在xtal1和xtal2间外接石英晶体和电
32、容组成的并联振荡电路(晶振器),晶体可以在固有频率1.212mhz的晶振器之间任选晶体,电容可以在2060pf的电容之间任选,通常选择30pf的瓷片电容。在单片机控制的数字显示温度计电路设计的这个部分,就是采用内时钟引脚,其中晶振器为6mhz,两个电容均为30pf。2 外时钟方式,xtal1接地,xtal2接外部振荡器。由于xtal2端的电平不是ttl电平,故接一个上拉电阻。外部振荡器的频率应低于12mhz。b 制信号引脚,包括rst/vpd、ale/prog非、psen非、ea非vpp。下面分别对其进行介绍:1 rst/vpd(脚)pd是备用电源输入端(vpd接5v备用电源)。在vcc断电时
33、,为保证ram中的信息不丢失,可使此引脚完成掉电保护功能。 2 ale/prog非(30脚);地址锁存允许信号编程脉冲输入端 在系统扩展时,ale用于控制把p0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ale是以1/6晶振频率的固定频率输出的正脉冲,因此可作为外边时钟或外部定时脉冲使用。 对片内带有kbyteeprom的8751编写固化程序时,prog非作为编程脉冲输入端。 3 psen非(29引脚):外边程序存储器读选通信号为低电平有效,8051在访问片外程序存储器时,此引脚端输出负脉冲作为读片外程序存储器的选通信号,以实现外部rom单元的读操作。要检查8
34、051上电平后cpu能否正常到程序存储器中读取指令码,可以用示波器观察引脚psen非有无脉冲输出,若有说明正常。4 ea非vpp(31脚):内部和外部程序存储器选择信号 当引脚接高电平时,cpu只访问片内4kbyte的eprom/rom,执行内部程序存储器中的指令,但在程序计数器计数超过offfh时(即地址大于4kbyte时),将自动转向执行片外大于4kbyte程序存储器内的程序。 若ea非引脚接低电平时,cpu只访问外部程序存储器,而不管片内是否有程序存储器。对于8031单片机(片内无rom)需外扩eprom,故必须将ea非引脚接地。 在对eprom编写固化程序时,需对此引脚施加21v的编程
35、电压。c i/o(输入/输出)接口引脚 1 并行i/o接口的特点 mcs-51有4个8位并行i/o接口p0p3,他们都是双向端口,可以进行输入或者输出操作,每个口都有口锁存器和口驱动器两部分组成。此外,它还有一个全双工串行通信口。这4个端口为mcs-51与外围器件或外围设备进行信息 数据、地址、控制信号 交换提供了多功能的输入/输出通道,也为mcs-51扩展外部功能、构成应用系统提供了必要的条件。它们的特点如下:a、4个并行i/o接口都是双向的。p0口为漏极开路,p1、p2、p3口均具有内部上拉电阻,它们有时被称为准双向口。b、4个并行口的32条i/o接口线都可以独立地用于输入或输出操作。c、
36、当4个并行口的i/o接口线有作输入操作时,必须对该口的锁存器进行写1操作,以保证从i/o接口线输入数据的正确性,这也是4个并行接口有时被称为“准”双向的含义。2 i/o接口电路功能汇总 mcs-51单片机内部属单总线结构,因此使系统在结构上增加了灵活性。通过总线,用户可根据应用需要进行多功能的系统扩展,构成用户的实际应用系统。mcs-51系列中的8031单片机,因其内部在结构上无程序存储器,所以它的应用系统必定为一个扩展的系统。因此,mcs-51的4个并行i/o接口中的p0、p1、p2、p3口基本上都具备有这两项功能:a、p0口:p0口是一个多功能口除可以作为通用的输入/输出口外,还具备用于系
37、统扩展的第二功能。在mcs-51的进行系统扩展时,它作为地址/数据总线口。通过外接地址锁存器,mcs-51的内部单总线可从p0口被扩展成8位的数据总线和16位地址总线的低8位。在实际应用中,p0口先送出外部存储器16位地址中的低8位至地址锁存器锁存,然后再由p0口进行8位数据的输入或输出;b、p1口:p1口作为通用i/o接口,它的每一位都可以别编程为通用i/o接口线;c、p2口:p2口也是一个多功能口,与p0口相似,它除可被用作i/o接口外,在进行系统扩展时,还可以输16位地址总线中的高8位,和p0口共同构成16位的地址总线。当然,在p0口和p2口用作地址/数据总线时,它们都不能再作为通用i/
38、o接口;d、p3口:p3口也是一个多功能口,除可以作为通用i/o接口外,还具有多种控制功能,为通用i/o接口时和mcs-51其他具有控制功能的输入/输出引线在一起,共同形成mcs-51的控制总线。p3口在作为第二功能(控制功能)使用时,它的每一位功能定义如表3.8所示。表3.8 p3口各引脚定义口线第二功能信号名称p3.0rxd串行数据接收p3.1txd串行数据发送p3.2int0外部数据0申请p3.3int1外部数据1申请p3.4t0定时器/计数器0输入p3.5t1定时器/计数器1输入p3.6wr外部ram写选通p3.7rd外部ram读选通一个信号引脚,既是第一功能又是第二功能,在使用时也不
39、会引起混乱和造成错误,理由如下:a、对于各种型号的芯片,其功能的第一功能信号是相同的,所不同的只在引脚的的第二功能信号上;b、对于9、30和31各个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾;c、p3口线的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此在实际使用时,总是先按需要优先选用它的二功能,剩下不用的才作为口线使用。d mcs-51单片机的复位方式和复位电路1 复位操作:复位是单片机的初始化操作,其主要功能是把pc初始化为0000h,使单片机从0000h单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或者
40、操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。a、复位操作还对单片机的个别引脚信号有影响,例如把ale和psen非信号变为无效状态,即ale 0,psen 1;b、复位信号及其产生 rst引脚是复位信号的输入端,复位信号是高电平有效,其有效时间持续24个振荡脉冲周期(即2个机器周期)以上,若使用频率为6mhz的晶振,则复位信号持续时间应超过4us才能完成复位操作。整个复位电路包括芯片内外两部分。外部电路产生的复位信号(rst)送施密特触发器,再由片内复位电路在每个机器周期的s5时刻对施密特触发器的输出进行采样。然后才得到内部复位操作所需要的信号。3.3 显示温度值的led显
41、示器接口简介 led显示器是单片机应用系统中常用的廉价输出设备。它是由若干个发光二极管组成的,当发光二极管导通时,相应一个笔画划发光,控制某段发光二极管导通,就能显示出某个数码或字符。在静态显示系统中,每位显示器都应有各自的锁存器、译码器(若采用软件译码,译码器可省去)与驱动器,用以锁存各自待显示数字的bcd码或字段码。因此,静态显示系统在每一次显示输出后能够保持显示不变,仅在待显示数字需要改变时,才更新其数字显示锁存器中的内容。这种显示占用cpu的时间少,显示稳定可靠。缺点是,当显示的位数较多时,占用的i/o口较多。 在动态显示的系统中,cpu需定时地对每位led显示器进行扫描,每位led显
42、示器分时轮流工作,每次只能使一位led显示,但由于人的视觉暂留现象,仍感觉所有的led显示器都在同时显示。这种显示的优点是使用硬件少,占用i/o口少。缺点是占用 cpu时间长,只要不执行显示程序,就立刻停止显示。但随着大规模集成电路的发展,目前已有能自动对显示器进行扫描的专用显示芯片,使电路既简单又占用cpu时间。在我们所设计的温度计中数码管显示就是利用的动态显示。4 智能温度控制系统软件设计课题的程序用keil c51语言编写,由于使用了c语言,寄存器的分配、不同的存储器的寻址及数据类型等细节可由编译器管理,尤其是数学运算不必人工干预,大大缩短了变成与调试的时间,提高了效率,降低了编成难度,
43、使编程更加简便。系统的控制软件可分为主程序,ds18b20通信程序,按键程序等模块。主程序可分为系统的初始化,自检子程序,温度显示子程序三部分。温度显示子程序完成温度采集,温度值的bcd转换,调显示子程序,超温报警和控制。ds18b20通信程序主要由ds18b20初始化程序,ds18b20读字节程序,ds18b20写字节程序组成。按键程序主要完成温度上、下限的设置和显示,在单片机控制下每2小时发送0.5秒的启动电机的正脉冲。本系统有五个按键,依次是:复位键、k1键、k2键、k3键、k4键。按键程序主要包括int1中断子程序、定时器t0中断子程序、int1中断子程序、定时器t1中断子程序、定时器
44、t2子程序。其中,复位键部分放入主程序中,作为主程序的一部分。k4键功能:每2小时发送0.5秒的启动电机的正脉冲。下面是主程序和各个子程序的流程图。41 主程序流程图系统完成的是对周围温度进行检测,采用ds18b20传感器。当温度超过设定温度范围时,进行报警。引入单片机控制是实现系统智能化很重要的一个部分,采用单片机可以实现程序控制和监视的功能。系统采用89s52和ds18b20的连接进行实时控制和数据处理。软件编程负责设置温度上、下限,然后让系统根据设置的程序完成控制功能。主程序流程图如图4.1所示。图4.1 主程序流程图 4.2.1 ds18b20初始化子程序流程图ds18b20在初始化序
45、列期间,总线控制器拉低总线并保持480us以发出(tx)一个复位脉冲,然后释放总线,进入接收状态(rx)。单总线由5k上拉电阻拉到高电平。当ds18b20探测到i/o引脚上的上升沿后,等待1560us,然后发出一个由60240us低电平信号构成的存在脉冲。完成对ds18b20的初始化操作,在每次测温前必须对其进行初始化,否则系统无法正常运行。所以这个步骤很重要。ds18b20初始化子程序流程如图4.2所示。图4.2 ds18b20初始化子程序流程图void rst18b20 void /*ds18b20初始化子程序*/ dq 0; delay 15 ; dq 1; delay 2 ; do w
46、hile dq 1 ; do while dq 0 ; 4.2.2 ds18b20写字节子程序ds18b20写字节由两种写时序组成:写1时序和写0时序。总线控制器通过写1时序写逻辑1到ds18b20,写0时序写逻辑0到ds18b20。所有写时序必须最少持续60us,包括两个写周期之间至少1us的恢复时间。当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始总线控制器要生产一个写时序,必须把数据线拉到低电平然后释放,在写时序开始后的15us释放总线。当总线被释放的时候,5k的上拉电阻将拉高总线。总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持(至少60us)。总线控制器初始化
47、写时序后,ds18b20在一个15us到60us的时间内对i/o线采样。如果线上是高电平,就是写1。如果线上是低电平,就是写0。ds18b20写字节程序流程图如图4.3所示。 图4.3 ds18b20写字节流程图void write_zi uchar wr /*向ds18b20写字节子程序*/ uchar i; for i 0;i 8;i+ dq 0; _nop_ ; dq wr&0x01; delay 5 ; dq 1; wr 1; 4.2.3 ds18b20读字节子程序 总线控制器发起读时序时,ds18b20仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令beh或读电源模式指令
48、b4h后必须立刻开始读时序,ds18b20可以提供请求信息。除此之外,总线控制器在发出发送温度转换指令44h或召回eeprom指令b8h之后读时序,所有读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放。在总线控制器发出读时序后,ds18b20通过拉高或拉低总线上来传输1或0。当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。从ds18b20输出的数据在读时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始后必须停止把i/o脚驱动为低电平15us,以读取i/o脚状态。
49、 图4.4 ds18b20读字节子程序uchar read_zi void /*从ds18b20读出字节子程序*/ uchar i,u 0; for i 0;i 8;i+ dq 0; u 1; dq 1; if dq 1 u| 0x80; delay 4 ; return u ; 4.2.4 温度显示子程序温度显示子程序主要完成温度的读出和显示的功能。当温度为零下是显示为“”号;当温度为零上时消隐。当测定温度低于设定温度下限值时,第1、2、4、5、6、7个发光二极管点亮;当测定温度高于设定温度上限值时,第1、3、4、5、6、7个发光二极管亮。起到报警作用。温度显示子程序流程图如图4.5所示。图
50、4.5 温度显示子程序float wl -10.0,wh 30.0; /*wh、wl用于存储上、下限温度*/void showt void /*温度显示子程序*/ uchar idata tem4; float wd 0; /*wd为采集的温度值*/ int m; for ; wd cewen ; if wd 0 /*判断温度是否为正*/ wd -wd; tem0 16; /*温度为负值,数码管第1位显示负号*/ else tem0 17; /*温度为正值,数码管第1位不显示*/ tem1 wd/10; /*将温度值各位分离出来*/ m wd*10; tem2 m%100/10; tem3 m
51、%10; display tem+3 ; deng 0x02; /*显示温度,第1个发光二极管亮*/ if wd wl deng 0x7b; /*低于温度下限,第1、2、4、5、6、7个发光二极管亮*/ if wd wh deng 0x7e; /*高于温度上限,第1、3、4、5、6、7个发光二极管亮*/ 4.2.5 温度采集子程序流程图程序在采集温度时,测量两次取平均值,已达到精确的目的。温度采集子程序流程 图4.6 温度采集子程序流程图float cewen void /*采集温度子程序*/ uchar am,bm; /*am,bm分别是从ds18b80读取的温度低8位和高8位值*/ int wendz 0,i; /*wemdz是单次温度采集值*/ float duzhi 0; for i 0;i 2;i+ /*采集两次温度值*/ rst18b20 ; /*ds18b20初始化*/ write_zi 0xcc ; /*跳过ds18b20片内rom*/ write_zi 0x44 ; /*进行温度转换*/ rst18b20 ; write_zi 0xcc ; write_zi 0xbe ; /*ds18b20暂存器值*/ am read_zi ; bm read_zi ; wendz bm; wendz 8;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年投资理财师职业资格考试试题及答案
- 2025年全国硕士研究生考试题及答案
- 2025年绿色建筑设计专业考研试卷及答案
- 2025年科技创新与管理实践能力考试试题及答案
- 2025年计算机网络技术职业资格考试卷及答案
- 北师大版(2024)七年级下册英语期末复习:各单元主题作文范文
- 2025年电子商务专才职业资格考试试题及答案
- 员工生日会流程策划与实施
- 痔病人的外科护理
- 车间内龙门吊车安全培训
- 2025至2030年中国侧背光源行业投资前景及策略咨询报告
- 2025至2030年中国叉车油缸行业市场发展调研及投资前景展望报告
- 汽车美容质量管理制度
- 躁动患者约束带的使用及护理
- 云南省大理2025年八年级下学期语文期末模拟考试卷三套及答案
- 国家开放大学国开电大《统计与数据分析基础》形考任务1-4 参考答案
- 风电居间合同协议书
- 浙江开放大学2025年《社会保障学》形考任务4答案
- 酱料研发知识培训课件
- 2025核辐射突发事件放射性污染人员洗消流程及技术要求
- 湖北省黄冈市黄梅县2023-2024学年六年级下学期语文期末质量监测试卷(含答案)
评论
0/150
提交评论