单片机温控系统设计.doc_第1页
单片机温控系统设计.doc_第2页
单片机温控系统设计.doc_第3页
单片机温控系统设计.doc_第4页
单片机温控系统设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

单片机温控系统设计目 录1.摘要2.关键字3.引言第1章开发平台及工具选用1.1 protel 99se 简介1.2 keil 8.02 简介1.3 proteus简介第2章系统总体设计2.1温度控制系统组成框图2.2温度控制系统结构图及总述2.3温度控制系统硬件与其详细功能介绍2.3.1元器件基本知识1.单片机 at89c512.ds1820温度传感器3.moc3041双向可控硅驱动芯片4.双向可控硅tlc336a5.74ls374芯片6.数码管led显示器7状态指示灯8. 原理图第3章温度控制系统软件设计3.1流程图3.2原代码3.3系统功能第4章设计过程中总结及心得第5章 致谢第6章 参考文献单片机温控系统设计作者:陈杰摘 要:本课题介绍了以at89c51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片ds18b20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、温度显示电路、报警电路和一些接口电路 。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还以图文并茂的方式着重介绍了各部分的电路组成和软件设计部分,在这里采用模块化结构,主要模块有:主程序、数码管显示子程序、键盘扫描及按键处理子程序、温度设定子程序、以及有关ds1820的程序。关键字:mcs-51单片机;温度;ds1820;温度采集;温度控制前言:在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制,可以说几乎80%的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此设计一个 具有高可靠性,灵活姓方便性和有高的测量精度和分辨率,测量范围大;抗干扰能力强,稳定性好;信号易于处理、传送和自动控制;便于动态及多路测量,读数直观;安装方便,维护简单的温控是很有必要的。所以采用mcs-51单片机和ds1820传感器构成测温系统来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等以上优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。针对目前市场的现状,本课题提出了一种可满足要求、可扩展的并且性价比高的单片机测温系统。第1章开发平台及工具选用表1-1 开发软件和版本与功能软件名称版本功能protel99se绘制原理图keil8.02原程序的编写、调试以及烧写文件的生成 proteus7.20仿真软件1.1 protel 99se 简介随着计算机业的发展,从80年代中期计算机应用进入各个领域。在这种背景下,87、88年由美国acceltechnologiesinc推出了第一个应用于电子线路设计软件包tango,这个软件包开创了电子设计自动化(eda)的先河。这个软件包现在看来比较简陋,但在当时给电子线路设计带来了设计方法和方式的革命,人们纷纷开始用计算机来设计电子线路,直到今天在国内许多科研单位还在使用这个软件包。随着电子业的飞速发展,tango日益显示出其不适应时代发展需要的弱点。为了适应科学技术的发展,proteltechnology公司以其强大的研发能力推出了protelfordos作为tango的升级版本,从此protel这个名字在业内日益响亮。 八十年代末,windows系统开始日益流行,许多应用软件也纷纷开始支持windows操作系统。protel也不例外,相继推出了protelforwindows1.0、protelforwindows1.5等版本。这些版本的可视化功能给用户设计电子线路带来了很大的方便,设计者再也不用记一些繁琐的命令,也让用户体会到资源共享的乐趣。 九十年代中,win95开始出现,protel也紧跟潮流,推出了基于win95的3.x版本。3.x版本的protel加入了新颖的主从式结构,但在自动布线方面却没有什么出众的表现。另外由于3.x版本的protel是16位和32位的混合型软件不太稳定。 98年,prote公司推出了给人全新感觉的proel98。protel98以其出众的自动布线能力获得了业内人士的一直好评。 99年,protel公司又推出了最新一代的电子线路设计系统protel99。在protel99中加入了许多全新的特色。1.1.1 protel99组成a.原理图设计系统 原理图设计系统是用于原理图设计的advancedschematic系统。这部分包括用于设计原理图的原理图编辑器sch以及用于修改、生成零件的零件库编辑器schlib。 b.印刷电路板设计系统印刷电路板设计系统是用于电路板设计的advancedpcb。这部分包括用于设计电路板的电路板编辑器pcb以及用于修改、生成零件封装的零件封装编辑器pcblib c.信号模拟仿真系统信号模拟仿真系统是用于原理图上进行信号模拟仿真的spice3f5系统。 d.可编程逻辑设计系统protel99内置编辑器可编程逻辑设计系统是基于cupl的集成于原理图设计系统的pld设计系统。这部分包括用于显示、编辑文本的文本编辑器text和用于显示、编辑电子表格的电子表格编辑器spread。1.1.2 protel99主要特色protel99是基于win95/winnt/win98/win2000的纯32位电路设计制版系统。protel99提供了一个集成的设计环境,包括了原理图设计和pcb布线工具,集成的设计文档管理,支持通过网络进行工作组协同设计功能。1.1.3 protel99的主要特性如下:protel99系统针对windowsnt4/9x作了纯32位代码优化,使得 protel99设计系统运行稳定而且高效。 smarttool(智能工具)技术将所有的设计工具集成在单一的设计环境中。smartdoc(智能文档)技术将所有的设计数据文件储存在单一的设计数据库中,用设计管理器来统一管理。设计数据库以.ddb为后缀方式,在设计管理器中统一管理。使用设计管理器统一管理的文档是在protel99中新提出来的,以前版本中没有。smartteam(智能工作组)技术能让多个设计者通过网络安全地对同一设计进行单独设计,再通过工作组管理功能将各个部分集成到设计管理器中。pcb自动布线规则条件的复合选项极大的方便了布线规则的设计。用在线规则检查功能支持集成的规则驱动pcb布线。继承的pcb自动布线系统最新的使用了人工智能技术,如人工神经网络、模糊专家系统、模糊理论和模糊神经网络等技术,即使对于很复杂的电路板其布线结果也能达到专家级的水平。对印刷电路板设计时的自动布局采用两种不同的布局方式,即clusterplacer(组群式)和基于统计方式(statisticalplacer)。在以前版本中只提供了基于统计方式的布局。protel99新增加了自动布局规则设计功能,placement标签页是在protel99中新增加的,用来设置自动布局规则。增强的交互式布局和布线模式,包括“push-and-shove”(推挤)。电路板信号完整性规则设计和检查功能可以检测出潜在的阻抗匹配、信号传播延时和信号过载等问题。signalintegrity标签页也是在protel99中新增加的,用来进行信号完整性的有关规则设计。零件封装类生成器的引入改进了零件封装的管理功能。广泛的集成向导功能引导设计人员完成复杂的工作。原理图到印刷电路板的更新功能加强了sch和pcb之间的联系。完全支持制版输出和电路板数控加工代码文件生成。可以通过protellibrarydevelopmentcenter升级广泛的器件库。可以用标准或者用户自定义模板来生成新的原理图文件。集成的原理图设计系统收集了超过60000元器件。通过完整的spice3f5仿真系统可以在原理图中直接进行信号仿真。可以选择超过60中工业标准计算机电路板布线模板或者用户可以自己生成一个电路板模板。protel99开放的文档功能使得用户通过api调用方式进行三次开发。集成的(macro)宏编程功能支持使用clientbasic编程语言。1.2 keil 8.02简介keil c51标准c编译器为8051微控制器的软件开发提供了c语言环境,同时保留了汇编代码高效,快速的特点。c51编译器的功能不断增强, 使你可以更加贴近cpu本身,及其它的衍生产品。c51已被完全集成到uvision2的集成开发环境中,这个集成开发环境包含:编译器,汇编 器,实时操作系统,项目管理器,调试器。uvision2 ide可为它们提供单一而灵活的开发环境.1 v7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿c51 v7版本无疑是8051开发用户的最佳选择1.3 proteus简介proteus软件是由英国labcenterelectronics公司开发的eda工具软件,已有近20年的历史。该软件集成了高级原理布图、混合模式spice电路仿真、pcb设计以及自动布线来实现一个完整的电子设计系统。它是一种混合电路仿真工具,包括模拟电路仿真、数字电路仿真、单片机及其外围电路组成的仿真等。proteus软件由isis和ares两个软件构成,其中isis是一款便捷的电子系统仿真平台软件,ares是一款高级的布线编辑软件2。isis是一个操作简便且功能强大的原理绘图工具,它整合了spice的仿真模型,拥有超过8000个元件的庞大库结构。ares则可将isis的仿真原理图生成pcb版图。proteus支持许多通用的微控制器,如pic系列、avr系列、8051系列等;同时它还支持arm、pld及各种外围芯片的仿真,如基于hd44780芯片的字符lcd、ram等;具有单步运行、断点设置等调试功能;能与常用编译器如keil、iar、proton等协同调试;有直流电流表/电压表、交流电压表/电流表、示波器逻辑分析仪、频率计等虚拟仪器,为仿真中的测量记录提供了方便;支持图形化分析功能,具有频率特性、傅里叶分析等图形方式,可将仿真曲线精美地绘制出来。第2章硬件系统的设计2.1系统任务 本课题的任务是对温度进行实时的监测与控制。首先,由温度传感器ds1820对 温度进行采样与转换,将测量结果tx送给单片机;单片机将输入的温度值与内部指定单元的给定温度值t进行比较,根据比较结果,通过一个执行机构-可控硅对加热源(电炉、电热水相)的开断状态进行控制。由于水的惯性大,加之这里对温度控制精度要求不高,在控温的 过程中采原理方框图如图2.1所示。键盘显示报警单片机执行机构加热器传感器给定值系统原理方框图如图2.1如图2.1所示该系统原理图是由单片机做主控件去处理数字温度传感器的信息,首先把给定的值存放在某个存储单元里,加热器的温度由传感器来采集处理转换再送给单片机来处理信息,再根据把相应的处理结果去通过一个执行机构去控制加热器,同时送显示。 2.2温度控制系统结构图及总述at89c5174ls374驱动数码管显示双向可控硅驱动双向可控硅ds1820键盘电路74ls374位驱动加热器状态指示灯温度控制系统结构图如图2.22.3温度控制系统硬件与其详细功能介绍2.3.1元器件基本知识 1.单片机概论(1)8051系列单片机的特点单片机(microcontroller,有称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器cpu、数据存储器ram、程序存储器rom、定时器/计数器和多种i/o接口电路。(2)8051单片机的基本结构见图3-1。图 2-3 mcs51单片机的基本结构(3)8051时mcs51系列单片机的一个产品。mcs51系列单片机是intel公司推出的通用型单片机,其结构特点如下:l 8位cpu;l 片内震荡及时钟电路;l 32根i/o线;l 外部存储器寻址范围rom、ram各64k;l 2个16位的定时器/计数器;l 5个中断源,2个中断优先级;l 全双工串行接口。(4)8051单片机系列指的是mcs51系列和其他公司的8051衍生产品。这些衍生品是在基本型基础上增强了各种功能的产品,如高级语言型、flash 型、eeprom型、a/d型、dma型、多并行口型等,这些产品给8位单片机注入了新的活力,给它的开发应用开拓了更广泛的前景。2. 8051系列单片机的内部结构8051系列的内部结构可以划分为cpu、存储器、并行口、串行口、定时器/计数器、中断逻辑几部分。 (1)中央处理器8051的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(sfr)。算术逻辑单元alu能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。alu只能进行运算,运算的操作数可以事先存放到累加器acc或寄存器tmp中,运算结果可以送回acc或通用寄存器或存储单元中,累加器acc也可以写为a。b寄存器在乘法指令中用来存放一个乘数,在除法指令中用来存放除数,运算后b中为部分运算结果。程序状态字psw是个8位寄存器,用来寄存本次运算的特征信息,用到其中七位。psw的格式如下所示,其各位的含义是:cy:进位标志。有进位/错位时cy=1,否则cy=0。 ac:半进位标志。当d3位向d4位产生进位/错位时,ac=1,否则ac=0,常用于十进制调整运算中。f0:用户可设定的标志位,可置位/复位,也可供测试。rs1、rs0:四个通用寄存器组选择位,该两位的四种组合状态用来选择03寄存器组。见表3-1。ov:溢出标志。当带符号数运算结果超出-128+127范围时ov=1,否则ov=0。当无符号数乘法结果超过255时,或当无符号数除法的除数为0时ov=1,否则ov=0。p:奇偶校验标志。每条指令执行完,若a中1的个数为奇数时p=1,否则p=0,即偶校验方式。控制逻辑主要包括定时和控制逻辑、指令寄存器 、译码器以及地址指针dptr和程序寄存器pc等。表 2-1 rs1、rs0与工作寄存器组的关系rs1rs0工作寄存器组000组(00-07h)011组(08-0fh)102组(10-17h)113组(18-1fh)单片机时程序控制式计算机,即它的运行过程是在程序控制下逐条执行程序指令的过程:从程序存储器中取出指令送指令存储器ir,然后指令译码器id进行译码,译码产生一系列符合定时要求的微操作信号,用以控制单片机的各部分动作。8051的控制器在单片机内部协调各功能部件之间的数据传送、数据运算等操作,并对单片机发出若干控制信息。这些控制信息的使用专门的控制线,诸如psen、ale、ea以及rst,也有一些是和p3口的某些端子合用,如wr和rd就是p3.6和p3.7,他们的具体功能在介绍8051引脚是一起叙述。(2)存储器组织8051单片机的存储器结构特点之一是将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构称为哈佛结构单片机。这种结构与通用微机的存储器结构不同,一般微机只有一个存储器逻辑空间,可随意安排rom或ram,访存时用同一种指令,这种结构称为普林斯顿型。8051单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。8051片内有256k数据存储器ram和4kb的程序存储器rom。除此之外,还可以在片外扩展ram和rom,并且各有64kb的寻址范围。也就是最多可以在外部扩展2*64kb存储器。8051的存储器组织结构如图3-3所示。图 2-4 8051存储器组织结构64k字节的程序存储器(rom)空间中,有4k字节地址区对于片内rom和片外rom是公用的,这4k字节地址是0000hfffh。而1000hffffh地址区为外部rom专用。cpu的控制器专门提供一个控制信号ea用来区分内部rom和外部rom的公用地址区:当ea接高电平时,单片机从片内rom的4k字节存储器区取指令,而当指令地址超过0fffh后,就自动的转向片外rom取指令。当ea接低电平时,cpu只从片外rom取指令。表2-2 8051特殊功能寄存器一览表符号地址注解*acce0h累加器*bf0h乘法寄存器*pswd0h程序状态字sp81h堆栈指针dpl82h数据存储器指针(低8位)dph83h数据存储器指针(高8位)*iea8h中断允许控制器*ipd8h中断优先控制器*p080h通道0*p190h通道1*p2a0h通道2*p3b0h通道3pcon87h电源控制及波特率选择*scon98h串行口控制器sbuf99h串行数据缓冲器*tcon88h定时器控制tmod89h定时器方式选择tl08ah定时器0低8位tl18bh定时器1低8位th08ch定时器0高8位th18dh定时器1高8位程序存储器的某些单元是保留给系统使用的:0000h0002h单元是所有执行程序的入口地址,复位以后,cpu总是丛0000h单元开始执行程序。0003h002ah单元均匀地分为五段,用做五个中断服务程序的入口。用户程序不应进入上述区域。数据存储器ram也有64kb寻址区,在地址上是和rom重叠的。8051通过不同的信号来选通rom或ram:当从外部rom取指令时用选通信号psen,而从外部ram读写数据时采用读写信号rd或wr来选通。因此不会因地址重叠而出现混乱。8051的ram虽然字节数不很多,但却起着十分重要的作用。256个字节被分为两个区域:00h7fh时真正的ram区,可以读写各种数据。而80hffh是专门用于特殊功能寄存器(sfr)的区域。对于8051安排了21个特殊功能寄存器,每个寄存器为8位,所以实际上128个字节并没有全部利用。内部ram的各个单元,都可以通过直接地址来寻找,对于工作寄存器,则一般都直接用r0r7,对特殊功能寄存器,也是直接使用其名字较为方便。8051内部特殊功能寄存器都是可以位寻址的,并可用“寄存器名.位”来表示,如acc.0,b.7等。这些寄存器分别用于以下各个功能单元:cpu:acc,b,psw,sp,dptr(由两个8位寄存器dpl和dph组成);并行口:p0,p1,p2,p3;中断系统:ie,ip;定时器/计数器:tmod,tcon,t0,t1(分别由两个8位寄存器tl0和tho,tl1和th1组成);串行口:scon,sbuf,pcon。3.单片机外接电路 时钟产生产生和复位电路片内电路与片外器件就构成一个时钟产生电路,cpu的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2mhz12mhz之间选取。c1、c2是反馈电容,其值在5pf30pf之间选取,典型值为30pf。本电路选用的电容为30pf,晶振频率为12mhz。这样就确定了单片机的4个周期分别是:振荡周期1/12;机器周期(sm);指令周期。图2-5时钟产生电路xtal1和xtal2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。即用来连接8051片内osc的定时反馈回路,如上图所示。石英晶振起振后要能在xtal2线上输出一个3v左右的正弦波,以便使mcs-51片内的osc电路按石英晶振相同频率自激振荡。通常,osc的输出时钟频率fosc为0.5mhz-16mhz,典型值为12mhz或者11.0592mhz。电容c1和c2可以帮助起振,典型值为30pf,调节它们可以达到微调fosc的目的。下图为单片机复位电路。单片机在开机时都需要复位,以便中央处理器cpu以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的rst引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位。mcs-51单片机的rst引脚是复位信号的输入端。例如:若mcs-51单片机时钟频率为12mhz,则复位脉冲宽度至少应该为2s。图2-6开机复位电路2.温度传感器ds1820的概述与单片机的接口电路 dallas公司的ds18b20单总线数字传感器工作温度范围是-55125,在-3085范围内温度测量精度为0.5;具有温度报警功能,用户可设置最高和最低报警温度,且设置值掉电不丢失;采用dallas公司特有的单总线通信协议,只用一条数据线就可实现与mcu的通信;此外,ds18b20能够直接从数据线获得电源,无需外部电池供电。ds1820通过使用在板(on_board)温度测量专利技术来测量温度。其温度测量电路是通过计数时钟周期来实现的,ds18b20有两个温度系数振荡器,温度测量时对高温度系数振荡器产生的门开同期内,低温度系数振荡器经历的时钟周期的个数进行计数而得到的。ds1820数字温度传感器提供9位(二进制)温度读数,指示器件温度,所以无需a/d转换。信息经过单线接口送入ds1820 或从ds1820送出,因此从主机cpu到ds1820仅需一条线连接,而且ds1820的电源可由数据线本身提供(相对于外部电源,转换时间要延长)。因此每一个ds1820在出厂时已经给定了唯一的序号因此从理论上说任意多个ds1820可以连接在一条单线总线上。ds1820的测量范围从-55到+125,增量为0.5(最高精度可达0.1),转换速度小于1s(典型值)。而在本测系统中采用外部电源供电温度测量工作方式,其中电阻r是上拉电阻,使得单线总线的空闲状态是高电平。它与cpu(at89c51)的接法如图2.7 及其实物图如图1 at89c51ds1820r5 v 地图 2.7 ds1820与单片机的连接由于ds1820只有一根数据线。因此它和主机(单片机)通信是需要串行通信,而at89c51有两个串行端口,所以可以不用软件来模拟实现。经过单线接口访问dc1820必须遵循如下协议:初始化、rom操作命令、存储器操作命令和控制操作。要使传感器工作,一切处理均从序列开始。主机发送(tx)-复位脉冲(最短为480s的低电平信号)。接着主机便释放此线并进入接收方式(rx)。总线经过4.7k的上拉电阻被拉至高电平状态。在检测到i/o引脚上的上升沿之后,ds1820等待15-60s,并且接着发送脉冲(60-240s的低电平信号)。然后以存在复位脉冲表示ds1820已经准备好发送或接收,然后给出正确的rom命令和存储操作命令的数据。ds1820通过使用时间片来读出和写入数据,时间片用于处理数据位和进行何种指定操作的命令。它有写时间片和读时间片两种。写时间片:当主机把数据线从逻辑高电平拉至逻辑低电平时,产生写时间片。有两种类型的写时间片:写1时间片和写0时间片。所有时间片必须有60微秒的持续期,在各写周期之间必须有最短为1微秒的恢复时间。读时间片:从ds1820读数据时,使用读时间片。当主机把数据线从逻辑高电平拉至逻辑低电平时产生读时间片。数据线在逻辑低电平必须保持至少1微秒;来自ds1820的输出数据在时间下降沿之后的15微秒内有效。为了读出从读时间片开始算起15微秒的状态,主机必须停止把引脚驱动拉至低电平。在时间片结束时,i/o引脚经过外部的上拉电阻拉回高电平,所有读时间片的最短持续期为60微秒,包括两个读周期间至少1s的恢复时间。一旦主机检测到ds1820的存在,它便可以发送一个器件rom操作命令。所有rom操作命令均为8位长。ds1820的引脚定义和封装形式如图3所示。dq为数字信号输入/输出端;gnd为电源地;vdd为外接电源。ds1820的光刻rom中存有64位序列号,它可以看作是该ds1820的地址序列码。64位光刻rom的排列是:开始8位(28h)是产品类型标号,接着的48位是该ds1820自身的序列号,最后8位是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds1820拥有惟一的地址序列码,以确保在一根总线上挂接多个ds1820。所有的串行通讯,读写每一个bit位数据都必须严格遵守器件的时序逻辑来编程,同时还必须遵守总线命令序列,对单总线的ds1820芯片来说,访问每个器件都要遵守下列命令序列:首先是初始化;其次执行rom命令;最后就是执行功能命令(rom命令和功能命令后面以表格形式给出)。 如果出现序列混乱,则单总线器件不会响应主机。当然,搜索rom命令和报警搜索命令,在执行两者中任何一条命令之后,要返回初始化。 基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机,且准备就绪。在主机检测到应答脉冲后,就可以发出rom命令。这些命令与各个从机设备的唯一64 位rom代码相关。在主机发出rom命令,以访问某个指定的ds1820,接着就可以发出ds1820支持的某个功能命令。这些命令允许主机写入或读出ds1820便笺式ram、启动温度转换。软件实现ds1820的工作严格遵守单总线协议:(1)主机首先发出一个复位脉冲,信号线上的ds1820器件被复位。(2)接着主机发送rom命令,程序开始读取单个在线的芯片rom编码并保存在单片机数据存储器中,把用到的ds1820的rom编码离线读出,最后用一个二维数组保存rom编码,数据保存在x25043中。(3)系统工作时,把读取了编码的ds1820挂在总线上。发温度转换命令,再总线复位。(4)然后就可以从刚才的二维数组匹配在线的温度传感器,随后发温度读取命令就可以获得对应的温度值了。在主机初始化过程,主机通过拉低单总线至少480us,来产生复位脉冲。接着,主机释放总线,并进入接收模式。当总线被释放后,上拉电阻将单总线拉高。在单总线器件检测到上升沿后,延时1560us,接着通过拉低总线60-240us,以产生应答脉冲。写时序均起始于主机拉低总线,产生写1时序的方式:主机在拉低总线后,接着必须在15us之内释放总线。产生写0时序的方式:在主机拉低总线后,只需在整个时序期间保持低电平即可(至少60us)。在写字节程序中的写一个bit位的时候,没有按照通常的分别写0时序和写1时序,而是把两者结合起来,当主机拉低总线后在15us之内将要写的位c给do:如果c是高电平满足15us内释放总线的要求,如果c是低电平,则doc这条语句仍然是把总线拉在低电平,最后都通过延时58us完成一个写时序(写时序0或写时序1)过程。每个读时隙都由主机发起,至少拉低总线1us,在主机发起读时序之后,单总线器件才开始在总线上发送0或1。所有读时序至少需要60us。单片机通过命令实现对ds1820的控制,其支持的主要命令如表1所示。表 2.3 ds1820主要命令及其功能说明命令码功能说明命令码功能说明33h读rom中的64位地址序列码beh读9字节暂存寄存器55h只有地址码匹配的ds1820才能接收后续的命令4eh写入温度上/下限,紧随其后是2字节数据,对应上限和下限值f0h锁定总线上ds1820的个数和识别其rom中的64位地址序列码48h将9字节暂存寄存器的第3和4字节复制到eeprom中ech只有温度超过上限或下限的ds1820才做出响应b8h将eeprom的内容恢复到暂存寄存器的第3和4字节44h启动ds1820进行温度转换,结果存入9字节的暂存寄存器b4h读供电模式,寄生供电时ds1820发送0,外接电源时ds1820发送1cch忽略地址序列码,适合单片ds1820由于ds1820采用的是1wire总线协议方式,即在一根数据线实现数据的双向传输,而对at89s51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对ds1820芯片的访问。由于ds1820是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。ds1820的复位时序ds1820的读时序对于ds1820的读时序分为读0时序和读1时序两个过程。对于ds1820的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让ds1820把数据传输到单总线上。ds1820在完成一个读时序过程,至少需要60us才能完成。ds1820的写时序对于ds1820的写时序仍然分为写0时序和写1时序两个过程。对于ds1820写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证ds1820能够在15us到45us之间能够正确地采样io总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。用ds1820与单片机组成测温电路,主要完成对温度信号的采集和转换工作,由ds1820及其与单片机的接口部分组成。其主要与单片机引脚的接口如图2.8所示 图2.8所示 如2.8所示ds1820是与单片机的p3.0端口相接,单片机通过对单总线dq的操作来发送命令,读取数据等实现单片机对ds1820模式的控制,温度值读取等操作。3.由moc3041和双向可控硅组成的输出通道设计(1).在设计中采用了motorola公司推出的单片集成可控硅驱动器件moc3041为对输出驱动和控制。由moc3041组成的过零触发双向可控硅电路简单可靠,电路如图2.9所示moc3041双向可控硅构成的输出通道图2.9其中r8 限流电阻,控制led的 触发电流;r9 门极电阻,提高控制极的抗干扰能力;r10 控制回路限流电阻,保护moc3041中的双向可控硅;r11,c4 构成吸收回路,承受反向电压。该部分的工作过程是:当单片机的 p3.1口的输出为低电平时,moc3041内部导通,g端出现同步触发脉冲,控制可控硅导通,打开加热器;当p3.1为高电平时,moc3041内部截止,可控硅断开,关闭加热器。moc304芯片是一种集成的带有光藕合的双向可控硅驱动电路。它内部集成了发光二极管、双向可控硅和过零触发电路等器件。它的内部结构和外部引脚如图2.9所示。它由输入输出两部分组成。输入部分是一个砷化镓发光二极管,在515ma正向电流的 作用下发出足够强度的红外光去触发输出部分。输出部分包括一个硅光敏双向可控硅和过零触发器。在红外线的作用下,双向可控硅课双向导通,与过零触发器一起输出同步触发脉冲,去控制执行机构外部的双向可控硅。(2). 双向可控硅tlc3361如图2.10所示:tlc336a原理图2.10双向可控硅具有两个方向轮流导通、关断的特性。双向可控硅实质上是两个反并联的单向可控硅,是由npnpn五层半导体形成四个pn结构成、有三个电极的半导体器件。由于主电极的构造是对称的(都从n层引出),所以它的电极不像单向可控硅那样分别叫阳极和阴极,而是把与控制极相近的叫做第一电极a1,另一个叫做第二电极a2。双向可控硅的主要缺点是承受电压上升率的能力较低。这是因为双向可控硅在一个方向导通结束时,硅片在各层中的载流子还没有回到截止状态的位置,必须采取相应的保护措施。4. 74ls374芯片 374为具有三态输出的八 d 边沿触发器,共有 54/74s374 和 54/74ls374 两种 线路结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别): 型号 fm pd 54s374/74s374 100mhz 450mw 54ls374/74ls374 50mhz 135mw 374 的输出端 o0o7 可直接与总线相连。当三态允许控制端 oe 为低电平时, o0o7 为正常逻辑状态,可用来驱动负载或总线。当 oe 为高电平时,o0o7 呈 高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当时钟端 cp 脉冲上升沿的作用下,o 随数据 d 而变。 由于 cp 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mv。 引出端符号:d0d7 数据输入端 oe 三态允许控制端(低电平有效) cp 时钟输入端 o0o7 输出端 外部管腿图:逻辑图: 真值表: 该课题设计采用了两片74ls374芯片来驱动和控制数码管及锁存数码管显示的数据,一片用来段码的锁存输出,芯片内部由8个d触发器组成,芯片输出端口q0q7随着输入端口d0d7的变化而变化,而对应于数码管的abcdefgp;而另外的一块芯片则用于数码管的位码输出控制显示驱动,但由于是采用动态显示,位码控制只有四个端口,为abcd分别对应芯片的q0q3端口。具体与单片机的接口是用单片机的p0口分别连接到两片74ls374芯片的d0d7口上,而用于段码输出控制的74ls374芯片的q0q7接到数码管的ap,用于位码输出驱动控制的芯片q0q3接到abcd上,而控制段码显示的芯片的启动与停止是通过单片机p2.7和wr共同连接到一个或非门后接到芯片的clk端口上。位码芯片的启动与停止是通过单片机的p2.6和wr共同连接到一个或非门连接到clk上。由此可以看出是通过控制p2.7和p2.6的高低电平控制的。其具体的电路接口图如图2.11所示。74ls374与单片机的接口及显示电力图如2.115. 数码管led显示器a.综合知识 数码显示器有静态和动态显示两种显示方式。 led显示器工作在静态显示方式时,其阴极点(或阳极)连接在一起接地(或+5v),每一个的段选线(a,b,c,d,e,f,g,p)分别与一个8位口相连。 led显示 器工作在动态显示方式时,段选码端口i/o1用来输出显示字符的段选码,i/o2输出位选码。 i/o1不断送待显示字符的段选码,i/o2不断送出不同的位扫描码,并使每位显示字符显示一段时间,一般为15ms。利用眼睛的礼视觉惯性,从显示器上便可以见到相当稳定的数字显示。b.引脚功能 如图2.12所示: 段选(a,b,c,d,e,f,g,p):对应8个发光二极管,接i/o口,共阴(或共阳)时接地(或+5v),根据条件控制发光二极管的亮或灭。 位选(a,b,c,d):共阴(或共阳)时接地(或+5v)分别用选中对应位的led图2-12 4位led引脚图 该课题的显示电路部分的接法如2.10所示。该显示是采用共阴的数码管,如当位控制芯片的q0口输出为低电平是(0)时,最左边的数码管点亮依此类推。其实现显示控制在软件方面有所体现。6键盘电路(1)单片机应用系统中的键输入单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。键盘有编码和非编码两种。非编码键盘硬件电路极为简单故本系统采用。(2)键输入接口与软件解决的任务a. 键开关状态的可靠输入为了去抖动我们采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响.b. 按键与单片机的接口按键的接口是与单片机的p1口的p1.0p1.3相接,每个按键完成不同的功能,功能的实现由软件来控制实现,由后面的程序设计来说明。按键必须加上正上拉电阻来确保按键的可靠性,当没有按键安下时确保p1.0p1.3为高电平。按键l3l4上还接到与门连接到into外部中断接口上。具体的电路连接如图2.13所示。7状态指示灯该系统的运行状态由指示灯的亮灭来显示,该led发光二极管是采用共阳极的二极管,当p1端口控制相应的指示灯是低电平有效。指示灯的指示功能体现为l1亮为温度设定指示、l2亮为保温指示、l3亮为加热状态指示、l4亮为电源状态指示。单片机(at89c52)即可根据不同的情况输出相应的状态。具体的实现由软件来控制。led与单片机的连接如图2.14所示:led与单片机的连接电路图2.14 按键与单片机的接口电路图2.138.温控系统图温控系统总的原理图2.15第3章 温度控制系统软件设计该课题设计的软件包括主程序、键盘处理子程序、显示子程序、温度设定子程序以及有关ds1820的程序(初始化子程序、写程序、读程序)、延时程序。3.1主程序 主程序完成的功能是:启动ds1820测量温度,将测量值与给定值比较,若txtl,则进入加热阶段,置p1.1为低电平。在该过程中继续对温度进行监测,当txth时,置p3.1为高电平,断开可控硅,关闭加热器,等待下一次的启动命令。工作流程图如图3.1所示:开始初始化读th.tl送显示开放外中断调读温度程序转换送显示txtlhottingstophottxthkeepyynn主程序流程图显示子程序完成的功能:将所要显示的段码位码通过查表方式处理后送到相应的段码和位码锁存器并和led连接,实现实时温度显示功能。流程图如3.2所示:开始显示的入口参数读取查表送段码改变参数地址送位选信号延时改变位选码acc.5=1?yn返回读取温度模块功能:通过对ds1820传送相关的命令后,再通过读取dq口的数据到c中来,再经过rrc运算后把8位的数据从ds1820内部通过dq口读取出来放到a中。流程图如下3.3:关中断调ds1820初始化向ds1820写有关命令读dq数据返回读取温度流程图读上下温度模块功能:通过调用写ds1820模块把相应的命令、数据到ds1820芯片上并调用读取转换温度模块,转换后就可以读取温度的上下限值并存放到27h、28h单元中。读上下温度流程图如3.4所示:关中断ds1820初始化写命令、数据再初始化写读取温度命令调读转换温度模块开中断返回 写ds1820模块完成的功能:从p3.0口与ds1820的dq口相接,完成数据之间的传送,通过进位位c与dq进行一位一位的传送到ds1820的内部,连续循环8次传送从而打一字节的数据、命令写到ds1820中去。具体的流程图如下3.5:开始置p3.0为1从a中写数据到ds1820延时写了8次n置p3.0为1返回键盘处理子程序完成功能:当有满足中断条件时进入中断服务状态,即键盘处理。此中断主要完成键盘扫描,按键判断及4个按键各个功能的处理子程序:分别为1号键为温度设定/确定设定键;2号为上挡/显示设定温度;3号键为上升/下降;4号键为左移/右移的功能实现。流程图如下3.6:关中断初始化调键盘扫描消抖再调扫描判断键值判断奇偶次显示温度保护键值按键处理确定键处理返回关上挡指示灯 key3上升/下降处理显示返回key4左移/右移处理实时处理显示返回源代码:3.3系统功能:(1)主要功能:实时显示温度,系统的精度为0.5。控制温度,默认设定温度为上次设定温度,低于或等于下限温度时加热,高于或等于上限温度时保温。设定时上限比下限大2。用按键

温馨提示

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

评论

0/150

提交评论