基于单片机的水位控制系统方案_第1页
基于单片机的水位控制系统方案_第2页
基于单片机的水位控制系统方案_第3页
免费预览已结束,剩余39页可下载查看

下载本文档

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

文档简介

1、 PAGE PAGE 7 / 42绪论又可作为分布式计算机控制系统中的前端机,完成模拟量的采集和开关量的 输入、处理和控制计算,然后输出控制信号。单片机广泛用于仪器仪表中, 与不同类型的传感器相结合,实现诸如电压、功率、频率、湿度、流量、速 度、厚度、压力、温度等物理量的测量;在家用电器设备中,单片机已广泛 用于电视机、录音机、电冰箱、电饭锅、微波炉、洗衣、高级电子玩具、家 用防盗报警等各种家电设备中。在计算机网络和通信、医用设备、工商、金 融、科研、教育、国防、航空航天等领域都有着十分广泛的应用。随着科技的发展,液位测量技术趋于智能化、微型化、可视化。本设计 思想是用单片机做下位机, PC

2、机做上位机,单片机和 PC位进行测量和监控。该设计要求具有一定的智能化,可操作性和稳定性好。课题背景与研究意义在工农业生产中,常常需要测量液体液位。随着国家工业的迅速发展,液位测量技术被广泛应用到石油、化工、医药、食品等各行各业中。低温液体(液氧、液氮、液氩、液化天然气与液体二氧化碳等)得到广泛的应用,作为贮存低温液体的容器要保证能承受其载荷;在发电厂、炼钢厂中,保持正常的锅炉汽包水位、除氧器水位、汽轮机凝气器水位、高、低压加热器水位等,是设备安全运行的保证;在教学与科学研究中,也经常碰到需要进行液位控制的实验装置。国外研究现状与发展型。接触式测量法数的方法。为电压、相移、频率、脉宽等物理量,

3、再进行测量。检测电路比较复杂,尤其是检测微小电容量的变化。非接触式测量法非接触式测量法包括超声波法、调制型光学法、微波法等。其特点是测量手段并不采用浮子之类的固态物,而是利用声、光、射线、磁场等的能量。液位传感器不和被测介质接触,不受被测介质影响,也不影响被测介质,故适用围广泛。特别是接触式测量装置不能适用的特殊场合,如高粘度、强腐蚀性、污染性强,易结晶的介质。光纤测量法光纤液位检测是近年来出现的一种新技术。根据光导纤维中光在不同介质中传输特性的改变对液位进行测量。光纤液位测量有以下优点:精度高、灵敏度好、抗电磁干扰、耐腐蚀、电绝缘性好、检测现场无电、光路有抗扰性以与便于与计算机连接,便于与光

4、纤传输系统组成网络等。目前,市面上进行液位测量的仪表种类繁多,但是同时具有测量、监控、数据记录如江河湖海、城市用水等方面,大量数据长时间,多网点的采集记录分析具有普遍的意义。液位的变化分析,有助于人们进一步对自然环境、天气变化甚至是灾害预警提供可靠的支持。本课题主要研究容设定完水位后,系统根据水位情况控制电磁阀的开启和关断。具体要求如下:1、设计单片机工作电源模块与其复位电路2、选择合适的水位传感器,单片机通过相应的调理电路采集当前水位值,设计相应的电磁阀控制电路,根据水位情况控制器开启和关断3、通过键盘设置其预定水位4用Visio软件绘制软件流程图5、编制相应的控制程序,并用C语言或汇编语言

5、对软件进行编译。并能通过调试。6、利用protel进行原理图绘制,并利用Proteus进行仿真系统设计方案系统设计方案比较对于水位进行控制的方式有很多,而应用较多的主要有 2 种,一种是简单的机械式控制装置控制,一种是复杂的控制器控制方式。两种方式的实现如下:优点是结构简单,成本低廉。存在问题是精度不高,不能进行数值显示,另外很容易引起误动作,且只能单独控制,与计算机进行通信较难实现。复杂控制器控制方式。这种控制方式是通过安装在水泵出口管道上的压力传感器,把出口压力变成标准工业电信号的模拟信号,经过前置放大、多路切换、DPIDDA2.2总框图A/D 转换模块A/D 转换模块存储模块通信模块按键

6、与显示模块单片机主控模块通信模块按键与显示模块时间模块电机控制模块时间模块电机控制模块图 2-1 系统总体框图硬件设计方案工作原理基于单片机实现的水位控制器是以 AT89C51 芯片为核心,由键盘、数码显示、AD0 5VAD,AD地显示水位高度,可任意控制水位高度。主控模块设计方案单片机作为主控模块,使得在对单片机选型上有了较大的空间。单片机在 30 多年的发展历程中,形成了多公司、多系列、多型号“百家争鸣”的局面。因而,选择一个合适的单片机有时真的不太容易,要考虑的方面太多。大致总结出以下几点:单片机的基本参数。例如速度、程序存储器容量、I/O引脚数量等。RT(实时时钟EEPROM扩展RAM

7、、CAN接口、I2C接口、SPI接口、USB接口。Flash和OTP(一次性可编程)。封装:DIP(双列直插),PLCC(PLCC有对应插座)还是贴片。工作温度围,工业级还是商业机。功耗。工作电压围。例如设计电视机遥控器,2节干电池供电 ,至少应该能1.83.6V电压围工作。供货渠道畅通。价格。烧录器价格,能否ISP(在线系统编程)。仿真器。单片机汇编语言支持。资料尽量丰富。抗干扰性能好。和其他外设芯片放在一起的综合考虑。单片机采用由 Atmel 公司生产的双列40脚 AT89C51芯片,如图22所示。其中,P0口用于 AD 转换和显示;P1口连接一个35的键盘;P2口用于控制电磁阀和水泵动作

8、;P3口用于上、下限指示灯,报警指示灯以与用于读写控制和中断等。图2-2 AT89C51的管脚图键盘显示模块设计方案4行4列的16键行列式键盘,占用单片机P1口的8口。显示采用4LEDA/DADC0809MCMOS8888A/D81、主要特性(1)88A/D8具有转换起停控制端。8 / 42100s(640kHz),130s(500kHz)单个5V05V,不需零点和满刻度校准。工作温度围为-408515mW2、部结构和外部引脚ADC0809在部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:(1)ININ83ADDADDADD07通一路。ABCDA/D70理器数据线连接。8 位

9、排列顺序是 D 为最高位,D 为最低位。70ADDADDABCAC地址信号与选道对应关系如表 11.3 所示。(4)V (+)、V (-)正、负参考电压输入端,用于提供片DAC 电阻网络的基RR(-)=0VVRRRR接正、负极性的参考电压。(5)ALE地址锁存允许信号,高电平有效。当此信号有效时,A、B、C 三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和STARTA/D(6)STARTA/D逐次逼近寄存止,重新从头开始转换器清零,下降沿开始A/D换时又接到新的启动脉冲,则原来的转换进程被中。地址地址ADD00选道CADDBADDA0001ININ019 / 42010IN201

10、1IN3100IN4101IN5110IN6111IN7图 23 ADC0809 外部引脚图7)EOCA/DCPUCPUSTART(8)OE输出允许信号,高电平有效。当微处理器送出该信号时, ADC0808/0809 的输出三态门被打开,使转换结果通过数据总线被读走。在中断作方式下,该信号往往是CPU发出的中断请求响应信号。电机控制模块设计方案选用继电器作为电机控制的元件。继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。继电器

11、主要产品技术参数:型号不同,可以是交流电压,也可以是直流电压。10 / 42直流电阻。是指继电器中线圈的直流电阻,可以通过万能表测量。吸合电流。是指继电器能够产生吸合动作的最小电流。在正常使用时,给作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。释放电流。是指继电器产生释放动作的最大电流。当继电器吸合状态的电吸合电流。触点切换电压和电流。是指继电器允许加载的电压和电流。它决定了继电根据以上的参数,结合设计的演示性,选用额定工作电压120VAC/24VDC,工作电流3A,控制电压5VDC的小型继电器。11 / 42硬件电路设计AT89S52 硬件设计AT89S52引

12、脚定义与功能介绍如图3-1。图 3-1 AT89S52 引脚与网络标号P0口口是一个8位漏极开路的双向I/O8个逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存12 / 42 PAGE PAGE 14 / 42储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有部上拉电阻。在FLASH编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTLP1时,部上拉电阻把端口拉高,此时可以作为输入口此外,P1.0和P1.2分别作定时器/计数器2的外

13、部计数输入(P1.0/T2)和定时器/ 计数器2的触发输入(P1.1/T2EX),具体如下所示:在FLASH编程和校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0/T2(定时器/计数器T2的外部计数输入),时钟输出P1.1/T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)P2口:P2口是一个具有部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTLP2时,部上拉电阻把端口拉高,此时可以作为输入口在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX

14、 DPTR) 口使用很强的部上拉发送18 位地址(如MOVX RI)P2口输出P2锁存器的容。在FLASH 编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTLP3时,部上拉电阻把端口拉高,此时可以作为输入口P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。表3-1 端口引脚第二功能P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6P3.7第二功能RXD(TXD(0) INT11) TO(/T1(/WR(RD(此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

15、 RST使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时, ALE(地址锁存允许) 输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALEFLASH输入编程脉冲(PROG)。PSEN程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP 外部访问允许, 欲使CPU 仅访问外部程序存

16、储器( 地址为端必须保持低电平(接地)LB1EAEA端为高电平(Vcc端储器的指令。FLASH存储器编程时,该引脚加上12V的编程允许电源Vpp必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器和部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。为了便于接下来的说明,单片机各管脚网络标号定义如图3-1。根据电路设计规和AT89S52芯片手册,设计时钟电路与复位电路如图3-2:图 3-2 复位电路与时钟电路图中网络标号RST连接单片机RST与XTAL2连接单片机XTAL1和XTAL2引脚,且并联两个30pF匹配电容使晶振起振。由于单片机P0口作普通I/O口时不能输出

17、高电平,因此需接上拉电阻,实际电路中,使用8*10K电阻作为上拉电阻。15 / 42按键设计I/O口上,通过程序扫描查询方式实现与单片机系统交互的。在程序查I/OI/O端口变为低电平,而未被按下的按键在上拉电阻作用下为高电平,这样通过读I/O口的状态判断是否有按键按下。系统按键电路如图3-3所示。下图中,S2S5便是控制显示用的按键。其作用就是通过按动它们实现对高低S4S5低警戒液位的模式选择和确认键。图 3-3 系统按键电路16 / 423. 3 显示单元硬件设计74LS273带公共时钟复位八位触发器与74LS47共阳极显示译码驱动芯片。两个芯片的管脚图如图3-4:3-474LS27374L

18、S473. 4 存储单元硬件设计AT89S52874LS37332KRAM5162256该模块中使用的两个芯片管脚功如图 3-6:62256,A0A1415Vcc,Vss 选接口, 低电平有效; 和写选通数据输入输入管脚为地址总线,共I/O0I/O78为电源和地;CSOE/WE 分别是读选通线,低电平有效。图 3-5 62256 引脚图17 / 42图 3-6 存储的单元电路3. 5时间单元硬件设计DS1302I/ODIP-83-8:图 3-7 DS1302 引脚图其中Vcc1DS1302由Vcc1或Vcc2Vcc2大于Vcc10.2V Vcc2小于Vcc1由Vcc1X1和X2是振荡源接口,外

19、接32.768kHzRST是复位/RST输入驱动置高电平来启动所有的数据传输。RST输入有两种功能:首先RST接通控制逻辑,允许地址/命令序列送入RST为高电18 / 42平时,所有的数据传送被初始化,允许对DS1302进行操作。如果传送过程中RSTI/OVcc2.5V 之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。SCLKDS1302 的特点,设计电路如图3-9:图 3-8 时间单元电路在实际应用中,起控制、输入输出的三个端口上拉较弱,容因产生信号串扰, 因此加上了上拉电阻与单片机P1口相连,加强信号的稳定性;为了保证时钟的可靠性,在Vcc1上使用了CR203

20、2纽扣电池作为备用电源,输出电压为3V,从而保证了系统掉电状态下,时钟能够继续保持运行。3. 6A/D 转换单元硬件设计A/D转换模块是系统中较为重要的一部分,由于涉与到模拟部分,A/D转换器的结构较为复杂。19 / 42图 3-9 ADC0804 引脚图根据以上参数分析,设计电路如图3-11:R410kVCCR812C4AD_WR34U9CS 2019RD WRRD WRCLK ININTRCLK DB0 DB1DB2Vin(+)DB3Vin(-)DB4A GNDDB5VrefDB6D GNDDB717AD1516R5AD2kS21SW-SPDT150pF610k789R61015AD314

21、AD413AD512AD611AD721JP2 JP1kR71k3-10 A/DADC08043. 7 通信单元硬件设计MAX485仅有8个管脚,电路设计比较简单。图 3-11 MAX485 引脚图图 3-11 MAX485 引脚图20 / 42RORX(P3.DITX(P3.1MAX485REDEREDE入高电平时,其处于发送数据状态。定义REDEE,接P1A,B120。硬件电路如图3-13:图 3-12 串行通信模块电路图3. 8 其他外围电路的设计继电器电路设计。由于使用单片机I/O口的驱动电流较弱,不满足继电器吸合电流参数的要求,所以需使用三极管驱动继电器吸合。设计电路如图3-14。入

22、口处与芯片顶端或底端,接入去耦电容,以增强系统的稳定性。21 / 42电源指示灯设计如图3-15。图3-13 继电器部分电路图3-14电源指示灯电路图软件程序设计系统主程序流程图时显示液位值以与键盘扫描等工作。主程序流程图如图4-1所示。22 / 42 PAGE PAGE 40 / 42开始开始CPU 初始化参数设定是是否有按键按键处理否采样子程序显示实时液位数据处理子程序控制电机启停图 41 主程序流程图显示与A/D转换的数据处理BCDA/D转换输入的数据是8位168位A/D转换器而言,其十六进制、相对满偏电压比率、相对电压幅值的关系对应如表4-2:满刻度比率满刻度比率相对电压幅值Vref=

23、2.5V十六进制二进制高四位低四位高四位电压低四位电压F111115/1615/2564.8000.320E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/1612/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.200910019/169/2562.8800.180010008/168/2562.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.

24、100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/2560.0000.000表 4-2 A/D 转换幅值数据关系对照表显示转换部分程序简略如下: uchar dis_transform(uchar num)uchar ac, quotient, play, mid ; ac = num%5;quotient = (num-ac)/5; if(ac2)quotient+; ac=quotient%10;mid=(quotient

25、-ac)/10; play=ac+mid*16; return play;系统主程序ORG 0000H AJMP MAIN ORG 0060HMAIN: MOVP1, #FFH;P1 P31MOVP3,#FFHJNB P1.3 , AVT;若手动在自动位置,跳到自动模式程序AJMPMEN;否则转到手动模式子程序ENDAUT:NOP(空命令)JNBP1.2 , LG;水位高LGP1.1LD ,;水位没低LDCLRP3.1;水位低报警P1.0, LDD;水位未低低LDDCLRP3.0;水位低低报警JNB 3.1P1.6,Y1;M1 已启动Y1CLR P1.4;否则启动 M1Y1:JNB P1.7

26、,Y2;M2 已启动Y2CLR P1.5;否则启动 M2Y2:ACALLDELAY ;延时 1 分钟AJMPAUT;返回自动模式LDD: JNBP1.6 ,Y3;M1(LDD水位LD)CLR P1.4Y3:P1.7Y2SETBP1.5AJMPY2LG:CLRP3.2;水位高报警LD:AJMPMAIN;返回主程序总结作为一名电气的大四学生,在即将毕业之际,通过做这次课程设计是很有意义的,而且也是必要的。在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的, 也是必不可少的。其次,在这次课程设计中,我们运用了以前学过的专业课知识

27、,如: proteus 仿真、汇编语言、模拟和数字电路知识等。虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,读的过程中才能

28、提高,这就是这次课程设计的最大收获。附录系统软件源代码#include #include #define uchar unsigned charuchar hostmark;ucharsec,min,hr,date,mon,day,year; ucharuplq,downlq,numm,prelq,xdat,key;uchar xdata * idata numtab; uchar xdata * idata xmark; uchar idata num1,num2;int tab;uchar bdata iodat; uchar bdata ddat; sbit iodat7=iodat7;

29、 sbit ddat0=ddat0;sbitSCLK=P10;uchar ac,quotient,play,mid;sbitIO_DATA=P11;ac=num%5;sbitRST=P12;quotient=(num-ac)/5;sbitadRD=P13;if(ac2)sbitadWR=P14;quotient+;sbitE=P15;ac=quotient%10;sbitDIS=P16;mid=(quotient-ac)/10;sbitRELAY=P17;play=ac+mid*16;/*延迟子程序* yanshi()return play;/液位显示int i,j;*for(i=0;i120

30、;i+)display()for(j=0;j0;i-)/*/DS1302* ds_read()uchar j; iodat=0 x00; for(j=8;j0;j-)IO_DATA=ddat0;_nop_(); SCLK=1;_nop_(); ddat=ddat1; SCLK=0;iodat=iodat1; iodat7=IO_DATA;_nop_(); SCLK=1;_nop_(); SCLK=0;/读取时间*uchar ds_gettime(uchar gadd)RST=0;_nop_();SCLK=0;_nop_();RST=1;ds_write(gadd);adWR=0;IO_DATA

31、=1;_nop_();ds_read();_nop_();RST=0;_nop_();return iodat;_nop_();_nop_();/设置时间*_nop_();ds_settime(uchar sadd,ucharsdat)adWR=1;_nop_();RST=0;_nop_();_nop_();_nop_();SCLK=0;_nop_();ad_read()/读取RST=1;ds_write(sadd);P0=0 xff;ds_write(sdat);/ adWR=0;RST=0;_nop_();_nop_();/*adRD=0;/*ad转换模块*_nop_();ad_start

32、()/启动_nop_();prelq=P0;SCON=0 x40;_nop_();TH1=0 xf4;_nop_();TL1=0 xf4;adRD=1;PCON=0 x80;adWR=1;IE=0;TR1=1;getalltime()/读所有时间REN=1;sec=ds_gettime(0 x81 );port_init()min=ds_gettime(0 x83 );hr=ds_gettime(0 x85 );adRD=1;date=ds_gettime(0 x87 );adWR=0;mon=ds_gettime(0 x89 );E=0;day=ds_gettime(0 x8b );DIS=

33、0;year=ds_gettime(0 x8d );RELAY=1;/*/*初始化data_init()*sp_init()xmark=0 x7531;if(*xmark!=0 xf0)TMOD=0 x22;xmark=0 x0000;if(ds_gettime(0 xc1)!=0 xaa)*xmark=0;numtab=0 x0001;sec=0 x00;xmark=0 x7531;min=0 x00;*xmark=0 xf0;hr=0 x00;num1=0;date=0 x01;num2=0;mon=0 x01;day=0 x04;ad_start();year=0 x09;_nop_()

34、;ds_settime(0 x90,0 xab);_nop_();ds_settime(0 x80,sec);_nop_();ds_settime(0 x82,min);ad_read();ds_settime(0 x84,hr);key=0;ds_settime(0 x86,date);uplq=0 x0af;ds_settime(0 x88,mon);downlq=0 x96;ds_settime(0 x8a,day);getalltime();ds_settime(0 x8c,year);ds_settime(0 xc0,0 xaa);ds_init()main_init()port_i

35、nit();_nop_();sp_init();_nop_();ds_init();_nop_();data_init();_nop_();display();_nop_();_nop_();/*SBUF=dd;/串口通信*while(!TI);uchar receive()/接收TI=0;E=0;int tmp;E=0;/*while(!RI);/通信子程序*tmp=SBUF;sp_connection()RI=0;E=0;send(0 xF0);return tmp;sp_readtime()send(uchar dd)/发送getalltime();E=1;send(0 xF1);_nop_();send(sec);send(min); send(hr); send(date); send(mon); send(day); send(year);sp_settime()send(0 xf2);_nop_();_nop_();_nop_();_nop_();_nop_();_nop

温馨提示

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

评论

0/150

提交评论