基于单片机的鸡雏孵化室恒温控制器设计王佳

上传人:痛*** 文档编号:141676541 上传时间:2022-08-24 格式:DOC 页数:25 大小:971KB
返回 下载 相关 举报
基于单片机的鸡雏孵化室恒温控制器设计王佳_第1页
第1页 / 共25页
基于单片机的鸡雏孵化室恒温控制器设计王佳_第2页
第2页 / 共25页
基于单片机的鸡雏孵化室恒温控制器设计王佳_第3页
第3页 / 共25页
点击查看更多>>
资源描述
基于单片机的鸡雏孵化室恒温控制器设计摘 要温度是一个很重要的基本物理量,在很多领域都要涉及到,例如:冶金工业、化工生产、造纸行业、机械制造、电加热炉及家用电器等,都需要对其进行测量和控制,使被控温度保持在预先设定的范围内(即恒温控制)。在本课题研究的鸡雏孵化室恒温控制器中,要求室温恒定保持在38之间,且精度要达到1,因此这里需考虑加热控制和散热装置。在恒温控制方面运用基于单总线多点循环技术进行温度采样,最终利用继电器控制加热装置实现加热控制。另外也可通过仪器控制面板实现温度的设定与显示。关键词:STC89C51 鸡雏孵化室 温度控制目 录一、绪论5(一)温度控制系统设计的背景、发展历史及意义5(二)本设计的应用及意义5(三)鸡雏孵化室恒温控制系统完成的功能5二、系统框图6三、方案比较与论证6(一)温度的采集取样6(二)温度的显示6(三)单片机的控制6(四)温度加热6(五)温度散热7四、单元模块设计7(一)温度检测模块7(二)显示模块8(三)报警模块8(四)温度控制模块8(五)单片机模块8五、DS18B20温度传感器简介9(一)温度传感器的历史及简介9(二)DS18B20的工作原理9(三)DS18B20的测温原理11六、硬件设计12(一)温度采集电路12(二)显示电路13(三)时钟电路13(四)复位电路14(五)报警电路14(六)按键电路15(七)总电路15(八)PCB板电路16七、软件设计17(一)主程序流程图17(二)本设计源码17(三)程序仿真电路25八、结束语25参考文献26基于单片机的鸡雏孵化室恒温控制器设计一、绪论(一)温度控制系统设计的背景、发展历史及意义随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。因此,各行各业对温度控制的要求都越来越高。可见,温度的测量和控制是非常重要的。单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生。近年来,人类的生产和生活方式发生了巨大的变化,产生这一变化的重要原因就是计算机技术的飞速发展。第一台计算机诞生至今仅仅几十年的时间,计算机的性能已经大大提高,价格不断的下降,从而使之可以迅速而广泛地应用于人类的生产和生活的各个领域。然而鸡雏孵化室的温度控制的发展无疑得益于计算机技术的发展。(二)本设计的应用及意义本设计以保质、节能、安全和方便为基准设计了一个鸡雏孵化室恒温控制器,根据需要进行相应的数据分析和处理,由此完成对鸡雏孵化室温度的采样和控制。通过本设计掌握使用高级语言对单片机编程技术以及一线总线制在单片机方面的应用及利用继电器控制加热装置,从而控制大功率的加热设备,提高实际工作技能。本设计以单片机为核心的温度采集与控制系统的研发与应用,在很大程度上提高了生产、生活中对鸡雏孵化室温度的控制水平。本文的设计正是一个本着学习、创新和服务人类的思想的机器设计,让机器按照自己预定的想法和目的运作。(三)鸡雏孵化室恒温控制系统完成的功能本设计是对鸡雏孵化室温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:当温度低于设定下限温度时,系统自动按程序设计的顺序利用继电器使加热装置对鸡雏孵化室进行加温,使温度上升。当温度上升到下限温度以上时,按顺序停止加热装置加温;当温度达到设定温度时,系统停止加温。当温度高于设定上限温度时,系统自动按程序设计的顺序利用散热装置对鸡雏孵化室进行降温。温度在上下限温度之间时,执行机构不执行。四个数码管即时显示温度,精确到小数点后一位。二、系统框图 时钟电路 测温电路 单 片复位电路 显示电路 机 报警电路 温度控制电路三、方案比较与论证(一)温度的采集取样方案一:采用热敏电阻。热敏电阻是一种随温度变化阻值随之变化的器件。当温度变化时热敏电阻的阻值,电阻两端产生的电压也随之变化。通过比较器设置的电压进行比较 ,对电压的变化来判断温度的变化。从而可以控制加热的时间。采用热敏电阻时,比较电路需要很精确的设计,且对电路要求跟高。方案二:采用温度芯片DS18B20进行温度采集。该温度芯片不需要接外围电路,可以直接接至单片机,通过单片机直接读取温度值。这样可以省掉部分电路的设计,同时电路也变得更简洁,控制更好。综合上述的方案,我们采用方案二。方案二电路比较简单合理。(二)温度的显示方案一:采用LED显示。LED点阵可以显示多种字符以及图形,可用软件进行调制,有很强的兼容性以及可操作性。但是对于本系统来说其成本比较高。方案二:采用数码管显示。数码管体积小,又便于单片机控制。本系统需要显示1到9,硬件只需通过控制单片机来直接控制数码管的显示。采用数码管节约I/O口,同时减少成本。综合上述的方案,我们采用方案二。(三)单片机的控制方案一:采用普通继电器控制电热器加热。通过单片机输出的PWM脉冲来控制继电器的接通和断开。由于电磁继电器相应存在延迟(20MS-25MS左右)相对于单片机而言相当长的时间,而且存在电火花(弧)等不安全因素。普通继电器性能不是很优越,反映慢。方案二:采用固态继电器控制电热器加热。通过单片机输出的PWM脉冲来控制继电器的接通和断开。固态继电器交流端采用无触点接通和断开,性能优越反映快。方案三:利用MOC3021光电耦合器控制加热装置,响应及时。不会存在安全隐患。综合上述的方案,我们采用方案二。(四)温度加热方案一:采用电烙铁加热。电烙铁价格较贵,存在一些安全隐患,并且加热区域较小。方案二:采用100W灯泡加热。100W灯泡价格便宜,使用方便,材料常见,便于更换。方案三:采用电热管加热。电热管加热不够安全。由于灯泡价格便宜,且设计简单,易于采购,所以采用方案二。(五)温度散热方案一:采用制冷空调散热降温。空调价格比较昂贵,不易于安装。散热速度快,但经常启动停止会致使空调损坏。方案二:采用电风扇散热降温。电风扇价格比较便宜,且便于放置和更换。由于空调价格昂贵,而电风扇价格便宜,且方便利于普及,所以采用方案二。四、单元模块设计本设计主要分为5个模块:1、 温度检测模块2、 显示模块3、 报警模块4、 温度控制模块5、 单片机模块(一) 温度检测模块该模块是温度检测模块主要由DS18B20构成,主要作用是将实际温度通过DS18B20传输给单片机。用于单片机判断与设定温度的差值,再去控制继电器模块的开或闭。DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。数字温度传感器DS18B20把采集到的温度通过数据引脚DQ脚传到单片机的P2.7口,单片机接受温度并存储。此部分只用到DS18B20和单片机,硬件很简单。1.DS18B20的性能特点如下:(1)独特的单线接口仅需要一个端口引脚进行通信;(2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;(3)无须外部器件;(4)可通过数据线供电,电压范围为3.05.5V;(5)零待机功耗;(6)温度以4位数字显示;(7)用户可定义报警设置;(8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;(9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。2.DS18B20的内部结构DS18B20采用3脚PR35封装,如图4-1所示;DS18B20的内部结构,如图4-2所示。图41 DS18B20封装图42 DS18B20内部结构3.DS18B20工作原理及应用DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解DS18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是:ROM只读存储器,用于存放DS18B20编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56位的CRC码。数据在出产时设置不由用户更改。DS18B20共64位ROM。RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。DS18B20的主要特征:全数字温度转换及输出,先进的单总线数据通信。最高12位分辨率,精度可达正负0.5摄氏度,12位分辨率时的最大工作周期为750毫秒。可选择寄生工作方式。检测温度范围为-55C+125C(-67F+257F)内置EEPROM,限温报警功能。64位光刻ROM,内置产品序列号,方便多机挂接。多样封装形式,适应不同硬件系统。DS18B20引脚功能:GND电压地,DQ单数据总线,VDD电源电压,NC空引脚。DS18B20C采用3脚PR-35封装或8脚SOIC封装。(二)显示模块显示部分采用数码管显示方式。数码管用四位一体的共阳数码管。段选直接有单片机控制,位选通过单片机P1口接上8550进行驱动数码管。(三)报警模块利用蜂鸣器进行报警功能。(四)温度控制模块利用继电器控制加热装置和散热装置(五)单片机模块单片机STC89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,5个中断源,一个全双工串口通信口,内置一个精密比较器,片内振荡器及时钟电路,同时,STC89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式:低功耗的闲置和掉电模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止它所有的部件工作直到下一个硬件复位。五、DS18B20温度传感器简介(一)温度传感器的历史及简介温度的测量是从金属(物质)的热胀冷缩开始。水银温度计至今仍是各种温度测量的计量标准。可是它的缺点是只能近距离观测,而且水银有毒,玻璃管易碎。代替水银的有酒精温度计和金属簧片温度计,它们虽然没有毒性,但测量精度很低,只能作为一个概略指示。不过在居民住宅中使用已可满足要求。在工业生产和实验研究中为了配合远传仪表指示,出现了许多不同的温度检测方法,常用的有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等。它们都是基于温度变化引起其物理参数(如电阻值,热电势等)的变化的原理。随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器。(二) DS18B20的工作原理1. DS18B20工作时序根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:(1) 每一次读写之前都必须要对DS18B20进行复位;(2) 复位成功后发送一条ROM指令;(3) 最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1560微秒左右后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。其工作时序包括初始化时序、写时序和读时序,具体工作方法如图5-1,5-2,5-3所示。A.初始化时序 图51 初始化时序总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。应答脉冲使主机知道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。接着主机释放总线,4.7K上拉电阻将总线拉高,延时1560us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us。B.写时序图52 写时序写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。C.读时序图53 读时序总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。2. ROM操作命令当主机收到DSl8B20 的响应信号后,便可以发出ROM 操作命令之一,这些命令如表5-1:ROM操作命令。表51 ROM操作命令指令约定代码功 能读ROM33H读DS18B20 ROM中的编码符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B20 使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。告警搜索命令0ECH执行后,只有温度超过设定值上限或者下限的片子才做出响应温度变换44H启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据复制暂存器48H将EEPRAM中第3,4字节内容复制到E2PRAM中重调E2PRAM0BBH将EEPRAM中内容恢复到RAM中的第3,4字节读供电方式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”(三) DS18B20的测温原理1. DS18B20的测温原理:每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM 中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。DS18B20的测温原理如图5-4所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图5-4中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值. 另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。减法计数器斜坡累加器减到0减法计数器预 置低温度系数振 荡 器高温度系数振 荡 器计数比较器预 置温度寄存器减到0图54 测温原理内部装置2. DS18B20的测温流程初始化DS18B20跳过ROM匹配温度变换延时1S跳过ROM匹配读暂存器转换成显示码数码管显示图55 DS18B20测温流程六、硬件设计(一)温度采集电路 温度采集电路的核心采用DS18B20,DS18B20采集的温度直接送至单片机进行处理。(二)显示电路显示部分采用数码管显示方式。数码管用四位一体的共阳数码管。段选直接由单片机控制,位选通过单片机P1口接上8850进行驱动数码管。(三)时钟电路晶振为12M,选取合适的电容和晶振,电路图如下:(四)复位电路复位电路中选取10u的电解电容和4.7K的电阻,电路图如下:(五)报警电路报警电路图如下:如果需要蜂鸣器的蜂鸣效果更好的话,建议将电阻R11的阻值减小。(六)按键电路按键电路主要是可作为其设计辅助功能,例如:设置风扇档位等。现将按键电路接在单片机第39脚P00上,电路图如下:(七)总电路本设计温度采集电路的核心采用DS18B20采集的温度直接送至单片机P1.7(8脚)进行处理。显示部分采用数码管显示方式。数码管用四位一体的共阳数码管。段选直接由单片机P2口控制,位选通过单片机P1.0-P1.3(1-4脚)接上8850进行驱动数码管。P1.4、P1.5(5、6脚)分别控制灯泡、风扇电路的通断。P1.6 (7脚)控制蜂鸣器报警。以上各I/O口管脚都是低电平有效。时钟电路接在单片机第18、19脚,晶振为12M。复位电路接在单片机第9脚。单片机第31脚(/VP)接高电平VCC,读取内部程序存储器指令数据(程序地址小于4KB)。按键电路接在单片机第39脚,按下按键,则给P0.0脚送入低电平。5V直流电源串联LED发光二极管,工作时LED放光。(八)PCB板电路七、软件设计(一)主程序流程图完成主程序的一系列功能:鸡雏孵化室温度调控。对超过或低于80度的水温进行加热或散热,并于数码管显示。图7-1所示高于125显示“+”温度显示“E2”是开始检测室温显示“E0”低于-55显示“E1”显示“-”温度低于37高于3937-39加热并报警散热并报警正常工作,停止加热散热报警否是否是否是否DS18B20不存在?温度低于0图7-1(二)本设计源码/文件名:ds18b20.c /功能:实现温度显示 /硬件连接:外部电源供电,且只有1个DS18B20 /原理:单总线协议(读取温度七步骤,如程序注释) /注意:此程序晶振为12M,其他晶振需跟据DS18B20资料修改 / #include #include / 声明_nop_() 便于实现延时 sbit DS18B20=P17; sbit c0=P10;/位控sbit c1=P11;sbit c2=P12;sbit c3=P13;sbit dp=P27; /小数点sbit ming=P16;/蜂鸣器sbit re=P14 ; /加热器sbit fang=P15 ; /风扇unsigned char code LEDMAP = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xFF,0x86,0xb9,0xbf /灭 E + -; bit DS18B20_FLG = 0; /“1”:DS18B20存在 ;“0”:DS18B20不存在bit TEMP_FLG = 0; /“1”:温度为负 bit T1S_FLG = 0; /“1”:1秒钟到 unsigned int t1s; unsigned char LEDBuf6; /定时中断 Timer0() interrupt 1 t1s+; if(4000 = t1s) t1s =0; T1S_FLG = 1; void delay(unsigned int i) while(i-); /显示子函数 display() c0=1; c1=1; c2=1; c3=1; / 关所有LED P2 = LEDMAPLEDBuf0; c0=0; delay(80); c0=1; c1=1; c2=1; c3=1; / 关所有LED P2 = LEDMAPLEDBuf1; dp=0; /小数点 c1=0; delay(80); c0=1; c1=1; c2=1; c3=1; / 关所有LED P2 = LEDMAPLEDBuf2; c2=0; delay(80); c0=1; c1=1; c2=1; c3=1; / 关所有LED P2 = LEDMAPLEDBuf3; c3=0; delay(80); / /DS18B20驱动 /初始化DS18B20步骤: / 1)总线拉低,并延时480us960us / 2)总线拉高,等待回应,如DS18B20为“0”则初始化成功, / 如等待60us仍无回应,则DS18B20不存在 Init_DS18B20(void) bit x = 0; unsigned char temp = 30; DS18B20 = 1; _nop_(); /无需精确 _nop_(); DS18B20 = 0; /拉低 delay(80); / 务必在480us960us之间 DS18B20 = 1; /拉高总线 delay(1); /无需精确 while(temp-) /等待60us以上 x = DS18B20; /如果x=0则初始化成功 if(0 = x) DS18B20_FLG = 1; delay(20); /无需精确 return(0); /读DS18B20一个字节 unsigned char Read_DS18B20(void) unsigned char i = 0; unsigned char d = 0; for (i=8;i0;i-) DS18B20 = 0; / 给脉冲信号 d = 1; _nop_(); DS18B20 = 1; / 给脉冲信号 _nop_(); / 需延时10us-14us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); if(DS18B20 = 1) d = d | 0x80; delay(10); / 需延时60us以上 delay(10); return(d); /写一个字节 Write_DS18B20(unsigned char d) unsigned char i=0; for (i=8; i0; i-) DS18B20 = 1; _nop_(); _nop_(); DS18B20 = 0; _nop_(); / 需延时15us-60us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); DS18B20 = d & 0x01; delay(7); / 需延时60us-120us d = 1; DS18B20 = 1; delay(7); /温度返回值被放大100倍 unsigned int TurnTemp(unsigned int temp) int t; if(temp 32768) /当读取的温度为负时 t = (temp + 1) * 25 / 4; /t = (temp + 1) * 100 / 16;就容易理解多了,因为有4位二进制小数表示位,所以要/16使小数点右移4位 TEMP_FLG = 1; else /当读取的温度为正时 t = temp * 25 / 4; /t = temp * 100 / 16;就容易理解多了 TEMP_FLG = 0; return(t); /读取温度 int ReadTemp(void) unsigned char tempLowChar = 0; unsigned char tempHighChar = 0; unsigned int tempInt = 0; int temp = 0; DS18B20_FLG = 0; Init_DS18B20(); /步骤1:初始化 if(DS18B20_FLG = 0) /如果没有检测到DS18B20返回 return(0); Write_DS18B20(0xCC); /步骤2:跳过读序号操作(单个DS18B20适用) Write_DS18B20(0x44); /步骤3:启动温度转换 TL0 = 256 - 250; /利用定时器实现1s延时 TH0 = TL0; TR0 = 1; T1S_FLG = 0; while(!T1S_FLG) /步骤4:等待温度转换完成(必须大于500ms) display(); TR0 = 0; DS18B20_FLG = 0; Init_DS18B20(); /步骤5:初始化 if(DS18B20_FLG = 0) /如果没有检测到DS18B20返回 return(0); Write_DS18B20(0xCC); /步骤6:跳过读序号操作(单个DS18B20适用) Write_DS18B20(0xBE); /步骤7:读取温度寄存器设置(共可读9个寄存器,前两个就是温度) tempLowChar = Read_DS18B20(); /步骤8:读取温度数据低8位 tempHighChar = Read_DS18B20(); /步骤8:读取温度数据高4位 tempInt = tempHighChar; tempInt 5500) LEDBuf3 = 10; LEDBuf2 = 10; LEDBuf1 = 11; LEDBuf0 = 1; /显示“E1” else LEDBuf3 = 13; /显示“-” LEDBuf2 = t/1000; /显示温度的十位 LEDBuf1 = (t/100)%10; /显示温度的个位 LEDBuf0 = (t/10)%10; /显示温度的小数位 else if(t 12500) LEDBuf3 = 10; LEDBuf2 = 10; LEDBuf1 = 11; LEDBuf0 = 2; /显示“E2” else LEDBuf3 = 12; /显示“+” LEDBuf2 = t/1000; /显示温度的十位 LEDBuf1 = (t/100)%10; /显示温度的个位 LEDBuf0 = (t/10)%10; /显示温度的小数位 display(); if(t/10)390)ming=ming;re=1;fang=0; /温度高于39OC时,风扇和蜂鸣器工作,灯泡停止工作if(t/10)370&(t/10)390) ming=1;fang=1;re=1; /温度正常时,灯泡、风扇和蜂鸣器都停止工作 (三)程序仿真电路八、结束语在设计方面,我尽量做到“环保、节能、成本控制”的要求,减小设计成本,充分利用软件编程来弥补硬件的精度不足。该电路能够对鸡雏孵化室恒温控制器进行模拟和仿真。通过对单片机进行编程,可以控制了保持恒温的效果,从而模拟工业产品。该电路的优点;可用单片机进行仿真模拟,电路设计接近实际工业产品模型,保持恒定温度误差值较小。缺点:硬件电路上,电源设计不够合理。整个设计过程,由于我们水平有限,时间仓促,系统还有许多要改进的地方。系统采用电磁继电器将直流电和交流电分离,并利用电磁继电器控制交流电的通断。但电磁继电器相应存在延迟(20MS-25MS左右)相对于单片机而言相当长的时间,而且有噪音。所以采用光耦、晶闸管或固态继电器替换电磁继电器控制电路效果更好。并且没有将按键功能写入程序,可在日后继续开发设计功能。通过对鸡雏孵化室恒温控制器的设计,我更加电路设计有更深的理解,让我在单片机编程和电路设计方面有了更深的提高。这样我更了解各个电路的特点和调试的规律,加深我对单片机编程和电路的理解,同时也更激发我对电子设计的兴趣。参考文献1 马忠梅 籍顺心等著,单片机的C语言应用程序设计M,北京航空航天大学出版社,2003.11: 214 218;2 张迎新等著,单片机原理及应用M,电子工业出版社,2004.10: 126 127. 203;3 贾伯年 俞朴,传感器技术,南京.东南大学出版社,2000;4 王化祥 张淑英,传感器原理及技术,天津.天津大学出版社,2002;5 何立民,单片机应用系统设计,北京.北京航空航天大学出版社,1990;6 胡继胜 杜贵敏,电子CAD技能与实训Protel 99 SE,电子工业出版社,2009;7 丁明亮 唐前辉,51单片机应用设计与仿真基于Keil C与Proteus,北京航天航空大学出版社,2009;8 张贵香 王辉,计算机控制技术,成都.电子科技大学出版社,1999;9 李行善,计算机测试与控制,北京.北京航空航天大学出版社,1990。 (注:可编辑下载,若有不当之处,请指正,谢谢!)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!