智能电热水器
更新时间:2024-06-14 13:36:01 阅读量: 综合文库 文档下载
智 能 家 用 电 热 水 器 控
制 小队成员系 统 总 结 报
告
孙飞虎陶贻林 赵书杰
:
第一章 系统总体设计 ..................................................................................................................... 3
第一节 系统概述 ..................................................................................................................... 3 第二节 硬件总体选型 ............................................................................................................. 4
一、主要元器件选型原则 ............................................................................................... 4 二、主要元器件选型 ....................................................................................................... 4 第三节 软件总体设计 ............................................................................................................. 5
一、单片机系统资源分配 ............................................................................................... 5 二、系统软件总体设计 ................................................................................................... 6 第四节 本章小结 ..................................................................................................................... 7 第二章 系统实现 ............................................................................................................................. 9
第一节 硬件设计 ..................................................................................................................... 9
一、电源电路设计 ........................................................................................................... 9 二、单片机最小系统电路设计 ..................................................................................... 10 三、人机交互电路设计 ................................................................................................. 11 四、水位控制电路设计 ................................................................................................. 13 五、温度控制电路设计 ................................................................................................. 14 六、漏电检测电路设计 ................................................................................................. 16 七、声音提示模块 ......................................................................................................... 17 第二节 软件设计 ................................................................................................................... 18
一、液晶显示程序设计 ................................................................................................. 18 二、按键扫描程序设计 ................................................................................................. 20 三、水位控制程序设计 ................................................................................................. 21 四、温度控制程序设计 ................................................................................................. 21 五、漏电检测及声音提示程序设计 ............................................................................. 24 六、控制策略程序设计 ................................................................................................. 24 第三节 本章小结 ................................................................................................................... 25 第三章 系统测试与分析 ............................................................................................................... 26
第一节 硬件调试 ................................................................................................................... 26
一、静态调试 ................................................................................................................. 26 二、动态调试 ................................................................................................................. 27 第二节 软件调试 ................................................................................................................... 28
一、先独立后联机 ......................................................................................................... 28 二、先分块后组合 ......................................................................................................... 28 三、先单步后连续 ......................................................................................................... 29 第三节 仿真演示 ................................................................................................................... 29
一、仿真软件简介 ......................................................................................................... 29 二、系统仿真测试过程 ................................................................................................. 31 第四节 本章小结 ................................................................................................................... 33 五、其它 ................................................................................................................................. 52
第一章 系统总体设计
第一节 系统概述
智能电热水器控制器(以下简称控制器)用于控制热水器在安全状态下工作,控制热水器水位、水温度,并且将检测到的信号测量值通过液晶显示屏显示,实现电热水器的控制功能。
根据控制器所需完成的控制功能,控制系统模块框图如图2.1所示。包括电源模块、52单片机最小系统模块、人机交互模块、水位控制模块、温度控制模块、漏电检测以及声音提示模块等七个模块。其中,电源模块为系统提供+9V;52单片机最小系统模块是整个系统的核心控制部分,用于完成系统的控制功能;人机交互模块实现单片机和外部的信息传递,包括液晶显示模块和按键模块,通过这两个模块进行系统控制策略的选择;水位控制模块实现水位的检测和控制,包括水位检测电路和电磁阀控制电路;温度控制模块实现温度的检测和控制,包括温度检测电路和加热电路;漏电检测模块用于检测是否漏电,使热水器在安全的状态下使用;声音提示用于发音提示热水器当前状态。
电源模块人机交互模块温度控制模块漏电检测模块52单片机最小系统水位控制模块声音提示模块
图1.1系统模块框图
本系统采用52单片机为核心控制器对整个系统进行控制,其控制过程如下:首先通过人机交互模块设定系统的控制策略,接着通过水位控制模块对电磁阀进行进水控制,同时通过水位检测模块检测水箱中水位,然后通过温度控制模块对加热电阻进行控制,同时通过温度检测模块检测水箱中温度,并实时通过显示模块将水位、温度信号测量值发送给液晶显示屏显示,实现对热水器的控制。
第二节 硬件总体选型
一、主要元器件选型原则
元器件选择必须要紧密结合功能需求和应用对象。主要元器件的选择在考虑满足功能需求的同时,还必须要保证在特定环境下的稳定性能,同时还必须尽量降低成本。
CPU的选择具备以下特点:存储器空间至少大于4K;具有至少一个外部中断源;具有至少一个定时计数器;可编程I/O口。
液晶显示屏要求编程简单,能显示温度和水位等信息,价格低廉。水位监测装置要求安装简单,价格低廉。
温度传感器要求低电压供电、测温范围宽、安装简单、还要求数据为串行方式以节约单片机端口资源。
漏电检测模块中需要漏电电流互感器。由于泄漏电流通常为毫安级,且必须用一匝穿芯的结构,用常规互感器在如此小的安匝数下很难进行测量。
二、主要元器件选型
ST公司生产的基于51内核的8
位微处理器,片内有8K的Flash,3个定时器/计数器;2个外部中断,32个可编程I/O线,8个中断源,一个串口通信模块等资源[3],可以满足本系统CPU的要求;
② LCD1602:显示2行,每行16个字符。每个字符由5×7
① STC89C52RC:该芯片是
点阵构成[4]。
③ DS18B20:温度测量范围为-55℃~+125℃,可编程为9位~12位转换精度,测温分辨率可达0.0625℃,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存[5]。由于使用单总线通信方式,节省IO口资源。
④ 水位监测装置:用3根导线和一根地线,导线分别置于水箱内的3种不同高度的位置,当某根导线不接触水面时,其输出为高电平;当其与水面接触时则输出低电平。它们的输出接至CPU的引脚,CPU对这些引脚进行判断决定是否继续上水,这种方法省去了传统的A/D转换器。
⑤ 漏电互感器简介:漏电保护器主要由检测元件、中间环节、执行机构及自检装置等部分组成。漏电保护器的检测元件就是漏电电流互感器检测出的漏电电流信号,经中间机构放大,推动执行机构动作,切掉电源,达到安全保护的目的[7]。
第三节 软件总体设计
从图2.1可以看出本应用涉及的输入输出通道较多,因此在设计中考虑到了单片机的I/O通道的充分利用。对于只需要基本输入/输出功能的模块尽量不使用单片机特殊功能模块的专用引脚。本系统软件部分实现对热水器的控制工作,包括人机交互、水位的控制、温度的选择和安全检测等功能。
一、单片机系统资源分配
单片机系统资源分配如表2.1所示,列出了本系统使用52单片机的所有的I/O资源。包括人机交互模块、水位控制模块、温度控制模块、漏电检测模块以及声音提示模块等五个模块。
表2.1 单片机系统资源分配
编号 模块名称 系统I/O资源占用表
接口功能定义 液晶显示模人机交互模1 块 块 按键扫描 水位控制模2 块 温度控制模3 块 漏电检测模4 外部中断0 块 声音提示模5 块 蜂鸣器控制线 P2.3 P3.2 水位检测 电磁阀 温度传感器 加热电路 P2.4-P2.7 P1.0-P1.3 P2.2 P2.0 P2.1 P0.0-P0.7、P3.4、P3.5 52单片机接口 在系统主要元器件选型确定之后,对单片机端口资源进行了定义,本系统中单片机端口主要用于五个模块,其中人机交互定义了液晶和按键扫描线,液晶显示定义了LCD1602控制线和数据线,需要十个端口,按键扫描需要四个按键,采用独立按键方法设计电路,因此需要四个端口;水位控制模块中定义了水位检测数据线和电磁阀控制线;温度控制模块定义了DS18B20控制线和加热电路的控制线;漏电检测线接到单片机内部自带的外部中断接口;声音提示模块也定义蜂鸣器的控制线。在完成以上端口资源定义之后就确定了核心控制器和外围设备的连接方式,下一步的工作就是进行外围电路的设计。
二、系统软件总体设计
系统软件设计时采用模块化程序设计的方法,按照系统的结
构与各部分的功能,将整个程序也划分为多个功能模块部分,分别进行编程,然后装配在一起。系统软件部分主程序流程图如图2.2所示。
开始初始化开中断YES是否漏电NOLCD显示程序按键处理程序水位检测程序打开进水阀声音报警是设定水位吗YES温度检测程序是设定温度吗NOYES关热水器加热NO
图2.2 系统软件部分主程序流程图
系统软件部分主要实现对热水器的控制工作,由液晶显示程序、按键扫描程序、水位控制程序、温度控制程序、漏电检测及声音提示程序和控制策略程序等七个部分组成。其中,液晶显示程序显示热水器当前温度和水位;按键程序用于设置热水器状态;水位控制程序控制水箱的水位;温度控制程序控制热水器中水的温度;漏电检测及声音提示程序用于实时监测热水器安全状态,用于当热水器工作异常时声音报警提示作用。
第四节 本章小结
本章首先总体对热水器控制器系统进行了描述,在确定控制参数的基础上,详细介绍了控制器的各功能组成模块及工作原理。根据实现功能提出了系统硬件主要元器件选型原则,总体描述了选取的主要元器件,并对主控芯片的引脚进行定义。最后对系统软件部分进行了总体说明,根据控制策略设计软件主程序流程图,主要包括水位控制程序设计、水温控制程序设计、人机交互程序设计和漏电检测以及声音报警提示程序设计等。
第二章 系统实现
第一节 硬件设计
本系统硬件部分包括电源电路、STC89C52单片机最小系统电路、人机交互电路、水位控制电路、温度控制电路、漏电检测电路以及声音提示电路等七部分。电源电路为系统提供+9V;人机交互电路负责单片机和外界信息的交流;水位控制电路实现控制水的液位;温度控制电路实现控制水温度;漏电检测电路负责检测热水器是否在安全的状态下运行;声音提示电路负责热水器在非安全状态下时发出声响提示。
硬件设计部分主要完成以上电路的设计,包括各个电路的理论分析以及各个电路与单片机的连接等等。
一、电源电路设计
本系统需要两种电源,分别是+5V和+9V。+5V用于52单片机、人机交互电路、温度检测电路、水位检测电路、漏电检测电路等;+9V用于温度控制部分继电器线圈和水位控制部分电磁阀。本系统+9V电源直接通过外接9V的电源得到。
220V转9V电路
二、单片机最小系统电路设计
STC89C52RC单片机最小系统包括52单片机芯片、时钟电路和复位电路。本系统52单片机芯片采用STC89C52RC,该芯片内部有2个16位向上计数定时/计数器,有四种工作方式;5个中断源;一个串口通信接口;32个I/O口;内部RAM有256字节;内部ROM有8K字节[9]。时钟电路通过内部时钟源提供时钟,外部只需要接一个振荡电路,振荡电路中的晶振频率是12MHz。复位电路采用按键复位方式,当单片机复位引脚检测到至少24个时钟周期的高电平时会自动复位系统,系统会重新启动[10]。STC89C52单片机最小系统设计原理图如图3.2所示。
+5VCCP10P11P12P13P14P15P16P17P33P32P35P34VCC1234567813121514311918RESP37P3691716U4P10P11P12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWRSTC89C52RCRXDTXDALE/PPSEN10P3011P313029P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P2739383736353433322122232425262728P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27P00P01P02P03P04P05P06P07123456789R18Comkey1CC410uRESR35.1k10k复位电路C530pCY112MHZBC630p 图3.2 STC89C52单片机最小系统电路图 本作品采用成品单片机最小系统 三、人机交互电路设计 键盘与显示部分是用户和热水器之间进行信息传递的界面,用户主要通过键盘实现对热水器的控制操作,并通过显示界面了解热水器的工作参数与状态。用户通过键盘进行操作水温度。显示部分显示设定水温度和当前热水器工作状态。另外在用户查看或进行操作设定时提示用户当前显示的是什么数值项。 1、液晶显示电路 液晶显示屏采用LCD1602。由于不需要从LCD1602读取数据,直接将液晶屏的读1/写选择端(RW)接地,表示始终选择写数据状态。所以该电路中需要引出10根线控制LCD1602,这10根线分别是数据/命令选择端(RS)、使能端(EN)以及8根数据线。图3.3是LCD1602的控制电路。接口说明如下:
① 液晶1,2端为电源;15,16为背光电源; ② 液晶3端为液晶对比度调节端,通过一个10k电阻接地来调
A2节液晶显示对比度。
③ 液晶4端为向液晶控制器写数据/写命令选择端,接单片机的P3.5口。
④ 液晶5端为读/写选择端,因为不从液晶读取任何数据,只向其写入命令和显示数据,因此此端始终选择为写状态,即低电平接地。
⑤ 液晶6端为使能信号,是操作时必需的信号,接单片机的P3.4口。 3⑥ 其余7~14为数据口,接单片机P0口[11]。 U21602_1VSSVDDEND0D1D2D3D4D5D6D7+BLVLRSR/W12345678190+5P35P34P00P01P02P03P04P05P06P07111213141516BL-+5R110k 图3.3 LCD1602的控制电路 2、按键电路 本设计中的键盘采用独立式键盘,每个按键占用单片机一个I/O口。本系统有4个独立的按键,用于用户向控制器发送数据。这四个按键的功能分别是功能选择按键、加1按键、减1按键和确认按键。按键电路原理图如图3.4所示[12]。 VCCR45.1kR55.1kR65.1kR75.1kLED4LED3LED2LED1P24功 能 选 择 键加 1 键P25减 1 键P26确 认 键P27 图3.4 按键电路图 四、水位控制电路设计 根据电热水器功能需要,将水位控制电路分为水位检测电路和电磁阀进水电路两部分进行独立设计。其中水位检测电路采用自制传感器,实现低成本水位检测。 1、水位检测电路 水位传感器可以自制,用3根导线和一根地线,在电极间加电流,电路简单,当某根导线不接触水面时,其输出为高电平;当导线与水面接触时则输出为低电平。送去显示相应的水位值,这种方法省去了传统的A/D转换器。 22、电磁阀进水电路 电磁阀进水电路如图3.6所示。驱动电路采用达林顿管驱动继电器,实现单片机端口控制电磁阀电路。其中继电器选用JQC-16F,线圈电压为5V,触点部分可以承受14V20A的直流电[13]
。图中的Q1是达林顿管,型号是TIP122[14],进行强弱电的隔离实现继电器的控制,其中D5是二极管起续流保护作用。R19起到提高单片机端口驱动能力。该电路的工作过程如下,当P22端口为高电平时,NPN达林顿三极管导通,驱动继电器线圈产生电磁场,此时继电器的衔铁被吸下,使得电磁阀接入9V电源,电磁阀电路处于导通状态,电磁阀工作打开进水口。反之,P22
为低电平时,电磁阀电路处于断开状态,进水口关闭[15]。 电磁阀通电时,处于导通状态;电磁阀断电时,处于关断状态。 +12VU5RELAY-12VJ2R1910kP22R211kQ1AGND12VALVED5VCC 图3.6 电磁阀进水电路 五、温度控制电路设计 在传统的温度测量系统中,一般采用热电偶或铂电阻进行温度测量。在这些电路中,有这样一些问题必须解决:为了进行准确的温度测量,必须给铂电阻提供一个良好的恒流源;由于热电偶出来的信号是模拟信号,所以此信号在送给CPU之前必须先进行A/D转换,然后再送给CPU进行处理;并且热电偶的信号很微弱,只有十几毫安,因此在A/D转换之前通常还需要进行增Title益放大,因此,采用热电偶和铂电阻进行温度测量,需要考虑很SizeNumber多问题,构成的系统也比较复杂。 A4DALLAS公司推出的数字式温度传感器DS18B20很好地解Date:3-Jun-2010 决了这样一些问题,DS18B20采用单总线接口,只需占用单片File:D:\\桌面\\全部原理图设计(12.3).ddb3机的一个I/O口,其外围电路也非常简单。并且DS18B20将测得的温度信号转换为数字量输出,可以与单片机直接相连,而不需进行信号放大和A/D转换,大大简化了电路的设计,因此系统采用了DS18B20作为温度传感器进行温度采集。 1、温度检测电路
使用DS18B20温度传感器采集温度,DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完
成。DS18B20的电源供电方式有2种:外部供电方式和寄生电源方式。外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证温度量精度。无论是内部寄生电源还是外部供24电,I/O口线要接10KΩ左右的上拉电[16]。在这里采用外部供电方式供电。DS18B20与芯片连接电路如图3.7所示: Sensor1DS18B20123VCCP20R810kD 图3.7 DS18B20温度检测电路图 2、加热电路 由于单片机端口驱动能力很弱,加热电路采用继电器控制方式,操作方便。其中加热器件参数是12V/45W(实际加热棒为220V/1.5kW),由外部9V电源直接给加热器件提供电压。加热C电路如图3.8所示,原理同电磁阀控制电路。 +12VU6REL-12VVCCR2010kP21R221kQ2D6加热电阻AGNDR23 图3.8 加热器件控制电路图 B
六、漏电检测电路设计 1、漏电检测原理
热水器工作环境潮湿,为了保证使用者安全,控制器应具备漏电检测功能。检测原理如图3.9所示,将火线和中线同时穿过一个环形磁芯,作为漏电互感器的初级线圈,次级线圈数百匝输出漏电信号。当系统没有漏电时,电源输入线中的火线电流与中线电流完全平衡,次级漏电信号为零。当系统发生漏电现象时,火线电流与中线电流将失去平衡,其合成电流就是漏电电流,次级漏电信号的大小和漏电程度成正比[24]。
图3.9 漏电检测原理
2、漏电检测电路
漏电检测电路如图3.10所示,设计使用一片LM358(双运放)。第一个运放作放大器,第二个运放作比较器。为了在5V电源下正常工作,将比较器的参考电平(D点)选定为2.5V左右,运放的参考电平(B点)选定为3V左右,这可以通过R19=3.9K,R15=1K,R2=5.1K来实现。漏电互感器输出的信号加在A和B两点。当没有漏电时,A、B、C三点电位相同(3V左右),比较器输出高电平。当有漏电现象时,C点出现放大的漏电信号,信号的负半波将C点的电位从3V向下拉低,只要漏电到达一定的程度,就可以使C点的电位在某时刻低于D点的电位,使比较器输出低电平,其下降沿就可以作为单片机的外部中断信号,使系统及时做出反映,切断电源,避免出现严重后果。
定量分析:设允许最大漏电流为IL(通常为数毫安,具体数
据可查阅相关),规定漏电互感器次级的匝数为N,则次级电流为IL/N,产生的信号电压为R11IL/N,放大器的放大倍数为K=VC-VBR15+R16=VA-VBR15,则C点最大下拉幅度为2KR11ILN,产生漏电中断的条件是[26]: CR152KR11IL=VCC NR19+R15+R12实验调试用一根导线穿过漏电互感器,从中通过数毫安的交流电流(不必用220V高压,只需用几伏特的低压交流电源串联一个电阻就可以)。R11可选择1K。左右调节可调电位器R18,可4调节放大器的放大倍数或R15,直到出现中断信号为止。 +5R131k13R111kR141k+5R173.9kR151k56漏电报警灯(红)U3BLM3587P32D8D42U3ALM358互感器L2AGNDR121kR16100kB4R25.1kAGND 图3.10 漏电检测电路 七、声音提示模块 蜂鸣器发声驱动电路原理图如图3.11所示。因为单片机的I/O口驱动能力弱,所以采用PNP三极管扩流电路驱动蜂鸣器,当P23口输出低电平时,Q3导通,蜂鸣器发出声音。反之,蜂鸣器不C发声。 +5Q3BELL1SPEAKERAR910KP23 图3.11 声音提示电路图
第二节 软件设计
系统软件设计时采用模块化程序设计的方法,按照系统的结构与各部分的功能,将整个程序也划分为多个功能模块部分,分别进行编程,然后装配在一起。系统软件部分主要实现对热水器的控制工作,由液晶显示程序、按键扫描程序、水位控制程序、温度控制程序、漏电检测及声音提示程序和控制策略程序等七个部分组成。
一、液晶显示程序设计
本设计使用的1602液晶为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置128个字符的ASCII字符集字库,只有并行接口,无串行接口。液晶屏LCD1602的显示模式一般设置为16×2显示,5×7点阵,8位数据接口显示状态;光标显示可按实际需要和个人偏好设定。 1、写操作时序图
图3.13是LCD1602写操作时序图,分析可知操作LCD1602液晶的流程如下:
① 通过RS确定是写数据还是写命令。写命令包括使液晶的光标显示/不显示、光标闪烁/不闪烁、需/不需要移屏、在液晶的什么位置显示等等。写数据是指要显示的内容。
② 读/写控制端设置为写模式,即低电平。 ③ 将数据或命令传送数据线上。 ④ 给E一个高脉冲将数据送入液晶控制器,完成操作。
关于时序中的延时基本都为纳秒级,单片机操作最小单位为微秒级,因此在写程序时可以不做延时。
图3.13 LCD1602写操作时序图
2、初始化过程
LCD1602初始化包括初始化以下寄存器:显示模式寄存器、光标设置寄存器和移屏寄存器。显示模式寄存器通常设置16×2显示,5×7点阵,8位数据口;光标设置可以设置是光标显示或者是光标不显示方式;整屏移动可以设置整屏移动或者不移动。LCD1602初始化程序流程图如图3.14所示。
初始化1602入口清屏设置显示模式显示位置设置设置光标寄存器子程序结束移屏寄存器 图3.14 LCD1602初始化程序流程图
3、向LCD1602发送数据程序设计
该子程序用于将8位数据发送至LCD1602控制器,图3.15是该程序流程图。该程序的执行过程如下:首先选中数据显示的地址,然后输入要显示的数据,当调用完以下两个子函数,就会在对应的位置显示,实现对LCD1602的操作。
向1602发送数据入口YESNOy=0DBPort=0x80|xDBPort=0x80|(x-0x40)NO*str!='\\0'YES输出显示子程序结束 图3.15 向LCD1602发送数据程序流程图
二、按键扫描程序设计
按键信号处理包括三个方面的内容,分别是检测并判断是否有按键动作,确定按键的键值和根据所按键值做出一系列的针对性处理,即按键响应。考虑到用户在进行按键操作时,按下及松开的瞬间都容易产生抖动现象,造成单次按键操作时按键端口电平多次跳变。另外输入信号在按键已经闭合或断开的稳定期也可能存在干扰窄脉冲,也要采取措施加以克服。硬件法和软件法都可以克服按键的抖动与窄脉冲干扰影响,采取硬件措施需要增加额外的元件,本设计采用软件措施完成去抖动与防干扰处理。本设计采用定时中断扫描的方式进行按键检测,通过单片机的定时中断,每隔10ms扫描一次按键端口状态,按键检测过程中无需一直监视按键端口或执行额外的延时程序,节省了单片机的CPU资源和中断资源。按键扫描程序流程图如图3.16所示。
按键扫描程序入口初始化按键位是否为0YES定时器延时8ms按键位是否为0返回标志位子程序结束NONO
图3.16 按键扫描程序流程图
三、水位控制程序设计
水位控制程序设计主要是对水位采集程序的设计,水位采集程序主要是对单片机端口的设置。由于是开关量的检测,即当端口检测到低电平,则表示水位上升到对应的导线位置,在软件编程的时候可以参考上一小节的按键扫描程序进行设计。
四、温度控制程序设计
温度控制程序设计主要是对温度采集程序的设计。温度采集是通过分时与DS18B20的单总线通信完成的,有严格的时隙概念,因此对DS18B20的各种操作必须按协议进行。 1、初始化DS18B20程序设计
通过单线总线的所有执行(处理)都从一个初始化时序开始。初始化时序如图3.17所示,初始化时序包括一个由总线控制器发出的复位脉冲和跟有其后由从机发出的存在脉冲。存在脉冲让总线控制器知道DS18B20在总线上且已准备好操作。
图3.17 DS18B20初始化时序图
该程序的执行过程如图3.18所示:
①先将数据线(DQ)置高电平1;
②延时(该时间要求不是很严格,但是要尽可能短一点); ③数据线(DQ)拉到低电平0;
④延时750us(该时间范围可以在480~960us); ⑤数据线(DQ)拉到高电平1;
⑥延时等待。如果初始化成功则在15~60ms内产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。
⑦若CPU读到数据线(DQ)上的低电平0后,还要进行延时,其延时的时间从发出高电平算起(第⑤步的时间算起)最少要480us;
⑧将数据线(DQ)再次拉到高电平1后结束。
18B20初始化入口DQ=1延时50usDQ=0延时750usDQ=1NO是否返回0YES
图3.18 DS18B20初始化流程图
2、读取DS18B20当前温度
硬件电路连接好以后,只需按下面操作过程即可读出温度数据。本设计中只对一个DS18B20进行操作,就不需要读取ROM编码以及匹配ROM编码,只要用跳过ROM(CCH)命令,就可进行如下温度转换和读取操作。
DS18B20在出厂时默认配置为12位,其中最高位为符号位,即温度值共11位,单片机在读取数据时,一次会读2字节共16位,读完后将低11位的二进制数转化为十进制数后在乘以0.0625便为所测的实际温度值。另外,还需要判断温度的正负。前5个数字为符号位,这5位同时变化,我们只需要判断11位就可以了。前5位为0时,读取的温度为正值时,只要将测得的数值乘以0.0625即可得到实际温度值。读取DS18B20当前温度程序流程图如图3.23所示:
子程序结束读取温度值入口DS18B20复位跳过ROM匹配DS18B20复位跳过ROM匹配读取温度数据启动温度转换延时500ms等待温度转换温度数据处理子程序结束 图3.23 读取DS18B20当前温度程序流程图
五、漏电检测及声音提示程序设计
漏电检测的输出口接在单片机的外部中断0,当检测到漏电,外部中断0获取下降沿,产生中断。漏电检测及声音提示程序源代码如下:
六、控制策略程序设计
热水器控制系统中的控制任务的实现最终是靠程序的执行来完成的。在已完成各个功能模块的设计后,还需将各个功能模块按照一定的控制策略结合在一起,才能达到总体控制要求。作为一个控制系统,热水器控制系统的控制过程可以归结为三个步骤:数据采集、数据分析处理和控制输出。这个三个步骤不断重复,使整个系统实现所需的控制目标。
用户可以通过按键选择不同的控制策略,控制器设置了四个按键:“功能键”、“加键”、“减键”和“确认键”。各按键功能如下:
“功能键”用于切换数值项的可调状态。第一次按下水温度变为可调,再次按下水位变为可调状态。此为一个循环,直至“确认键”按下,保存当前设置,跳出菜单。
“加键”和“减键”用于调整设定的水温和水位。当前状态为可调状态时每按一次“加键”和“减键”,被设置的数据值递增或递减。调整温度值时以1℃为调整单位。
“确认键”用于在可调状态时,保存当前设置参数并跳出可调状态,返回主程序。
通过定时器定时产生中断扫描是否有设置键按下,当设置键按下时,进入相应菜单进行水位和温度的设置。
第三节 本章小结
本章首先对系统硬件部分设计进行了详细的理论分析,主要有电源电路中稳压芯片的外围器件作用的说明,功率器件的驱动电路设计过程,漏电检测电路的理论计算。根据电路原理图的进行软件部分设计,并对各个子程序进行了相关分析。其中,详细的介绍了控制策略程序、液晶显示屏LCD1602操作程序和读取温度传感器DS18B20温度值程序。这样整个系统的设计部分就完成了。
第三章 系统测试与分析
根据系统设计方案,本系统的调试可以分为硬件调试和软件调试两大部分。由于在系统在硬件设计过程中采用模块化设计,因此方便了对各电路功能模块的逐级测试,包括对:人机交互功能调试,水位控制功能调试,温度控制功能调试,漏电检测及声音提示功能调试等。单片机软件先在单片机最小系统板上调试,确保工作正常之后,与硬件系统相连接,将各模块组合后再进行整体测试,这样才能使系统的所有功能得以实现。最后使用仿真软件进行演示。
第一节 硬件调试
在完成了用户系统样机的组装和软件设计以后,便进入系统的调试阶段。各种用户系统的调试步骤和方法基本是相同的。硬件调试利用开发系统、万用表、示波器等基本测试仪器,通过执行开发系统有关命令或运行适当的测试程序,检查用户系统硬件工作是否正常。
硬件测试可分为静态调试与动态调试两步进行[36]。 一、静态调试
静态调试是在用户系统未加电工作时的一种硬件检查。具体步骤如下:
(1)、目测。单片机应用系统安装在万用板上,因此对每一条焊接好的电路要进行仔细的检查,检查是否有断线、有无毛刺、是否与其他线或焊盘粘连、焊盘有无脱落、是否连通等。并检查集成芯片的插座、电路元件焊接在万用板上,焊点是否有毛刺,是否与其他焊盘连接,焊点是否光亮饱满,有无虚焊等。对系统
中所用的器件与设备,要仔细核对型号,检查它们对外连线是否完整无损。通过目测查出一些明显的器件、设备故障并及时排除。
(2)、万用表检测。目测结束后,可用万用表测试。先用万用表复核目测过程中认为可疑的连接或节点,检查它们的通断状态是否与设计相符。特别检查各种电源线与地线之间是否有短路现象,仔细查出并排除。
(3)、加电检查。在静态检测完成之后,当给万用板加电前,首先检查所有插座后器件的电源额定值是否与电源电压相符,并在系统前端加上保险丝,然后再加电检查各点电压是否正常,接地端电压是否接近于零,接固定电平的引脚段电平是否正确。
二、动态调试
动态调试是在用户系统工作的情况下,发现和排除系统硬件中存在的器件内部故障、器件间连接逻辑错误的一种检测方法。由于单片机应用系统的硬件动态测试是在开发系统的支持下完成的,因此有称为联机仿真或联机调试。
动态调试借用开发系统资源(单片机、存储器等)来调试用户系统中单片机的外围电路。利用开发系统友好的人机界面,可以有效地对用户系统的各部分电路进行访问、控制,使系统在运行中暴露问题,从而发现故障。典型有效的访问、控制各部分电路的方法视对电路进行循环读或写操作,使得电路中主要测试点的状态能够用常规检测仪器(如示波器、万用表等)测试,依次检测被调试电路是否按预期的状态工作。
智能热水器控制器的电路焊接完成后,首先进行检查,即确认电路无虚焊,无短路,无断路,集成元件安装是否正确,之后进行电路功能模块的分级调试,根据电路功能逐级进行:
① 单片机最小系统功能调试:包括对晶振电路和复位电路的调试; ② 人机交互功能调试:包括对LCD1602显示和按键检测电路的调试; ③ 水位控制功能调试:包括对水位检测电路和电磁阀电路的调试; ④ 温度控制功能调试:包括对18B20温度检测电路和加热电
⑤ ⑥
路的调试;
漏电检测功能调试:主要对漏电检测电路的调试; 声音提示功能调试:主要对蜂鸣器驱动电路的调试。
第二节 软件调试
软件调试是通过对用户程序的汇编、连接、执行来发现程序中的语法错误与逻辑错误并加以排除的过程。软件调试一般采用先独立后联机、先分块后组合、先单步后连续的测试方法。本系统对软件进行调试时程序全部用C语言来编写,选用KEIL编译器对编写的程序进行调试。 一、先独立后联机
从宏观来说,单片机应用系统中的软件和硬件是密切相关,相辅相成的。软件是硬件的灵魂,没有软件,系统将无法工作,同时,软件的运行有依赖于硬件,没有硬件支持,软件的功能便荡然无存。因此,将两者完全孤立开来是不行的。然而,并非所有用户程序都依赖于硬件,当软件对被测试参数进行加工处理或做某项事务处理时往往与硬件无关,这样,就可以通过分析用户程序,把与硬件无关的功能相对独立的程序抽取出来,形成与硬件无关和依赖于硬件的两大类用户程序块。这一划分工作在软件设计时就应该充分考虑。
但程序仿真调试与用户硬件系统调试完成后,可将仿真机、计算机和用户系统连接起来进行系统联调。在系统联调中,先对依赖于硬件的程序块进行调试,调试成功后,再将两大程序快组合在一起调试。
二、先分块后组合
当用户系统规模较大、任务较多时,即是先将用户程序分为与硬件无关和依赖硬件两大部分,但这两部分程序仍较为庞大的
化,若从开头至尾调试,既费时间又不容易进行错误定位。所以常规的调试方法是分别对两类程序模块进一步划分,然后分别调试,以提高软件调试的有效性。在调试时所划分的程序模块应基本保持与软件设计时的程序功能模块或任务一致。除非某些程序功能模块较大时才将其再分为若干子模块。但要注意的视,子模块的划分与一般模块的划分应一致。
每个程序模块调试完成后,将相互有关联的程序模块逐块组合起来加以调试,以解决在程序模块连接中可能出现的逻辑错误。对所有程序模块的整体组合是在系统联调中进行的。由于各个程序模块通过调试已排除了内部错误,所以软件总体调试的错误就大大减少了,能够在较短的时间完成软件调试。
三、先单步后连续
调试好程序模块的关键是实现对错误的正确定位。准确发现程序中错误的有效方法是采用单步加断点运行方式调试程序,单步运行可以了解被调试程序中每条指令的执行情况,分析指令的运行结果可以知道该指令执行的正确性,并进一步确定是由于硬件错误、数据错误还是程序设计错误等引起了该指令的执行错误,从而发行并排除故障。
第三节 仿真演示
仿真就是通过建立实际系统模型并利用所见模型对实际系统进行实验研究的过程。当所研究的系统造价昂贵、实验的危险性大或需要很长的时间才能了解系统参数变化所引起的后果时,仿真是一种特别有效的研究手段。仿真的重要工具是计算机。伴随着计算机软件和硬件技术的飞速发展,在各个领域都出现了各种仿真系统,为各种实际系统的开发提供了准确可靠的保证,同时节约了大量的人力和物力。
一、仿真软件简介
本设计使用了Proteus仿真软件进行仿真演示。Proteus是英国Labcenter公司开发的电路分析与实物仿真及印制电路板设计
软件,它可以仿真、分析各种模拟电路与集成电路,软件提供了大量模拟与数字元器件及外部设备,各种虚拟仪器,特别是它具有对单片机及其外围电路组成的综合系统的交互仿真功能。主要由ISIS和ARES两部分组成,ISIS的主要功能是原理图设计及与电路原理图的交互仿真,ARES主要用于印制电路板的设计。其中ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
该软件的特点有:全部满足提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势;具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等;目前支持大多数单片机类型以及各种外围芯片;支持大量的存储器和外围芯片。总之Proteus是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。
采用Proteus仿真软件进行虚拟单片机实验,具有比较明显的优势,如涉及到的实验实习内容全面、硬件投入少、实验过程中损耗小、与工程实践最为接近等。其中,内容全面包括其能实验的内容包括软件部分的汇编、C51等语言的调试过程,也包括硬件接口电路中的大部分类型。对同一类功能的接口电路,可以采用不同的硬件来搭建完成,因此采用Proteus仿真软件进行仿真,克服了单片机硬件电路固定等方面的局限性。硬件投入少,Proteus所提供的元件库中,大部分可以直接用于接口电路的搭建,同时该软件所提供的仪表,不管在质量还是数量上,都是可靠和经济的。采用仿真软件后,实际工程问题的研究,也可以先在软件环境中模拟通过,再进行硬件的投入,这样处理,不仅省时省力,也可以节省因为方案不正确所造成的硬件投入的浪费。在传统的方式中,都涉及到因操作不当而造成的元器件和仪器仪表的损毁,也涉及到仪器仪表等工作时所造成的能源消耗。采用Proteus仿真软件进行仿真,则不存在上述的问题,其在实验的过程中是比较安全的。与工程实践最为接近,可以了解实际问题的解决过程,在进行设计或进行大实验的时候,可以具体的在Proteus中做一个工程项目,并将其最后移植到一个具体的硬件
电路中。
二、系统仿真测试过程
在搭建了系统仿真测试平台的基础上对系统进行测试,测试步骤如下:
1、运行Proteus软件中的ISIS Proteus 7 Professional软件(ISIS的主要功能是原理图设计及与电路原理图的交互仿真);
2、在ISIS仿真环境中,点击Open Design,找到热水器仿真.DSN,点击确定后Proteus将调入原理图,如图4.2所示: LCD1P21D1LEDLM016L加热表示亮表示工作P22U2VSSVDDVEE3P2021VCCDQGNDDS18B2036.0D2RSRWED0D1D2D3D4D5D6D7LEDR4S567891011121314进水表示亮表示工作RP1123456789U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P20P21P2212318XTAL2P10R14k7P11R24k79RSTRESPACK-8P12P13R34k74k7293031R4R54k7PSENALEEA进入设置加法按键减法按键P14P10P11P12P13P14P15P16P1712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P15R64k7P16R74k7跳出设置P17R84k7 图4.2 仿真原理图 3、双击原理图中的单片机(U1),将出现对话框,在对话框中找到Program File项目,输入将添加的仿真程序,确认退出,如图4.3所示。至此,完成了所有的预备工作,可以进行仿真了。
图4.3 仿真程序添加图
4、点击Proteus界面的左下边的Play按键,就能够在Proteus中的虚拟LCD1602屏幕中看到程序运行的结果。 LCD1P21D1LEDLM016L加热表示亮表示工作P22U2VSSVDDVEE3P2021VCCDQGNDDS18B2036.0D2RSRWED0D1D2D3D4D5D6D7LEDR4S567891011121314进水表示亮表示工作RP1123456789U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P20P21P2212318XTAL2P10R14k7P11P12R24k79RSTRESPACK-8R34k7293031PSENALEEAP13R44k7进入设置加法按键减法按键P14R54k7P10P11P12P13P14P15P16P1712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P15R64k7P16R74k7跳出设置P17R84k7 图4.4 仿真程序结果图 第四节 本章小结
本章详细的介绍了系统调试的方法和步骤。本系统的调试可以分为硬件调试和软件调试两大部分。其中,硬件调试采用静态调试和动态调试,实践证明,这是一种简便有效的调试方法;软件调试采用先独立后联机、先分块后组合、先单步后连续的测试方法。在调试方法的基础上,详细介绍了使用Proteus仿真软件仿真演示过程与结果。通过计算机仿真,该控制器可以实现对水位控制、温度控制等功能,并能动态监测电热水器工作状况,这也验证了此设计的正确性。
参考文献
[1] 金伟正.单线数字温度传感器的原理及电子技术应用
[M].2005
[2] 康华光,陈大钦.电子技术基础[M].高等教育出版社,2002 [3] 阎石.数字电子技术基础(第三版)[M].北京:高等教育
出版社,1989
[4] 赵文博,刘文涛.单片机语言C51程序设计[M].人民邮电
出版社,2006
[5] 何立民.单片机应用技术选编[M].北京航空航天大学出版
社,1999
[6] 吴金戌等.8051单片机实践与应用[M].北京;清华大学出
版社,2002
四、源程序
/******************************************************************
名称:智能电热水器控制器
功能:LCD1602第一行显示设置水位和温度,第二行显示当前水位和温度 ***********/
#include
#include
uc code table[]=\
uc cswd=25;
sbit dq=P2^0;
sbit key1=P1^4; sbit key2=P1^7; sbit key3=P1^5; sbit key4=P1^6;
//打开设定温度 //关闭设置温度 //温度++ //温度-- //18B20数据接口
//初始温度的设定
sbit E1=P2^1;
sbit rs=P2^7; sbit rw=P2^6; sbit e=P2^5;
sbit w0=P1^0; sbit w1=P1^1;
//加热
//液晶4脚
//液晶5脚
并口数据用的是P0口
//液晶6脚
sbit w2=P1^2; //液位检测点 sbit sb=P2^2; //水泵控制端 sbit beep=P2^3;
bit flag,flaganjian;
void delay(uc a) { }
void delayms(ui a) { ui i,j; while(--a);
}
for(i=a;i>0;i--)
for(j=110;j>0;j--);
void yewei() {
if(w0==1) { } else { } if(w1==0) { {
beep=0; } sb=0; if(w1==0) sb=1; beep=0; sb=1; beep=~beep;
//
}
} if(w2==0) { } }
beep=~beep; delayms(5); if(w2==0) {
/*main() {
yewei(); delay(15);
}*/
//18b20的程序
void chushi() {
}
dq=1; delay(5); dq=0; delay(200); delay(200); dq=1; delay(75); dq=1; delay(150);
void write(uc a) { uc i;
for(i=0;i<8;i++) { dq=1; delay(5); dq=0; delay(1); dq= a&0x01; delay(20); dq= 1;
}
}
a>>=1;
uc read() {
uc i,temp=0; for(i=0;i<8;i++) { }
temp>>=1; dq=1; delay(5); dq = 0; dq= 1; if(dq)
temp|=0x80;
delay(25);
return(temp); }
ui readt(void) {
uc a=0;
正在阅读:
智能电热水器06-14
饰面装修设计与施05-24
中秋月圆夜作文450字07-13
斜拉索安装工程施工方案 - 图文10-12
“新时代好少年”心得体会精选范文5篇08-08
2018届高考政治《生活与哲学》命题揭秘对点精练:意识的能动作用10-26
舍弃是一种超越作文700字06-25
2022年同济大学文艺理论之文学理论教程考研复试核心题库04-07
公务员面试典型题目 - 情景应变211-11
广东海事局通航水域管理规定(暂行)08-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 电热水器
- 智能
- 15级幼儿卫生学期末考试题
- 清涧县九天薯业有限责任公司年产2700t新型马铃薯淀粉系列产品生
- 河北金融学院 激情五月大型文艺晚会的策划书
- 中职英语1
- 职业技能鉴定国家题库保育员初中级试卷
- 2009年江苏高考数学试题及答案
- 最全最新2018年6月超星尔雅中华诗词之美-课后题答案
- 无锡市梁溪区2018年初三语文学业质量模拟测试及答案
- 山东省师大附中2010届高三最后一次模拟考试英语试卷 - 图文
- 英语作文-how to be a qualified college student
- 采气 内气外放 外气内收
- 常见的3种磨削方法介绍
- 外国人最常用的100句英语口语
- 品质部职责与权限
- 清洁绿化工作手册
- 2017-2023年中国高速公路服务区物流行业发展现状及前景战略咨询
- 中国现代化强国建设需防范四大陷井
- 原中原油田勘探局局长刘锦信退休感言
- 2011年中考总复习数学教材过关训练:平面直角坐标系
- 应用型大学英语综合教程1教案