智能温控风扇设计-毕业论文_第1页
智能温控风扇设计-毕业论文_第2页
智能温控风扇设计-毕业论文_第3页
智能温控风扇设计-毕业论文_第4页
智能温控风扇设计-毕业论文_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

PAGEI智能温控风扇设计摘要:实现温度控制自动化不仅能够大大提高工业生产的效率,同时还能提高产品质量,减少消耗,因此设计研究高精度、稳定、适用性强的温度控制系统对工业生产发展具有其积极意义。本文介绍了一种智能温度控制风扇的设计方案,其采用AT89S51单片机为控制器核心,通过测量温度的变化来改变风扇的转速从而达到温度控制的目的。同时实现温度采集、温度显示、温度设定等功能。经实验表明,本设计不仅稳定性好,而且温度控制精度高,反应快。关键字:智能控制;单片机;温度

ThedesignofIntelligentTemperatureControlFanAbstract:Automatingtemperaturecontrolcannotonlygreatlyincreasetheefficiencyofproduction,butalsoimprovethequalityofproductandreducethecost.Therefore,aresearchonhighprecision、stability、andapplicabilitytemperaturecontrolsystemissignificantforindustryproduce.Thispaperintroducesadesignofintelligenttemperaturecontrolfan,whichisbasedonAT89S51MCUascorecontroller.Itcancontrolthetemperaturebychangingtherevolvingspeedofthefan.Anditalsoincludesthefunctionoftemperaturegathering,temperaturedisplayandtemperaturesetting.Experimentshowsthatthedesignhasagoodstabilityandhighprecision,anditsresponsetimeislow.Keywords:Intelligentcontrol;MCU;Temperature

目录TOC\o"1-3"\u1引言 11.1研究背景及意义 11.2研究发展现状 11.3发展趋势 22方案设计 32.1总体方案设计 32.2方案比较与选择 32.2.1温度传感器选择 32.2.2显示器件选择 43系统硬件设计 53.1应用环境简介 53.2总体设计 63.3温度采集模块 63.3.1功能介绍 63.3.2DS18B20简介 63.3.3温度采集电路设计 73.4按键模块 83.4.1功能介绍 83.4.2按键电路设计 83.5单片机控制电路 83.5.1功能介绍 83.5.2单片机简介 83.5.3单片机控制电路设计 103.6显示电路 113.6.1功能介绍 113.6.274LS164简介 113.6.3显示电路设计 123.7电机控制电路 133.7.1功能介绍 133.7.2ULN2004芯片介绍 133.7.3电机电路的设计 144系统软件设计 164.1应用环境简介 164.2软件设计流程 174.3读取温度数据程序设计 184.4显示程序设计 214.5电机转速控制 235总结 25参考文献 26致谢 27PAGE261引言1.1研究背景及意义温度是描述一个目标特点时最重要的数值之一,它与我们的日常生产及生活息息相关,它的测量和调整对控制产品的质量,提高生产效率和加快国家经济的发展有着非常重要的作用[1]。因此对它的即时、有效的控制具有十分重要的意义,特别是在冶金、化工、机械、电气等方面。但由于温度本身的非线性以及较大的滞后性等,以及传统温度控制器在系统控制方法以及电路设计等的不足使得传统温度控制器存在许多问题,比如反应时间慢、控制精度低、稳定性差等。而随着工业生产的不断发展,其对温度控制的各项指标也有了更高的要求,因此,设计研究高精度、稳定、适用性强的温度控制器对工业生产发展具有其积极意义。而随着温度控制技术的不断发展,在工业研制和生产中,采用电子技术已经成为准确、有效地控制温度的重要途径。而其中以单片机为核心的温度控制器已广泛应用于社会生活的各个领域,是用途很广的一类工业控制系统。单片微型计算机(SingleChipMicrocomputer)简称单片机,它是把组成微型计算机的各功能部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行接口等部件制作在一块集成芯片中,构成一个完整的微型计算机。利用单片机作为温度控制器的中心控制器,不但能简化系统设计、提高系统灵活性、稳定性、降低成本,而且可以实现其与PC机的连接通信,大幅度提高温度控制系统的技术指标,实现智能化控制。因此,研究基于单片机的温度控制系统将为温度控制系统带来重大发展。1.2研究发展现状温度控制器广泛应用于社会各个领域,但根据应用场合以及要求性能的不同使得其也不尽相同。对于温度控制方面可以分为两代产品:第一代温度控制器主要是电气式产品。其温度传感器采用双金属片或气动温包,控制电路大都采用继电器控制电路,虽然结构简单,但由于继电器动作频繁,常导致触点不良而影响温度控制,且其通过“给定温度盘”调整预紧力来设定温度,使得这类控制器普遍存在温度设定过粗、时间常数太大等问题;第二代温度控制器为电子式产品,其温度传感器采用热敏电阻等,控制温度值通过触摸键和液晶显示屏来设定,通过运算放大电路和开关电路实现双位调节来实现温度控制。这种控制器解决了温度设定值过粗等问题,但仍存在控制精度不高、时间常数大、操作较复杂等问题。而随着计算机等技术的迅猛发展以及其与温度控制技术的不段结合,使得温度控制技术在智能化、自适应、参数自整定等方面取得大量成果。在此基础上,日本、美国、德国等国在温度控制领域都生产出了一批性能优异的温度控制器及仪器数字控制器等。这些温度控制系统普遍具有参数自整定功能并结合了计算机、通信等技术,运用先进的算法,具有控制精度高、抗干扰力强、鲁棒性好的特点。但是在我国,尽管已经取得了一些成就,但是更多的企业仍值停留在简单的PID控制,与国外相比,我们在智能控制技术领域仍有很大的差距[2]。目前,国内外生产厂家正在研究开发第三代智能型温度控制器,应用新型控制模型和数控芯片实现智能化控制。新型智能温控器采用一种全新的控制技术——模糊开关控制,根据实测温度与设定温度值比较结果进行推理运算并发出开关控制信号。1.3发展趋势进入21世纪以来,随着工业自动化控制理论、通信技术和计算机技术的迅速发展,温度控制器正朝着高精度、小型化等方向迅速发展。其具体表现为传感器技术的改进与温度控制算法的改进。在温度传感器方面,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展:1)提高温度检测的精度:目前,国外已相继推出多种高精度、高分辨力的智能温度传感器,所用的是9~12位A/D转换器,分辨力一般可达0.5~0.0625℃。由美国DALLAS半导体公司新研制的DS1624型高分辨力智能温度传感器,能输出13位二进制数据,其分辨力高达0.03125℃,测温精度为±0.2℃;2)增加温度传感器测试功能:新型智能温度传感器的测试功能也在不断增强。例如,采用DS1629型单线智能温度传感器增加了实时日历时钟(RTC)等,使其功能更加完善。DS1624还增加了存储功能,利用芯片内部的E2PROM存储器来存储用户的短信息等;3)温度传感器总线技术的标准化与规范化:即温度传感系统的总线技术的标准化,所采用主线有单总线、I2C总线、Smbus总线和SPI总线等;4)温度传感器可靠性及安全性设计:采用了高性能的Σ-Δ式A/D转换器,结合过采样、噪声整形和数字滤波等技术,来提高有效分辨力。同时在安全性上还设计了完善的系统过热保护功能等;5)虚拟温度控制器和网络温度控制器:虚拟温度控制器是基于温度控制器硬件和计算机平台结合软件开发而成的。利用软件来完成温度控制器的标定及校准,从而实现最佳性能指标,而网络温度控制器是包含数字传感器、网络接口和处理单元的新一代智能温度控制器。它首先通过数字传感器将被测温度转换为数字量,再送给微控制器处理。最后将测量结果传输到网络,以实现各传感器之间、传感器与执行器之间、传感器与系统之间的数据交换及资源共享,在更换传感器时无须进行标定和校准;6)温度控制器单片测温控制系统:单片系统是在芯片上集成一个系统或子系统,其集成度将高达108~109元件/片,这将给IC产业及IC应用带来划时代的进步[3]。在温度控制算法方面,近几年发展比较迅速的有:1)改进PID温度控制;2)神经网络控制;3)模糊控制;4)模糊控制与PID控制结合;5)模糊控制与与神经网络结合;6)遗传算法;8)模糊控制、神经网络、遗传算法三者结合。而随着电子技术的发展,控制电路的形式也多种多样,无论是神经网络,模糊控制还是遗传算法,都属于人工智能领域,同PID结合以调节PID参数,适应温控系统非线性,干扰多,大时延,时变和分布变化的特点[4]。这些控制方法实现了温控系统的参数自整定,将线性控制与非线性控制相结合,进一步简化了温度控制系统的电路设计,提高了系统的各项指标。2方案设计2.1总体方案设计系统设计方框图如图2-1所示。系统以单片机为核心控制器,由温度采集模块,按键模块,显示模块以及驱动控制模块组成。工作时,温度采集模块将采集到的水体温度数据传送给单片机,单片机将温度值通过显示模块来显示,并根据温度是否超出设定范围来控制电机停止或启动,进而控制风扇的转速来对水体的温度进行控制,同时使用者可以根据需要通过按键模块来改变温度控制范围。温度采集模块温度采集模块单片机控制器按键显示模块控制模块图2-1系统设计方框图2.2方案比较与选择2.2.1温度传感器选择常用的温度传感器有热电偶、热电阻和数字温度传感器。方案一:热电偶式温度传感器:其优点是测量精度高、范围广,且结构简单,价格低,但对放大电路要求较高,热电转换灵敏性差。方案二:热电阻温度传感器:其优点是线性度好,测量准确,测量范围大,而且稳定性好,但是输出为模拟量,需进行AD转换。方案三:数字式温度传感器:数字式温度传感器可以直接将测得的温度值转换为数字量,即其输出可直接被单片机使用,无需AD转换即可实现与单片机之间的通信,简单、方便。由于本次设计采用AT89S51作为控制核心,如果选用方案一或方案二,需要在传感器与单片机之间连接AD转换电路,使得外围电路连接更加复杂,而选用数字式温度传感器则相对简单,因此本次设计采用数字式温度传感器。2.2.2显示器件选择方案一:采用LCD液晶显示屏:液晶显示屏的显示功能强大,可显示文字、图形等,但是价格昂贵,需要的接口线多,且显示亮度低,比较模糊。方案二:采用点阵式数码管显示:点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,且价格也相对较高。方案三:采用LED数码管动态扫描:LED数码管显示亮度较高,且价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。由于本次设计的某些工业应用场合可能需要较高的显示亮度从而有利于控制操作,因此选择方案三较优,所以本次设计显示模块采用LED数码管。3系统硬件设计3.1应用环境简介PROTEL是PORTEL公司在80年代末推出的EDA软件,在电子行业的CAD软件中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高,几乎所有的电子公司都要用到它。早期的PROTEL主要作为印制板自动布线工具使用,运行在DOS环境,对硬件的要求很低,在无硬盘286机的1M内存下就能运行,但它的功能也较少,只有电原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的PROTEL已发展到PROTEL99(网络上可下载到它的测试板),是个庞大的EDA软件,完全安装有200多M,它工作在WINDOWS95环境下,是个完整的板级全方位电子设计系统,它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD,PSPICE,EXCEL等,其多层印制线路板的自动布线可实现高密度PCB100%布通率。进行原理图设计步骤:一、新建设计数据库文件。双击Protel图标,点击File(文件)中new项,新建设计数据库。在Browse选项中选取需要存储的文件夹,然后点击OK即可建立自己的设计数据库。二、打开和管理设计数据库。Protel99包括许多设计例子,选择文件打开菜单\DesignExplorer99\Example\folder,点击photoplotter.ddb文件,左侧窗口呈现树状结构。点Photohead.pcb文件,PCB版图将出现,点Photohead.prj,原理图管理文件将被打开。关闭文件,可以用鼠标右键,选择Close,也可以用CTRL+F4来关闭。三、原理图连线设计。利用Protel所提供的各种工具、命令进行画图工作,将事先放置好的元器件用具有电气意义的导线、网络标号等连接起来,布线结束后,一张完整的电路原理图基本完成。四、检查原理图电性能可靠性。打开设计数据库,点取文件夹下的.prj后缀原理图设计窗口,Protel99可以帮助我们进行电气规则检查.选择Tools下面的ERC,在“RuleMatrix”中选择要进行电气检查的项目,设置好各项后,在“SetupElectricalRluesCheck”对话框上选择“OK”即可运行电气规则检查,检查结果将被显示到界面上。Protel99软件沿袭了Protel以前版本方便易学的特点,内部界面与Protel98大体相同,新增加了一些功能模块。Protel公司引进了德国INCASES公司的先进技术,在Protel99中集成了信号完整性工具,精确的模型和板分析,帮助设计员在设计周期里利用信号完整性分析可获得一次性成功和消除盲目性[5]。3.2总体设计系统硬件总体由温度采集模块、按键模块、单片机控制电路、显示模块、电机驱动模块组成,具体设计电路图如附录一中所示。3.3温度采集模块3.3.1功能介绍温度采集模块选用DS18B20作为温度传感器,其用于对水体等控制对象的温度的采集,并将采集到得温度值转化成数字量,继而传输给控制电路进行处理。3.3.2DS18B20简介DS1820单线数字温度传感器是美国DALLAS公司1995年生产的单线数字化半导体测温集成电路,测温范围-55~+125℃,标称测温精度为0.5℃,温度测量值以9位二进制码表示,被测温度用符号扩展的16位数字量方式串行输出。由于每片DS1820都具有一个惟一的64位的产品序列号,因此多片DS1820可同时挂接在一条单总线上,从而实现多点测温[6]。与传统的热敏电阻相比,它能够直接读出被测温度,并根据实际要求可编程为9~12位A/D转换精度,从DS18B20读出或写入信息仅需1根口线(单线接口),温度变换功率来源于数据总线,总线本身也可以向挂接的DS18B20供电,而无需外接电源,因此,使用DS18B20可以是系统结构更加精简,可靠性更高[7]。以上特点使得DS18B20成为此次设计的首选。引脚定义:DQ:数字信号输入/输出端;GND:电源地;VDD:外接供电电源输入端(寄生供电方式时接地),如图3-1所示。图3-1DS18B20温度传感器芯片引脚3.3.3温度采集电路设计DS18B20有两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。寄生供电适合多点测温。鉴于本设计为单片测温,故采用外部电源供电法。由于DS18B20是单总线控制,所以直接将其I/O引脚与单片机P1.1引脚相连,即可实现与单片机之间的通信。如图3-2所示。图3-2温度采集电路3.4按键模块3.4.1功能介绍该模块用于输入设定控制温度的范围。3.4.2按键电路设计按键按其结构可以分为独立式按键和矩阵键盘。独立式按键主要用于按键较少的场合,直接用单片机的控制引脚控制每个按键即可;而矩阵键盘适用于按键比较多的场合,需要由单片机的引脚分别控制按键的行和列,通过行值和列值来确定按键的位置。本设计只需要4路按键即可,因此选用1X4独立式按键。4个按键S1、S2、S3、S4作为设定温度范围使用,功能分别为设定键、移位键、加1键,减1键[8],由单片机的P3.4-P3.7引脚控制,电路如图3-3所示。图3-3按键电路3.5单片机控制电路3.5.1功能介绍采用AT89S51单片机为控制器核心,综合控制系统其它各模块的工作。3.5.2单片机简介单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU(CentralProcessingUnit)、随机存储器RAM(randomaccessmemory)、只读存储器ROM(Read-OnlyMemory)、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。本次设计采用AT89S51单片机作为控制芯片。AT89S51具有价格便宜,性能优良,可在线编程等特点。AT89S51的性能参数:工作电压范围4.0V~5.5V。 兼容MCS-51内核单片机。 4Kbytes可在线编程Flash存储器,可有效擦出/读写1000次。 完全静态工作:0Hz~33MHz。 128×8bit内置RAM。 32位可控I/O引脚。 2个16位的时钟源。 6个中断源。 全双工UART串行接口。 低功耗工作模式。 看门狗计时器。 两个数据指针。 快速编程特性。 ISP在线编程。AT89S51单片机引脚图如图3-4所示。图3-4AT89S51单片机引脚图单片机控制电路设计3.5.3.1单片机时钟电路设计单片机时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。1、内部振荡方式:AT89S51单片机内部带有时钟电路,因此,只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件(晶体振荡器和电容),即可构成一个稳定的自激振荡器。2、外部振荡方式:把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。在本设计中采用内部振荡方式为单片机提供时钟,XTAL1和XTAL2引脚之间接入一个12MHz的晶振,两个引脚对地再分别再接入一个22pF的电容即可产生所需的时钟信号,如图3-5所示。图3-5单片机时钟电路3.5.3.2单片机复位电路设计复位是单片机的初始化操作,其主要功能是PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行时出错或操作错误使系统处于死锁状态时,为使单片机正常工作,也需要按复位键以重新启动。RST引脚是复位信号的输入端,其高电平有效,有效时间持续24个振荡脉冲周期(即两个机器周期)以上。复位操作有上电自动复位、按键电平复位、外部脉冲复位和自动复位四种方式[9]。本设计中采用按键电平复位方式,如图3-6所示。本设计中单片机的P1.1口接收DS18B20采集的温度数据,P2口作为显示模块端口使用,其中P2.0-P2.3控制要送显的数码管,P2.5和P2.6控制74LS164的数据端和时钟端,将要显示的数据写入74LS164。P3.4-P3.7控制按键电路,以实现温度范围的设定,P3.2口控制电机驱动芯片ULN2004以控制电机的转动,通过PWM方式控制电机的转速。电路设计如图3-6所示。图3-6控制电路3.6显示电路3.6.1功能介绍该模块采用74LS164芯片与LED数码管构成,用于显示当前测得的水体等的温度值3.6.274LS164简介74LS164为8位移位寄存器,引脚如图3-6所示。当/MR为低电平时,输出端(Q0-Q7)均为低电平。串行数据输入端(A,B)可控制数据。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。真值表如表3-1所示。图3-774LS164引脚图

表3-174LS164真值表InputsOutputs/MRClockABQ0Q1….Q7LHHHHXL↑↑↑XXXXHHLXXLLL….LQA0QB0….QH0HQAn….QGnLQAnQGnLQAn….QGnH——高电平,L——低电平,X——任意电平,↑——低到高电平跳变,QA0、QB0、QH0——规定的稳态条件建立前的电平,Qan、QGn——时钟最近的↑前的电平[10]。3.6.3显示电路设计本设计中选用LED(LightEmittingDiode)作为显示器件,其具有工作电压低、体积小、寿命长、可靠性高等优点,而且响应时间短,亮度也比较高。LED数码管由八只发光二极管组成,编号是a、b、c、d、e、f、g、h,分别和同名管脚相连,当发光二极管导通时发光。每个二极管就是一个笔划,若干个二极管发光时,就构成一个显示字符。若将单片机的I/O口与数码管的a-g和h相连,高电平(对应共阴极数码管)或低电平(对应共阳极数码管)的位对应的发光二极管就会亮,这样,I/O口输出不同的代码就可以控制数码管显示不同的字符。根据设计要求,其显示电路至少需要三个数码管组成,分别组成显示温度的十位、个位、小数位。由于驱动3个数码管至少需要21根I/O线,为节约资源,选用4位一体数码管,采用串行输入并行输出的8位移位寄存器74LS164进行驱动输出,单片机的两个并行口分别作为输出口和时钟控制信号。74LS164将输入的串行数据锁存在并行输出端,通过这些并行口线驱动数码管的各字段。数码管选用共阳型,即当74LS164的输出端口某线为低电位时,对应的字段被点亮。显示电路如图3-7所示,单片机通过控制9013三极管来选择送显的数码管,通过控制74LS164的数据端和时钟端来写入要送显的数据,74LS164的输出Q0-Q7分别对应接到数码管的a-h端口,从而实现单片机控制数码管显示的功能。图3-8显示电路3.7电机控制电路3.7.1功能介绍该模块采用ULN2004芯片来驱动电机转动而构成,即通过该电路的运作来直接控制水体等的温度。3.7.2ULN2004芯片介绍ULN2004是一款由7个NPN达林顿管组成的高电压、大电流达林顿管驱动器。其特性如下:输出电流:500mA最大;高输出击穿电压:50V最小;输出箝位二极管;输入兼容多种逻辑;封装有DIP-16脚和SOL-16脚。ULN2004的引脚图如图3-8所示。图3-9ULN2004引脚图ULN2004的内部结构图如图3-9所示,工作原理说明:ULN2004是一个7路反相器电路,即当输入端为高电平时,输出端为低电平,当输入端为低电平时,输出端为高电平。图3-10ULN2004内部结3.7.3电机电路的设计构图设计中直接将ULN2004其中的1路反相器输入接到单片机引脚、输出接至电机引脚即可,本设计选用第7路反相器,如图3-10所示。单片机根据温度数据来输出PWM信号,驱动电机转动,并根据温度的高低来调整PWM信号进而调整电机的转速,实现合理降温的目的。图3-11电机驱动电路4系统软件设计4.1应用环境简介KeilC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使设计员可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2IDE可为它们提供单一而灵活的开发环境。C51V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51V7版本无疑是8051开发用户的最佳选择。集成功能:1、集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。2、文件寻找功能:在特定文件中执行全局文件搜索。3、工具菜单:允许在V2集成开发环境下启动用户功能。4、可配置SVCS接口:提供对版本控制系统的入口。5、PC-LINT接口:对应用程序代码进行深层语法分析。6、Infineon的EasyCase接口:集成块集代码产生。7、Infineon的DAVE功能:协助用户的CPU和外部程序,DAVE工程可被直接输入uVision2。编辑器和调试器:一、源代码编辑器:uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。二、断点:uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。在属性框(attributescolumn)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。三、调试函数语言:uVision2中,可以编写或使用类似C的数语言进行调试。1、内部函数:如printf,memset,rand及其它功能的函数。2、信号函数:模拟产生CPU的模拟信号和脉冲信号(simulateanaloganddigitalinputstoCPU)。3、用户函数:扩展指令范围,合并重复动作。四、变量和存储器:用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整:当前函数的局部变量;用户在两个不同watch窗口页面上的自定义变量;堆栈调用(callstack)页面上的调用记录(树);不同格式的四个存储区。C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。C51提供了灵活高效的指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需1-2字节,因此,指针存取非常迅速。KeilC51兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构上、可读性、可维护性上有明显的优势,因而易学易用[11]。4.2软件设计流程本系统软件设计主程序流程图如图4-1所示。开始开始初始化读取温度数据送显示设定温度范围是否超高温?驱动电机转动YN图4-1软件设计主程序流程图4.3读取温度数据程序设计DS18B20的工作遵循严格的单总线协议。主机首先发一复位脉冲,使信号线上所有的DS18B20芯片都被复位,接着发送ROM操作命令,使序列号编码匹配的DS18B20被激活,准备接收下面的内存访问命令。内存访问命令控制选中的DS18B20的工作状态,完成整个温度转换、读取等工作(单总线在ROM命令发送之前存储命令和控制命令不起作用)。在对DS18B20进行操作的整个过程中,主要包括三个关键过程:主机搜索DS18B20序列号、启动在线DS18B20作温度转换、读取在线DS18B20温度值[12]。其控制流程图如图4-2所示。开始开始初始化DA18B20跳过读ROM序列号启动温度转换读取温度值结束图4-2DS18B20控制流程图DS18B20的操作指令分为ROM操作命令和寄存器命令。其ROM操作命令为:1)ReadROM(读ROM):此命令允许主机读取DS18B20的8位产品系列编码、唯一的48位序列号等。只能在总线上仅挂接一个DS18B20的情况下使用,其命令代码为33H;2)MatchROM(匹配ROM):此命令允许主机对总线上挂接的多个DS18B20进行寻址,只有64位ROM序列严格相符的DS18B20才能对后续的存贮器操作命令作出响应,其命令代码为55H;3)SearchROM(搜索ROM):此命令允许主机用排除法识别总线上的所有DS18B20的64ROM位编码,其命令代码为F0H;4)SkipROM(跳过ROM):在总线上只挂接单个DS18B20时,此命令允许主机跳过64位ROM编码而访问存储器操作来节省时间,其命令代码为CCH;5)AlarmSearch(告警搜索):此命令的流程与SearchROM(搜索ROM)命令相同但DS18B20仅在最近一次温度测量中出现告警的情况下才响应此命令,其命令代码为ECH。这些命令对每一器件的64位激光ROM部分进行操作。在成功地执行了ROM操作序列之后,可使用存储器命令,即WriteScratchpad(写暂存存储器)、ReadScratchpad(读暂存存储器)、CopyScratchpad(复制暂存存储器)、ConvertT(温度变换)[44h]等:1)读暂存存储器:此命令用于读出暂存存储器中0到9字节的内容。读取过程中,若主机发出复位指令,则读取操作中止。其命令代码为BEH;2)写暂存存储器:此命令用于向暂存器中写入数据,当主机发出复位命令时则写入操作中止。其命令代码为4EH;3)温度变换:此命令用于启动一次温度变换,若使用寄生电源,主机必须在发出这条命令后立即起动强上拉,并保持500ms。其指令代码为44H;4)复制暂存存储器:此命令用于把暂存存储器复制到DS18B20的EE存储器,把温度触发器字节存入非易失性存储器,其命令代码为48H。因为DS18B20的时序及电参数要求较高,因此主控制器在对DS18B20做任何操作时必须先对DS18B20进行初始化,且DS18B20的数据读写也由特定时间片来完成[12]。其初始化程序为:init_ds18b20(void){//ds18b20初始化 DQ=1; sdelay(8); DQ=0; sdelay(80); DQ=1; sdelay(14); sdelay(20);}写时间片:将数据线从高电平拉至低电平,产生写起始信号。在15us之内将所要写的位送到数据线上,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平,写O就发生[12]。读时间片:当从DS18B20读数据时,由主机产生读时间片。主机把数据线从逻辑高电平拉至低电平时,产生读时间片,数据线必须保持在低逻辑电平至少1us,来自DS18B20的输出数据在读时间片下降沿之后15微秒有效。因此,为了读出从读时间片开始算起15微秒的状态,主机必须停止把I/O引脚驱动拉至低电平。在读时间片结束时,I/O引脚经过外部的上拉电阻拉回至高电平。所有读时间片的最短持续期限为60us,各个读时间片之间必须由最短为1us的恢复时间。读DS18B20一个字节子程序:readds18b20(void){unsignedchari=0,dat=0; for(i=8;i>0;i--) { DQ=0; dat>>=1; DQ=1; if(DQ) dat|=0x80; sdelay(4); } return(dat);}写DS18B20一个字节子程序:writeds18b20(unsignedchardat){ unsignedchari=0; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; sdelay(5); DQ=1; dat>>=1; }}读取温度数据程序设计:readtemp(void){//读取温度数据 unsignedchara=0,b=0; unsignedintt=0; floattt=0; init_ds18b20(); writeds18b20(0xCC);//跳过ROM writeds18b20(0x44);//开启温度转换 init_ds18b20(); writeds18b20(0xCC); writeds18b20(0xBE);//读暂存器 a=readds18b20(); b=readds18b20(); t=b; t<<=8; t=t|a; tt=t*0.0625; t=tt*10+0.5; return(t);//t为整形为三位数}温度换算程序设计:tmper=ReadTemperature();temper=tmper*0.0625;4.4显示程序设计本设计中数码管显示方式选用动态显示方式。动态显示方式原理:多位LED显示时,为了简化电路,将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或者共阳极点分别由相应的I/O口线控制。8位LED动态显示电路只需要两个8位I/O口,其中一个控制段选码,另一个控制位选。由于所有位的段选码皆由一个I/O口控制,所以在每个瞬间,8位LED只可能显示相同的字。要想每位显示不同的字符,必须采用扫描方式,在某一瞬间只显示某一位。在设计过程中,令每个数码管的显示时间为1-2ms,由于人们的视觉暂留现象及发光二极管的余晖效应,只要扫描的速度够快,给人的印象就是同时点亮的,而且不会有闪烁感。显示程序的设计首先要将单片机的数据送入74LS164中译码,然后再由74LS164移入数码管相应码段显示。74LS164的时序图如图4-3所示。图4-374LS164时序图显示子程序如下:voidwrite_164(ucharlx){uchari,j; j=lx; for(i=0;i<8;i++) { CLK_164=0; if((j&0x01)==0x01) { DTAT_164=1; } else { DTAT_164=0; } delay(3);

温馨提示

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

评论

0/150

提交评论