鸡雏恒温孵化器设计 毕业论文.doc_第1页
鸡雏恒温孵化器设计 毕业论文.doc_第2页
鸡雏恒温孵化器设计 毕业论文.doc_第3页
鸡雏恒温孵化器设计 毕业论文.doc_第4页
鸡雏恒温孵化器设计 毕业论文.doc_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

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

文档简介

鸡雏恒温孵化器设计目 录第1章 绪 论11.1鸡雏恒温孵化器设计目的11.2鸡雏恒温孵化器完成的功能1第2章 总体方案设计2第3章 硬件设计43.1 温度采集电路43.1.1 ds18b20简介43.1.2 ds18b20接口电路73.2单片机控制电路73.2.1 单片机简介73.2.2 时钟电路和复位电路83.3显示电路103.4 报警与控制电路11第4章 软件设计124.1主程序124.2 温度采集子程序124.3数据处理子程序164.4 1602c显示子程序174.5 输出驱动子程序19第5章 安装调试与结果215.1 安装调试215.2 结果显示21第6章 总 结23致 谢24参考文献25附录1原理图26附录2 pcb图27附录3 源程序28附录4 实物图42第1章 绪 论1.1鸡雏恒温孵化器设计目的本设计的内容是恒温控制系统,控制对象是温度。温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。1.2鸡雏恒温孵化器完成的功能本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:当温度低于设定下限温度时,系统自动启动加热继电器加温,使温度上升。当温度上升到下限温度以上时,停止加温;当温度高于设定上限温度时,系统自动启动风扇降温,使温度下降。当温度下降到上限温度以下时,停止降温。温度在上下限温度之间时,执行机构不执行。lcd液晶显示器即时显示温度,精确到小数点一位。第2章 总体方案设计这次设计题目为基于单片机的鸡雏恒温孵化器的设计,温度控制设定范围为38-40c,最小区分度为05c,上、下限温度在程序中设置,实现控制可以升温也可以降温,实时显示当前温度值,另外还增加了一个蜂鸣器报警功能。实现这种控制目的的方案有3个。方案(一)热电偶温度自动控制系统。(采用a/d转换器)方案(二)模拟集成温度控制器ad590温度自动控制系统。(采用v/f转换电路)方案(三)数字温度传感器ds18b20温度自动控制系统这三个方案都是采用单片机控制,液晶显示模块lcd显示。这三个方案的比较部分为温度传感器部分和模/数转换部分。方案(一)的系统框图如图2.1:图 2.1 热电偶温度控制系统原理图 该部分温度检测部分采用热电偶,它需要冷端补偿电路与其配套,并且热电偶输出电压只有几毫伏,必须经过放大处理才能a/d转换,若采用8位a/d转换器,cadc0809则输入端需采用放大器,把几毫伏的电压信号放大到5伏左右。由于热电偶属于非线性器件,因此每个温度值都必须通过分度表,查表才能获得,这给软件编程和数据处理增加了难度。这种系统具有测量温度范围可以从零下一百度到上千摄氏度,而且很多热电偶精度非常高,这是这种测量系统的优点,但构成系统复杂,抗干扰能力不强。方案(二)的框图如图2.2:图2.2 模拟集成温度控制器温度自动控制系统原理图如果不使用a/d转换器的话,可以选择v/f转换电路代替a/d转换器,因为v/f变换与单片机的接口有输入(只有一根线)、接口电路简单、抗干扰性好、易采用光电隔离等优点,故采用v/f转换电路来实现a/d变换是行之有效的。这一电路对温度变化的小信号有较好的精度,而且对输入温度信号有快速响应能力。缺点是该电路比较复杂,需要用放大电路来将温度传感器采集到的信号进行放大,性能不够稳定。单片机at89c51复位电路lcd报警电路加热装置降温装置ds18b20继电器控制部分方案(三)的框图如图2.3:图2.3 恒温孵化器系统原理该方案采用智能温度传感器ds18b20,它的最高分辨率为12位,可识别0.0625摄氏度的温度。它具有直接输出数字信号和数据处理功能,并且它和单片机接口只需要一位i/o口,因此由它构成的系统简单实用。由于ds18b20按照工业设计要求设计,抗干扰性能强,但是温度测量范围从-67c125c,比较有限。因为我们只在常温下使用,经过综合比较,方案(三)是比较理想的,并且经济合理。第3章 硬件设计3.1 温度采集电路3.1.1 ds18b20简介1一般说明ds18b20是采用“1-wire”一线总线传输数据的集成温度传感器,信息经过单线接口送入ds18b20或从ds18b20送出,因此从中央处理器到ds18b20仅需连接一条线。可采用外部电源供电,也可采用总线供电方式,此时,把vdd连接在一起作为数字电源。因为每一个ds18b20有唯一的系列号(silicon serial number),因此多个ds18b20可以存在于同一条单线总线上,这允许在许多地方放置温度灵敏器件。此特性的应用范围包括hvac环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。2特性(1)独特的单线接口,只需一个引脚即可通信(2)多点(multidrop)能力使分布式温度检测应用得以简化 (3)不需要外部元器件(4)可用数据线供电(5)在1秒内(典型值)把温度变换为数字(6)图3.1 ds18b20引脚排列用户可定义的,非易失性的温度告警设置(7)告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)3引脚排列如图3.1。ds18b20的引脚说明如表3.1: 表3.1 ds18b20的引脚说明引 脚符 号说 明1gnd地2dq单线运用的数据输入/输出引脚漏极开路3vcc可选vdd引脚两种供电方式 4内部结构ds18b20内部结构如图3.2所示,主要由4部分组成:64位rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。器件从单线的通信线取得其电源, 在信号线为高电平的时间周期内,把能量贮存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平重新接上寄生(电容)电源为止。作为另一种可供选择的方法,ds18b20也可用外部 5v电源供电。图3.2 ds18b20内部结构与 ds18b20 的通信经过一个单线接口。在单线接口情况下,在 rom 操作未定建立之前不能使用存贮器和控制操作。主机必须首先提供五种 rom 操作命令之一:(1)read rom(读 rom),(2)match rom(符 合 rom),(3)search rom(搜索 rom), (4)skip rom(跳过 rom),或(5)alarm search(告警搜索)。这些命令对每一器件的 64 位激光 rom 部分进行操作。如果在单线上有许多器件,那么可以挑选出一个特定的器件,并给总线上的主机指示存在多少器件及其类型。在成功地执行了 rom 操作序列之后,可使用存贮器和控制操作,然后主机可以提供六种存贮器和控制操作命令之一。 一个控制操作命令指示 ds18b20 完成温度测量。该测量的结果将放入 ds18b20 的高速暂存(便笺式)存贮器(scratchpad memory)通过发出读暂存存储器内容的存储器操作命令可以读出此结果。每一温度告警触发th和 tl构成一个字节的eeprom。如果不对 ds18b20 施加告警搜索命令,这些寄存器可用作通用用户存储器。使用存储器操作命令可以写th和tl。对这些寄存器的读访问通过便笺存储器。所有数据均以最低有效位在前的方式被读写。ds18b20内部有一个64位的rom区,其中前8位为该器件的序列号,接下来48是该器件的编号,每个器件都不一样,用于在一线总线上连接多传感器时进行对象识别,第8位是前56位的crc校验码。接下来是ram区和eeram区。ram前五个字节分别为lsb、msb、th、tl和config值,分别表示温度测量值的低位字节、高位字节、温度高温低温报警和使用传感器分辨率设置位。eeram分别用于th和tl的数据保存。每次上电时,数据会自动从eeram拷贝到th和tl中。fonfrg值的数据格式如表3.2: 表3.2 fonfrg数据格式tm0r1r011111 低五位一直都是1 ,tm是测试模式位,用于设置ds18b20在工作模式还是在测试模式。在ds18b20出厂时该位被设置为0,用户不要去改动。r1和r0用来设置分辨率,如表3.3所示:(ds18b20出厂时被设置为12位)表3.3分辨率设置表r1r0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms5.供电方式ds18b20有两种供电方式,第一种方法是寄生电源方式。当发生温度变换时,在i/o口提供一强的上拉电阻,如图3.3所示。图3.3 寄生电源供电方式通过使用一个mosfet把i/o线直接拉到电源可达到这一点。当使用该方式时vdd引脚连接到地。向ds18b20供电的另一种方法是通过使用连接到vdd引脚的外部电源,如图3.4所示。这种方法的优点是在i/o线上不要求强的上拉。总线上主机不需向上连接便在温度变换期间使线保持高电平。这就允许在变换时间内其他数据在单线上传送。此外,在单线总线上可以放置任何数目的ds18b20,而且如果它们都使用外部电源,那么通过发出跳过(skip)rom命令和接着发出(convert)t命令,可以同时完成温度变换。需要注意的是,只要外部电源处于工作状态,gnd引脚不可悬空。图3.4 外部电源供电方式ds18b20具有测温系统简单、测温精度高、连接方便、占用处理器i/o端口少等优点, 应用方便灵活,在常温测量中有较大优势,与lon works 现场总线结合应用前景更加广阔,如在工业过程、空调系统、智能楼宇等领域的温度测量会有广泛的应用。 3.1.2 ds18b20接口电路前面已经介绍过ds18b20有两种供电方式,寄生电源方式和通过使用连接到vdd 引脚的外部电源。寄生电源方式需要接一个接近5k的上拉电阻。通过比较,本设计采用外部电源供电方式。3.2单片机控制电路3.2.1 单片机简介以大规模集成电路为主组成的微型计算机,简称为单片机,又称为嵌入式微控制器(embedded microcontroller)。它的诞生是计算机发展史上一个新的里程碑。1单片机的发展单片机从诞生至今已经经历了4个发展阶段,分别是:第一阶段(19741976年):单片机初级阶段。因工艺限制,此阶段的单片机采用双片的形式而且功能比较简单。例如仙童公司生产的f8单片机,只包括了 8位cpu,64个字节的ram,和两个并行口,需要加一块具有1kb rom、定时器/计数器和两个并行口的3851芯片才能组成一台完整的计算机。第二阶段(19761978年):低性能单片机阶段。此阶段的单片机已成为一台完整的计算机,但内部资源不够丰富,以intel公司生产的mcs-48系列为代表,片内集成了8位cpu、8位定时器/计数器、ram和rom等,但无串行口,中断系统也比较简单,片内ram和rom容量较小且寻址范围不大于4kb。第三阶段(1978):高性能单片机阶段。此阶段的单片机内部资源丰富,以intel公司生产的mcs-51系列为代表,片内集成了8位cpu、16位定时器/计数器、串行i/o口、多级中断系统、ram和rom等,片内ram和rom容量加大,寻址范围可达64kb。有的型号内部还带有a/d转换器。第四阶段(1982):8位单片机得巩固发展及16位、32位单片机推出阶段。16位单片机以intel公司生产得mcs-96系列为代表,在片内带有多通道a/d转换器和高速输入/输出(hsi/hso)部件,中断处理和实时处理能力很强。目前单片机的品种众多,其中性能优良的8位单片机在今后若干年内仍然将是工业检测、控制应用领域中的主角。2单片机的特点:(1)小巧灵活、成本低、易于产品化。能利用它方便地组装成各种智能式测控设备及各种智能仪器仪表,很容易满足仪器设备既智能又微型化的要求。(2)可靠性高、适用的温度范围宽。单片机芯片一般是按工业测控要求设计的,能适应各种恶劣的环境。这一点是其他机种无法比拟的。(3) 易扩展、控制能力强。通过单片机本身或扩展可以方便地构成各种规模地应用系统及多机和分布式计算机控制系统。(4) 指令系统相对简单,较易掌握,且指令中又较丰富地逻辑控制功能指令,能较方便地直接操作外部输入输出设备。由于单片机具有功能强、体积小、可靠性好和价格便宜等独特优点,已成为传统工业技术改造和新产品更新换代的理想机种,具有广泛的发展前景。单片机技术的应用,使得许多领域的技术水平和自动化程度大大提高,可以说,当今世界正面临着一场以单片机(微电脑)技术为标志的新技术革命。3.2.2 时钟电路和复位电路1.时钟产生电路片内电路与片外器件就构成一个时钟产生电路,cpu的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2mhz24mhz之间选取。c1、c2是反馈电容,其值在20pf100pf之间选取,典型值为30pf。本电路选用的电容为30pf,晶振频率为12mhz。振荡周期;机器周期指令周期。xtal1和xtal2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。即用来连接8051片内osc的定时反馈回路,如图3.5所示。石英晶振起振后要能在xtal2线上输出一个3v左右的正弦波,以便使mcs-51片内的osc电路按石英晶振相同频率自激振荡。通常,osc的输出时钟频率fosc为0.5mhz-16mhz,典型值为12mhz或者11.0592mhz。电容c1和c2可以帮助起振,典型值为30pf,调节它们可以达到微调fosc的目的。2单片机复位电路图3.6为单片机复位电路。单片机在开机时都需要复位,以便中央处理cpu以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的rst引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位。mcs-51单片机的rst引脚是复位信号的输入端。例如:若mcs-51单片机时钟频率为12mhz,则复位脉冲宽度至少应该为2s。图3.5时钟电路 图3.6复位电路3.3显示电路液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。此次使用的是字符型液晶模块1602c,该模块是一种用5x7点阵图形来显示字符的液晶显示器,能够显示2行16个字符。1602采用标准的16脚接口,其中:第1脚:vss为地电源。第2脚:vdd接5v正电源。第3脚:v0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。图3.7液晶显示接口电路第4脚:rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:rw为读写信号线,高电平时进行读操作,低电平时进行写操作。当rs和rw共同为低电平时可以写入指令或者显示地址,当rs为低电平rw为高电平时可以读忙信号,当rs为高电平rw为低电平时可以写入数据。第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。第714脚:d0d7为8位双向数据线。第1516脚:空脚,也可以15脚接5v正电源16脚接地,控制lcd背景光。3.4 报警与控制电路该部分是单片机和外部报警与控制的接口部分,主要起报警、执行和电气隔离作用,其电路图如图3.8所示。继电器采用srd-d6vdc-sl-c型,240ac通断ta的电流。其直流线圈电阻95欧,三极管q1采用ktc9012,输出电流ic为150ma,放大系数为60至1000范围内,若取为200则ic在5v下为50ma左右,则基极电流为0.25ma。只有p0口在高点位输出时才能达到这样大的电流值。因此把这两个口分别用p0和p01代替。由于p0口属于三态输出输入口,因此,必须接上拉电阻,其阻值大小可计算为: 我们取10千欧的电阻让q1在高电平时饱和导通,此时,基极电流为。二极管d1主要起保护作用,在q1关断时续流,以免电感线圈断路时产生过压损坏三极管。图3.8 继电器、报警与执行电路由于ds18b20自带了存储器,能够将设定的温度报警值自动存入 ds18b20 的 eerom 中,永久保存,因此每次开机时系统都会自动从 ds18b20 的 eerom 读出温度报警值.两个继电器中,k1接的是降温装置,k2接的是加热装置,当实际温度大于 th 的设定值时,蜂鸣器响,表示超温,此时继电器k1吸合,接通降温装置进行降温;当实际温度处于 tl 与th的设定值之间时,继电器常闭。总的原理图和pcb图见附录1、附录2所示。第4章 软件设计4.1主程序主程序完成系统初始化及各个程序之间的联系任务。1 清数据存储区、各集成模块的初始化、确定中断优先权、开中断等。2 完成系统初始化任务后,主程序执行中断等待程序。主程序流程图如图4.1。4.2 温度采集子程序1ds18b20的操作时序对ds18b20软件的设计主要根据其操作时序和控制协议编写的。其时序分为初始化操作时序,读操作时序,写操作时序,分别如图4.2、4.3和4.4所示。2.ds18b20的温度转换关系置中断字清数据区初始化lcd初始化ds18b20设定参数初值开始cpu开中断等待中断ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供以0.0625/lsb形式表达,其中s为符号位。图4.1主程序主程序流程图如图4.1的说明:首先是开始,然后清数据区,设定参数初值,再初始化lcd,初始化ds18b20,接着置中断字,cpu开中断,最后等待中断。图4.2 初始化操作时序图4.3 读操作时序图4.4写操作表4.1 ds18b20的16位符号bit7bit6bit5bit4bit3bit2bit1bit0ls bytebit15bit14bit13bit12bit11bit10bit9bit8ms bytesssssbit7bit6bit5bit4bit3bit2bit1bit0ls bytebit15bit14bit13bit12bit11bit10bit9bit8ms bytesssss表4.1是12位转化后得到的12位数据,存储在18b20的两个8比特的ram中,当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625lsb形式表示。二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07d0h,+25.0625的数字输出为0191h,-25.0625的数字输出为ff6fh,-55的数字输出为fc90h。表4.2是ds18b20输出温度对应的二进制和十六进制数值,图4.5是控制温度转换子程序。表4.2 温度对应值温度值二进制输出十六进制输出125c0000 0111 1101 000007d0h85c0000 0101 0101 00000550h25.0625c0000 0001 1001 00010191h10.125c0000 0000 1010 001000a2h0.5c0000 0000 0000 10000008h0c0000 0000 0000 00000000h0.5c1111 1111 1111 1000fff8h10.125c1111 1111 0101 1110ff5eh25.0625c1111 1110 0110 1111fe6fh55c1111 1100 1001 0000fc90h由于ds18b20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作按协议进行。ds18b20的一线工作协议流程是:初始化rom操作存储器操作指令数据传输。每进行一次操作都要遵守这一协议流程。这一过程可以从getwd子程序的框图4.6来表达。它的过程可具体描述为主机的总线低电平持续时间480至900微秒然后释放总线,等60微秒后读总线是否为低,为低电平表示器件ds18b20反馈存在信号等待主机的下一步操作。2初始化子程序流程图如图4.7所示。该图中每一个具体操作除初始化外都是通过命令的方式实现的。如表4.1所示。读操作子程序是主机先发出低电平维持等待6ns释放总线,再等待8ns读入数据。在写操作子程序则为使总线常产生一个由高到低的阶段,保持低电平16ns方式向总线写数据等待40ns以保持写过程持续60ns,然后重复以上操作。图4.6 ds18b20getwd子程序框图初始化ds18b20发skip rom的命令启动转换初始化skip rom读lsb读msb返回发温度转换指令完 成开 始等待响应yn图4.5温度转换子程序 读beh从ram到单片机写4eh从单片机到ds18b20拷贝48h从ds18b20到内部ram到内部eramsikpromcch跳到rom区直接操作存储器启动转换44h启动ds18b20开始转换温度表4.3 命令的方式 开 始主机发低脉冲等待回应释放总线初始化完成置标志位清标志位图3.6图4.7 ds18b20初始化子程序y4.3数据处理子程序数据处理部分使用的器件是mcs-51系列单片机at89c51,它自带8k的flash程序存储器,它的核心处理单元为8位。数据处理主要是对数字温度传感器采集温度数据,并进行逻辑判断,根据数据的具体情况输出到lcd显示和使继电器动作。这部分包括三个方面的工作,主要由三个子程序来完成,分别为getwd、data-pro和ztbj。从这个子程序读出的数据由两个字节组成,高字节为35h,低字节为34h,数据格式如表4.3所示。处理过程如框图4.8所示。首先,把高位字节不带进位位cy左移四位,再与f0h相与,最后把低四位置零,高四位保持不变,将所得结果存储起来。低位字节的处理是:先将该字节高低四位相互交换,存储该字节在r3中,然后将这个数据与0fh相与去除高四位,最后将这个低位字节与处理后的高位字节相或,将高低位字节最后处理为一个字节,除去最高位符号位,后七位就是要显示的数据,存储在36h中。最后把r3中数据取出,带进位位左移一位,判断其进位标志位c是否为“1”,若为“1”则把数字5存储在37h中,供lcd显示测量值小数部分。否则把37h中置零。到此,整个数据处理过程到此结束。 图4.8数据处理子程序处理测量数据高位数据保存字节合并处理测量数据低位返回开始4.4 1602c显示子程序液晶显示器采用目前使用的比较广泛的字符型液晶显示器1602c。1602液晶模块内部的字符发生存储器(cgrom)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“a”的代码是01000001b(41h),显示时模块把地址41h中的点阵字符图形显示出来,我们就能看到字母“a”。1602液晶模块内部的控制器共有11条控制指令,如表4.4所示它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平) 指令1:清显示,指令码01h,光标复位到地址00h位置。指令2:光标复位,光标返回到地址00h指令3:光标和显示模式设置 i/d:光标移动方向,高电平右移,低电平左移指令4:显示开关控制。d:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 c:控制光标的开与关,高电平表示有光标,低电平表示无光标 b:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位 s/c:高电平时移动显示的文字低电平时移动光标指令6:功能设置命令 dl:高电平时为4位总线,低电平时为8位总线 n:低电平时为单行显示,高电平时双行显示 f: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符表4.4控制指令指令rsr/wd7d6d5d4d3d2d1d0清显示0000000001光标返回000000001*置输入模式00000001i/ds显示开/关控制0000001dcb光标或字符移位000001s/cr/l*置功能00001dlnf*置字符发生存储器地址0001字符发生存储器地址(acg)置数据存储器地址001显示数据存储器地址(add)读忙标志或地址01bf计数器地址(ac)写数到cgram或ddram10要写的数据从cgram或ddram读数11读出的数据表4.4 1602控制指令指令7:字符发生器ram地址设置 指令8:ddram地址设置 指令9:读忙信号和光标地址bf:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙 指令10:写数据 指令11:读数据 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表4.5是dm-1602的内部显示地址。表4.5 dm-1602内部显示地址12345678910111213141516000102030405060708090a0b0c0d0e0f第一行404142434445464748494a4b4c4d4e4f第二行初始化子程序的框图如图4.9所示。在初始化子程序中,操作非常简单,主要是对lcd发出初始化控制命令,然后开显示器,写入数据,初始化过程就算完成。执行显示命令清屏并光标复位液晶显示应答否单片机发写命令开始准备写入数据否是图4.9 lcd初始化子程序初始化子程序说明:首先开始,然后清屏并光标复位,单片机发写命令,再液晶显示应答。如果回答否,再回到清屏并光标复位,开始以为是继电器坏了,经检查,原来是没有给控制加热和降温装置的继电器供电,后来接上电源后问题就得到了解决。单片机发写命令,再液晶显示应答,如果回答是,再准备写入数据,最后执行显示命令。4.5 输出驱动子程序如图4.10。由两个比较程序组成。把测量值和设定值比较,低于最低设定值就加热高于最高设定值就制冷。在最小设定值和最大设定值之间继电器不动作处于保持状态。开 始返 回开 始加 热返 回取温度测量值测量值与最小设定值比较图4.10输出驱动子程序框图小取温度测量值测量值与最大设定值比较大制 冷输出驱动子程序如图4.10所示说明:首先开始,然后取温度测量值测量值,再把取得的温度值与最大设定值比较,如果大于设定值就制冷,最后返回。 首先开始,然后取温度测量值测量值,再把取得的温度值与最小设定值比较,如果小于设定值就加热,最后返回。源程序见附录3所示。第5章 安装调试与结果5.1 安装调试这次毕业设计方案,使用的主要器件温度传感器ds18b20和液晶显示器1602c都是可以直接输出和接收数字信号的,因此省略了很多的模拟电路,使得硬件结构看起来非常的简单、明了,同时也极大的减少了因为电路复杂而带来的各种影响。虽然电路简单,但是在调试过程中还是遇到了很多问题:1.复位按键不起作用,经检查,发现原来是电源没有接上去,后来将电源接上后问题解决。2.液晶显示器上没有显示出温度,经检查,发现原来是温度传感器ds18b20因为正负极接反了所以烧坏了,后来换了温度传感器ds18b20问题就解决了。3.显示部分没有显示,接通电源后只有液晶显示器的背景灯会亮,但是没有其它显示。刚开始以为是程序不对或是温度传感器烧坏了,可是测量后都是没问题。后来经检查才发现原来是液晶屏烧坏了,换了另一块液晶屏后问题就解决了。4.继电器后面接了接线柱是用来接加热装置和降温装置的,继电器相当于接通加热和降温装置的开关。接通电源后加热和降温装置不起作用,开始以为是继电器坏了,经检查,原来是没有给控制加热和降温装置的继电器供电,后来接上电源后问题就得到了解决。 5.2 结果显示 1温度显示界面:液晶显示时每一行为显示温度值,第二行是设计者,要实现滚动屏。具体功能如下:通过一线温度传感器ds18b20采集温度,通过液晶1602在第一行显示出来,第二行显示设计者滚动出现。2上、下限温度:本设计的上、下限温度是在程序里设计好的。th:40 tl:38th:40 高位报警值tl:38 低位报警值4. 报警状态的显示:(1)、当实际温度小于 th 的设定值时, lcd1602 显示: wendu:19.2th design: yrongmei 蜂鸣器响,表示超温。此时继电器k1吸合,进行降温(3)、当实际温度小于 th 大于tl的设定值时,lcd1602 显示:wendu:39design: yrongmei关闭两个继电器,此时处于保持状态。实物图见附录4所示。第6章 总 结该基于单片机的鸡雏恒温孵化器的设计主要是用于控制孵化厂的温度。本设计有读数方便,测温范围广,测温准确,小巧美观,便于携带,系统简单使用,经济合理等要求。针对上述要求该基于单片机的鸡雏恒温孵化器的设计选用的元器件都具有非常高的集成度,省去了很多不必要的外围电路,使得整个电路看起来结构非常的简单。譬如温度传感器的选择,如果使用ad590的话,直接的影响,就是系统要增加一个a/d转换器,而由于外围电路的增加,单片机的i/o口必定不够,因此还需要再加一块8155芯片来扩展,这样整个电路看起来就会复杂很多,同时对系统的性能也会有一定的影响。致 谢在此次的设计过程中,沈娟萍老师对我精心辅导与严格要求,使我的设计得以顺利完成。她的严谨治学的态度、创新的思维、无私奉献的精神深深影响着我。她让我知道了如何成为一名科学工作者、如何做学问、如何合理的设计自己的学习和工作计划。在此表示衷心的感谢!其次要感谢所有教育过我的老师!你们传授给我的专业知识是我不断成长的源泉,也是完成本论文的基础。我还要向关心和支持我学习的朋友们表示真挚的谢意!感谢他们对我的关心、关注和支持!并在此感谢我们实验室的同学的热心帮助,在他们的协助下我圆满完成这次毕业设计。感谢机电工程分院为我提供最新的实验设施和优越的实验环境,使我的设计达到理想效果。参考文献1 杨恢先 黄辉先.单片机原理及应用m.长沙:国防科技大学出版社,2003.2 阳宪惠.现场总线技术及其应用m.北京:清华大学出版社,1999.3 张友德等.单片机原理应用与实验m.上海:复旦大学出版社,2000.4 李朝青.单片机原理及接口技术m.北京:北京航空航天大学出版社,1996.5 阎石.数字电子技术基础m.北京:高等教育出版社,1998.6 陈玉宏 向凤红.自动控制原理m.重庆:重庆大学出版社,2003.7 吴涛 林涛. 智能温度控制系统j.北京: 电子测量技术2005年第一期,2005.8 杨帮文.新编传感器实用宝典m.北京:机械工业出版社,2005.9 何希才.传感器应用接口电路m.北京:机械工业出版社,1997.10 沙占有.智能化集成温度传感器原理应用m.北京:机械工业出版社,2002.11 刘畅生.传感器简明手册及应用电路-温度传感器分册m西安电子科技大学出版社, 2005.附录1原理图附录2 pcb图附录3 源程序rs equ p3.0 rw equ p3.1 e equ p3.5 temper_l equ 29htemper_h equ 28hflag1 equ 38h;是否检测到ds18b20标志位a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置xs equ 30h;小数单元hs equ50hbs equ51horg 0000h ljmp start org 0030hstart:mov hs,#00hmov bs,#00hmov r5,#01hmov p1,#01h;清除屏幕lcall enable mov p1,#38h;8位点阵方式lcall enable mov p1,#0fh;开显示 lcall enablemain:lcall get_temper;调用读温度子程序mov a,29hmov b,aclr crlc aclr crlc aclr crlc aclr crlc aswap amov 31h,amov a,bmov c,40h;将28h中的最低位移入crrc amov c,41hrrc amov c,42hrrc amov c,43hrrc amov 29h,alcall display;调用液晶显示子程序jnb p2.0,tbaoajmp main; 这是ds18b20复位初始化子程序tbao:jnb p2.0,$setb f0ajmp main; 这是ds18b20复位初始化子程序;*init_1820:setb p2.6nopclr p2.6;主机发出延时537微秒的复位低脉冲mov r1,#3tsr1:mov r0,#107djnz r0,$djnz r1,tsr1setb p2.6;然后拉高数据线nopnopnopmov r0,#25htsr2:jnb p2.6,tsr3;等待ds18b20回应djnz r0,tsr2ljmp tsr4 ; 延时tsr3:setb flag1 ; 置标志位,表示ds1820存在ljmp tsr5tsr4:clr flag1 ; 清标志位,表示ds1820不存在ljmp tsr7tsr5:mov r0,#117tsr6:djnz r0,tsr6 ; 时序要求延时一段时间tsr7:setb p2.6ret; 读出转换后的温度值;*get_temper:setb p2.6lcall init_1820;先复位ds18b20jb flag1,tss2ret ; 判断ds1820是否存在?若ds18b20不存在则返回tss2:mov a,#0cch ; 跳过rom匹配lcall write_1820mov a,#44h ; 发出温度转换命令lcall write_1820;这里通过调用显示子程序实现延时一段时间,等待ad转换结束,12位的话750微秒lcall displaylcall init_1820;准备读温度前先复位mov a,#0cch ; 跳过rom匹配lcall write_1820mov a,#0beh ; 发出读温度命令lcall write_1820lcall read_18200; 将读出的温度数据保存到35h/36h ret;写ds18b20的子程序(有具体的时序要求);*write_1820:mov r2,#8;一共8位数据clr cwr1:clr p2.6mov r3,#6djnz r3,$rrc amov p2.6,cmov r3,#23djnz r3,$setb p2.6nopdjnz r2,wr1ret; 读ds18b20的程序,从ds1

温馨提示

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

评论

0/150

提交评论