机械毕业设计(论文)单片机控制自动恒温箱的设计电子控制类(含全套图纸).doc

上传人:文库蛋蛋多 文档编号:2958295 上传时间:2023-03-05 格式:DOC 页数:42 大小:1.08MB
返回 下载 相关 举报
机械毕业设计(论文)单片机控制自动恒温箱的设计电子控制类(含全套图纸).doc_第1页
第1页 / 共42页
机械毕业设计(论文)单片机控制自动恒温箱的设计电子控制类(含全套图纸).doc_第2页
第2页 / 共42页
机械毕业设计(论文)单片机控制自动恒温箱的设计电子控制类(含全套图纸).doc_第3页
第3页 / 共42页
机械毕业设计(论文)单片机控制自动恒温箱的设计电子控制类(含全套图纸).doc_第4页
第4页 / 共42页
机械毕业设计(论文)单片机控制自动恒温箱的设计电子控制类(含全套图纸).doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《机械毕业设计(论文)单片机控制自动恒温箱的设计电子控制类(含全套图纸).doc》由会员分享,可在线阅读,更多相关《机械毕业设计(论文)单片机控制自动恒温箱的设计电子控制类(含全套图纸).doc(42页珍藏版)》请在三一办公上搜索。

1、单片机控制自动恒温箱的设计 学生: 指导老师:(-)摘要 恒温控制在工业生产过程中举足轻重,温度的控制直接影响着工业生产的产量和质量。本设计是基于AT89C51单片机的恒温箱控制系统,系统分为硬件和软件两部分,其中硬件包括:温度传感器、显示、控制和报警的设计;软件包括:键盘管理程序设计、显示程序设计、控制程序设计和温度报警程序设计。编写程序结合硬件进行调试,能够实现设置和调节初始温度值,进行数码管显示,当加热到设定值后立刻报警。另外,本系统通过软件实现对按键误差、加热过冲的调整,以提高系统的安全性、可靠性和稳定性。本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作

2、为温度采集器,单片机AT89C51作为主控芯片,数码管作为显示输出,实现了对温度的实时测量与恒定控制。关键词: 单片机;恒温;控制;报警Designing of Automatic Constant Temperature Box Controlled By SCM Student: Jingming HuangTutor:Peizhong Cai(College of Dong Fang technology, Hunan Agricultural University, Changsha 410128, China)Abstract: The system makes use of the

3、 single chip AT89C51 as the temperature controlling center, uses numeral thermometer DS18B20 which transmits as 1-wire way as the temperature sensor, through the pressed key, the numerical code demonstrated composite of the man-machine interactive connection ,to realize set and adjust the initial te

4、mperature value. After the system works, the digital tube will demonstrate the temperature value, when temperature arriving to the setting value, the buzzer will be work immediately. In addition, the system through the software adjusting to the pressed key error, and the excessively hutting.Keywords

5、: SCM; Constant temperature;control;waring.目录摘要1关键词11前言12系统概述1 2.1简述13设计思路分析24方案论证2 4.1温度传感器2 4.2显示部分2 4.3输出控制35硬件设计及工作原理3 5.1系统功能及工作流程介绍3 5.2功能模块5 5.3系统硬件设计5 5.3.1DS18B20测温电路5 5.3.2DS18B20的特点介绍6 5.3.3单线(1-wire)技术6 5.3.4DS18B20的引脚及功能介绍7 5.3.6输出控制电路9 5.3.7温度越线报警电路106系统的应用软件设计10 6.1软件描述10 6.1.1键盘管理模块1

6、0 6.1.2显示模块11 6.1.3控制模块11 6.1.4温度报警模块126.1.5主程序和中断服务程序流程127系统仿真与调试13 7.1硬件调试13 7.2软件调试14 7.3系统仿真148 结论159 系统制作16参 考 文 献16致谢17附录181引言温度控制是工业生产过程中经常遇到的过程控制,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用,其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测温方法以及对温度的控制方法也将不同;产品工艺不同、控制温

7、度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同。因而,对温度的测控方法多种多样。随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。然而现有的温度传感元件大多为模拟器件(热电耦)体积大、应用复杂、而且不容易实现数字化等缺点,阻碍了应用领域的扩展。本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机AT89C51作为主控芯片,数码管作为显示输出,实现了对温度的实时测量与恒定控制。2系统概述2.1简述单片机已经在

8、测控中获得了广泛的应用,它除了可以测量电信号以外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛应用到很多领域。单片机的接口信号是数字电信号,要想用单片机获取温度这类非电信号的信息,毫无疑问,必须使用温度传感器。温度传感器的作用是将温度信息转换为电流或电压输出,如果转换后的电流或电压输出是模拟信号,那么还必须进行A/D转换,以满足单片机接口的需要。传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差、测量温度准确率低,而且必须经过专门的接口电路转换成数字信号后才能由单片机进行处理。随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方

9、面得到广泛应用。在温度控制器中应用单片机,具有设计简单、可靠性高、控制精度高,功能易扩展,有较强的通用性等优点。温度控制器主要实现对恒温箱温度的控制,并满足不同用户的个性需求。因此一个较完善的控制器应具有以下功能: 温度的测量与显示;用户设定功能(如温度设定,定时设定等); 对电加热管的控制功能; 一些功能键(如定时自动加热,恒温控制,手动加热等); 安全措施(漏电检测,安全失效保护,限温保护等)。本文将采用一种数字温度传感器来实现基于51单片机的恒温箱控制系统设计。整个控制系统分为硬件电路设计和软件程序设计两部分。3设计思路分析设计51单片机的恒温箱控制系统设计时,需要考虑下面3个方面的内容

10、:1.选择合适的温度传感器芯片。显然,本文中的核心器件是单片机和温度传感器,单片机采用常用的51单片机即可,而温度传感器的选择则需慎重。2.单片机和温度传感器的接口电路设计。3.控制温度传感器实现温度信息采集以及数据传输的软件设计。4方案论证4.1温度传感器方案一:采用热敏电阻,可满足4090的测量范围,但热敏电阻精度、重复性、可靠性都比较差,其测量温度范围相对较小,稳定性较差,不能满足本系统温度控制的范围要求。方案二:采用温度传感器铂电阻 Pt1000。铂热电阻的物理化学性能在高温和氧化性介质中很稳定,它能用作工业测温元件,且此元件线性较好。在 0100 摄氏度时,最大非线性偏差小于 0.5

11、 摄氏度。铂热电阻与温度关系是,Rt = R0(1+At+Bt*t) ;其中 Rt 是温度为 t 摄氏度时的电阻;R0 是温度为 0 摄氏度时的电阻;t 为任意温度值,A,B 为温度系数。方案三:采用模拟温度传感器AD590K,AD590K具有较高精度和重复性(重复性优于0.1),其良好的非线性可以保证优于0.1的测量精度。但其测量的值需要经过运算放大、模数转换再传给单片机,硬件电路较复杂,调试也会相对困难,所以本系统不宜采用此法。方案四:采用数字温度传感器DS18B20,DS18B20提供九位温度读数,测量范围-55125,采用独特1-WIRE 总线协议,只需一根口线即实现与MCU 的双向通

12、讯,具有连接简单,高精度,高可靠性等特点。并且,DS18B20支持一主多从,若想实现多点测温,可方便扩展。综合以上四种方案,本设计采用第四种方案,利用数字温度计DS18B20作为温度传感器。4.2显示部分方案一:采用I/O口直接驱动,需要占用大量可贵的I/O口资源,且系统运行后,更换元件不易,不符合系统设计的可靠性、易扩展性原则。方案二:采用串行口驱动、静态显示,利用单片机的串行口输出数据,显示多位数码,可节省大量的I/O口,但每个数码管必须有一个驱动芯片,且每位段码须接一个限流电阻,所须元件多,硬件电路比较复杂。方案三:采用串行口驱动、动态扫描显示,利用单片机的串行口输出数据,显示多位数码,

13、多个数码管可共用驱动芯片和限流电阻。这样既可以简化硬件电路,又可以节省大量的I/O口线,为功能扩展留下空间。综合以上三种方案,本设计采用方案三:串行口驱动、动态显示。根据系统具体指标要求,可以对每一个具体部分进行分析设计。4.3输出控制方案一:采用继电器,易于控制,且实行比较简单,但强电和弱电不能很好的隔离,抗干扰能力极差。方案二:采用光电藕合器,控制信号与输出信号可以很好的隔离,增强了系统的安全性和抗干扰能力。综合以上两种方案,本设计采用光电藕合器控制负载工作。5硬件设计及工作原理5.1系统功能及工作流程介绍根据恒温箱控制器的功能要求,并结合对51系列单片机的资源分析,即单片机软件编程自由度

14、大,可用编程实现各种控制算法和逻辑控制。所以采用AT89C51作为电路系统的控制核心。恒温箱控制器的总体布局如图1所示。按键将设置好的温度值传给单片机,通过温度显示模块显示出来。初始温度设置好后,单片机开启输出控制模块,使电热器开始加热,同时将从数字温度传感器DS18B20测量到的温度值实时的显示出来,当加热到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭加热器。当自然冷却到设定温度5摄氏度以下时,单片机再次启动加热器,如此循环反复,以达到恒温控制的目的。系统结构框图如图1所示,系统基本硬件电路图如图2所示,在本系统中,DP1DP3用于七段数码显示;P1.0用于接收DS18B20

15、采集到的数字温度信号;FUZA1控制光电开关,决定电加热器是否工作;K1K3用于按键控制;BELL和P1.4、P1.5用于控制扬声器和发光二极管,进行声光报警;串行口用于输出显示段码;P2.0、P2.1用于对数码管进行动态扫描。图1 系统结构框图Fig.1 System block diagram图2 温控电路图Fig.2 Temperature control circuit5.2功能模块根据上面对工作流程的分析,系统软件可以分为以下几个功能模块:(1) 键盘管理:监测键盘输入,接收温度预置,启动系统工作。(2) 显示:显示设置温度及当前温度。(3) 温度检测及温度值变换:完成A/D转换及数

16、字滤波。(4) 温度控制:根据检测到的温度控制电炉工作。(5) 报警:当预置温度或当前炉温越限时报警。5.3系统硬件设计5.3.1DS18B20测温电路DS18B20数字温度计是Dallas公司生产的1Wire器件,即单总线器件。与传统的热敏电阻有所不同,DS18B20可直接将被测温度转化成串行数字信号,以供单片机处理,具有连线简单、微型化、低功耗、高性能、抗干扰能力强、精度高等特点。因此用它来组成一个测温系统,具有电路简单,在一根通信线上可以挂很多这样的数字温度计,十分方便。目前已被众多行业进行广泛的运用(锅炉、温控表粮库、冷库、工业现场温度监控、仪器仪表温度监控、农业大棚温度监控等)。通过

17、编程,DS18B20可以实现912位的温度读数。信息经过单线接口送入DS18B20或从DS18B20送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。每片DS18B20在出厂时都设有唯一的产品序列号,因此多个DS18B20可以挂接于同一条单线总线上,这允许在许多不同的地方放置温度传感器,特别适合于构成多点温度测控系统。5.3.2DS18B20的特点介绍(1)独特的单线接口方式,与单片机通信只需一个引脚,DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (2)在使用中不需要任

18、何外围元件。 (3)可用数据线供电,电压范围:+3.0+5.5 V。 (4)测温范围为-55 +125 。在-10+85范围内误差为0.5 。 (5)通过编程可实现912位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。 (7)支持多点组网功能,通过识别芯片各自唯一的产品序列号从而实现单线多挂接,多个DS18B20可以并联在唯一的线上,简化了分布式温度检测的应用,实现多点测温。 (8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。5.3.3单线(1-wire)技术 目前常用的微机和外设之间数据传输的串行总线有I2C总线、SPI总线等,其中,I2C总线采用同步串行

19、两线(一根时钟线、一根数据线)方式,而SPI总线采用同步串行三线(一根时钟线、一根输入线和一根数据出线)方式。这两种总线需要至少两根或两根以上的信号线。美国达拉斯半导体公司推出了一项特有的单线(1-wire)技术。该技术与上述总线不同,它采用单根信号线,即可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单线技术具有线路简单、硬件开销少、成本低廉、便于扩展的优点。单线技术适用于单主机系统,单主机能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单线器件,它们之间的数据交换、控制都由这根线完成。主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放该线,而

20、让其他设备使用。单线通常要外接一个约5K的上拉电阻,这样,当该线闲置时,其状态为高电平。主机和从机之间的通信主要分3个步骤:初始化单线器件、识别单线器件和单线数据传输。由于只有一根线通信,所以它们必须是严格的主从结构,只有主机呼叫从机时,从机才能应答,主机访问每个单线器件必须严格遵循单线命令序列,即遵守上述3个步骤的顺序。如果命令序列混乱,单线器件将不会响应主机。所有的单线器件都要遵循严格的协议,以保证数据的完整性。1-wire协议由复位脉冲、应答脉冲、写0、写1、读0和读1这几种信号类型组成。这些信号中,除了应答脉冲,其他均由主机发起,并且所有命令和数据都是字节的地位在前。5.3.4DS18

21、B20的引脚及功能介绍DS18B20其引脚功能描述见表1,实测温度和数字输出的对应关系见表2.图3 DS18B20外形图Fig.3 Outside drawing of DS18B20表1 DS18B20详细引脚功能描述Tab.1 Detailed description of pin functions for DS18B20序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 5.3.5DS18B20的使用方法 由于DS18B20采用的是1Wire总线协议

22、方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

23、置总线为低电平并保持至少480us,然后拉高电平,等待从端重新拉低电平作为响应,则总线复位完成。对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被

24、拉低之后,在15us之内就得释放单总线。 总线支持一主多从式结构,硬件上需外接上拉电阻。当一方完成数据通信需要释放总线时,只需将总线置高点平即可;若需要获得总线进行通信时则要监视总线是否空闲,若空闲,则置低电平获得总线控制权。图6 DS18B20测温电路Fig.6 Temperature measurement circuit of DS18B205.3.6输出控制电路输出控制采用继电器进行控制,设计中使用了两个电磁继电器,用小电流控制大电流的继电开关,根据单片机实际温度和设定温度的比较结果,过热则启动继电器RL1,启动风扇降温,过冷则使RL2继电器开关吸合,控制电热丝加热,从而达到控制温度恒

25、定的目的。图7 光耦控制输出Fig.7 Control output optocoupler5.3.7温度越线报警电路报警电路如图8所示,该电路采用一个小功率三极管Q5驱动蜂鸣器BELL,当单片机接收到超额温度信号或危险信号时,输出脚BELL输出高点平,Q5导通,致使蜂鸣器BUZ1得电工作,发出报警声。同时,电路中的发光二极管指示出电路的工作状态。图8 报警电路Fig.8 Alarm circuit6系统的应用软件设计6.1软件描述在软件设计时,必须先弄清恒温控制系统的操作过程和工作过程。加热器开始时处于停止状态,首先设定温度,显示器显示温度,温度设定后则可以启动加热。温度检测系统不断检测并显

26、示系统中的实时温度,当达到设定值后停止加热,当温度下降到下限(小于设定值5)时再自动启动加热,这样不断的循环,使温度保持在设定范围之内。启动加热以后就不能再设定温度,因为温度的设定可以根据实验要求改变。若要改变设定的温度,可以先按复位停止键再重复上述过程。根据以上对操作和工作过程的分析,程序应分为两个阶段:一是通电或复位后到启动加热,程序主要是按键设定、显示器显示设定温度;二是检测并显示系统的实时温度,并根据检测的结果控制电热器,这时系统不接收键盘的输入。因此,程序可以分为以下几个功能模块:温度设定和启动;显示;温度检测;温度控制以及报警。6.1.1键盘管理模块键盘管理子程序流程如图9所示。图

27、9 键盘处理程序流程Fig.9 Keyboard handler process当通电或复位以后,系统进入键盘管理状态,单片机只接收设定温度和启动。当检测到有键闭合时先去除抖动,这里采用软件延时的方法,延时一段时间后,再确定是否有键闭合,然后将设定好的值送入预置温度数据区,并调用温度合法检测报警程序,当设定温度超过最大值如40时就会报警,最后当启动键闭合时启动加热。键盘设定:用于温度设定。共三个按键。 KEY1(P1.1): 状态切换;温度设置确认;温度重新设置。KEY2(P1.2): 设置温度“+”。KEY3(P1.3): 设置温度“-”。 系统上电后,数码管全部显示为零,根据按 KEY1

28、次数,决定显示的状态,根据相应的状态,利用KEY2、KEY3进行加减,当温度设定好之后,再按KEY1确定,系统开始测温,开启加热器。6.1.2显示模块显示子程序的功能是将缓冲区的二进制数据先转换成3个BCD码,再将其分别存入百位、十位、个位3个显示缓冲区,送往串行口,利用单片机的P2口进行扫描,让数据动态的显示出来,可显示设置温度和测量温度。6.1.3控制模块温度控制子程序流程如图10所示,将当前温度与设定好的温度比较,当当前温度小于设定温度时,开启电热器;当当前温度大于设定温度时,关闭电热器;当二者相等时,电热器保持这一状态。图10 控制模块程序流程Fig.10 Program flow c

29、ontrol module6.1.4温度报警模块报警子程序流程如图11所示。根据设计要求,当检测到当前温度值高于设定温度值5时报警,报警的同时关闭电热器。为了防止误报,设置了报警允许标志,只有在允许报警的情况下,温度值高于设定温度值时才报警。图11 报警子程序流程Fig.11 Subroutine flow alarm6.1.5主程序和中断服务程序流程主程序采用中断嵌套方式设计,各功能模块可直接调用。主程序完成系统的初始化,温度预置及其合法性检测,预置温度的显示及定时器0设置。定时器0中断服务子程序是温度控制体系的主体,用于温度检测、控制和报警(包括启动温度转换、读入采样数据、数字滤波、越限温

30、度报警和越限处理、输出控制脉冲等)。中断由定时器0产生,根据需要每隔15 s中断一次,即每15 s采样控制一次。但系统采用6 MHz晶振,最大定时为130 ms,为实现15 s定时,这里另行设了一个软件计数器。图12 主程序流程图Fig.12 The main program flow chart7 系统调试与仿真7.1 硬件调试根据设计的原理电路做好实验样机,便进入硬件调试阶段。调试工作的主要任务是排除样机故障,其中包括设计错误和工艺性故障。1) 脱机检查用万能表或逻辑测试笔逐步按照逻辑图检查机中各器件的电源及各引脚的连接是否正确,检查数据总线、地址总线和控制总线是否有短路等故障。有时为保护

31、芯片,先对各管座的电位(或电源)进行检查,确定其无误后再插入芯片检查。.2) 仿真调试暂时排除目标板的CPU和EPROM,将样机接上仿真机的40芯仿真插头进行调试,调试各部分接口电路是否满足设计要求。这部分工作是一种经验性很强的工作,一般来说,设计制作的样机不可能一次性完好,总是需要调试的。通常的方法是,先编调试软件,逐一检查调试硬件电路系统设计的准确性。3) 检查CPU的时钟电路通过测试ALE信号,如没有ALE信号,则判断是晶体或CPU故障,这称之为“心脏”检查。检查ABUS/DBUS的分时复用功能的地址锁存是否正常。检查I/O地址分配器。一般是由部分译码或全译码电路构成,如是部分译码设计,

32、则排除地址重叠故障。4) 对扩展的RAM、ROM进行检查调试一般先后写入55H、AAH,再读出比较,以此判断是否正常。因为这样RAM、ROM的各位均写入过0、1代码。7.2 软件调试软件调试根据开发的设备情况方法如下。1) 交叉汇编用IBM PC/XT机对MCS51系列单片机程序进行交叉汇编时,可借助IBM PC/XT机的行编辑和屏幕编辑功能,将源程序按规定的格式输入到PC机,生成MCS51HEX目标代码和LIST文件。2) 用汇编语言现在有些单片STD工业控制机或者开发系统,可直接使用汇编语言,借助CRT进行汇编语言调试。3)手工汇编这种方法是最原始,但又是一种最简捷的调试方法,且不必增加调

33、试设备。这种方法的实质就是对照MCS51指令编码表,将源程序指令逐条地译成机器码,然后输入到RAM重新进行调试。在进行手工汇编时,要特别注意转移指令、调用指令、查表指令。必须准确无误地计算出操作码、转移地址和相对偏移量,以免出错。以上3种方法调试完成以后,即可通过EPROM写入器,将目标代码写入EPROM中,并将其插至机器的相应插座上,系统便可投入运行。7.3 系统仿真因本系统是利用单片机进行系统控制,所以需采用单片机仿真工具Proteus进行仿真。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了

34、其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,Proteus为使用者建立了完备的电子设计开发环境!Proteus产品系列也包含了革命性的VSM技术8,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真,是一款非常优秀的单片机仿真软件。可以使用Keil c51和Proteus进行联调,使调试、仿真更为方便。由于Proteus软件库内有本系统

35、所用到的DS18B20测温元件,所以在仿真时,采用动态显示仿真。仿真电路图如图13所示。图13 仿真电路图Fig.13Simulation diagram9系统制作图18 系统的PCB板Fig.18 PCB board system10 结论本文利用AT89C51对温度进行控制,采用单总线传输方式的DS18B20作为温度传感器,与按键、数码显示、报警器等外部辅助硬件共同组成一个温度控制系统。设计中用到了KEIL C51 V8.01、PROTEL99SE、PROTEUS6.7等设计与仿真软件,作者本着安全性、可靠性、稳定性和易扩展性等设计原则,对各方案进行了细心的比较,并对设计中使用的芯片进行了

36、仔细的分析,力求设计出一个安全、稳定、可靠的温度控制系统。因此,本系统的安全性和可扩展性都比较好。在仿真过程中,由于仿真软件库内没有DS18B20这个元件,并且动态显示在仿真时数码显示不稳定,所以仿真时采用了静态显示,并利用软件来模拟温度的变换,从而仿真得到系统工作的整个过程。参 考 文 献1将延彪等,单片机原理及应用(MCS-51)M.重庆大学出版社,2005,12 彭为等,单片机典型系统设计实例精讲M.北京:电子工业出版社,2006,123 胡大可,基于单片机8051的嵌入式开发指南J. 电子工业出版社,20034 靳达,单片机应用系统开发实例导航J. 人民邮电出版社,2003年10月。5

37、 李军,51系列单片机高级实例开发指南(附CD-ROM光盘一张)J.北京航空航天大学出版社,2004年06月。6 李华,MCS-51系列单片机实用接口技术J.别经航空大学出版社,2006,127 李鸿,单片机原理及应用J.湖南大学出版社,2004,88 李运华,机电控制J.北京航空航天大学出版社,2003,69 陈知泰,机电设备综合实例,200510 秦曾煌,电工学(上,下册)J.高等教育出版社,2004,711 刘君华,智能传感器系统M.西安电子科技大学出版社,2004,812 刘畅生,传感器简明手册及应用电路M.西安电子科技大学出版社,2004,10致谢本论文是在蔡培中老师的悉心指导和热情

38、关怀下完成的。在此,我要感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长过程中给予了我很大的帮助。本文能够成功的完成,要特别感谢我的指导老师对我的精心指导,让我获得了丰富的理论知识,极大地提高了实践能力。也使我学到了许多书本不曾接触过的知识,开拓了视野,增广了知识面,最重要的是学到了如何利用信息资源帮助自己寻找资料,提高了自己的自学能力。在论文完成之际,我首先谨向在我做毕业设计期间给予我无微不至的关怀,诲人不倦的蔡培中教授致以崇高的敬意和真诚的感谢,其次对朝夕相处的同学在此期间给予我的支持和帮助表示莫大的感激!程序设计#include#include#include /要用到取绝对值函

39、数abs()#define uchar unsigned char /定义uchar数据类型#define uint unsigned int /定义uint数据类型 sbit wei1 = P10; /数码管位选1 sbit wei2 = P11; /数码管位选2 sbit wei3 = P12; /数码管位选3 sbit wei4 = P13; /数码管位选4 sbit buzz = P14; /蜂鸣器驱动管脚 sbit ds = P15; /定义DS18B20数据接收管脚 sbit Rel1 = P36; /继电器1驱动管脚 sbit Rel2 = P37; /继电器2驱动管脚 sbit

40、 key1 = P32; /按键1 sbit key2 = P33; /按键2 sbit LED1 = P00; /LED1 sbit LED2 = P07; /LED2 int Temp_Value; /定义当前温度值 int H_T; /定义上限温度 int L_T; /定义下限温度 uchar shan_num; /定义闪烁时熄灭次数 uchar flag_shan; /闪动标志位 uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /0-F数码管的编码(共阳极) uchar code tableWidt

41、hDot=0x40, 0x79, 0x24, 0x30,0x19, 0x12, 0x02,0x78, 0x00, 0x10; /0-9数码管的编码(共阳极), 带小数点 /*函数名称: void delay(unsigned int i)函数功能: 延时函数, 对于12MHz时钟, 例i=10,则大概延时10ms.*/void Delay_ms(uint i) uint j; while(i-) for(j = 0; j 125; j+); /*函数名称: void Delay_s(uint i)函数功能: 延时函数, 对于12MHz时钟, 例i=1,则大概延时1s.*/void Delay_s(uint i) uint j; while(i-) for(j=0;j4;j+) Delay_ms(250); /*函数名称: void Ds_Init()函数功能: 初始化DS18B20 ,让DS18B20一段相对长时间低电平, 然后一段相对非常短时间高电平, 即可启动*/ void Ds_Init() uint i;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号