单片机的水位检测与控制系统
目录
1 整体方案设计……………………………………………………………………….1
1.1 整机工作原理…………………………………………………………………1 2 各模块的设计与论证……………………………………………………………….2
2.1 电源模块………………………………………………………………………2
2.1.1 整流方案的设计论证……………………………………………….2 2.1.2 滤波的设计论证…………………………………………………….. 2 2.2 传感器模块…………………………………………………………………..3
2.2.1 传感器的选择……………………………………………………….3 2.2.2 传感器的设计……………………………………………………….4 2.2.3 整形模块…………………………………………………………….5 2.2.4 施密特触发器的选择……………………………………………….5. 2.3 中央处理器模块………………………………………………………………6
2.3.1 AT89s52功能特性……………………. …………………………….. 6 2.3.2 功能特性描述………………………………………………………..7 2.3.3 引脚……………………………………………………………………7 2.4 数码管显示模块……………………………………………………………….9 2.5 继电器控制阀门模块…………………………………………………………10
2.5.1 继电器工作原理………………………………………………………10 2.6 系统各点电位、参数与功耗………………………………………………….12 3 软件设计………………………………………………………………………………14
3.1中断………………………………………………………………………………14
3.1.1中断系统及功能……………………………………………………….14 3.2 定时器…………………………………………………………………………15
3.2.1定时器/计数器的结构特点……………………………………………15 3.2.1定时器/计数器的初始步骤……………………………………………15
4 结论及流程图………………………………………………………………………..16 参考文献…………………………………………………………………………………17 致谢……………………………………………………………………………………..18. 附图 …………………………………………………………………………………….19 个人简介…………………………………………………………………………………21
1 整体方案设计
1.1整机工作原理
通过水的导电性,在水位到与未到的差别形成鲜明的高低电平并利用单片机强大的数据处理能力对收到的数据进行解码、判断,做出相应的显示处理、驱动继电器打开或关闭相应的电子阀门。
(图 1-1 系统整体方案)
2各模块的设计与论证
2.1 电源模块
由于单片机,CD4584和电路中其他模块需要5V 的电源才能正常工作,所以我们需要设计一个5V 的直流电源。我国市电为频率为50HZ 的220V 交流电,为了能得到本设计中可用的DC5V 电源,需要将220V 交流电经降压变压器降为12V 的低压交流电,经桥式整流器和电容滤波后10.8V(12*0.9V)的直流电,但是这个直流电不太稳定,为了使电路正常稳定工作,我们在10.8V 直流电后面加一个7805集成稳压块和一个相对较大的电容做为储能用,使输出电压不会因为负载的变化而产生太大的纹波。具体电路图如下:
(图 2-1 5v电源模块)
2.1.1 整流方案的设计论证
整流方案可有多种选择,具体有半波整流、全波整流、桥式整流,几种整流的比较, 可以发现半波整流的整流效率只是后两者的一半, 桥式整流与全波整流所得到的波形一样, 亦即两者的整流效果一样, 但全波整流要求变压器次线圈要多一样抽头. 综合考虑整流效率、制做电路板的难易程度和市场器件可购买等因素,我们选择使用桥式整流。
2.1.2 滤波的设计论证
利用整流电路可以将交流电转化为直流电,但从得到的直流电压来看,往往含有一定的交流成份。在要求较高的电器设备中,如自动控制、仪表等,必须想办法削弱交流成分,而滤波装置就可以帮助改善脉动成分。
滤波方案也有多种选择,常用的滤波装置有电容和电感元件,因为这两种元件都具有储能作用,故用来调节脉动成分,以使输出电压平滑。具体分起来有电容滤波、电感滤波、复式滤波电路(LC 滤波、RC 或LC 型滤波)。
表2-1 各种滤波电路性能比较
2.2 传感器模块 2.2.1 传感器的选择
此设计最重要的模块之一就是水位传感器了, 因为这个模块的准确性直接决定了水位控制的准确性. 如果传感器选择得不可靠, 可能造成数码管所显示值非水池中的真实水位值; 可能造成错误报警; 错误加水或错误放水等可能.
水位的高度检测也可有多种选择, 如①超声波;②电容传感器;③红外传感器;④利用水的导电性直接感应电流的" 通" 或" 断" 来判断水位是否到达了相应的水位线
方案一、使用超声波传感器。超声波具有不受被测的深度和导电性影响的特殊性,但精度不高,价格昂贵;这种产品不具有市场竞争力。再者,这种传感器与单片机的接口较复杂,需要模/数之间的转换。
方案二、使用电容式传感器。容易实现,但要求水位的变化较为缓慢,距离不能太远。
方案三、使用红外传感器,利用水面和容器的反射构成薄膜干涉,当有水时,由于水面反射光的干涉,使得红外线传感器接收不到相应的信号,由此可以探测到水位高度。但是,同样地这种传感器价格也很昂贵,而其安装起来也不太容易。
方案四、利用水的导电性, 直接感应电流的" 通" 或" 断" 来判断水位是否到达了相应的水位线。这种方式不用额外的开销,而操作安装简单,其安装高度较为灵活。如下示意图
(图 2-2-1-1 水位传感器示意图)
2.2.2 传感器的设计
由于不同水质的电阻会不同,而相同水质不同的距离电阻也不一样。因此,这个模块的设计比较灵活,特别是上拉电阻的选择比较讲究。 取自来水用万用表测得的 2.5mm ~4.5mm 之间的电阻有20K 左右,考虑到CMOS 电路(如4000系列,4500系列)当供电为5V 时的输入电压在3.5V 以上为高电平,在1.5V 以下为低电平。如下模型:
(图 2-2-2-1 传感器模型)
当水位还没达到相应高度时,感应模块的电路不导通,此时输出为5V 的高电平。 当水位达到相应高度(0CM~12CM之间) 时,应该使电路的输出在1.5V 以下。假
设上拉电阻为R 有:
(可选100K ),此时高电平为5V ,低电平为0.83V 2. 2. 3 整形模块
可以预见,传感器传输出来的电压是缓慢变化的,为了得到清晰的高低电平,我们需要对输出波形进行整形。使用施密特触发器就可以实现这种简单的整形。
施密特触发器最重要的特点是能够把变化缓慢的输入信号整形成边沿陡峭的矩形脉冲。同时,施密特触发器还利用其回差电压来提高电路的抗干扰能力。它是由两级直流放大器组成。如图:
(图 2-2-3-1 施密特触发及其波形示意图)
两只晶体管的发射极连接在一起。该电路也有两个稳定状态,但它是靠电位触发的。它的两个稳态分别为VTl 饱和、VT2截止与VT2饱和、VT1截止。两个稳态的相互转换取决于输入信号的大小,当输入信号电位达到接通电位且维持在大于接通电位时,电路保持为某一稳态;如果输人信号电位降到断开电位且维持在小于断开电位时,电路迅速翻转且保持在另一状态,该电路常用于电位鉴别、幅度鉴别以及对任意波形进行整形。
(2-1式)
解2-1式,可得R 值46.7K 的临界值,为使高低电平足够分明,我们应取大于46.7K
2. 2.4 施密特触发器的选择
方案一、使用TTL 系列的施密特芯片(如7414六施密特触发反相器TTL 芯片供电范围为0V ~5V ,如74系列供电为5V ,供电范围相对较窄而功耗较高。当供电为5V 时,输出在2.7V 以上为高电平,0.5V 以下为低电平。输入在 2V 以上为高电平,0.8V 以下为低电平。
方案二、使用CMOS 系列的施密特芯片(如CD4584六施密特触发器)CMOS 供电范围在3V ~15V 间,供电范围较宽且功耗也比TTl 要低。如4000系列当5V 供电时,输出在4.6V 以上为高电平,0.05V 以下为低电平。输入在3.5V 以上为高电平,在1.5V 以下为低电平。
)
(图 2-2-4-1 CD4584引脚图)
综合以上比较,我们选择 CD4584 做为整形芯片。
2.3 中央处理器模块
中央处理器是整个设计的数据处理中心,担负着数据接收与处理、数据显示与报警及继电器的驱动并开启电子阀门。这个中央处理器的选择应考虑价格、稳定性、易用性等因素。这里我们选择89s 52。
2.3.1AT89s52 主要性能:
与 MCS-51 单片机产品兼容 8K 字节在系统可编程Flash 存储器
1000次擦写周期 全静态操作:0Hz ~33Hz 32个可编程I/O口线 三个16位定时器/计数器 八个中断源
全双工UART 串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符
2.3.2 功能特性描述:
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单片机上,拥有灵巧的8位CPU 和在系统可编程Flash ,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
2.3.3 引脚:
P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL 逻辑电平。对P0端口写"1" 时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash 编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL 逻辑电平。对P1端口写"1" 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和 时器/计数器 2 的触发输入(P1.1/T2EX ),具体如下。在flash 编程和校验时,P1口接收低8位地址字节
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX (定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5MOSI (在系统编程用) P1.6MISO (在系统编程用) P1.7SCK (在系统编程用)
P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2端口写" 1" 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash 编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL 逻辑电平。对P3端口写" 1" 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。P3口亦作为AT89S52特殊功能(第二功能)使用,如下所示。在flash 编程和校验时,P3口也接收一些控制信号。
P3.0RXD (串行输入) P3.1TXD (串行输出) P3.2INT0(外部中断 0) P3.3INT0(外部中断 0) P3.4T0(定时器 0 外部输入) P3.5T1(定时器 1 外部输入) P3.WR (外部数据存储器写选通) P3.7RD (外部数据存储器写选通) 框图:
(图 2-3-4-1 中央处理器引脚图)
2.4 数码管显示模块
其段数码管是常用的显示器件,具有造价低廉,驱动方便等特点,其由7 个发光二极管和一个小数点组成, 行成一个日字形, 它们可以共阴极, 也可以共阳极. 但其使用方法基本相同。通过解码电路得到的数码接通相应的发光二极而形成相应的数字显示。由于,单片机复位后的各个引脚呈高电平,一般情况下,复位后数码管不亮且考虑到显示的“够用”要求,所以选择一位共阳数码管做为水位高度的显示。如下所示为一位共阳的示意图:
(图2-4-1数码管模型示意图)
(图2-4-2 共阳数码管示意图)
由于发光二极管正常工作时的典型压降为1.8V ~ 2.2V ,典型工作电流1mA ~
3mA ,而单片机高电平时输出电流大约为50uA ~ 80uA而已,为了能够驱动其显示,应加一个三极管增加驱动电流。如图:
(图2-4-3共阳数码管接法)
2.5 继电器控制阀门模块
用一个较小的电流去控制较大的电流(如驱动阀门、高功率加热器件、机床等) ,可以使用诸如继电器,晶体管和晶闸管几种类型。在线路结构上都采用了隔离措施。但各有其特点:继电器输出:开关速度低,负载能力大,适用于低频场合。晶体管输出:开关速度高,负载能力小,适用于高频场合。晶闸管输出:开关速度高,负载能力小,适用于高频场合。在这个设计中,只是用于驱动阀门而已,所以选择使用继电器,要求速度不用太高,负载也无需太大。继电器是一种当输入量(电、磁、声、光、热)达到一定值时,输出量将发生跳跃式变化的自动控制器件,是一种电子控制器件, 通常应用于自动控制电路中, 它实际上是用较小的电流去控制较大电流。
2.5.1 继电器工作原理
一般机械继电器有一组触点,3根引线,两个是常开的,两个是常闭的,中间一个共用。当控制端加电之后,线圈产生磁场,常开的闭合,常闭的断开,这样可以用小电压和电流控制大功率的设备,比较方便和安全。下图为直流无极继电器,当电流通过线圈时,铁芯吸动衔铁,使推杆向上移动,带动中簧片断开后接点,而与前接点闭合;当电源切断后,铁芯失磁,衔铁自行释放,使推杆下降,中簧片断开前接点,
而与后接点闭合。继电器线圈没电时,铁芯失磁,簧片与后接触点闭合,使信号灯电路接通红灯,则红灯亮。如下图:
(图 2-5-1-1 继电器断开时工作原理示意图)
继电器线圈有电时,铁芯吸动衔铁,簧片与前接触点闭合,使信号灯电路接通绿灯,则绿灯亮。如下图:
(图2-5-1-2 继电器接时工作原理示意图)
综合考虑, 电子阀门工作时电流不大, 形状闭合速度也要求不高, 所以继电器的选择要求不高, 只要市面上较易买到, 价格合适, 电流2A ~10A 右就可以了. 这里我们选择的是HRS4H-S-DC5V 就可以
2.6系统各点电位、参数与功耗
表2- 6-1 主板各点电位表
表2-6-2 传感器板各点电位
系统中,共有 2 个水位感应点,两水位点的距离80cm , 最低点为 220cm , 最高点为 300cm , 高点显示0,低点显示2。下表是水位高低时的 2 种编码及数码管显示 2
种值。 当断开电源线,用万用表接断开线的两端,测得整机电流15mA , 整个系统功耗大约在15×4.8=74mW 左右. (注:允许误差±0.3V, 实际测得+0.1,符合原设计要求范围).
3软件设计
3.1中断
汇编语言是计算机提供给用户的最快最有效的语言,也是能够利用计算机的所有硬件特性并能够直接控制硬件的唯一语言。但是由于编写和调试汇编语言程序要比高级语言复杂,因此目前其应用不如高级语言广泛本部分重点讲述本系统的软件部分,分析了软件结构及流程如图3-1所示,介绍了调试过程中出现的问题及解决办法。
3.1.1中断系统及功能
中断装置和中断处理程序统称为中断系统。中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。计算机的中断系统能够加强CPU 对多任务事件的处理能力。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现多道程序设计的必要条件。 中断是CPU 对系统发生的某个事件作出的一种反应。 引起中断的事件称为中断源。中断源向CPU 提出处理的请求称为中断请求。发生中断时被打断程序的暂停点成为断点。CPU 暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU 执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分成为软件处理程序。
中断系统的功能:
(1)实现中断响应和中断返回
当CPU 收到中断请求后,能根据具体情况决定是否响应中断,如果CPU 没有更急、更重要的工作,则在执行完当前指令后响应这一中断请求。CPU 中断响应过程如下:首先,将断点处的PC 值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。然后,将有关的寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场,由用户自己编程完成。保护断点和现场后即可执行中断服务程序,执行完毕,CPU 由中断服务程序返回主程序,中断返回过程如下:首先恢复原保留寄存器的内容和标志位的状态,这称为恢复现场,由用户编程完成。然后,再加返回指令RETI ,RETI 指令的功能是恢复PC 值,使CPU 返回断点,这称为恢复断点。恢复现场和断点后,CPU 将继续执行原主程序,中断响应过程到此为止。
3.2 定时器
单片机的定时器的工作原理是利用了寄存器的溢出来触发中断的, 所以在写定时器的时候就要去算计数的增量, 再根据单片机的晶振的频率就可以算出确定的时间了. 附件中有一计算器是用来计算初值的, 十分方便,定时器主要用到了2个寄存器, 一个为T CON , 另一个为TMOD.TCON 是用来控制定时器的启动与停止的. TMOD 是用来设置定时器的模式的。
3.2.1定时器/计数器的结构特点
(1) MCS-52 内部定时器/计数器可以分为定时器模式和计数器模式两种。在这两种模式下,又可单独设定为方式0、方式1、方式2和方式3工作。
(2) 定时器模式下的定时时间或计数器模式下的计数值均可由CPU 通过程序设定,但都不能超过各自的最大值。最大定时时间或最大计数值与定时器/计数器的设定有关,而位数设定又取决于工作方式的设定。例如,若定时器/计数器在定时器模式的方式0下工作,则它按二进制13位计数,因此,最大定时时间为
Tmax=213*T计数
式中,T 计数为定时器/计数器的计数脉冲周期时间,由单片机主脉冲经12分频而来。
(3) 定时器/计数器是一个二进制的加1计数器,当计数器计满回军时能自动产生溢出中断请求,表示定时时间已到或计数已经终止。
3.2.2定时器/计数器的初始化步骤
(1) 根据题目要求先给定时器方式寄存器TMOD 送一个方式控制字,以便设定定时器/计数器的相应工作方式。
(2) 根据实际需要给定时器/计数器选送定时器初值或计数器初值,以确定需要定时的时间和需要计数的初值。
(3) 根据需要给中断允许寄存器IE 选送中断控制字,并给中断优先级寄存器IP 选送中断优先级字,以开放相应中断并设定中断优先级。
(4) 给定时器控制寄存器TCON 送命令字,以便启动或禁止定时器/计数器的运行。
4结论及流程图
设计研究基于单片机的水位检测与控制系统,完成了系统方案设计与论证、软件编写、硬件实现及整机调试,系统稳定。实现了预期的功能。
参考文献
[1] 童诗白,华成英。模拟电子技术基础(第三版)。北京高等教育出版社,2001 [2] 谢嘉奎,宣月清,冯军。电子线路线性部分(第四版)。北京高等教育出版社,2004
[3] 郁有文. 传感器原理及工程应用, 西安电子科技大学出版社,2001. [4] 严钟豪. 非电量电测技术. 北京, 机械工业出版社,2001. [5] 周乐挺. 著传感器与检测技术. 北京, 机械工业出版社,2005. [6] 范晶彦. 传感器与检测技术应用. 北京, 机械工业出版社,2005. [7] 张正伟. 传感器原理与应用. 北京, 中央广播电视大学出版社,1991. [8] 李 军. 检测技术及仪表. 北京, 轻工业出版社,1989. [9] 宋文绪. 自动检测技术. 北京, 高等教育出版社,2000. [10] 贾伯年. 传感器技术. 南京, 东南大学出版社,1990. [11] 杜 维. 过程检测技术及仪表. 北京, 化学工业出版社,1999. [12] 高晓蓉. 传感器技术. 成都, 西南交通大学出版社,2003.
[13] 吴桂秀. 传感器应用制作入门. 杭州, 浙江科学技术出版社,2003. [14] 徐 洁. 电子测量与仪器. 北京, 机械工业出版社,2004. [15] 武昌俊. 自动检测技术及应用. 北京, 机械工业出版社,2005.
致谢
本论文是在段学习老师的认真指导下完成的。指导老师渊博的知识、严谨的治学态度、敏锐的思考力、善于发现并解决问题的能力以及平易近人的作风令学生终生受益。老师对我论文工作中遇到的困难提出了行之有效的解决办法,使我对项目设计的重要环节有了较好的理解与把握,尤其是在方案设计方面有了较大提高。值此成文之际,谨向老师表示衷心的感谢!
历时一个多月毕业设计终于圆满完成了。心里兴奋难以用言语表达。首先要感谢我的毕业设计导师段学习老师。这次毕业设计在选课题及设计过程中都是您的悉心指导,每个设计细节和每个数据,都离不开您的细心指导。窦伟山老师多次询问研究进程,窦伟山并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。对窦伟山老师的感激之情是无法用言语表达的。感谢在此毕业设计过程中所有帮助过我的同学,感谢和我一起研究、探讨的同学、朋友。感谢他们的帮助,让我坚持并完成毕业论文设计。
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!谢谢你们!
附录
图片
( 实物运行图)
(水位下降实测波形)
(水位上升实测波形)
第 20 页 共 21 页