好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

毕业设计-单容水箱液位检测仪设计.docx

24页
  • 卖家[上传人]:亦***
  • 文档编号:310810432
  • 上传时间:2022-06-15
  • 文档格式:DOCX
  • 文档大小:934.18KB
  • / 24 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单容水箱液位检测仪设计摘要随着微电子工业的迅速开展,单片机控制的智能型控制器广泛应用于 电子产品中本系统采用单片机STC89C51为控制核心来实现水位的基本控制功 能系统由键盘、LCD12864. PCF8591.液位传感器LM1042.电源和 控制局部组成系统从硬件电路设计,软件与上位机软件设计等几个方面 介绍了基于单片机的单容水箱液位检测仪设计过程,给出相应的软件设计 流程图和C语言程序以及原理图,并用keil软件编程仿真最终实现了液 位的实时测量与监控系统可根据需要设定水位控制的高度,同时具备超限报警和故障报警 功能,具有良好的检测控制功能关键词:STC89C51 ; LCD12864显示;液位检测3. 3液位传感器设计在LM1042传感器电路中,7脚和10脚主要用于对探针2的调整, 由于本系统只用到探针1 ,故可将7脚和10脚直接接地;1脚是热阻探 针输入端;5脚为探针故障端;6脚是电源端;3、4脚分别接PNP管的 发射极和集电极用于给探针提供200MA的固定电流;16脚为模拟电压 输出端,输出与液位成正比的模拟电压;12、13脚用来调整探针的测量 周期;9、14脚外接两个电容作为探针的记忆电容,记忆探针的电压值。

      如图3.3是LM1042的外围电路连接图1 41 11 41 1C9 ♦moxnvBEASROMEA p MGNDSUP VREG MEMCPRBREF PNPBS>R1C C7=pf 10K - GNB30S0 1H1SRU IKGNDGNB GNB图3.3 LM1042外围电路图3. 4 AD转换单元硬件设计AD转换模块是系统中较为重要的一局部,由于涉及到模拟局部,AD转换器的结构较为复杂,如图3.4是本设计中AD转换电路图vccvccvccGNB GND图3.4 AD转换电路图上图中网络标号SDA和SCL接到单片机的弓脚上,PCF8591的3个 地址引脚AO, A1和A2接到地上,4个模拟通道选其中一个通道作为采集 数据用3. 5其他电路及系统PCB图蜂鸣器的作用,蜂鸣器是一种一体化结构的电子讯响器,采用直流电 压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车 电子设备、 机、定时器等电子产品中作发声器件蜂鸣器电路设计时 需加一个NPNMOS管来驱动蜂鸣器设计电路如图3.5根据原理图画 出如图3.6所示系统PCB图VCCQ1NPNR7VCC|IZZ4.7KB1P1.0图3.5蜂鸣器电路图图3.6系统PCB图第4章软件设计4.1系统软件设计8051系类单片机共拥有111条系统指令,可实现51种基本操作。

      然而汇编语言指令却有程序的可读性低,程序开发人员的开发时间长与开 发难度大,程序移植性差等缺点C语言是一种编译型程序设计语言它 兼顾了多种高级语言的特点,并具备汇编语言的功能用C语言来编写目 标系统软件程序,会大大缩短开发周期,增加软件的可读性,便于改进和 扩充用c语言进行51系列单片机程序设计是单片机开发与应用的必然 趋势keilC51开发工具套件可用于汇编C语言程序、汇编源程序,链接 和定位目标文件和库,创立HEX文件以及调试目标程序本设计使用KeilC51|jVision5为开发编译环境,使用C语言编写程序,实现各模块功 能设计系统主程序的功能主要是完成对单片机的初始化,设置警戒液位 的上下限,实时显示液位值以及键盘扫描等工作如图4.1程序流程图图4.1系统程序流程图4. 2各模块程序分析 4. 2.1主程序设计每个程序都是从main函数的起点开始执行,这意味着每个程序都必 须在某个位置包含一个main函数下面给出本次设计的主程序:void main( void )(Init_ST7920();while( 1)(DisplayllpdataO;if(!KEY_ADD)(DelayMs(5);if(!KEY_ADD)(while(!KEY_ADD);(num L2 + +;if(num_L2>30)num_L2=20;)))if(!KEY_DEC)(DelayMs(5);if(!KEY_DEC)(while(!KEY_DEC);(num L2—;if(num_L2<10)num_L2=20;))}LCD_POS(3,0);sprintf(DisplayBuf3, "L2=%d", num_L2);LCD_WriteString(DisplayBuf3);) }4. 2. 2显示模块软件设计显示模块采用的是LCD12864液晶显示屏,在数字电路中,所有的数 据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到 不同的结果。

      对于显示英文操作,由于英文字母种类很少,只需要8位 (一字节)即可而对于中文,常用却有6000以上,于是我们的DOS 前辈想了一个方法,就是将ASCII表的高128个很少用到的数值以两个为 一组来表示汉字,即汉字的内码而剩下的低128位那么留给英文字符使 用,即英文的内码那么,得到了汉字的内码后,还仅是一组数字,那又 如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数 字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息 来记载英文或汉字的形状液晶显示局部程序如下:Void DisplayUpdata(void)(uchar i,num2=0;float Vol;uchar num3=25;num2 = ReadADC(0);num = ReadADC(0);Vol=((float)num2)*5/42.5;sprintf(DisplayBuf, "Ll=%.lf", Vol);LCD_POS(0,0);i=0;while(disl[i]!='\0')Write_Data(disl[i]);i++;)LCD_POS(1,0);LCD_WriteString(DisplayBuf);if(Vol>num_L2) (bee=!bee;)LCD_POS(2,0);i=0;while(dis2[i]!='\0')(Write_Data(dis2[i]);i++;}DelayMs(50);)4. 2. 3 A/D转换程序设计本设计采用PCF8591 , PCF8591片内有控制寄存器,单片机通过向 该寄存器写入控制字来控制A/D和D/A转换,为此在转换之前要进行写 控制字传送。

      操作过程中,在PCF8591接收到的每个应答信号的后沿触 发A/D转换,随后就是读出转换结果,但读出的是前一次的转换结果 所以"读数据0"是一次无效的操作控制字节用于实现器件的各种功 能,如模拟信号由哪几个通道输入等控制字节存放在控制寄存器中,总 线操作时为主控器发送的第二字节其中:DI、D0两位是A/D通道编号:00通道0 , 01通道1,10通道2,11 通道3 ,自动增益选择(有效位为1)D5、D4模拟量输入选择:00为 四路单输入、01为三路差分输入、10为单端和差分配合输入、11为模拟 输出有效当系统为A/D转换时,模拟输出容许为0.模拟量输入选择位取值由 输入方式决定,四路单输入时取00 ,三路差分输入时取01 ,单端与差分 输入时取10 ,二路差分输入时取11.最低两位时通道编号位,当对0通道 的模拟信号进行A/D转换时取00 ,当对1通道的模拟信号进行A/D转换 时取01 ,当对2通道的模拟信号进行A/D转换时取10 ,当对3通道的 模拟信号进行A/D转换时取11在进行数据操作时,首先是主控器发出起始信号,然后发出读寻址字 节,被控器做出应答后,主控器从被控器读出第一个数据字节,接收器发 出应答,主控器从被控器件读出第二个数据字节,一直到主控器从被控器 中读出第n个数据字节,接收器发出非应答信号,最后主控器发出停止信 号(启动和停止信号只能由主控器件发出)。

      12c总线基本数据传输格 式12c总线上的数据传输按位进行,高位在前,低位在后,每传输一个 数据字节通过应答信号进行一次联络,传送的字节数不受限制启动信号由主控器件发出,在发出启动信号前,主控器件要通过检测 SCL和SDA来了解总线情况假设总线处于空闲状态,即可发出启动信 号,启动数据传输在启动信号之后发出的必定是寻址字节,寻址字节由 7位从地址和1个方向位组成其中从地址用于寻址从器件,而方向位用 于规定数据传输方向寻址字节通常写为SLA+R/W,其中R代表读,W 代表写R/W=l时,表示主控器件读(接收)数据;R/W=0时,表示 主控器件写(发送)数据所以通过寻址字节即可知道要寻哪个器件以及 进行哪个方向的数据传输当主控器件发出寻址字节后,其他各器件都接收到了总线上的寻址字 节,并与自己的从地址进行比拟,当某器件比拟相等确认自己被寻址后, 该器件就返回应答信号,以作为被寻址的响应此时,进行数据传输的主 从双方以及传输方向就确定了下来,然后进行数据传输数据传输同样以字节为单位,数据字节传输需要通过应答信号进行确 认所以每传输一个字节就有一个应答信号,直到数据传输完毕,主控器 件发出停止信号。

      结束数据传输,释放总线12c总线的状态和信号:启动信号和停止信号串行数据传输的开始和结束由总线的启动信号和停止信号控制,启动 信号和停止信号只能由主控器件发出,它们对应的是SCL的高电平与 SDA的跳变当SCL线为高电平时,主控器件在SDA线上产生一个电平 负跳变时,这便是启动信号,总线启动后,即可进行数据传输当SCL线 为高电平时,主控器件在SDA上产生一个电平正跳变,这便是总线的停 止信号PCF851局部程序如下:Unsigned char ReadADC(unsigned char Chi)SendByte(AddWr);SendByte(AddWr);unsigned char Vai;Start_I2c();if(ack==O)return(O);SendByte(0x40|Chl); if(ack==O)return(O);Start_I2c();SendByte(AddWr+l); if(ack==O)return(O);Val = RcvByte();NoAck_I2c();Stop_I2c(); return(Val);)KAZI-CBS OQIGC 他 □VMKZ »»第5章系统测试根据所设计系统的软件流程图,编写相应的程序在Keil软件环境下进 行编程编译。

      通过制作PCB板子并焊接实物板进行实验测试,实验结果 说明,该系统能成功实现了水位检测、电机故障检测、处理和报警等功 能,具有良好的检测控制功能,可移植性和扩展性强如图5.1是系统测 试现象,当液位超过所设定的液位值时即L1大于L2时,蜂鸣器会发出声 音报警注水后的液位为:八Ll=18,2;最大控制液位为:.L2=18)I ASO喝■乐?\1;缄黑麟曲5 W V⑥,,"砚k^W产油8= .图5.1系统测试图目录第1章绪论1第2章课程设计的方案32.1 概述32.2 系统组成总体结构3第3章硬件设计43.1 硬件设计概要4系统硬件电路设计原那么43.1.1 系统硬件选择43.2 单片机最小系统设计73.3 液位传感器电路设计83.4 AD转换单元硬件设计83.5 其他电路及系统PCB图9第4章软件设计114.1 系统软件设计114.2 各模块程序分析12主程序设计124.2.1 显。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.