基于proteus的热式热水器温度控制系统的仿真研究毕业论文(编辑修改稿)内容摘要:

温度寄存器的值将加 1,计数器 1的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。 DS18B20 在正常使用时的测温分辨率为 ℃,如果要更高的精度,则在对 DS18B20 测温原理进行详细分析的基础 上,采取直接读取 DS18B20 内部暂存寄存器的方法,将DS18B20 的测温分辨率提高到 ~ ℃。 图 DS18B20测温原理图 7 DS18B20 与单片机接口电路 口和 DS18B20 的引脚 DQ连接,作为单一数据线。 U4 即为温度传感芯片DS18B20 , 本 设 计 虽 然 只 使 用 了 一 片DS18B20,但由于不存在远程温度测量的考虑,所以为了简单起见,采用外部供电的方式,如左图 所示。 测温电缆采用屏蔽 4芯双绞线,其中一对线接地线与信号线,另一对接 VCC 和地线,屏 蔽层在电源端单点接地。 图 DS18B20与单片机接口电路 显示驱动电路设计 采用 74HC245 总线驱动器,是典型的 TTL 型三态缓冲门电路。 主要作用是将信号的功率放大。 第 1 脚 DIR,为输入输出端口转换用, DIR=“1” 高电平时信号由 “A”端输入 “B” 端输出, DIR=“0” 低电平时信号由 “B” 端输入 “A” 端输出。 第 2~9脚 “A” 信号输入输出端, A1=B A2=B A3=B A4=B A5=B A6=B A7=BA8=B8, A1与 B1 是一组,如果 DIR=“1”OE=“0” 则 A1 输入 B1 输出,其它类同。 如果 DIR=“0”OE=“0” 则 B1 输入 A1 输出,其它类同。 第 11~18 脚 “B” 信号输入输出端,功能与 “A” 端一样,不再描述。 第 19脚 OE,使能端,若该脚为 “1”A/B端的信号将不导通,只有为 “0” 时 A/B 端才被启用,该脚也就是起到开关的作用。 第 10 脚 GND,电源地。 第 20 脚 VCC,电源正极。 如下图 所示: 图 74HC245驱动器的电路连接 8 按键电路设计 采用独立按键接口,这种方式是各种按键相互独立,每个按键接一根输入线,一根输入线按键的工作状态不会影响 其他输入线上的工作状态。 因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下。 独立式按键电路配置灵活,软件简单。 但每个按键需要占用一根输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘用于按键较少或操作速度较高的场合。 独立式按键电路按键直接与单片机的 I/O 口连接,通过读 I/O 口,判定每个 I/O 口的电平状态,即可识别按下的键。 由于只有四个按键,因此按键接口电路的设计比较简单,单片机 和 端口设定为输入状态,平时通过电阻上拉到 Vcc,按键按下时,对应的端口的电平被拉到 低电平,如下图 所示。 这样就可以通过查询有无外部中断来判断有没有按键按下,按键各接一根输入线,一根输入线的按键工作状态不会影响其他输入线上的工作状态。 通过内部判断是否产生外部中断,即可识别按下的键。 2 个按键定义如下: :个位按键,按此键则设定温度的设定值个位加一。 :十位按键,按此键则设定温度的设定值十位加一。 图 按键电路 光耦隔离输出电路 光耦隔离就是采用光耦合器进行隔离 ,光耦合器的结构相当于把发光二极管和光敏(三极 )管封装在一起。 发光二极管把输入的电信号转换为 光信号传给光敏管转换为电信号输出,由于没有直接的电气连接,这样既耦合传输了信号,又有隔离作用。 在此系统中,使用的绿色 LED灯模拟加热装置与红色 LED 灯模拟报警信号装置的控制就是采用的光耦隔离电路,单片机产生的命令信号通过光电耦合隔离电路传送给加热装置和报警装置。 电路如下图 所示, U5 为光电耦合隔离装置: 9 图 光电耦合隔离输出电路 整体硬件电路 系统整体的硬件电路设计如下图 所示: 图 整体硬件电路 10 第 3 章 热式热水器温度控制系统的软件设计 整个系统 需要对每一 个硬件模块进行软件设计。 在这一章,主要针对每个硬件电路模块编程,然后进行系统的整合,最后输入到控制处理器中实现所有设计功能。 系统软件设计框图 如下图 所示 : 图 根据设计要求,首先要确定软件设计方案,即确定该软件应该完成那些功能;其次是规划为了完成这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。 一般划分模块应遵循下述原则: 1)每个模块都应具有独立的功能,能产生一个明确直观的结果。 2)模块长度 要适中。 模块太长时,分析和调试比较困难,失去了模块化程序结构的优越性;模块太短则信息交换太频繁,也不合适。 3)每个模块之间的控制参数应尽量简单,数据参数应尽量少。 控制参数是指模块进入开始运行和退出停止运行的条件及方式,数据参数是指模块间的信息交换方式、交换量的多少及交换的频率。 该系统的软件由 五 大模块组成:主程序模块、温度采集模块、报警 及加热 电路模块、温度显示模块、键盘扫描模块。 下面将对这几个模块具体阐述,相对应的 汇编 程序语言详见附录。 主 程 序 温 度 采 集模块 报警电路模块 温度显示模块 键盘扫描模块 温度控制模块 11 主程序模块 计算机基本的被独立提供出来的程序 , 它能够调用子程 序 , 而不被任何子程序所调用 , 它是计算机程序的中心部分。 主程序的设计内容一般包括:主程序的起始地址,中断服务程序的起始地址,有关存储单元及相关部件的初始化和一些子程序调用等等。 主程序模块的主要内容是对整个系统进行初始化,并且包含调用子程序。 在本课题研究的系统中,主程序主要为两个部分:第一个是对系统初始化,如打开相关中断,设置相关引脚的电平信号以及设置初始实际水温和设定水温的数值。 此系统中主程序初始化包括以下内容: 1) 外部中断 0 采用边沿触发: SETB IT0 2) 打开中断允许命令: SETB EA 3) 打 开外部中断 0: SETB EX0 4) 外部中断 1 采用边沿触发: SETB IT1 5) 打开外部中断 1: SETB EX1 6) 设置初始实际水温和设定水温都为 0℃ ***************************************/主程序模块 MAIN1: SETB IT0 SETB EA SETB EX0 SETB IT1 SETB EX1 SETB SETB ;初始化系统 MOV 74H,0 MOV 75H,0 MOV 76H,0 MOV 77H,0 ;设置初始显示温度 MAIN: LCALL GET_TEMPER ;调用温度采集程序 LCALL CVTTMP LCALL DISP1 ;调用显示程序 AJMP MAIN 12 温度采集模块 该模块主要对温度传感器 DS18B20 的操作,主要包括以下几个内容: A、 DS18B20 的初始化 1) 先将数据线置高电平 “1” ; 2) 延时。 3) 数据线拉到低电平 “0” ; 4) 延时 ; 5) 数据线拉到高电平 “1” ; 6) 延时等待(如果初始化成功则在 15到 60毫秒时间之内产生一个由 DS18B20所返回的低电平 “0”。 据该状态可以来确定它的存在,但是应注意不 能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制) ; 7) 若 CPU 读到了数据线上的低电平 “0” 后,还要做延时 ; 8) 将数据线再次拉高到高电平 “1” 后结束。 B、 DS18B20 的写操作 1) 数据线先置低电平 “0” ; 2) 延时 ; 3) 按从低位到高位的顺序发送 字节(一次只发送一位) ; 4) 延时 ; 5) 将数据线拉到高电平 ; 6) 重复上 1 到 6 的操作直到所有的字节全部发送完为止 ; 7) 最后将数据线拉高。 C、 DS18B20 的读操作 1)将数据线拉高 “1” ; 2)延时 ; 3)将数据线拉低 “0” ; 4)延时 ; 5)将数据线拉高 “1” ; 6)延时 ; 7)读数据线的状态得到 1 个状态位,并进行数据处理 ; 8)延时。 程序内容详见附录。 13 报警 及加热 电路模块 此模块主要控制报警功能,当实际水温高于设定水温时 红灯亮报警,当实际水温低于设定水温时绿灯亮开启加热装置。 使用单片机 AT89C51 的 和 分别作为红灯和绿灯的输入信号。 当单片机内部对温度进行处理后的结果来设定这两个引脚的电平信号。 当 的信号为高电平时,此时报警电路被触发,红灯亮 ,系统处于报警状态。 当 的信号为高电平时,此时加热电路被触发,绿灯亮,系统处于加热状态。 程序内容 如下: LEDH: CLR SETB ;报警电路被触发,红灯亮,系统报警 SJMP PLAY PLAY1: SETB ;加热电路被触发,绿灯亮,开启加热装置 CLR SJMP PLAY 温度显示模块 该系统中的温度显示采用两个两位的数码管显示 ,一个显示设定温度,另一个显示实际温度。 软件设计中将实际水温数据的十位和个位分别存放在地址为 74H 和 75H 的单元中,设定水温的数据的十位和个位存在地址为 76H 和 77H的单元中。 根据设计要求,设定水温范围是在 0℃ 63℃,那么通过程序设计设定水温只能从 0增加到 6。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。