智能取水系统设计 毕业论文.docx_第1页
智能取水系统设计 毕业论文.docx_第2页
智能取水系统设计 毕业论文.docx_第3页
智能取水系统设计 毕业论文.docx_第4页
智能取水系统设计 毕业论文.docx_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)题 目: 智能取水系统设计 学 院: xxxxx学院 专业班级: 自动化2010级1班 指导教师: xxxxxx 职称: xxxx 学生姓名: xxxxxx 学 号: xxxxxxxx 摘 要无论在城镇还是农村,水塔和水箱几乎是必不可少的。据调查,现在的取水方式采用的是无水取水,水满停止的工作方式。抽水系统人工进行控制。即水塔无水,工作人员拉闸开电抽水机工作;水满,拉闸断电。鉴于这些问题,必然要进行自动化改造,从而实现提供足够的水量、平稳的水压,水位显示及人机交互,智能取水将取代以往纯手工控制的方式,为人们提供更大的方便。本次设计基于mcs-51单片机,七个模块构成的智能取水系统,通过软件模拟水塔的水位,人工按键将信号传给cpu,自动检测水完设备、水满设备,停电报警,水完/水满报警,溢出报警,抽水不工作报警,抽水不停报警。尽可能选用实用功能,电路板尺寸尽可能小,易维护,功耗低,用电池供电,可以进入省电状态;外观漂亮、美观。指示灯、开关要求操作方便,要求室内外及环境较恶劣情况下均可使用。关键词:单片机,智能,人机交互。abstractin both the urban and rural areas, the water tower and water tank is almost indispensable. according to the survey, the present water way is without water, water water the workings of a full stop. pumping system of artificial control. the water tower water, staff cuts open the electric pump work; the water is full, a switch power. in view of these problems, must want to undertake automation transformation, so as to realize smooth provide enough water, water pressure, water level display and human-computer interaction, intelligent control by means of water intake will replace the previous pure manual, provide greater convenience for people.this design based on mcs - 51 single chip microcomputer, intelligent water system consisting of seven modules, through the software simulation of the water tower water level, artificial button to transmit signal to cpu, automatic detection of water equipment, water full equipment, power failure alarm, water full/no water alarm, overflow alarm, pumping work not alarm, pumping constantly report to the police. as far as possible choose practical function, circuit board size as small as possible, easily maintained, low power consumption, this product can use the battery power and enter the province electricity state; it also has a beautiful appearance. its lamp and switch demands is easy to operate, the product can be used in indoor and outdoor and harsh conditions.keywords: single chip microcomputer, smart, human-computer interactionv目 录第1章 序 言11.1智能取水系统设计背景11.2研究现状及进展情况1第2章 系统设计方案的研究32.1 系统设计框图32.2用户需求42.3硬件设计思路42.4软件设计思路5第3章 硬件设计63.1 电源模块73.2 cpu、复位、晶振模块83.2.1复位电路93.2.2 晶振电路93.2.3 cpu93.3 键盘输入模块133.4 传感器模块143.5译码电路模块153.6 扬声器及电机驱动模块173.7 输出显示模块18第4章 软件设计204.1系统软件设计概述204.1.1 软件程序编写的原则204.1.2 程序设计方法204.1.3 软件设计步骤214.2 编译软件介绍224.3系统部分流程图224.3.1 键盘输入模块234.3.2 定时器中断子程序23第5章 调试记录及故障排除255.1硬件调试255.2 软件调试265.3 系统联机调试275.4 调试结果27第6章 总结29参考文献30附 录31致 谢43xxxx本科毕业设计(论文)第1章 序 言1.1智能取水系统设计背景在人们的生活中,水是赖以生存的生命之源。在科技飞速发展的时代,人口密度增加,水资源越来越贫乏。水如何能最大限度的利用并方便的输送到千家万户成了人们关注的话题。在中国的农村,没有自来水公司,人们的用水靠村里的水塔提供。水塔是功能是储水、配水,它是特殊的高耸建筑,用来保持和调节水网中的水量和水压。为了满足人们的用水需求,水塔正常使用中,必须保持其水量。所以,对水位的检测非常重要,既要不断水,又要不溢出浪费,随时保持有水状态。因此智能取水系统的自动控制和人工交互功能,既方便又节省人力,它必将取代现有的取水系统来服务人们。1.2研究现状及进展情况在科技发展相对比较落后的农村,每村都有水塔,抽水系统人工进行控制。即水塔无水,工作人员拉闸开电抽水机工作;水满,拉闸断电。这样就出现了一些弊端:首先,不定时断水,给人们生活带来极大的不便;其次,抽水时,人工无法监视水位的高低,难以准确地控制抽水机,开停过早或过晚。这样不仅减少电器设备的寿命,而且造成了水资源的极大浪费,重责可能造成生产事故。鉴于这些问题,必然进行自动化改造,从而实现提供足够的水量、平稳的水压,达到节能的目的,提高了供水系统的质量。我国调查人员对城市水塔水位的检测和控制进行了研究,目前的检测方式有很多,大致分为以下几种:1、电容式液位仪。这种方法是电容长度和水塔高度相等,测量精度高,成本也高,不适合农村水塔。2、导电电极测量。利用水的导电性,检测位于水塔内不同位置的多个电极,控制抽水机。控制性能良好,但时间久远,电极氧化、腐蚀而导致控制失灵。3、水位跟踪器。通过电子开关控制可逆电机,两根测量探针自动跟踪水平变化,不仅能测出每个水位的变化值,而且能提供任意高度的水位信息。反应灵敏,适合精度较高的工业控制。这也不适合在农村推广,它的电路复杂,价格高。4、超声波传感器检测。系统以单片机为核心,通过安装在水塔上的超声波传感器测量出水位后,单片机与设定的水位上下限进行比较决定是否接通或断开抽水机电路,把数据发至显示器显示水塔水位。5、干簧管检测。采用干簧管作传感器,永久磁铁在水的浮力作用下,上下浮动,改变干簧管的位置令其打开或闭合,当水位低于或者高于标准时,信息被传到cpu作相应的处理。6、压力传感器。隔离式传感器组件,利用单晶硅的压阻效应,单晶硅上扩散一个惠思登电桥,用先进的膜片和充硅油隔离封装。被测介质压力作用在隔离膜片和密封硅油上,传递给硅膜片,两边的硅膜片产生形变,由于电阻的效应,电桥阻值发生变化,电桥失衡,产生电信号,达到压力转换为电信号的目的。除上述之外,还有光纤传感器等检测水位,本次设计用软件模拟水位达到控制目的。2第2章 系统设计方案的研究2.1 系统设计框图图2-1 智能取水系统设计框图2.2用户需求根据用户所需要的抽水系统功能,可分为以下点:1、自动检测水位,无水自动抽水;2、水塔水满,自动停止;3、抽水过程中,实时显示水位;4、通过设备显示(如二极管)电机工作状态或者该设备状态,能够对自身功能自检,显示设备在运行、停止、异常三个状态;5、设备发生异常:停电报警,水完/水满报警,溢出报警,抽水不工作报警,抽水不停报警;6、可以人为进行设置:有水继续抽水,抽水随时停止等;7、价格低:尽可能选用实用功能,器件选型货比三家,电路板尺寸尽可能小,产品外观尽可能便宜;8、易维护、服务好,功耗低:该设备要求电池供电,可以进入省电状态外观漂亮、美观,外观要求长、宽、高要黄金分割比例,指示灯、开关要求操作方便,要求室内外及艰苦环境下均可使用。2.3硬件设计思路由用户需求,将用户所需要的产品功能用硬件电路逐一实现。1、自动检测水位,无水自动抽水:用传感器实检测无水,用弱电控制强电实现设备开始抽水;2、水塔水满,自动停止:用传感器检测水满,用弱电控制强电实现设备停止抽水(本次设计用软件模拟水塔水满。);3、抽水过程中,实时显示水位:通过5个发光二极管显示0%、25%、50%、75%、100%五种水位;4、显示设备在运行、停止、异常三个状态:用不同颜色的发光二极管和组合闪烁显示三个状态;5、设备发生异常:用软件控制各种功能正常与异常的提示,通过声音报警;6、可以人为进行设置:通过按键的方式,可以进行人工交互,对各种功能进行初始设定和随机修改。2.4软件设计思路智能取水系统的软件流程,主要采用自顶向下的设计原则,按照产品功能或者产品的工作过程逐一分化模块,达到模块化软件设计思想。通过流程图直接对任务作出描述。一个系统,分为两个大模块,全局变量的定义(m1)和主程序(m2)。在m1模块里,就包含单片机相关寄存器的定义和后面子程序用到的变量。m2模块里,包含定义子函数(m2-1)和主函数(m2-2)。以下是主函数流程图:图2-2 主程序流程图其中,正常模式又包括键盘模块、水位模块、传感器模块、其它处理模块等。异常模式包括维护模块,就是出现异常,直接进入出厂模式。出厂模式单片机不工作,等待人工维护。第3章 硬件设计本设计硬件分为七个模块,如下图示:图3-1 硬件模块单片机的最小系统就是其工作的基本条件,由四部分组成。1、要保单片机能够工作,电源必不可少;2、单片机是数字电路,因此工作要有时钟电路;3、保证单片机可靠工作,必须有复位电路;4、在以上三个必要条件的基础上加上系统所需要的控制电路。有了这几部分,单片机的核心部分就搭建成功了。第一模块的电源和第二模块的晶振、复位以及cpu组成单片机的最小系统。采用总线的方式,键盘输入、译码电路、扬声器、电机驱动、输出显示都挂载在总线上。数据总线:p0口作为数据总线,将cpu要控制的信息传送到各个外设的驱动芯片。地址总线:p2口作为高8位地址总线,p0口分时复用,作为低8位地址总线,赋给所有挂载在总线上的驱动芯片一个绝对地址。控制总线:由于没有外部程序存储器,所以ea接高电平访问单片机内部程序存储器,psen悬空。在设计的时候,用p2口的低三位作为地址,低八位地址未定义,在实际的软件编程里,用的是一个地址空间,ale是低八位地址锁存允许信号输出端,因此,ale悬空。第三模块键盘输入,用列扫描方式最终判断某个键按下,cpu进行相应的操作。经过处理后,作用在扬声器和电机上,各种状态会显示在发光二极管和数码管上,声音警示通过扬声器表示出来。第四模块是传感器输入,此次设计采用软件模拟水位,硬件上只接了温度传感器,若果用户需要,可以再数码管上显示温度。第五模块是译码电路,外部驱动芯片的地址就是p2口通过译码芯片给它们一个绝对地址。操作该地址,就能选通这些芯片。第六模块是输出显示,包括发光二极管的显示和数码管的显示。系统的原理图设计用软件protel 99 se完成。3.1 电源模块单片机系统电源设计是单片机应用系统设计中的一项重要工作, 电源的精度和可靠性等各项指标, 直接影响系统的整体性能。电源模块为该设计的第一模块。要使ac220v变为给单片机供电的5v,必须通过降压、整流、滤波等使供电电源为标准的+5v。电流经过保险管到降压变压器将ac220v降压到ac12v。实际设计时,变压器将会在pcb板上省略,只留下连通初级线圈和次级线圈的图3-2 电源模块两个插头。如图1j3、1j4。此时1j2连接的是外接电源ac12v。整流桥将ac12v整流为dc12v。开关1s2闭合,电源指示灯亮。当流过3的led灯电压为1.1v3v,电流为10ma时,发光二极管正常发亮。(由于制造工艺的进步,发光二极管只要流过45ma的电流,它就足够亮。)现在取vcc为12v,uled为2v,由欧姆定律得出限流电阻为1k。三端固定输出集成稳压器是一种串联调整式稳压器,78xx(79xx)系列。它将调整、输出和反馈取样等电路集成在一起形成单一元件,只有输入、输出和公共接地3个引出端,通过外接少量元器件即可实现稳压,使用非常方便,故称为三端集成稳压器。78l05将dc12v变为dc5v。78l05 是 78lxx 系列单片集成电路稳压器的一种型号它有一系列固定的电压输出,输出的固定电压就是xx。例如78l05输出5v,78l33输出3.3v。如果提供足够的散热,它就可以输出多达0.1a的电流。最大输入电压为30v。内部有热过载保护、短路保护,无需外加部件就能独立工作。工作安全可靠,适合制作通用型、标称输出的稳压电源。其缺点是输出电压不能调整,不能直接输出非标称值电压,与一些精密稳压电源相比,其电压稳定度还不够高。78l05是第一模块的第一个芯片,它的作用是将直流12v变成直流5v,给单片机供电。由于某些芯片的工作电压为dc3.3v或其他, 78xx(79xx)系列是固定电压输出型,还有一类三端集成稳压器是输出可调型,这时增加芯片lm1117,改变电源电压,提供其他电压。lm1117是第一模块的第二个芯片,正电压输出的低压降三端线性稳压芯片,在0.8a输出电流下的压降为1.2v。通过两个外接电阻,可以使输出电压从1.25v13.8v之间,也可以输出五种固定电压:1.8v、2.5v、2.85v、3.3v和5v。芯片内部有热过载保护、短路保护。它的电路内部有稳压管确保输出电压精度在1%之内。此次选取型号为lm1117-3.3,输入电压为4.75v10v,输出电压是3.3v。作用是将直流5v变成3.3v,作备用电源。在pcb板子上,超过1cm,电流就会有杂波。为了得到平滑、干净的电流,每个电源控制芯片输入和输出必须有滤波电容,将电容并在负载上,可滤去交流纹波。每个模块的每个芯片的输入电源,也要加一组滤波电容。一般情况下,电解电容的作用是过滤掉电流中的低频信号,电容两端电压不能突变,因此可以使输出平滑;小电容滤高频信号,使输出电压纯净。较小的电容并联对地,对高频信号提供了一个对地通路。将一大一小两个电容并联,一般要求相差两个数量级以上,以获得更大的滤波频段。(容值为100uf和104pf的电解电容和瓷片电容)。3.2 cpu、复位、晶振模块图3-3 cpu、复位、晶振模块3.2.1复位电路复位电路,就是利用它把电路恢复到起始状态,一是在给电路通电时马上进行复位操作;二是在必要时可以由手动操作。单片机在启动时都需要复位,以使cpu及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从rst引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果rst引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则cpu就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。单片机为高电平复位,通过vcc5v、电容、电阻、按键组成复位电路。通电瞬间,电容充电,相当于短路,电流到rst;电容充满电后,电源断开,下拉电阻将rst拉至低电平,cpu正常工作。需要复位时,按键按下,将电容短路,rst为高电平达到了复位目的。3.2.2 晶振电路晶体振荡器结合单片机内部电路产生单片机所需的固定时钟频率。单片机晶振提供的频率越高,它的运行速率就越快。单片机的一切指令执行都是建立在晶振提供的时钟频率。xtal1作为输入,xtal2输出,晶振选用频率为12mhz,电容一般在33pf以下,这里选用20pf。3.2.3 cpustc51系列单片机是美国stc公司最新推出的一种新一代超强抗干扰、高速、低功耗的8位单片机。该器件的基本功能和指令代码与传统的51单片机完全兼容。工作电压是3.85.5v,外形封装有40脚pdip、44脚plcc和pqfp等。这里选用40脚pdip封装。一、基本组成:1、中央处理器 (cpu) 字长8位 从00h 0ffh;寻址空间为16位地址,最大为64kb,从00h 0ffffh;工作频率为0 40mhz。2、存储器程序存储器:0 / 4kb / 8kb;数据存储器:128b / 256b。特殊功能寄存器(sfr):51子系列有21 个,52子系列有26个。3、输入/输出接口并行口:4个8位并行双向i/o接口电路:p0、p1、p2、p3,共32个;串行口(uart):1个串行全双工异步接口,可以多机通信。4、定时/计数器:51子系列有2个, 52子系列有3个,都是16位,4种工作方式。5、中断系统:51子系列有5个,52子系列有 6个中断源。两个中断优先级。6、时钟电路:片内振荡器及时钟产生电路,需外接晶振。7、布尔处理机:有较强的位处理能力。二、引脚89c51系列有40条引脚。简介如下:1、电源线(2条)vcc (20)电源线+5vvss (40)接地线gnd2、时钟引脚(2条)xtal1(19)、xtal2(18)分别是片内振荡电路输入输出端。3、端口线(8 4 = 32条)4个8位并行i/o端口:p0、p1、p2、p3。p3口还有第二功能:p3.0rxd串行数据接收口p3.1txd串行数据发送口p3.2int0 外部中断0输入口p3.3int1 外部中断1输入口p3.4t0 计数器0计数脉冲输入口p3.5t1 计数器1计数脉冲输入口p3.6wr 片外数据存储器写选通信号输出口p3.7rd 片外数据存储器读选通信号输出口4、控制线(4条)rst / vpd (9)reset:复位信号输入端,它是单片机正常工作的保证,高电平复位。vpd:voltage power down,备用电源ea / vpp (31)external access enable:片外程序存储器访问允许输入端。当ea=0时, cpu访问片外程序存储器;当ea=1时, cpu访问片内程序存储器。vpp:voltage pulse of programming,备用电源。编程电源ale / prog (30)address latch enable:地址锁存允许信号输出端。单片机上电正常工作后,ale引脚不断向外输出正脉冲信号,频率为振荡器频率fosc的1/6。cpu访问片外存储器时,该信号作为将p0口输出的低8位地址锁存到片外地址锁存器中的控制信号。prog:programming,,编程器、烧录器、写入器等编程脉冲输入端。psen (29):program store enable,片外程序存储器读选通信号输出端。三、存储器配置mcs-51单片机存储器是哈佛结构,即程序存储器和数据存储器分开设计。还有一种只有一个地址空间,程序和数据可以随意安排在这一地址范围内不同的空间。它是普林斯顿结构。在单片机内部,程序存储器和数据存储器存贮器是分开制造的。通常,程序存储器的容量较大,数据存储器的容量较小,这是单片机用作控制的一大特点。1、程序存储器 (rom)通常存储的是指令、常数,具有掉电不失的特点,片内有4kb,片外可扩展64kb;2、数据存储器 (ram) 通常存储的是数据,可用程序改写,片内有128b,片外可扩展64kb。从物理上划分为4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。逻辑上有3个存储空间:片内外统一编址的程序存储器、片内数据存储器、片外数据存储器。数据存储器分为片内和片外:片外数据存储器最大64kb从0000h 0ffffh,片外数据存储器与片外i/o设备统一编址,(如a/d、d/a、i/o芯片等)片内数据存储器(低128b)地址范围从00h 7fh。通用数据区 (30h7fh)共80个字节,用于存放的用户数据或作堆栈区使用。位寻址区 (20h2fh)16个字节,即可按字节寻址,又可按位寻址,共128位。用于开关决策、逻辑电路仿真、实时控制等。工作寄存器区(00h1fh),32个字节,4个工作寄存器组,每组r0 r7八个工作寄存器, 图3-1 特殊功能寄存器由rs1、rs0两位决定目前使用哪组工作寄存器。用于方便快速保护现场。 特殊功能寄存器(sfr)地址范围:80h 0ffh,只可用直接寻址方式访问。51子系列有21个,52子系列有26个。它们离散分布,控制、管理各个功能模块(中断、定时器、串行口)3.3 键盘输入模块8*8键盘,挂在p0总线上,采用列扫描方式。p0口既是读行的输入,又是写列的输出。矩阵式键盘工作时:行高电平(由上拉电阻将行拉至高电平),列低电平(由cpu通过p0总线设置),有键按下,该行拉低接p0被cpu检测,图3-4 键盘输入模块确定此行。然后逐列变低电平扫描,当该行再次被拉至低电平,确定此列。从而确定按键的位置。此次设计用了2*8个按键,达到人机交互。在pcb制图时,为了产品美观,排列成4行4列。每一行将每个按键的一端连接在一起构成行线,每一列将每个按键的另一端连接在一起构成列线。一共有2行8列共10根线。这10根线连接到单片机的p0口上,通过cpu在不同时刻处理行和列的状态就能检测16个键。以此方法,最多可以实现8行8列按键。键盘的读和写都是由cpu来完成的,cpu工作时,需要不停地读和写数据,74hc574八d锁存器可以锁存行和列的状态。它是高速cmos 8d锁存器,可控三态输出,总线驱动15个lsttl负载,低功耗,高抗扰性。操作电压为2v6v。每个输出管脚最大输出二极管电流25ma。通过控制oe为低电平时输出允许,cp的上升沿触发输入数据从d到输出q。当cp为下降沿时,锁存此时的d端数据,直到上升沿的到来。真值表如下h:高电平 l:低电平 x:高电平或者低电平:上升沿 q0:前一个状态 z:高阻态图3-5 74hc574真值表行列式键盘扫描两个74hc 574。以cpu为对象,连接键盘的行的74hc 574是“读”,通过控制oe和cp,按键行的状态读入574并锁存在q端供cpu检测处理。连接键盘的列的574是“写”,同样通过控制oe和cp,使cpu的状态写入574并锁存在q端,供cpu进行键盘行的扫描检测。3.4 传感器模块此次设计的水位传感器没有在产品上设计,只保留了扩展接口。此次设计为了检测水箱的水位,用软件模拟水位发光led和数码管显示。图3-6 温度传感器模块温度传感器ds18b20为扩展模块。独特的单总线接口方式,与cpu的 p1.7连接,只需一根线就可实现双向通信。从数据线上获得电源,电源范围从3v5.5v,测量温度范围广,从-55+125,在-10+85,精度为0.5,最高12位分辨率。转换为12位数字输出最大只需要75ms,具有先问报警功能。18b20有三种形态的存储器资源:一是64位的只读存储器rom,用于存放id编码,id编码共19h,前8位是单线系列编码,后48位是唯一的芯片序列号,最后8位是以上全部56位的冗余校验(crc)。数据在出厂时已经设置好了,用户不能更改。二是数据存储器ram,共9个字节。其中1、2字节存储温度转换后的数据值,3、4字节是用户eeprom的镜像。eeprom常用于储存温度报警值。上电复位它的值被刷新。第5字为节用户第3个eeprom的镜像。为了得到更高的温度分辨率,第6、7、8字节设计为计数寄存器。也是内部温度计算、转换的暂存单元。第9字节是8字节的crc码。为了用户方便操作,18b20有3位eeprom,并且在ram里都存在镜像。根据eeprom的非易失性特点,可以长期存放需要保存的数据包括上、下温限的报警值和校验数据。3.5译码电路模块用地址总线的p2口的低三位p2.0,p2.1,p2.1作为地址,74ls138工作能提供低电平,通过译码地址控制cpu读键盘行的驱动芯片74hc574的oc。图3-7 译码电路模块74ls238工作时提供上升沿,以单片机为对象,控制键盘行74hc574的clk和所有“写”的驱动芯片74hc574的clk。“读”、“写”不能在同一时刻进行,再给74ls238的允许输入端e增加一个“与门”74ls08,连接到rd(17)和wr(16)。 38译码器是一款高速cmos器件,管脚兼容低功耗肖特基ttl(lsttl)系列。138译码器可接受3位二进制加权地址输入(a0,a1,a2),当e1、e2为低电平,e3为高电平时,它能够输出8个互斥的低电平(y0y7)。当地址给定时,输出对应的地址为低电平,其余为高。真值表如下:图3-8 74hc138真值表238译码器和138唯一不同的是当地址给定,它能够输出8个互斥的高电平(y0y7)。输出对应的地址为高电平,其余为低。cpu的p2口作为地址总线,将地址分别送给138和238译码器进行译码。138的y0控制“读”行574的输出允许(oe),根据238输出特性,使输出为为高电平的时恰好提供一个上升沿,这样就可以满足所有“读”、“写”的cp。74ls08为四组2输入端逻辑与门,本次设计只用一组与门的输出控制238的e1和e2,输入连接到rd(17)和wr(16)。通过cpu控制管脚电平来操作238译码器。rd和wr的时序如下图:图3-9 读时序图图3-10 写时序图cpu的读和写是其内部自动进行的,在定义绝对地址后,只需操作该地址,单片机就能自动读和写。3.6 扬声器及电机驱动模块uln2803是8通道npn达林顿晶体管驱动器。输出最大电流500ma,最图3-11蜂鸣器及电机驱动模块大电压50v。输入管脚in接高电平,out管脚输出低电平。uln2803的每对达林顿管都有一个2.7k串联电阻,可以直接和ttl或5vcmos装置。此芯片主要应用于继电器驱动器、灯驱动器、显示驱动器(led气体放电)、线路驱动器和逻辑缓冲器。p0将数据给74hc574再送uln2803,2803可以驱动大电流、大电压外部设备。蜂鸣器的一端接out1,另一端接电源vcc。由于+5v电源足以使蜂鸣器工作,因此不需外接其它放大电路。电磁继电器有两股电路,低压控制电路和高压工作电路。一端接电源,只要另一端由2803给一个低电平,继电器就能工作。工作电路接的是抽水机。当系统上电时,51单片机和74hc574管脚都为高电平,为了避免上电或者复位时继电器工作,out2连接in3。复位时,in2为高电平,out2(in3)为低电平。此时out3就是高阻状态,继电器不工作。要使继电器工作,cpu74hc5742803的输入端in2为低电平,out2为高阻状态,由于上拉电阻,out2(in3)变为高电平,此时out3就是低电平,满足继电器工作条件。2803其它5个输出连接5个显示水位的发光二极管的阴极。单片机上电或者复位时,要求5个灯闪亮一下。3.7 输出显示模块不同颜色的led灯,分别表示水箱水位0%,25%,50%,75%,100%。不同颜色的组合,可以显示不同的异常情况。由74hc574驱动的4位共阴极八段数码管显示实时温度。由于574每个管脚最大输出电流为25ma,而点亮数码管的每一段输入电流为510ma,它远远大于流过数码管每段的电流,在实际的测试中574会发烫,不利于芯片工作。因此必须加上一个限流电阻。测量后,数码管每位压降为1.66v。根据欧姆定律计算限流电阻在83.5668之间,这里取平均值选用390。再有一个74hc574驱动uln2803控制数码管的公共端gnd,达到位选的目的。图3-12 输出显示模块数码管显示方式:静态显示:静态显示是指每个数码管的每一个段都需要一个i/o端口驱动。静态显示的优点是软件编程简单,显示亮度高,缺点是占用i/o端口多。常用于显示位数不多的情况此设计中驱动4个数码管静态显示则需要4832根i/o端口来驱动,单片机总共有32个i/o端口,因此实际应用时必须增加驱动芯片,如74hc574,增加了硬件电路的复杂性。动态显示:通过给每个数码管的公共端增加位选通控制电路,分时轮流控制各个数码管的公共端,就使各个数码管轮流点亮。在轮流显示过程中,每位数码管的点亮频率只要达到1/24s,由于人的视觉暂留现象和发光二极管的余辉效应,人的眼睛看起来就是一组稳定的显示数据。动态显示能够节省大量的i/o端口资源,而且功耗更低,应用最为广泛。此次设计数码管的显示既可以静态显示,又可以动态显示。4个574驱动芯片提供了数码管所需要的i/o口。静态显示时,需将数码管公共端gnd接低电平,由p0口直接送数据给574控制字符显示。动态显示时,将数码管公共端gnd接到uln2803来控制位选。以上所有硬件设计完成以后,开始画pcb板。选用pcb双层板。根据产品外观进行布局,包括产品的尺寸、定位孔、电源位置、显示位置等。这些确定好以后,开始布局。根据原理图,没个模块的芯片都要放在一起,使方便布线。布局完成后,依次按照强电、弱电、电源、地、信号线的顺序来布线,有时为了布线方便,可以将已经位置放好的芯片稍微移动满足布线的要求。第4章 软件设计4.1系统软件设计概述c语言是一种结构化的高级语言,它由美国贝尔实验室的dennis m. ritchie于1972年推出。其优点是可读性强、易移植,是普遍使用的一种计算机程序设计语言。它有功能丰富的库函数,具有汇编语言的特点,又兼顾了多种高级语言的特点,并而且可以直接对系统硬件进行控制。此外,c语言程序具有完善的模块程序结构,为软件模块化程序设计方法提供了有力的保障。它适于编写系统软件,三维,二维图形和动画。用c语言来编写目标系统软件,会大大缩短开发的周期,且明显地增强软件的可读性,便于扩充和移植,从而研制出规模更大、性能更完备的操作系统。所以本软件设计语言选择单片机c语言。4.1.1 软件程序编写的原则1、实时性:即能够在对象允许的时间完成对系统的检测、计算、处理和控制。此外,尽可能采用一些设计技巧,使程序尽量简单、紧凑、避免不应有的浪费。同时,对多个处理任务系统应实行中断嵌套或采用多重中断的办法,加快处理速度。2、针对性:应用程序的最大特点是具有较强的针对性,即应用程序应根据一个具体系统的要求来设计。3、灵活性和通用性:一个好的应用程序,不仅要针对性强,而且要有一定的灵活性和通用性,即稍加改变后就能适应不同系统的要求。为此,在程序设计时采用模块化结构,尽量把公用的程序编写成不同功能的子程序,这样易于设计和修改。4、可靠性:在水泵调速系统中,系统的可靠性是至关重要的。只有在硬、软件都非常可靠的情况下,系统才能可靠地正常运行。为了提高系统软件的可靠性,采用一些软件设计技巧,并把调试好的应用软件固化在单片机中。4.1.2 程序设计方法目前,单片机c语言最重要的程序设计方法是结构化的程序设计。用结构化方法设计的程序只存在三种基本结构,即顺序结构、分支结构、循环结构,程序代码的空间顺序和程序执行的时间顺序基本一致,程序结构清晰。在编写软件程序的过程中,结构化程序设计应遵循以下原则:1、自顶向下,逐步细化。即抓住整个问题的本质特性,采用自顶而下逐层分解的方法,对问题进行抽象,划分出不同的模块,形成不同的层次概念。把一个较大的复杂问题分解成若干相对独立而又简单的小问题,只要解决了这些小问题,整个问题也都解决了。2、模块化设计。模块化设计是把复杂的算法或程序,分解成若干相对独立、功能单一,甚至可供其他程序调用的模块。模块化结构不仅使复杂的程序设计简单化,开发周期得以缩短,节省费用,提高了软件的质量,而且还可以有效地防止磨时间错误的扩张,增强整个系统的稳定性与可靠性;同时,还使程序结构具备灵活性,层次分明,条理清晰,便于组装,易于维护。3、结构化编程。所谓结构化编程是利用高级语言提供的相关语句实现三种基本结构,每个基本结构具有唯一的出口和入口,整个程序由三种基本结构组成,程序中不使用goto之类的语句。本设计的软件编程选择结构化的程序设计方法,具体说来是采用主函数调用子函数的方法,将各子函数模块化,自顶向下、逐步细化,最终系统整体软件的编程。4.1.3 软件设计步骤1、系统定义:就是清楚地列出系统的各个部分与软件设计有关的特点,并进行定义,以作为软件设计的依据,系统定义是对系统任务的描述。2、程序设计:程序设计是制定程序的纲要,也就是将系统定义的问题用程序的方式进行描述、绘制流程图,结构化程序设计、模块化程序设计和自顶向下设计等,都是此步骤的有效方法。3、文件编制:文件编制是用流程图、注释、存储器分配说明等方法来描述程序来形成文件,以便用户和操作人员了解。文件编制的好坏,直接影响到程序的使用、维护和扩充。4、维护和再设计:当软件投入现场运行时,一方面可能会发生各种现场问题,因而需要进一步对系统软件进行改造和完善;另一方面,用户往往会由于环境或技术条件的变化,提出比原计划更多的要求,因而需要对原系统软件进行改进和扩充,然后再重新固化,以适应情况变化的要求。4.2 编译软件介绍随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,keil软件是目前最流行开发mcs-51系列单片机的软件。keil提供了包括编译器、宏汇编、链接定位、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部份组合在一起。keil software公司推出的uvision4是一款可用于多种8051mcu的集成开发环境(ide)。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uvision4还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标mcu,包括指令集、片上外围设备及外部信号等。uvision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。uvision4在vision3 ide的基础上,增加了更多大众化的功能。1、多显示器和灵活的窗口管理系统;2、系统浏览器窗口的显示设备外设寄存器信息;3、调试还原视图创建并保存多个调试窗口布局;4、多项目工作区简化与众多的项目;5、新版本支持更多最新的arm芯片。 使用独立的keil仿真器时,要注意以下的问题: 1、仿真器标配11.0592mhz的晶振,但用户可以在仿真器上的晶振插孔中插其他频率的晶振。 2、仿真器上的复位按键只复位仿真芯片,不复位目标系统。 3、仿真芯片的31脚(/ea)已接至高电平,所以仿真时只能使用片内rom,不能使用片外rom;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部rom(其cpu的/ea引脚接至低电平)的目标系统中使用。使用keil编译软件进行程序的编译与调试的步骤为:建立工程文件、选择单片机型号、建立源文件、保存为.c文件、添加c文件、编译、运行,最后生成hex文件,hex文件烧录进89c51中,该产品就能运行工作了。4.3系统部分流程图本设计利用stc89c51单片机作为cpu控制芯片,采用单片机keil c语言编写程序,将各部分模块化,使用主函数调用子函数的方法,遵循自顶向下、逐步细化的原则,实现了按键输入、单片机p0口发出数据、译码电路、led和数码管的显示功能。4.3.1 键盘输入模块键盘采用列扫描方式,流程图如下: 图4-1 按键扫描流程图采用总线的方式,p0先给行全部高电平,列全给低电平。扫描行,有没有低电平,若有,则这一行有按键按下。然后逐列给低,判断行是否为低电平,若有,则该列对应的键被按下,从而确定了按键位置。4.3.2 定时器中断子程序此次设计用的是定时/计数器0,选择方式2,总共可以计数256个数。晶振选用12m,总共可以计数0. 256ms,设置定时器定时为10ms,初值为d8f0。进入中断后,首先要关闭中断,处理按键扫描程序。处理完返回主程序,10ms中断一次。定时器0中断流程图如下:图4-2 定时器0中断流程图程序流程图是功能流程图的扩充和具体化,在软件设计概述里,简单介绍了功能流程图,首先将单片机各个寄存器和外部芯片、全局变量初始化,然后软件设置水位的上限值和下限值,通过信息对比,cpu作相应的处理,决定是否抽水、是否报警和显示。第5章 调试记录及故障排除调试是将编写好的程序下载到实际的硬件电路中,检验硬件电路的输出是否正确,用手工编写或软件编译程序等方法进行下载测试,修正语法错误和逻辑错误的过程,从而使得硬件和软件整合在一起,实现产品功能。整个调试过程可恶意分为三个部分:硬件调试,软件调试,系统联机调试。5.1硬件调试单片机系统的硬件调试和软件调试是不能分开的,硬件是软件调试的基础。通常首先排除明显的硬件故障后,再和软件结合起来调试以进一步排除硬件故障。如果硬件调试不通过,软件调试无需做起。当硬件原理设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试分为静态调试和动态调试。静态调试:1、通电前仔细检查pcb上各个元器件的焊接有无短路、虚焊等问题;2、用万用表测量电源电压;3、用万用表测量电源与地线之间的电阻,若电阻为0或电阻很小,说明有短路现象。根据电路基本知识解决问题后才能加上5v电源;动态调试:1、若静态调试无误,接通电源,观察有无冒烟、异味、元件发烫等现象;2、模块电路调试与调整。调试是测量电路参数,调整是在测试之后的参数修正,采用分块调试;(上电复位检查rst引脚;用示波器观察xtal2、ea引脚波形等)3、整机性能测试与调整。测试整机性能是否与设计标准相符合,若不符合,重复5、6步骤;4、产品老化与环境测试。按照以上调试方法,pcb上各元件焊接正常且无短路现象,芯片输入电压正常。通电后,各个芯片无发热现象。数码管显示正常。调试比较顺利,源于原理图设计合理,pcb布线合理。通过示波器观察晶振输出管脚,出现标准的正弦波。用万用表测量复位电路的电平,正常工作低电平,复位按键按下出现瞬间高电平,复位电路正常。5.2 软件调试软件调试方法与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调试好后,再进行系统程序总调试;如果采用实时多任务结构程序,一般逐个任务进行调试。本次设计,我们的软件采用的是模块化结构。软件调试过程如下:1、模块结构程序调试时要分别调试每个程序。调试的方法可采用单步运行和断点运行,通过检查用户系统cpu的管脚状态、寄存器的内容,检测程序执行结果是否符合自己的设计要求。2、各个程序模块调试通过后,可以把相关的功能模块联合起来进行整体程序综合调试。这个阶段发生错误的原因可能是各个子程序运行时破坏现场、缓冲区发生冲突、标志位的建立和清除在设计上失误、堆栈区溢出等。3、上述两步调试完成基础上,进行连续调试方式。因为这样可以确定cpu的实时响应问题。4、 当全部调试完成以后,反复运行,观察稳定性,必要时适当的对延时子程序作一些修改。软件调试的界面图如下图所示:图5-1 软件调试结果5.3 系统联机调试软件调试通过之后就是进行软硬件联机调试,在联机调试中出现了以下问题:1、电源控制芯片78l05发热。在查阅相关资料后,确定该芯片发热是正常的,加上散热片,使芯片正常工作。2、通电后,74hc574稍微发热。经过分析后,574驱动数码管,流过电流较大,

温馨提示

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

评论

0/150

提交评论