基于单片机的开水房计费系统毕业论文.doc_第1页
基于单片机的开水房计费系统毕业论文.doc_第2页
基于单片机的开水房计费系统毕业论文.doc_第3页
基于单片机的开水房计费系统毕业论文.doc_第4页
基于单片机的开水房计费系统毕业论文.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

北京联合大学 毕业设计基于单片机的开水房计费系统毕业论文目 录摘 要IAbstractII引 言11概述2 1.1设计背景及意义2 1.2研究现状3 1.3研究内容32硬件系统设计4 2.1硬件总体设计4 2.2单片机最小系统5 2.3时钟模块6 2.4流量测量模块8 2.5 液晶显示模块8 2.6键盘模块10 2.7温度测量模块11 2.8数据存储模块12 2.9电磁阀控制模块13 2.10电源模块143软件系统设计15 3.1 Keil编程环境16 3.2液晶显示模块19 3.3温度采集模块21 3.4流量采集模块23 3.5 时钟模块244开发语言与环境25 4.1 Protues仿真软件介绍25 4.2 Protues软件使用25 4.3 Protues与Keil的链接26 4.4仿真实现26 4.5出现的问题及解决办法26结 论28致 谢29参考文献30- 30-引 言水是人类宝贵的资源,缺水问题严重地影响着人类的生存、制约着经济社会的发展,节约用水是人类永远不变的主题,因此用水问题更受到世界各国的高度重视和广泛关注,各种节水措施也是层出不穷,其效果也相当显著,但还有些需要我们完善,达到更好更有效的节约资源。针对我国人口众多和公共场所用水浪费量大的具体情况,本文介绍的流量计费式节水控制系统可以很好的解决浪费水的现象。该系统基于单片机控制的开水房计费系统,可使用于人口集中的大中小型公共开水房及宿舍水房,通过对单片机的动态计费,从而提高用户的节约用水意识,按需取水,大大地改善了公共用水浪费严重的现象。本次设计采用AT89S52单片机作为主控芯片,由温度传感器DS18B20实时采集管内液体温度信息。当温度超过设定阈值时,单片机启动流量计算,得出价钱。通过液位测量计算水流量而达到合理计费。1概述1.1设计背景及意义随着生活水平的提高和人类生产的发展,世界用水量正在以每年5的速度递增,用水总量每15年就翻一番,如果各国政府不采取有力措施,在2025年前,地球上将有三分之一以上的人口得不到清洁的饮用水,一半以上的人口面临淡水资源危机。当今全球性的社会和经济发展的主要制约因素是水资源短缺问题,合理地利用水资源,是人类可持续发展的当务之急,而水资源合理利用的关键是节约用水。我国是一个水资源短缺的国家,水资源短缺制约着我国国民经济和社会可持续发展。建设节水型社会变得尤为重要,它是解决我国水资源短缺问题最有效、最根本的措施。建设节水型社会,有益于加强水资源的统一管理,提升水资源利用效率和效益,进一步加强可持续发展的能力;有利于保护水环境与水生态,为供水安全提供保障。提高人们的生活质量。本课题的研究的意义是设计一个更好的、更合理的开水房计费器系统。目前我国国内已经有了几款针对公共用水浪费现象而设计的节水系统,这些节水系统的节水效果还是比较不错的,但是,现有的节水系统采用的计费方式仍然采用的是按时间计费的方式,即根据使用的时间长短来收取消费费用,时间用的越长,收取的费用越多。从设计上来讲,采用计时收费的方式比较容易实现,成本也比较低,从表面上看,这是个很不错的方法。但是,就实际使用后我们发现此种计费方式存在着如下问题:(1)在相同的浴室,相同的15分钟的淋浴,同样的费用,而由于电磁阀的不同一个人的实际用水量却比另一个人的多得多。 (2)在同一个开水房打同样的一壶开水,而其中一个人只要15秒钟,另一个人却需要20秒钟,后者付出的费用比前者多。 (3)当电磁阀被损坏时,还会造成无用水误收费的种种情况。 为改善以上计费不合理的方式,本课题设计了一种以测量水位方式而实现按流量计费的系统。由于高等院校集科研、教学和生活于一体,是水资源消耗的大户。目前全国有1500多所这样的高等学校,在校教职员工和学生约1710万人,他们既是城市生活的重要组成部分,又是人口密集的地方。因此,节水控制系统的设计是必不可少的,解决此用水问题不仅能够提高学校的用水效率,还增强了人们的节水意识,促进了社会的发展。学校的浴室也是校内水浪费问题相对严重的场所,具有很大的节水潜力。在浴室里,有的同学为了增加浴室温度,空放热水,有的用浴室的开水洗衣服,有的用水后不关龙头,水资源的浪费现象非常严重,为改善这种状况,许多学校采取了应对措施。如减小龙头出水口径、减压供水、脚踏板控制淋浴,即一旦人离开了淋喷头,便自动关闭等措施。但由于很大一部分学生的节水意识仍然不强,浪费水的现象并没有从根本上得到合理的解决。由计时计费方式引发的问题的合理解决方法就是设计流量计费式节水系统,这不仅可以达到良好的节水效果,还能改善收费不公平不合理的现象,能很好的响应我国的节水节能、构建和谐社会的号召,其意义就尤为重要了。 本课题的目的是设计一款采用单片机控制的,新型计费方式的节水控制系统,并采用流量式计费代替计时计费,使用更安全可靠,更方便,寿命也更长。其意义是改善目前公共场合水资源的浪费现象,通过持续改善这些浪费现象来逐步提高我们的节水意识,有益于建设节水型社会,加强水资源统一管理,提升水资源利用效益和效率,迸一步提高可持续发展能力;保障我国供水安全,提高人们的生活质量;为构建社会主义和谐社会作出积极贡献。1.2研究现状传统水房计费系统的发展经历了漫长年代,它涉及社会生活的各个方面。它对促进社会发展、改善人类生活和科技进步起到了非常重要的作用。直到现在在国内外的很多领域还能继续发挥其作用。传统水房计费系统主要结构由硬件构成,以相对固定形式确定下来,所实现的功能较死板、较单一。只具有按时间计费显示用水费用的功能,在使用过程中,由于流量的不同使用户无法公平合理的消费,造成了部分浪费。它一般具有计时电路、内部处理电路和实时显示三部分。传统水房计费系统的主要特点是自成体系,自我包容,用户无法更改。传统水房计费系统功能单一,测量结果不能存储、显示,局限性很大。另外,传统水房计费系统开发周期长、经费投入大。随着科技水平不断发展,人们对传统水房计费系统提出以下几方面的要求:按流量计费、测量精度高、可靠性好、功能强,测量智能化、自动化、使用灵活方便,同时还可以进行消费数据的存储和显示。这些新的要求不仅促使着传统水房计费系统不断地改进和发展,也孕育着新一代水房计费系统的产生。1.3研究内容本课题要求对水温进行实时监测,反应任何时刻水的温度,显示时间信息,测试出流量信息和消费情况。研究的内容主要分为三大部分,一是对温度的控制,达到设定的阈值时候开启电磁阀,二是对水位的测量而实现对流量计费,三是时钟模块部分,通过时钟计费以使此系统实现双重功能的开水房计费系统。本设计第一章介绍了设计本课题的背景、研究现状和研究内容。第二章分别介绍了时钟模块、温度测量模块、水位测量模块、LCD液晶显示模块的硬件电路的设计,第三章主要研究各个模块软件系统的实现,第四章主要对基于单片机的开水房的计费系统的仿真调试。2硬件系统设计2.1硬件总体设计硬件系统结构总体框图如图2-1所示,此系统的硬件由单片机、按键、液晶显示器、流量测量电路、温度传感器、时钟电路、复位电路和电磁阀控制电路组成。键盘输入模块流量测量模块时钟电路模块单片机核心模块复位电路模块液晶显示模块温度测量模块数据存储模块电磁阀控制模块 图2-1 开水房计费的硬件系统结构总体框图由系统的功能需求可以得出,需要设计的功能模块应包括温度采集和水位的采集、水费显示、供水部分和键盘输入部分等,对于这些功能,可以选用51单片机、温度传感器DS18B20、1602液晶显示来实现。此系统通过对水位的测量来实现对流量的控制,通过温度传感器采集温度,当温度达到一定阈值时候开启电磁阀,测量水位电压而实现流量计费,并在液晶显示屏上显示年月日、时间、消费费用和温度。2.2单片机最小系统开水房计费系统中关于水位、温度和时钟芯片需要我们用单片机来控制,是整个开水房计费系统的核心,对整个系统起着控制和枢纽作用。AT89S52就是一款广泛应用的,高性能CMOS 8位单片机,由于系统控制方案简单,数据量也不大,考虑到电路的简单和成本等因素 ,因此在本设计中选用 ATMEL 公司的 AT89S52单片机作为主控芯片。主控模块采用单片机最小系统是由于 AT89S52芯片内含有8 kB的 E2PROM ,无需外扩存储器,电路简单可靠,其时钟频率为 024 MHz,并且价格低廉,批量价在 10元以内。以下为AT89S52管脚说明:图2-2 AT89S52单片机引脚图VCC:电源电压输入端。 GND:电源地。 P0口:双向8位三态I/O口,每个口可独立控制。51单片机P0口内部没有上拉电阻,为高阻状态,所以不能正常的输出高/低电平,因此该组I/O口在使用时务必要外接上拉电阻。P1口:一准双向8位I/O口,每个口可独立控制。内带上拉电阻,这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。对52单片机P1.0引脚的第二功能为T2定时器/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。P2口:一准双向8位I/O口,每个口可独立控制。内带上拉电阻,与P1口相似。P3口:一准双向8位I/O口,每个口可独立控制。内带上拉电阻。作为第一功能使用时就当做普通I/O口,与P1口相似。P3口除了作为普通I/O口。单片机的最小系统是由复位电路、时钟电路和电源组成。复位操作有上电自动复位、按键复位和外部脉冲复位3种方法。本文采用的是上电复位它是通过系统外部的复位电路来实现的。根据电路原理可知电容两极板间的电压不能突变当单片机电源接通电源的瞬间单片机的9管脚会产生一个阶跃信号,所以RTS端维持高电平由于这个充电时间远远大于1ms,一般就可以实现对单片机的上电自动复位,即接通电源就完成了系统的初始化。初始化是为了让单片机从地址0000H开始执行, 除此之外单片机要想正常工作还必须有时钟电路,时钟电路是产生时序的基础,单片机每执行一条指令都是建立在时序电路上的,为了能保证单片机执行指令的同步,电路就要在唯一的时钟信号控制下按时序的先后进行工作。它分为内部时钟电路和外部时钟电路。本文采用的是内部时钟电路,在MCS51单片机的内部有一个高增益的反向放大器,其输入端为引脚XTAL1,输出端为XTAL2,只要在外部接上两个电容和一个晶振,就能够成一个稳定的自激振荡器。这里主要看一下电容和晶振的选择,晶振的大小与单片机的振荡频率有关,电容的大小影响着振荡器振荡的稳定性和起振的快速性,通常选择1030pF的瓷片电容。本系统电容选择为30pF晶振为11.0592MHz,另外在设计电路时,晶振和电容应尽可能的靠近芯片,这样可以提高系统的抗干扰能力,单片机最小系统如图2-3所示 图2-3 单片机最小系统电路图2.3时钟模块关于时钟芯片的选择问题有两种方案可以实施,可以利用单片机内部的定时器进行对时间的计算和计时,但是单片机的定时器计时不会很准确且对单片机的主芯片增加了额外的负担还有就是对与软件的编程也会非常复杂。另一种方案就是选择实时时钟芯片来进行对时间的控制和计算。X1 X2 32.768KHz 晶振管脚、GND地、RST复位脚、I/O 数据输入/输出引脚、SCLK 串行时钟、VCC1,VCC2 电源供电管脚DS1302的引脚如图2-4所示。图2-4 DS1302引脚图 在DS1302芯片上的X1和X2管脚上需要加上一个振荡频率为32.768KHZ的晶振来提供给DS1302的工作时钟,VCC2为主电源,VCC1为备用电源需要连接上一个备用的直流电池以防止停电时,电源的备用。RST、I/O、SCLK跟单片机的p1.1、p1.2和p1.3管教相连接,需要单片机向DS1302发送命令来读取时间。DS1302工作的时序图如图2-5所示。图2-5 DS1302工作时序图时间模块的电路如图2-6所示。 图2-6 时钟模块硬件连接图2.4流量测量模块为了实现水流量测量以完成合理计费功能,在水箱内不同水位位置放置导线,用于测量水位信息。通过水位的多少得知用水量而实现计费功能。如图2-7所示,当水位到达一定阈值的时候,电极端就变为地。单片机检测低电平并进行相应的算法处理,实现计费功能。图2-7 水位测量电路硬件连接图2.5 液晶显示模块LCD(液晶显示器)模块是嵌入式设备中常用的显示模块,在此系统中采用了1602液晶显示模块,其主要技术参数如下:1.显示容量:162 个字符 2.工作电压:4.5-5.5V 3.工作电流:2.0mA(5.0V) 4.模块最佳工作电压:5.0V 5.字符尺寸:2.954.35(WH)mm。表2-1 1602基本操作时序表读状态输入:RS=L,RW=H,E=H输出:D0-D7=状态字写指令输入:RS=L,RW=L,D0-D7=指令E=高脉冲输出:无读数据输入:RS=H,RW=H,E=H输出:D0-D7=数据写数据输入:RS=H,RW=L,D0-D7=数据,E=高脉冲输出:无表2-2 LCD引脚定义引脚号引脚名电平输入/输出作用1Vss电源地2Vcc电源(+5V)3Vee对比调整电压4RS0/1输入0=输入指令1=输入数据5R/W0/1输入0=向LCD写入指令或数据1=从LCD读取信息6E1,10输入使能信号,1时读取信息10执行指令7DB00/1输入/输出数据总线line0(最低位)8DB10/1输入/输出数据总线line19DB20/1输入/输出数据总线line210DB30/1输入/输出数据总线line311DB40/1输入/输出数据总线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line614DB70/1输入/输出数据总线line7(最高位)15AvccLCD背光电源正极16K接地LCD背光电源负极单片机AT89C51是比较常用的入门级51单片机。用P0口和LCD1602的D口相连,P0口内部没上拉电阻所以连接上拉电阻。根据LCD1602的资料表连接引脚。电路如图2-8所示。图2-8 LCD模块的硬件连接图2.6键盘模块 键盘模块本课题选择的是普通的直接型键盘模式,直接型的键盘有编程容易、电路简单。而矩阵型的虽然比较省I/O口,但是对于电路和编程都是比较复杂的。这两种键盘模式成本都不会很高,而本设计中只用到了6个按键,数量比较少,所以选用直接型的按键模式。这样在画电路和进行c语言程序编写时都会变得简单和容易。直接型的要比矩阵型的电路更加简单、方便、灵活。键盘硬件连接图如图2-9所示。每行和每列各有一根信号线相连,当按键按下时,相应的行和列导通。按键分别接到单片机AT89S52的P2.7到P2.4(2528引脚)上,开始关闭按键接到单片机AT89S52的P3.0和P3.6上。系统通过键盘扫描算法,得到各按键对应的值。 图2-9 键盘硬件连接图2.7温度测量模块本设计温度传感器采用DS18B20,DS18B20温度传感器是DALLAS公司最新推出的单总线数字温度传感器,测量温度范围是-55V+125,在-10+85范围内精度为0.5。现场温度直接以单总线的数字方式传输,大大提高了系统的抗干扰性。DS18B20支持35.5V的电压范围,使用十分灵活和方便。DS18B20的工作方式有两种方式作为供电,一种是采用电源式供电,此时DS18B20的1脚作为接地线使用,2脚作为信号线使用,3脚作为电源线使用。另外一种则是寄生电源供电方式,单片机的端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。在本设计中选用了电源式的供电方式,由于四个DS18B20以线与方式接在一起挂接在单片机的P1.3口上,实现了对四路温度的采集,节省了单片机的口资源。这样也使设计更加简单明了。本设计选择DS18B20是由于DS18B20本身就可以输出数字信号,这样就可以起到简化电路的作用。采用单总线在简单上拉的情况下,就可以远距离的双向传输数据。图2-10为DS18B20的硬件连接图。图2-10 温度测量硬件连接图DS18B20数字温度传感器以其接线方便价格低廉易于控制已被广泛应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。由于该芯片外围电路比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据,管脚图2-11所示。图2-11 DS18B20管脚图2.8数据存储模块存储芯片采用AT24C02,AT24C02的是一个2K位串行CMOS E2PROM的,内部包含256个字节的8位存储单元,采用先进CMOS技术,有效地降低器件的功耗。AT24C02的存在是一个16字节页写缓冲。该器件通过I2C总线接口,一个特殊的写保护功能。该芯片完全符合I2C总线的芯片的要求,因此可以节省单片机的I / O占用,可以使全省的其他I / O口来添加其他功能。也更好的硬件电路简单。如图2-12所示为24C02引脚结构图。图2-12 24C02引脚图A0,A1,A2地址输入引脚,走位硬件寻址的依据,同种芯片可同时连接8片(23);Vcc,Gnd电源,接地引脚,1.8-5.5VWp写保护,当Wp接地时,允许对器件的正常读写操作;当Wp接高电平时,写保护,只能进行读操作。SDA串行地址/数据输入/输出端口,双向传输,漏极开路,需外接上拉电阻到Vcc(典型阻值为10k)。SCL串行时钟输入,高低电平不同状态与SDA配合,执行不同的命令。存储模块的设计是把WP引脚接到GND上因为要让器件进行正常的读/写操作,把SDA串行数据/地址与单片机的P3.4引脚使AT24C02与单片机进行所有数据的发送或接收,把SCK串行时钟引脚与单片机的P3.5引脚相连接,让单片机产生一个AT24C02工作的时钟,使其正常的工作。如图2-13所示为AT24C02连接图。图2-13存储模块硬件连接图2.9电磁阀控制模块考虑到以下几个原因,电磁阀不能与单片机直接相连接:(1) 相对于单片机来说,电磁阀需要较大的驱动电流,而单片机驱动能力有限。(2) 如果电磁阀直接与单片机相连接,电磁阀电流较大,只要发生短路或者尖峰脉冲就会烧毁单片机。(3) 电磁阀有较大的干扰信号,会对单片机等较弱的电流信号产生很大的干扰作用。 由于以上原因所带来的问题是本课题中必须解决的,所以在本课题中,单片机控制电磁阀部分采用在单片机与电磁阀之间接一个光耦芯片来解决实际问题,具体原理如图2-14所示。图2-14电磁阀控制原理图2.10电源模块对于5V和12V电压的选取是根据电路需求来选择的。由于5V在单片机AT89S52中可以作为高电平使用,驱动电压和外围电路的电压都使用的是5V。而在强弱隔离的光耦和继电器中都用到12V的电压,所以还需12V的电路图。图2-15 5V电源电路图2-16 12V电源电路通过变压器把220V的交流电,分别转化成9V和15V的交流电压,在通过桥式整流电路把交流转化为直流。在通过78系列稳压芯片7805和7812使输出电压为5V和12V的电压。电容C1要考虑足够的耐压,一般越大越好,选用220uF。电容C2和C3选用无极电容104。电容CC4选用220uF就好。电容根据后面的负载大小决定。3软件系统设计系统的功能和总体结构决定了系统的软件设计。本节主要工作是根据前面的设计的硬件平台,实现系统的软件设计。主要软件设计内容包括以下几点:(1)根据系统功能和总体框架,设计整个软件的系统流程。(2)实现硬件环境中每个具体模块的软件程序。(3)设计各模块间的接口,从而构成整个系统软件。 如图3-1所示为本系统的主程序流程图。N开始EPROM存储当前流量显示当前流量计算流量检测液体温度系统初始化检测流量信息温度是否大于80?Y 图3-1 主程序流程图3.1 Keil编程环境在硬件电路设计好的同时,也需要软件的开发及使用。目前单片机类的课程设计大多采用Keil软件来进行程序的编写。Keil不仅支持C语言还支持汇编语言。支持不同型号的MCS系类的51单片机的型号。Keil软件已从早期的第一代发展到第四代了,有了更强大的功能。这款软件的操作方法也很简单,甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,这样可以把复杂电路的输入信号直接用信号发生器给定,或是用电源来给定通过对电压电流的调节来实现。Keil 工程的建立打开已安装好的开发环境,进入界面后选择project然后在其下拉菜单中选择new project选项如图3-2所示。图3-2 新建工程这样就能新建一个工程 ,在选定的路径下建立一个名字叫做abc的文件夹如图3-3所示,在abc文件夹中建立了一个xyz.c文件之后点击保存按钮就会出现如图3-3所示的画面在此对话框中选择Atmel之后会弹出一系列的单片机在本次设计中选用的是51单片机,完成后在选Target 1下的Source Group 1选择Add把xyz.c文件加载到里面在xyz.c下添加所编好的C语言程序或是汇编语言程序,如果程序是分开写得就可以添加多个子程序还有主程序,每个程序中必须有头文件否则编译不会通过 ,会显示有错误。等编译.hex文件时就要在此文件夹下找到。图3-3 新建工程文件夹的建立图3-4 芯片的选择所有程序都加到工程项目文件夹中后就可以对其进行编译了。编译成功后,下方会有对话框显示,有几个错误,分别是在那几个位置。直接单击错误这条信息就可以索引到源文件中。如图所示3-5所示。图3-5 错误的生成及索引在整个仿真中,所设计的程序编译要没有错误,而且能产生hex文件,如图3-5所示。编译器在编译阶段发现的错误称为编译错误,当源程序输入完成后,单击编译器的“编译”按钮,编译器会一个字符一个字符的检查源程序,检查到某一点有问题,就把这一点作为发现错误的位置。因此,源程序中实际的错误或是出现在编译程序指出的位置,或是出现在这个位置之前。应当从这个位置开始向前检查,设法确定错误的真正原因。有时,一个实际的错误会导致许多行的编译错误信息,如果无法确认后面的错误,就应当重新编译。图3-6 程序无错显示和hex文件的生成3.2液晶显示模块先对LCD1602进行软件化,然后判断LCD是否为忙,如果标志位是忙状态就继续等待,不忙才能继续工作,然后单片机向LCD写入控制命令,分配显示的位置,然后单片机再向LCD写入要显示的内容。显示模块的设计有时间日期和温度的显示,当用户打水时候切换界面显示消费金额。如图3-7、3-8所示:图3-7 消费前显示界面图3-8 消费后显示界面下图3-9为显示程序流程图。开始LCD1602初始化LCD是否忙单片机向LCD写命令单片机向LCD写数据显示数据结束否是图3-9 显示程序流程图 以下为主要程序:void lcd1602_init() /LCD初始化函数 har lcdnum;P3=0xdf;lcd_write_com(0x38);lcd_write_com(0x0c);lcd_write_com(0x06);lcd_write_com(0x01);lcd_write_com(0x80);for(lcdnum=0;lcdnum8;lcdnum+) /写第一行数据 lcd_write_date(tabe1lcdnum);delay(2);3.3温度采集模块本系统关于温度采集DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据 下表3-1是DS18B20温度采集转化后得到的12位数据,若测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 表3-1 DS18B20温度数据温度/0二进制表示十六进制表示符号位(5位)数据位(11位)+1250 0 0 0 01111101000007D0H+25.06250 0 0 0 0001100100010191H+10.1250 0 0 0 00001010001000A2H+0.50 0 0 0 0000000010000008H00 0 0 0 0000000000000000H-0.51 1 1 1 111111111000FFF8H-10.1251 1 1 1 111101011110FF5EH-25.6251 1 1 1 111001101111FE6FH-551 1 1 1 110010010000FC90H 因此本系统的仿真阈值我设定为80,当达到80这一阈值时候能够打水,系统可以开启电磁阀。图3-10所示为温度检测信号流程图:开始再次复位DS18B20复位延时延时N复位是否成功?复位是否成功?YN跳过ROM匹配Y发读温度命令跳过ROM匹配从RAM中读取温读启动温度转换模块结束图3-10 温度信号检测流程图本系统需要对温度进行转换送显示一下为温度转换送入显示部分的程序void wendu_decimal(uint dat) /温度转换后送显示float temp;temp=dat*0.625; /dat*0.0625*10wendu_shi=temp/100; /取十位 temp除不用定义类型wendu_ge =(uint)temp)%100/10; /取个位 temp求模要定义类型,为16位wendu_shu=(uint)temp)%100%10; /取小数lcd_write_com(0x80+0x40+10); /送显示lcd_write_date(0x30+wendu_shi);lcd_write_date(0x30+wendu_ge);lcd_write_date(0x2e); lcd_write_date(0x30+wendu_shu);lcd_write_date(0xdf); /温度符号lcd_write_date(0x43);3.4流量采集模块 本系统流量采集的设计是根据水位不同测量水流量,用开关来实现水位的位置以调节不同水位的高低电平让单片机得知水位信息。如图3-9所示。图3-9 流量信号检测仿真图返回到温度检测流量检测是否检测到水位检测水位位置计算流量是否图3-10 流量信号检测流程图3.5 时钟模块 关于时钟模块的程序涉及了时间的读写显示等,也设定了时间的调节功能为使本系统能够实现多功能计费通过时间来计费和通过流量来计费。如图3-11所示为年月日时间的显示电路仿真图。图3-11 时钟电路仿真图4开发语言与环境4.1 Protues仿真软件介绍Protues是目前使用比较广泛的单片机类的仿真系统的软件之一,它可以实现的功能比较多,可以实现程序与原理图的连调,也可以单独作为绘制原理图的工具使用,与protel有着过之不及的功能,于此同时还可以进行PCB版图的生成,在方法中与protel类似。此款软件及绘制原理图、PCB版图和仿真于一身。Protues仿真软件具有四大功能模块:(1)个易用而又功能强大的ISIS原理布图工具;(2)PROSPICE混合模型SPICE仿真;(3)VSM嵌入式仿真;(4)ARES PCB设计。4.2 Protues软件使用Protues此款软件的使用比较简单。在运行环境搭载好的前提下,打开ISIS直接进入到主界面,在左边栏框中有一个快捷键P(从库中选取),点击后出现一个对话框然后输入想要查找的元器件即可。之后在单击确定按键所选器件就会显示在界面左上角的小框中此时点击鼠标左键就会放到图层中,然后直接把鼠标放到接头处就会显示一个画笔的标志此时按住鼠标左键就可进行连线了。如图4-1所示为绘图界面。图4-1 绘图界面4.3 Protues与Keil的链接在进行连调之前必须确保程序是完整的,原理图也是没有错误的。还要在正确的运行平台下进行操作。检查没有错误后,打开原理图,点击单片机就会出现一个对话框如图3-7所示,然后把生成的.hex文件添加到里面即可实现。在这里比较重要的就是.hex文件的生成过程。首先把已编写好的程序加载到keil软件下进行编译如果没有遇到任何错误后,就直接点击工具栏中的就会弹出如下图所示的对话框,然后选择相应的选项就可以生成.hex文件了。之后再按照生成的的路径去寻找这个文件。找到之后加载到之前点开的 对话框上即可。在此后点击运行按键就会进行仿真了,按照设计的功能去调试就可以了。4.4仿真实现基于以上两软件的设计,完成仿真,显示效果图如下图,图4-2。图4-2 仿真结果4.5出现的问题及解决办法出现的问题:1、 在仿真的时候由于对温度传感器DS18B20的算法并不熟悉,编写程序时候误以为程序的实际温度数值就为实际值,以至于程序仿真时候调节温度只能使电磁阀转速变慢而并不能到达数值时停止。2、 对流量进行仿真时候,最开始是用锁存器连接测量水位送入单片机来计算流量值。以至仿真不是很合理。解决的办法:1、 当学习了DS18B20原理后得知测到的数值乘于0.0625即可得到实际温度后对程序进行了改进。实现了当到达一定阈值时候开启电磁阀的效果。2、 经过老师指导,仅用导线测量水位信息就足以实现流量测量,仿真效果很好。结 论本论文是来实现基于单片机的开水房计费系统的设计,本设计对以前原始计时计费的方式进行了改进,用到了集AD、DA、存储器于一身的DS18B20芯片,使电路更简洁明了,更加人性化。以单片机为控制的核心,这项设计在我们的生活中有很大的实用价值,会给我们生活的方方面面带来很大的便捷。利用DS18B20它体积小,使用方便,电路简单。并且可以实现单总线输入,多个挂在一根线上。在当今这个科技发展的社会潮流里,更流畅优美的设计,会给人们带来美轮美奂的新感觉,所以本设计采用简单的设计、简单的构图来完成的。但是在此设计中也遇到了很多以前没有遇到过的问题,也说明自己的知识不够牢固,但是通过查阅资料、询问老师等渠道,得到了很好的解决。不过这期间肯定还存在很多漏洞和不足。尤其在原理的绘制中遇到了好多问题,对仿真软件有了更深刻的认识和理解,其实在此设计过程中也受益很多,从刚开始的不知道如何下手,到现在基本完成,感觉整个过程紧张而充实,让自己能有条不紊的来完成这项毕业设计。在以后的工作中,要不断的完善自己,做到学以致用,更好的实现自己的价值,更好的为社会服务。致 谢通过这一段时间的不断努力,终于完成了此次毕业设计,期间遇到了很多问题,有的让自己很头疼,不知道该如何解决,但是自己从来没有放弃过。这段时间自己付出很多时间来查阅资料,用以完善自己的设计,同时,老师也给以我很大的帮助,及时的提醒我该要完成的事情,并且很仔细的帮我查阅论文的不足之处。在此期间,同学、朋友也给以我很大的支持和鼓励,在遇到问题解决不了的情况下,大家纷纷伸出援手,帮助我渡过一个一个的难关。不可否认的是,我自己也付出很多努力,在这过程

温馨提示

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

评论

0/150

提交评论