基于单片机的水流量测试毕业设计_第1页
基于单片机的水流量测试毕业设计_第2页
基于单片机的水流量测试毕业设计_第3页
基于单片机的水流量测试毕业设计_第4页
基于单片机的水流量测试毕业设计_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

湖南科技大学毕业设计(论文)题目作者学院专业学号指导教师二〇〇年月日湖南科技大学毕业设计(论文)任务书机电工程学院测控技术与仪器系(教研室)系(教研室)主任:(署名)年月日学生姓名:卢超学号:专业:测控技术与仪器1设计(论文)题目及专题:基于单片机的水流量测试2学生设计(论文)时间:自2023年3月9日开始至2023年5月2日止3设计(论文)所用资源和参考资料:1)相应电子元器件;2)使用工具:Proteus仿真;ProtelDXP绘制原理图等软件3)参考资料:[1]胡汉才.单片机原理及其接口技术[M].北京清华大学出版社2023[2]邱关源.电路[M].北京高等教育出版社(第四版),19994设计(论文)应完毕的重要内容:1)完毕水流量测试仪总体设计;2)完毕程序设计和仿真设计;3)设计原理图和完毕实物图的焊接和功能调试;4)完毕毕业设计说明书一份;5提交设计(论文)形式(设计说明与图纸或论文等)及规定:1)基于单片机的水流量测设系统实物一件;2)基于单片机的水流量测设系统的电路图;3)完毕设计说明书一份;6发题时间:2023年12月31日指导教师:(署名)学生:(署名)湖南科技大学毕业设计(论文)指导人评语[重要对学生毕业设计(论文)的工作态度,研究内容与方法,工作量,文献应用,创新性,实用性,科学性,文本(图纸)规范限度,存在的局限性等进行综合评价]指导人:(署名)年月日指导人评估成绩:湖南科技大学毕业设计(论文)评阅人评语[重要对学生毕业设计(论文)的文本格式、图纸规范限度,工作量,研究内容与方法,实用性与科学性,结论和存在的局限性等进行综合评价]评阅人:(署名)年月日评阅人评估成绩:湖南科技大学毕业设计(论文)答辩记录日期:学生:学号:班级:题目:提交毕业设计(论文)答辩委员会下列材料:1设计(论文)说明书 共 页2设计(论文)图纸 共 页3指导人、评阅人评语 共 页毕业设计(论文)答辩委员会评语:[重要对学生毕业设计(论文)的研究思绪,设计(论文)质量,文本图纸规范限度和对设计(论文)的介绍,回答问题情况等进行综合评价]答辩委员会主任:(署名)委员:(署名)(署名)(署名)(署名)答辩成绩:总评成绩:摘要论文以智能家居系统中的水流量模块为课题,以水流量计传感器和数字温度传感器DS18B20实时采集水流量状态和水温的数据,并根据主控器STC89C52的程序指令解决后计算出水费价格,用液晶屏LCD1602分当前温度、水价和水流总量三种状态动态显示。此外,本课题设计了上下限报警,使查看更为直观,使用更加方便。关键词:单片机;DS18B20温度传感器;水流量传感器目录TOC\o"1-2"\h\u25889第一章总体设计 97265第二章系统硬件电路的设计 1055402.1主芯片STC89C52 10150442.2时钟电路 1238052.3复位电路 1396242.4液晶显示电路 14204832.5温度测量电路 18199312.6水流量测量电路 22169562.6水流量测量电路 23112142.7报警电路 24106662.8继电器控制电路 2551942.9小结 2611266第三章软件系统的设计 2744873.1软件设计总流程 271583.2温度程序模块 2890453.3水流量程序模块 31159833.4显示程序 33107063.5小结 347743第四章系统的仿真与调试 3559264.1keiluvision4软件 35317654.2ProtelDXP软件 36101904.2proteus电路仿真 3730915第五章实物展示 407795第六章总结 4125832参考文献 4210093致谢 4310467附录1:总程序 44第一章总体设计当打开水龙头时,根据单片机STC89C52的指令、水流量计传感器采集水流量状态。当单片机STC89C52扫描到水流量计传感器的脉冲数,通过单片机STC89C52解决,计算出所采集的水流量后,通过液晶屏LCD1602能动态显示当前水流量。根据设计过程,可以将的本课题划分为8个电路模块如图1所所示:LCD1602显示电路按键电路LCD1602显示电路按键电路STC89C52水流量测量电路时钟电路水流量测量电路时钟电路温度测量电路温度测量电路复位电路复位电路继电器控制电路报警电路继电器控制电路报警电路图1-1电路总框图第二章系统硬件电路的设计2.1主芯片STC89C522.1.1重要性能1)与MCS-52单片机产品兼容、8K字节在系统可编程Flash存储器2)1000次擦写周期3)全静态操作:0Hz~33Hz4)三级加密程序存储器5)32个可编程I/O口线6)三个16位定期器/计数器八个中断源7)全双工UART串行通道8)低功耗空闲和掉电模式9)掉电后中断可唤醒10)看门狗定期器11)双数据指针12)掉电标记符2.1.2芯片功能特性简述:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有机灵的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定期器,2个数据指针,三个16位定期器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。此外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定期器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash。图2-1STC89C522.1.3引脚功能表2-1STC89C52引脚介绍说明引脚功能介绍VSS电路接地端P0.0~P0.78位漏极开路的双向I/O通道P2.0~P2.78位拟双向I/O通道P3.0RXD,串行输入口P3.1TXD,串行输出口P3.2INT0,外部中断0输入口P3.3INT1,外部中断1输入口P3.4定期器/计数器0外部事件脉冲输入端P3.5定期器/计数器1外部事件脉冲输入端P3.6外部数据存贮器写脉冲P3.7外部数据存贮器读脉冲RST/VpD复位输入信号ALE/PROG地址锁存有效信号PSEN程序选通有效信号EA/VPP当保持TTL高电平,执行内部EPROM的指令,当使TTL为低电平,从外部程序存贮器取出所有指令,在内的EPROM编程时,此端为21V编程电源输入端XTAL1内部振荡器外接晶振的一个输入端XTAL2内部振荡器外接晶振的一个输入端2.2时钟电路单片机的最小系统有三部分组成,即电源,时钟电路和复位电路。其中单片机的电源引脚与5V电源连通即可,而时钟电路和复位电路还需接口扩展,这也是单片机的基本电路操作。时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行中各信号之间的互相关系。单片机自身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地准时序进行工作。在STC89C52单片机内部带有时钟电路,因此,只需要在片外通过XTAL1和XTAL2引脚接入定期控制元件(晶体振荡器和电容),即可构成一个稳定的自激振荡器。在STC89C52芯片内部有一个高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容。在单片机的XTAL1脚和XTAL2脚之间并接一个晶体振荡器就构成了内部振荡方式。STC89C52单片机内部有一个高增益的反相放大器,XTAL1为内部反相放大器的输入端,XTAL2为内部反相放大器的输出端,在其两端接上晶振后,就构成了自激振荡电路,并产生振荡脉冲,振荡电路输出的脉冲信号的频率就是晶振的固有频率。在实际应用中通常还需要在晶振的两端和地之间各并上一个小电容。图2-2时钟电路用晶振和电容构成谐振电路。电容大小与晶振频率和工作电压有关。但电容的大小影响振荡器的稳定性和起振的快速性,为了提高精度,本实验板采用20pF的电容作为微调电容。在设计电路板时,晶振、电容等均应尽也许靠近芯片,减小分布电容,以保证振荡器振荡的稳定性。2.3复位电路复位是单片机的初始化操作,其目的是使CPU和系统中各部分处在一个拟定的状态,并从这一状态开始工作。系统上电路或死机后都要进行复位操作。单片机的RST引脚为复位引脚,振荡电路正常工作后,RST端加上连续两个机器周期的高电平后,单片机就被复位。复位电路有3种基本方式:上电复位,开关复位和看门狗复位。图2-3复位电路本课题采用按键开关复位是指通过接通按钮开关,使单片机进入复位状态。开关复位电路一般不单独使用。在应用系统设计中,若需使用开关复位电路,一般的做法是将开关复位与上电复位组合在一起形成组合复位电路,上电复位电路完毕上电复位功能,开关复位电路完毕人工复位。图2-3中C7与R1构成了上电复位电路。上电复位后,电源经R1对C7充满电源,C7等效于开路,RST端为低电平;单片机正常工作。按开关K1后,C7两端电荷经R1迅速放电,K1断开后,由C7、R1及电源完毕对单片机的复位操作。在上述电路中C7、R1按上电复位电路的设计而取值。

复位电路的作用非常重要,能否成功复位关系但单片机系统能否正常运营的问题。假如振荡电路正常而单片机系统不能正常运营,其重要因素是单片机没有完毕正常复位,程序计数器的值没有回0,特殊功能寄存器没有回到初始状态。这时可以适本地调整上电复位电路的阻容值,增长其充电时间常数来解决问题。2.4液晶显示电路在平常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的重要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简朴,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用2.4.1液晶显示简介液晶显示的原理是运用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、合用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。图2-41602字符型液晶显示器实物图2.4.2显示特性只需5V电源电压,低功耗、长寿命、高可靠性内置192种字符(160个5×7点阵字符和32个5×10点阵字符)具有64个字节的自定义字符RAM显示方式:STN、半透、正显驱动方式:1/16DUTY,1/5BIAS视角方向:6点背光方式:底部LED通讯方式:4位或8位并口可选标准的接口特性:适配MC51和M6800系列MPU的操作时序。2.4.3引脚说明表2-2液晶1602引脚说明管脚号符号功能1Vss电源地(GND)2Vdd电源电压(+5V)3V0LCD驱动电压(可调)寄存器选择输入端,输入MPU选择模块内部寄存器类型信号:RS=0,当MPU进行写模块操作,指向指令寄存器;4RS当MPU进行读模块操作,指向地址计数器;RS=1,无论MPU读操作还是写操作,均指向数据寄存器5R/WR/W=0读操作;R/W=1写操作6E使能信号输入端,输入MPU读/写模块操作使能信号:4位方式通讯时,不使用DB0-DB37DB0数据输入/输出口,MPU与模块之间的数据传送通道8DB1数据输入/输出口,MPU与模块之间的数据传送通道9DB2数据输入/输出口,MPU与模块之间的数据传送通道10DB3数据输入/输出口,MPU与模块之间的数据传送通道11DB4数据输入/输出口,MPU与模块之间的数据传送通道12DB5数据输入/输出口,MPU与模块之间的数据传送通道13DB6数据输入/输出口,MPU与模块之间的数据传送通道14DB7数据输入/输出口,MPU与模块之间的数据传送通道15A背光的正端+5V16K背光的负端0V16K背光的负端0V2.4.41602LCD的指令说明1602液晶模块内部的控制器共有11条控制指令,如表2-3所示:表2-3控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设立I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表达有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表达开显示,低电平表达关显示C:控制光标的开与关,高电平表达有光标,低电平表达无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设立命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设立。指令8:DDRAM地址设立。指令9:读忙信号和光标地址BF:为忙标志位,高电平表达忙,此时模块不能接受命令或者数据,假如为低电平表达不忙。指令10:写数据。指令11:读数据。2.4.51602LCD的一般初始化(复位)过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设立写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设立写指令0CH:显示开及光标设立图2-5液晶显示电路2.5温度测量电路课题任务中需要测量水温,故先用温度传感器DS18B02的数据采集,再通过单片机数据解决,最后在液晶屏显示出来。2.5.1DS18B20简介DS18B20是DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,他它具有微型化、低功耗、高性能、抗干扰能力强、易配微解决器等优点,可直接将温度转化成串行数字信号供解决器解决。DS18B20具有以下优点:适应电压范围宽,电压范围在3.0V~5.5V,在寄生电源方式下可由数据线供电。独特的单线接口方式,与微解决器连接时只需要一条口线即可实现微解决器与DS18B20的双向通信。同时DS18B20还具有以下特性:独特的单线接口仅需一个端口引脚进行通讯简朴的多点分布应用无需外部器件可通过数据线供电零待机功耗测温范围-55~+125℃,以0.5℃递增。华氏器件-67~+2570F,以0.90F递增温度以9位数字量读出温度数字量转换时间200ms(典型值)用户可定义的非易失性温度报警设立2.5.2DS18B20结构及其工作原理64位ROM和64位ROM和单线接口存储器和控制器温度灵敏元件温度灵敏元件高速高速缓存存储器配置寄存器高温触发器TH低温触发器TL8位CRC生成器电源控制配置寄存器高温触发器TH低温触发器TL8位CRC生成器电源控制图2-6DS18B20内部结构DS1820依靠一个单线端口通讯。在单线端口条件下,必须先建立ROM操作协议,才干进行存储器和控制操作。因此,控制器必须一方面提供下面5个ROM操作命令之一:1)读ROM,2)匹配ROM,3)搜索ROM,4)跳过ROM,5)报警搜索。这些命令对每个器件的激光ROM部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。一条控制操作命令指示DS1820完毕一次温度测量。测量结果放在DS1820的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器TH和TL各由一个EEPROM字节构成。假如没有对DS1820使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对TH和TL进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。DS1820通过一种片上温度测量技术来测量温度。图2-7示出了温度测量电路的方框图。预置低温度系数振荡器计数器比较斜坡累加器预置=0=0计数器高温度系数振荡器预置低温度系数振荡器计数器比较斜坡累加器预置=0=0计数器高温度系数振荡器LSB置位/清0温度寄存器温度寄存器增长 停止图2-7温度测量电路的方框图温度/数据关系如表2-4所示:表2-4温度/数据关系温度℃数据输出(二进制)数据输出(十六进制)+125000000001111101000FA+2500000000001100100032+1/200000000000000010001000000000000000000000-1/21111111111111111FFFF-251111111111001110FFCE-551111111110010010FF92DS1820是这样测温的:用一个高温度系数的振荡器拟定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到相应于-55℃的一个值。假如计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增长,表白所测温度大于-55℃。同时,计数器被复位到一个值,这个值由斜坡式累加器电路拟定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,假如门周期仍未结束,将反复这一过程。斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增长一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。DS1820内部对此计算的结果可提供0.5℃的分辨力。温度以16bit带符号位扩展的二进制补码形式读出,表1给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS1820测温范围-55℃~+125℃,以0.5℃递增。如用于华氏温度,必须要用一个转换因子查找表。2.5.3温度测量电路接口展示图2-8温度测量电路2.6水流量测量电路2.6.1水流量传感器原理水流量传感器重要由铜阀体、水流转子组件、稳流组件和霍尔元件组成。它装在热水器的进水端用于测量进水流量。当水流过转子组件时,磁性转子转动,并且转速随着流量成线性变化。霍尔元件输出相应的脉冲信号反馈给控制器,由控制器判断水流量的大小,调节控制比例阀的电流,从而通过比例阀控制燃气气量,避免燃气热水器在使用过程中出现夏暖冬凉的现象。水流量传感器从主线上解决了压差式水气联动阀启动水压高以及翻板式水阀易误动作出现干烧等缺陷。它具有反映灵敏、寿命长、动作迅速、安全可靠、连接方便利启动流量超低(1.5L/min)等优点,深受广大用户爱慕。

水流转子组件重要由涡轮开关壳、磁性转子、制动环组成。使用水流开关方式时,其性能优于机械式压差盘结构,且尺寸明显缩校当水流通过涡轮开关壳,推动磁性转子旋转,不同磁极靠近霍尔元件时霍尔元件导通,离开时霍尔元件断开。由此,可测量出转子转速。根据实测的水流量、转子转速和输出信号(电压)的曲线,便可拟定出热水器的启动水压,以及启动水压相相应的启动水流量与转子的启动转速。由控制电路,便可实现当转子转速大于启动转速时热水器启动工作;在转速小于启动转速时,热水器停止工作。这样热水器启动水压一般设定在0.01MPa,启动水流量为3~5L/min(需满足热水器标准对最高温升的限制)。此外,由于水在永磁材料磁场切割下,变成磁化水,水中的含氧量增长,使人洗浴后感觉清爽。制动环的作用是停水时,制止高速旋转的磁性转子转动,终止脉冲信号输出。控制器接受不到脉冲信号,立即控制燃气比例阀关阀,切断气源,防止干烧。

水流量传感器是运用霍尔元件的霍尔效应来测量磁性物理量。在霍尔元件的正极串入负载电阻,同时通上5V的直流电压并使电流方向与磁场方向正交。当水通过涡轮开关壳推动磁性转子转动时,产生不同磁极的旋转磁场,切割磁感应线,产生高低脉冲电平。由于霍尔元件的输出脉冲信号频率与磁性转子的转速成正比,转子的转速又与水流量成正比,根据水流量的大小启动燃气热水器。2.6.1水流量传感器参数环境温度:-10~55℃流量计算在流量为:0.2~0.4L/Min时,1L=2100次;0.5~0.8L/Min时,1L=2281L=22800次;0.9~1.2L/Min时,1L=2350次;1.2~2.5L/Min时,1L=2460次;(脉冲次数在流量变化时有一定限度的变动)接线方法白线:信号输出;黑线:电源负(也可按客户规定定做)测量精度:±5%(在流量稳定的系统,精度可达±2%)工作电压:DC0~~24V工作压力:≤100PSI(7kg/cm)耐湿性能:在环境湿度为90%以下时性能保持稳定寿命测试:本产品用进口干簧管作感应元件,在负荷小于24V1mA前提下,开关寿命大于3亿次。图2-9水流量测量电路2.6水流量测量电路课题设计之初,规定实现设定水流量上限,以及调节水流量上限,所以除了复位按键又设立了三个控制键。三个按键的功能分别是sw2、sw3、sw4,功能分别是sw2设定水流量上限,sw3增长上限值,sw4减少上限值。图2-10按键电路2.7报警电路由于设定了水流量上限值,因此需要设计报警电路,超过设定值时进行报警。,电路重要由一个电阻,一个NPN三极管,一个蜂鸣器组成,接在89C51的P21口上。工作原理:NPN三极管的基极由IO口控制,P21高电平时三极管导通,蜂鸣器与电源的通路接通,蜂鸣器报警,P21低电平时三极管截止,蜂鸣器的通路断开不报警。图2-11报警电路2.8继电器控制电路单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低。驱动电流在mA级以下。而要把它用于一些大功率场合,比如控制电动机,显然是不行的。所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动"。继电器驱动就是一个典型的、简朴的功率驱动环节。在这里,继电器驱动具有两个意思:一是对继电器进行驱动,由于继电器自身对于单片机来说就是一个功率器件;尚有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口。基本功能:通断水阀。当单片机的这个引脚输出低电平的时候,就像继电器电路的输出引脚在打开三极管三极管,水就从上往下流,继电器继电器就开始转起来了.反之,假如是输出高电平,继电器电路的输出引脚就开始关三极管,继电器由于由于没有水流下来,就会停止。图2-12继电器控制电路2.9小结电路的设计,一方面是把预定功能设定好,再看运营这些需要什么样的硬件,然后实行硬件的操作。各个模块都要有合理的设计。仔细认真是设计硬件电路的基本,一步走错,整个设计就毁于一旦。在设计本课题时,电路设计规则一定要注意,尚有多多借鉴网络上的众多设计者分享的经验,益于自己的设计,总之一切为课题的成功做准备。第三章软件系统的设计3.1软件设计总流程程序规定液晶显示有水温和当前水流量,同时具有设立水流量上限的功能。由于LCD1602的显示屏幕有限,所以第一页显示水温和水流量,第二页显示水流量上限。整个程序中结构较为简朴,但其中也有几个重要并且比较费脑筋的子程序,涉及水测量程序、水流量上线的设定与调整、温度数据转换程序。界面1程序通断水阀程序界面2程序界面开关流量测量程序温度测量程序水流量控制开关程序系统初始化在程序中可以分为3个重要模块:水流量模块,温度模块,显示模块。界面1程序通断水阀程序界面2程序界面开关流量测量程序温度测量程序水流量控制开关程序系统初始化图3-1总流程图3.2温度程序模块3.2.1温度数据转换程序由温度传感器DS18B20采集的温度数据读取后温度的低位和高位分别存在主芯片SCT89C52存储器中。其中依定传感器的设计,读出的数据最高位为0时温度为正,温度为1时,温度是负数。是以对温度数据解决,将温度数据高位和低位整合在一起,在判断温度的正负即可。如图3-2所示:温度标志位为0返回数据取反加一温度标志位为1温度数据低八位和高八位合并读取温度跳过读序列号跳过读序列号等待调用DS18B20复位跳过读序列号DS18B20复位启动温度转换温度为负温度标志位为0返回数据取反加一温度标志位为1温度数据低八位和高八位合并读取温度跳过读序列号跳过读序列号等待调用DS18B20复位跳过读序列号DS18B20复位启动温度转换温度为负NO YES图3-2温度测量流程图3.2.2温度数据显示前解决程序将已解决好的温度数据的一方面判断它的正负,然后再去运营其他的代码。在这里,程序还设定了温度报警。温度报警本来可以在DS18B20中对芯片进行设立,但考虑到对芯片的熟悉度不够,容易犯错,而在程序中设定比较容易理解,写起来也不会太难。尚有实际水的温度不也许超过100度,所以测得100度以上的温度值就会显得多余,在程序中只要设定最高99.9度即可。再就是美观上的设定,测得的温度在为个位时,十位为0就会看起来不太美观,只要把十位设定看不见即可。温度各位分派资源十位不显示十位为0温度标志为1返回温度置为99.9百位为0红灯亮温度>40摄氏度显示“-”号红灯亮等待调用温度各位分派资源十位不显示十位为0温度标志为1返回温度置为99.9百位为0红灯亮温度>40摄氏度显示“-”号红灯亮等待调用NOYESNOYESYES NOYES图3-3数字不显示流程图3.2.2温度程序部分温度程序如下:ds1820复位子程序/*****************ds1820复位子程序******************/voidds1820rst(){unsignedcharx=0;DQ=1;//DQ复位delay_18B20(4);//延时DQ=0;//DQ拉低delay_18B20(100);//精确延时大于480usDQ=1;//拉高delay_18B20(40);//延时}ds1820读数据子程序/*************ds1820读数据子程序*******************/uchards1820rd()//读数据{unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--)//读温度2进制8次{DQ=0;//给脉冲信号dat>>=1;//将温度数据转移到datDQ=1;//给脉冲信号if(DQ)//数据转换dat|=0x80;delay_18B20(10);}return(dat);}ds1820写数据子程序/*******************ds1820写数据子程序******************/voidds1820wr(ucharwdata){unsignedchari=0;for(i=8;i>0;i--)//写数据2进制8次{DQ=0;//给脉冲信号DQ=wdata&0x01;//数据传送delay_18B20(10);//延时DQ=1;//给脉冲信号wdata>>=1;//数据移位}}3.3水流量程序模块水流量的测量重要依靠对得到的频率解决,由流量计在一段时间下产生高电平的个数决定,即Q(流量)=F(频率)/R(商家设定值)所以只要在单片机中设定一定的时间,并在该时间之下计算出得到的高电平即可。在本程序中STC89C52的两个定期器T0为计数状态,T1为计时状态,这样方可测量流量。3.3.1水流量的读取程序中断程序运营的时间到,就可以读取计数器中的数值,将下数值读出后把计数器赋值为0,等待下一次的取出,然后进入对读出数据的解决程序。如图3-4所示:等待调用等待调用中断时间到中断时间到NOYES读取频率读取频率定期器赋值定期器赋值置时间标志位置时间标志位水流量计算程序和转换程序水流量计算程序和转换程序返回返回图3-4水流量测量流程图3.3.2水流量数据的解决程序在预定期间到,即已经取出了定期器的数值。我们计算的水流量最大是以每吨来计算并显示的,故一个整形或长整型的数不够,故先把它放在了一个int变量的存储空间内,做水流量的前三位,在定义一个长整型的数,把它作为水流量的后六位,这样计算起来也比较容易,数据也不会起冲突,也是为将要计算水价做准备。设定该水流量的最大计数为250吨,超过了定值,则会从0开始。如图3-5所示:等待调用等待调用各个位置分派存储空间流量计算清零流量后六位>=25万流量后六位加1流量前三位>=1000计算流量前三位定期到·各个位置分派存储空间流量计算清零流量后六位>=25万流量后六位加1流量前三位>=1000计算流量前三位定期到 NOYES NOYES NOYES返回返回图3-5水流量数据解决流程图3.4显示程序3.4.1显示程序的解决流程在程序中只是计算出流量值,温度值以及和资源分派的情况,一些字母的显示,都要另加,这样才干尽善尽美的表达出显示出来的意思。在显示程序中加入了温度的测量,所以在主程序中不必再测量温度。在第一页重要显示的是温度和水流量的后六位,最后温度以℃结尾,水流量以L结尾。第二页重要水流量设定的上限值,最后也以L结尾。显示程序的流程图如图3-6、图3-7所示:打开水阀调整水流量上限值设定水流量上限值关闭水阀返回第一页等待调用返回水流量显示水流量测量温度显示温度测量等待调用打开水阀调整水流量上限值设定水流量上限值关闭水阀返回第一页等待调用返回水流量显示水流量测量温度显示温度测量等待调用 图3-6第一页显示流程图图3-7第二页显示流程图3.4.1显示程序部分实现程序如下:写指令程序/************************写指令程序************************/voidwr_com(unsignedcharcom)//写指令{delay(1);//延时1msRS=0;//写命令设立RW=0;//并行数据的读写EN=0;//使能为0P2=com;//输入命令delay(1);//延时1msEN=1;//使能为1delay(1);//延时1msEN=0;//使能为0}/**********************写数据程序***********************/voidwr_dat(unsignedchardat)//写数据{delay(1);//延时1msRS=1;//写数据设立RW=0;//并行数据的读写EN=0;//使能为0P2=dat;//输入数据delay(1);//延时1msEN=1;//使能为1delay(1);//延时1msEN=0;//使能为0}3.5小结本课题的程序所有用C语言来编写。在编写过程中,会借鉴网络的编程资料,会将整个程序进行整体的规划,会对错误的程序反复修改,尽善尽美的达成课题规定。其中重要的问题在于如何节省存储空间,如何最大限度的运用芯片,如何的程序在现实实物中可以很好的运营成功。这就重要归结于对芯片的熟悉限度和对程序的应用限度。通过一番努力后,最终把程序做了出来。在做程序的过程中,碰到自己解决不了的难题就和同学们一起商议探讨。这次的课题充足的锻炼了自己。系统的仿真与调试4.1keiluvision4软件本次毕业设计的程序设计的编写以及调试都在KeiluVision4上进行。2023年2月发布KeiluVision4,KeiluVision4引入灵活的窗口管理系统,使开发人员可以使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地运用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2023年3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最新版本的KeiluVision4,其编译器、调试工具实现与ARM器件的最完美匹配。最新的KeiluVision4IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。uVision4引入了灵活的窗口管理系统,可以拖放到视图内的任何地方,涉及支持多显示器窗口。uVision4在μVision3IDE的基础上,增长了更多大众化的功能。多显示器和灵活的窗口管理系统系统浏览器窗口的显示设备外设寄存器信息调试还原视图创建并保存多个调试窗口布局多项目工作区简化与众多的项目图4-1程序调试图4.2ProtelDXP软件本次毕业设计系统的电路原理图就是由此软件绘制。ProtelDXP可定制设计环境功能涉及双显示器支持,可固定、浮动以及弹出面板,强大的过滤和对象定位功能及增强的用户界面等。ProtelDXP是第一个将所有设计工具集于一身的板级设计系统,电子设计者从最初的项目模块规划到最终形成生产数据都可以按照自己的设计方式实现。ProtelDXP运营在优化的设计浏览器平台上,并且具有当今所有先进的设计特点,可以解决各种复杂的PCB设计过程。通过设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,ProtelDXP提供了全面的设计解决方案。AltiumDesigner2023已不是单纯的PCB(印制电路板)设计工具,而是由多个模块组成的系统工具,分别是SCH(原理图)设计、SCH(原理图)仿真、PCB(印制电路板)设计、AutoRouter(自动布线器)和FPGA设计及嵌入式软件开发等,覆盖了以PCB为核心的整个物理设计。该软件将项目管理方式、原理图和PCB图的双向同步技术、多通道设计、拓朴自动布线以及电路仿真等技术结合在一起,为电路设计提供了强大的支持。基于最新的Spice3f5模拟模型和XSPICESimcode数字模型仿真内核,ProtelDXP内嵌一个功能强大的A/D混合信号仿真器,设计人员在进行原理图设计输入后,即可对的地仿真模拟和数字器件而无需通过A/D转换或D/A转换将其转换到其他模块中进行。它可以对当前所画的原理图进行仿真,在整个设计周期都可以查看和分析电路的性能指标,及时发现设计中所存在的问题并加以改正。设计者可以准确地分析电路的工作状况,从而提高电路的设计工作效率、缩短开发周期、减少生成成本。ProtelDXP电路仿真设计的一般环节电路仿真是指在计算机上通过软件来模拟具体电路的实际工作过程,并计算出在给定条件下电路中各节点(涉及中间节点和输出节点)的输出波形。电路仿真是否成功,取决于电路原理图、元模型的仿真属性、电路的网表结构以及仿真设立等。ProtelDXP的电路原理图如图4-2所示图4-2电路原理图4.2proteus电路仿真4.2.1proteus软件介绍Proteus软件是英国LabCenterElectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:原理布图PCB自动或人工布线SPICE电路仿真革命性的特点互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。仿真解决器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运营后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。4.2.2proteus仿真环节第一对要仿真部分绘制好电路原理图,如图4-3所示:图4-3仿真原理图第二添加已经调试好的目的代码文献,如图4-4所示:图4-4添加目的代码文献图第三在proteus中运营电路仿真图,如图4-5所示:图4-5电路仿真图实物展示图5-1实物1图5-2实物2第六章总结这次设计的制作,充足的考验了自己的综合能力。从硬件到软件的制作过程中,问题多多,但通过一番努力后,所有的问题都解决。硬件的问题重要是设计电路这一块。由于这次设计中有第一次触摸的芯片和电路,这都不得不自己找资料去查找其芯片的结构和用法。当电路设计好了以后,元器件不多,自己就用万能板做电路。由于焊接工艺不好,使得电路有虚焊、漏焊,甚至焊错的接口,短路也时有发生。查找错误也很慢。让自己看到了在动手操作能力上的局限性。软件部分的问题就是查找资料太多,但整理出来有用的很少,尚有液晶屏1602和DS18B20温度传感器时序图看起来始终很费劲。网上那个有很多它们的资料,看懂网上的程序也很艰难,发现自己对程序上面也只是略懂皮毛。毕业设计是一次对学校对学生专业技能的验收,通过这次的实际操作,让我从硬件到软件,从思考到动手,从理论到实践,让我对电子专业的更加深刻的了解,学习的专业知识更加的巩固,更大的好处是让我知道自己哪些的局限性,哪些是自己的强项,失败和成功都是我的财富。也让我知道在关键时刻要充足的发挥自己的能力,在平时要多劳动,多学习,多看多想多实践。立即就要走上社会的我们更加体会到专业对自己重要性。在这次毕业设计中,我重要的收获就是其中许多次的失败。由失败走向成功是很让人兴奋的一件事,其中妙味无穷。由于有问题,所以我找过同学一起探讨,上网找过资料来搜集,找过老师来辅导。使我感觉到过的很充实,希望在以后工作中也能连续保持自己这样的积极性。所以这次非常感谢老师同学们的帮助。参考文献[1]邱关源.电路[M].高等教育出版社(第四版),1999.[2]胡汉才.单片机原理及其接口技术[M].清华大学出版社,2023.[3]丁玉美.数字信号解决[M].西安电子科技大学出版社,1993.[4]韩志军·单片机应用系统设计——入门向导与设计实例[M]·机械工业出版社,2023.[5]王祁.智能仪器设计基础[M].机械工业出版社,1997.[6]唐文彦.传感器[M].机械工业出版社,2023.致谢本次毕业设计通过指导老师的指导,以及自己的努力,我才干完毕任务。不仅让我增长了见识也让我真正感受到理论与实际相结合的成果,受益匪浅。感谢我的指导老师,他给予我许多的帮助和鼓励。我还要感谢在设计过程中所有给予我真诚帮助的其他老师和同学。附录1:总程序#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P1^0;//温度传感器接口//按键接口sbitkey3=P3^7;sbitkey2=P3^6;sbitkey1=P3^5;//液晶接口sbiten=P2^7;sbitrs=P2^6;//蜂鸣器接口sbitbeep=P2^0;//继电器接口sbitjdq=P2^1;longnum;//脉冲计数longdat;//算出的流量值longdat1;//算出的流量值bitflag;uintwen_du;ucharcodetable[]={""};voiddelay(ucharms){ uchary; { for(ms;ms>0;ms--) for(y=110;y>0;y--); }}/***********ds18b20延迟子函数(晶振12MHz)*******/voiddelay_18B20(uinti){ while(i--);}/**********ds18b20初始化函数**********************/voidInit_DS18B20(){ ucharx=0; DQ=1;//DQ复位 delay_18B20(8);//稍做延时 DQ=0;//单片机将DQ拉低 delay_18B20(80);//精确延时大于480us DQ=1;//拉高总线 delay_18B20(14); x=DQ;//稍做延时后假如x=0则初始化成功x=1则初始化失败 delay_18B20(20);}/***********ds18b20读一个字节**************/ucharReadOneChar(){ uchari=0; uchardat=0; for(i=8;i>0;i--) { DQ=0;//给脉冲信号 dat>>=1; DQ=1;//给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); } return(dat);}/*************ds18b20写一个字节****************/voidWriteOneChar(uchardat){ uchari=0; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; delay_18B20(5); DQ=1; dat>>=1; }}voidReadTemperature()//读取ds18b20当前温度{ uinttemp; uchara=0; ucharb=0; Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换 delay_18B20(100);//thismessageisweryimportant Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度 delay_18B20(100); a=ReadOneChar(); //读取温度值低位 b=ReadOneChar(); //读取温度值高位 temp=b*256+a; wen_du=temp*0.625;//当前采集温度转换}voiddidi(){ beep=0; delay(500); beep=1; delay(500);}voidyj1602_write_com(ucharcom){ en=0;delay(1); en=1;delay(1); rs=0;delay(1); P0=com; en=0;delay(1);}voidyj1602_write_date(uchardate){ en=0;delay(1); en=1;delay(1); rs=1;delay(1); P0=date; en=0;delay(1);}voidyj1602_init(){ yj1602_write_com(0x38); yj1602_write_com(0x0c); yj1602_write_com(0x06); yj1602_write_com(0x01);}voiddisplay(){ yj1602_write_com(0x80); yj1602_write_date('w'); yj1602_write_date('e'); yj1602_write_date('n'); yj1602_write_date('-'); yj1602_write_date('d'); yj1602_write_date('u'); yj1602_write_date(':'); yj1602_write_date(table[wen_du%10000/1000]); yj1602_write_date(table[wen_du%1000/100]); yj1602_write_date(table[wen_du%100/10]); yj1602_write_date('.'); yj1602_write_date(table[wen_du%10]); yj1602_write_date(0xdf); yj1602_write_date('c'); yj1602_write_com(0xc0); if(flag==0) { yj1602_write_date('s'); yj1602_write_date('-'); yj1602_write_date('l'); yj1602_write_date('i'); yj1602_write_date('u'); yj1602_write_date(':'); yj1602_write_date(table[dat%1000000/100000]); yj1602_write_date(table[dat%100000/10000]); yj1602_write

温馨提示

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

评论

0/150

提交评论