《2022年2022年基于单片机实现的智能液位传感器毕业论文word格式》由会员分享,可在线阅读,更多相关《2022年2022年基于单片机实现的智能液位传感器毕业论文word格式(22页珍藏版)》请在金锄头文库上搜索。
1、0 西华大学电气信息学院智能化测控应用系统设计报告智能液位传感器摘要摘 要:介绍了压力传感器的应用,设计了智能液位传感器。此设计通过压力传感器测出液体的压力,输出 0 - +5V的模拟电压通过 ADC0804 采集转换成数字量送入单片机处理,由RS232串口通信送到上位机,并显示出高度。此设计能完成0-1.5m 高度的液位测量,能精确到厘米。此设计主要由压力传感器,单片机,ADC0804 转换器构成。关键词:智能液位传感器,单片机,AD转换器Abstract :This article introduces the application of pressure sensor, and des
2、igns a intelligent level sensor. This design detects the liquid pressure through the pressure sensors, and it will send the voltage from 0 to 5V which is converted into digital quantity by the simulation ADC0804 acquisition to the SCM processing. Then the digital will be sent to the PC which shows t
3、he high by RS232 serial interface communication. This design can finish 0 to 1.5 m high level measurement, and accurate to cm. This design main have pressure sensor, a single-chip microcomputer, and ADC0804 converter to form.Keywords:Intelligence level sensor ,Single-chip microcomputer,AD converter
4、目录1 绪论 . 21.1设计目的 . 21.2 设计任务与要求 . 31.3 智能液位传感器的基本原理 . 32 总体方案设计 . . 32.1 智能液位传感器设计方案框图 . 32.2 方案论证 . 42.3 方案可能的扩展功能 . 53 单元模块电路的设计. 53.1 各单元模块功能介绍及电路设计. 53.1.1 传感器输出部分 . 63.1.2 ADC0804 数据采集转化部分. 63.1.3 单片机最小系统模块 . 63.1.4 RS232 模块 . 6名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
5、- - - - - - 第 1 页,共 22 页 - - - - - - - - - 1 西华大学电气信息学院智能化测控应用系统设计报告3.2 电路参数计算及元器件的选择 . 63.2.1 元器件的选择 . 63.3 特殊元器件介绍 . 73.2.1 ADC0804 . 83.1.2 压力传感器 D3B. 93.4 个单元模块的联接 . 94 软件设计 . 1041 软件设计原理及所用的工具 . 104.1.1 单片机部分 . 104.1.2 上位机 VB部分 . 114.2 软件的设计流程框图 . 134.3 软件设计总结 . 135 系统调试 . 145.1 硬件结构部分 . 145.2
6、VB 部分 . 145.3 压力传感器部分 . 156 系统功能及指标参数. 156.1 系统功能 . 156.2 系统各部分的测试参数 . 166.2.1 AD 部分调试参数 . 166.2.2 系统测量液面高度的数据参数 . 166.2.3 调试总结 . 167 结论 . 178 总结与体会及感谢语. 179 参考文献 . 18附录 . 18附录 1: . 18附录 2:程序 . 18附录 3 元器件清单 . 20名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22
7、页 - - - - - - - - - 2 西华大学电气信息学院智能化测控应用系统设计报告1 绪论液位检测在许多控制领域已较为普遍,各种类型的液位检测传感器较多,按原理分有浮子式、压力式、超声波式、吹气式等。各种方式都根据其需要设计完成,其结构、量程和精度适用于各自不同的场合,大多结构较为复杂,制造成本偏高;市面上也有现成的液位计,有投入式、浮球式、弹簧式等,多数成品价格惊人。以上液位计多数输出为模拟量电流或电压, 有些为机械指针读数, 不能用于远程监视; 普遍适用于静止液面,在波动液面易引起读数的波动;也有用电容法测液位的系统,此法是一种简单易行的方案。本文利用压力传感器测液体压力的原理,结
8、合单片机设计出一种智能液位检测装置。本学期开设了传感器及传感器技术,单片机等课程。本课程设计是在学完这么多课程的基础上,为了能更好的掌握这些课的内容,把理论应用于实际而提出来的。旨在发挥我们的设计,创新意识。通过本课程设计可以掌握和巩固传感器的基本设计方法,工业水位的测量方法,单片机的基本应用,显示电路的连接等知识。进一步加强对课堂理论知识的理解与综合应用能力,从而提高我们解决问题的能力和创造发明能力。如今传感器的应用是非常的广泛,并且已经融入到我们的生活,工作,科研等领域中。在我组进行设计中我们首先对压力传感器输出的电压和对应的液体高度进行整理和多次测量得出一个比较与实际高度符合的函数。我们
9、通过压力传感器测出液体压力,利用 ADC0804 对传感器的输出电压进行采集并将模拟电压信号转换成数字电平信号0,1。然后将采集的数据送入单片机最小系统进行处理然后利用RS232电平转换送到 PC机,PC机上用 VB编写一个显示界面, 再在 VB中利用程序将数字量转换成以厘米为单位的高度并显示出来。液位传感器的应用虽然非常广泛,但是现在高精度的液位的传感器价格非常贵,实现民用还有一定的难度。 所以我们的设计应更加创新利用更小的成本设计生产出更好的传感器。1.1设计目的1理解并掌握智能液位传感器的原理及实现的方法。2. 掌握 ADC ,RS232电平转换电路的原理,压力传感器的特性参数的计算及选
10、择。3掌握单片机最小系统的组成。4. 培养实践技能,提高分析和解决实际问题的能力。5. 学习基本理论在实践中综合运用的初步经验,掌握模拟电路及数字电路设计的基本方法、设计步骤,培养综合设计与调试能力。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 3 西华大学电气信息学院智能化测控应用系统设计报告1.2 设计任务与要求1利用一个液位传感器及周边电路,完成液位到电信号的转换;液位测量采用测量液体的压强的方式;测量范围0-1.5
11、米;2设计一个单片机系统控制一个ADC 对压力变送器输出的电信号进行采集;3编写数据转换程序;将二进制的量化数据转换为以厘米为单位的ASCLL标准字符串形式传送到 PC机;注:ASCLL 标准字符串是以ASCLL 码为信息的编码方式, 字符串结尾数据是一个字节00H ;4设计单片机通信程序以及RS232电平转换电路;5设计单片机相关运行程序;6设计相关电路,如单片机系统,模拟输入通道,ADC, 和电源电路等;7报告格式严格按照课程设计报告格式要求说明执行;1.3 智能液位传感器的基本原理本次设计的智能液位传感器的基本原理是利用一个压力传感器测出在水管的水的压力,压力变送器的输出为是0-5V 的
12、模拟电压信号(或是4-20 毫安的模拟电流信号) ,利用 ADC0804对传感器的输出电压进行采集并将模拟电压信号转换成数字电平信号 0,1。 然后将采集的数据送入单片机最小系统进行处理然后利用RS232电平转换送到 PC机,PC机上用 VB的 MS.COM 控件编写一个显示界面, 再在 VB中利用程序将数字量转换成以厘米为单位的高度并显示出来。2 总体方案设计通过查阅大量相关技术资料,并结合自己的实际知识,我主要提出了两种技术方案来实现系统功能。下面我将首先对这两种种方案的组成框图和实现原理分别进行说明。2.1 智能液位传感器设计方案框图两种方案的框图如下图:方案 1:名师资料总结 - -
13、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 4 西华大学电气信息学院智能化测控应用系统设计报告方案 2:2.2 方案论证对于方案 1 和 2 按照理论来看做出来能够达到一定的预期效果,能达基本满足本次设计的基本要求。但是两种方案不同之处就在于传感器的选择和AD的选择,现就这两个方面来论述 . 为什么选择方案2。方案 1 的传感器部分是利用应变片做的压力变送器,其结构如下图2.1: 图 2.1 这是利用 4 片应变片做的全桥电路其电压灵敏度比单臂
14、工作时提高了4 倍,消除了一定的非线性误差。其输出的为电流信号但是非常小,所以在外部又加了一个差动放大将信号放大才能满足AD 0 - +5V的输入电压的要求。但是此类的工作都是提供1.5mA的横流源,我们自己做的恒流源很难满足要求。硬件部分完成以后还要对其进行测试线压力传感器AD转换器(ADC0804 )单片机最小系统RS232 串口通信上 位 机 显 示液面高度利用应变片自制的压力传感AD 转 换 器(ADC0832 )单 片 机 最 小 系统RS232 串口 通信上 位 机 显示 液 面 高名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
15、 - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 5 西华大学电气信息学院智能化测控应用系统设计报告性度,但是测量比较麻烦后期的数据处理也比较繁琐,最后达到的效果也比较差所以就没有选择应变片制作。对于 AD的选择主要是 ADC0832 与 ADC0804 之间的选择。ADC0832 是 8 位分辨率; +5V电源供电;输入电压为0 - +5V ;工作频率 250HZ ;转换时间为 32us;数据转送是 8 位串行传送;ADC0804 是 8 位分辨率; 5V电源供电;输入电压为0 - +5V ;转换时间的100us;存取时间是
16、 135us;数据传送是 8 位并行传送;通过直观的观察可以发现由于ADC0832 的数据传送是 8 位串行的所以传完 8 位数据需要的时间为 256us,而 ADC0804 为 8 位的并行数据传送,传8 位数据只需 100us。所以 ADC0804的转换存取速度更快,这样系统的工作效率更高。所以我们采用的是ADC0804 。综上我们本次设计液位传感器采用的方案2。2.3 方案可能的扩展功能我们这次设计的智能液位传感器结构还比较简单,只是完成测液位并读出页面高度的基本功能,在这几完成后发现该系统还能扩展许多功能。比如增加报警系统(应用于比如水库的水位测量时可以做下限报警和超限报警);远程的控
17、制系统(比如家用的水塔水不足时可以控制水泵加水) 。3 单元模块电路的设计本节主要介绍系统各单元模块的具体功能、电路结构、工作原理、以及各个单元模块之间的联接关系;同时本节也会对相关电路中的参数计算、元器件选择、以及核心器件进行必要说明。3.1 各单元模块功能介绍及电路设计本系统电路模块主要分为四个单元模块,它们分别是:传感器输出部分;ADC0804的数据采集转换模块; 单片机最小系统模块; RS232模块. 各单元模块功能及相关电路的具体说明如下。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
18、 - - 第 6 页,共 22 页 - - - - - - - - - 6 西华大学电气信息学院智能化测控应用系统设计报告3.1.1 传感器输出部分3.1.2 ADC0804数据采集转化部分该级电路一共实现了两个功能:第一个是对模拟电压信号的采集。第二个功能是将模拟电压信号转换成数字信号。这一级的原理图如图3.2:图 3.2 ADC0804数据采集转换电路图3.1.3 单片机最小系统模块这部分主要是由STC89C52 单片机组成的一个最小系统, 通过单片机来控制ADC0804的信号采集转换以及对RS232串口通信的控制。该级电路原理图如图3.3:图 3.3 单片机最小系统电路图3.1.4 RS
19、232模块RS232模块主要通过 USB 转串口线来与 PC机通信将 ADC0804 采集和转换的数据传给上位机显示出所测得液面高度。模块的原理图如图3.4 :图 3.4 RS232电路图3.2 电路参数计算及元器件的选择3.2.1 元器件的选择设计所用仪器及器件如下表1:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 7 西华大学电气信息学院智能化测控应用系统设计报告表 1 3.3 特殊元器件介绍这一节将对设计过程中用到的一
20、些特殊元器件进行介绍,主要是介绍该特殊元器件的内部结构,工作原理,及使用时应该注意的事项。单片机 STC89C52 1 片MAX232 1 片ADC0804 1 片串口母头1 个晶振1 个0.1uf电容5 个22pf 电容2 个10uf 极性电容1 个33pf 电容1 个1k 电阻2 个10k 电阻2 个排线若干USB转串口线1 根电烙铁一台面包板1 块焊锡若干+5V直流可调电压源1 台压力传感器1 个示波器1 台水管1 根万用表1 台钳子1 个电脑1 台名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
21、- - - - 第 8 页,共 22 页 - - - - - - - - - 8 西华大学电气信息学院智能化测控应用系统设计报告3.2.1 ADC0804 ADC0804 的内部原理结构图如下图3.5 :图 3.5 ADC0804 的内部原理结构图ADC0804 主要技术指标如下: (1) 高阻抗状态输出 (2) 分辨率: 8 位(0255) (3) 存取时间: 135 us (4) 转换时间: 100 us (5) 总误差: -1- +1LSB (6) 工作温度: ADC0804C 为 0 度-70 度;ADC0804L 为-40 度-85 度 (7) 模拟输入电压范围: 0V - +5V
22、(8) 参考电压: 2.5V (9) 工作电压: 5V (10) 输出为三态结构ADC0804 的引脚图如下图 3.6 :图 3.6 ADC0804引脚图引脚及功能特性如下:CS 、RD 、WR (引脚 1、2、3) :是数字控制输入端,满足标准TTL 逻辑电平。其中 CS 和 WR 用来控制 A/D 转换的启动信号。 CS 、RD 用来读 A/D 转换的结果,当它们同时为低电平时,输出数据锁存器DB0DB7 各端上出现8 位并行二进制数码。LKI(引脚4)和 CLKR (引脚 19) :ADC08010805 片内有时钟电路,只要在外部“CLKI”和“CLKR ”两端外接一对电阻电容即可产生
23、A/D 转换所要求的时钟,其振荡频率为 fCLK1/1.1RC。其典型应用参数为: R=10K ,C=150PF ,fCLK640KH Z,转换速度为 100。若采用外部时钟,则外部fCLK 可从 CLKI 端送入,此时不接R 、C 。允许的时钟频率范围为100KHZ 1460KHZ 。INTR (引脚 5) : INTR 是转换结束信号输出端,输出跳转为低电平表示本次转换已经完成,可作为微处理器的中断或查询信号。如果将 CS 和 WR 端与 INTR 端相连,则ADC0804 就处于自动循环转换状态。CS 0 时,允许进行 A/D 转换。WR 由低跳高时 A/D 转换开始, 8 位逐次比较需
24、 88=64 个时钟周期,再加上控制逻辑操作,一次转换需要6673 个时钟周期。在典型应用fCLK640KHZ 时,转换时间约为 103114。当 fCLK 超过 640KHZ ,转换精度下降,超过极限值1460KHZ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 9 西华大学电气信息学院智能化测控应用系统设计报告时便不能正常工作。VIN () (引脚)和 VIN () (引脚 7) :被转换的电压信号从VIN ()和 VI
25、N ()输入,允许此信号是差动的或不共地的电压信号。如果输入电压V的变化范围从0V到 Vmax ,则芯片的 VIN()端接地,输入电压加到VIN()引脚。由于该芯片允许差动输入,在共模输入电压允的情况下,输入电压范围可以从非零伏开始,即Vmin 至Vmas 。此时芯片的VIN()端应该接入等于Vmin 的恒值电码坟上,而输入电压VIN仍然加到 VIN()引脚上。AGND (引脚 8)和 DGND(引脚 10) :A/D 转换器一般都有这两个引脚。模拟地AGND 和数字地 DGND 分别设置引入端,使数字电路的地电流不影响模拟信号回路,以防止寄生耦合造成的干扰。VREF 2(引脚 9) :参考电
26、压VREF/2 可以由外部电路供给,从“VREF /2 ”端直接送入, VREF/2 端电压值应是输入电压范围的二分之一。所以输入电压的范围可以通过调整 VREF/2 引脚处的电压加以改变,转换器的零点无需调整。ADC0804 转换器的工作时序如图3.7: 图 3.7 工作时序图3.1.2 压力传感器 D3B 我们这次智能液位传感器设计使用的传感器部分采用的是压力传感器D3B , 液位测量采用的测量液体压强的方式。压力传感器如下图3.8 :图 3.8 传感器主要参数如下:工作电压: 4.2v 6.2v ;压力范围: 0-1000mm 水柱,0-0.1Kg/c;电压输出: 0.23v-4.9v;
27、线性度 0.2%;外型: 303020mm 。接线方式:每个接线柱下皆有标示,G-接地, I- 接+5V另与 O-之间加载 2.2K 上拉电阻即可通过 0-输出传感器本身不能放到水里, 所以设计时我们是利用水管引水到传感器中央的压力感应膜上。3.4 个单元模块的联接个单元的联接如下图3.9 :名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 10 西华大学电气信息学院智能化测控应用系统设计报告图 3.9 个单元模块的联接图说明
28、: AD的输入连接的是压力传感器的输出端。4 软件设计本次设计主要用到的软件主要涉及到单片机的c 语言编程,上位机的VB部分的界面编程。41 软件设计原理及所用的工具4.1.1 单片机部分单片机程序部分主要功能是:控制ADC0804 接收模拟数据转换成数字量,由89C52接收数字量,将处理后的数字量通过串口通讯传给上位机。该程序部分设计过程中使用的是keil软件来编写的,利用STC-ISP软件进行下载和调试的。主要就是通过STC89C52 来控制 AD采集转换部分和串口通信,该部分的核心程序如下:void adopen() /adc0804初始化 wr=1; wr=0; wr=1; delay
29、(1); rd=0; i=i; i=i;/延时 j=P1; rd=1; void initial()/串口初始化 TMOD=0x20;/ 设置定时器 1 为工作方式 2 TH1=0xfd; TL1=0xfd; TR1=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 11 西华大学电气信息学院智能化测控应用系统设计报告 REN=1;/串口始能 REN=1 时允许串行口接收数据 SM0=0;/模式 1,8 位数据,波特率由
30、软件设置 SM1=1; EA=1;/总通断 ES=1;/串口通断 4.1.2 上位机 VB 部分这个部分主要是通过Microsoft Visual Basic 6.0这个软件来编写一个上位机界面来显示所测得到的液面高度,利用的VB里面的串口通信控件MS.COM 来实现的。显示的输入的两个部分都是显示在vb 里的 text 文本框里的。核心程序如下:串口的设置如下程序:Private Sub Form_Load() 设置串口MSComm1.Settings = 9600,N,8,1 串口通讯初始化:波特率为9600,没有校验位,八位数据传送,一位停止位MSComm1.RThreshold = 1
31、 MSComm1.InputMode = comInputModeText 以文本形式接收数据Combo1.AddItem COM1 Combo1.AddItem COM2 Combo1.AddItem COM3 Combo1.AddItem COM4 Combo1.AddItem COM5 Combo1.AddItem COM6 j = 0 End Sub 程序的核心部分: VB的串口通讯控件 MSComm Private Sub MSComm1_OnComm() Dim a As String Select Case MSComm1.CommEvent Case comEvReceive
32、每接收一个数据就触发一次事件 a = MSComm1.Input b = Asc(a) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 12 西华大学电气信息学院智能化测控应用系统设计报告 e(j) = b 收 20 个数据取平均值再显示出来减小抖动 j = j + 1 If j = 19 Then MSComm1.PortOpen = False For k = 0 To 19 summ = summ + e(k) Nex
33、t k c = summ / 20 summ = 0 i = (c / 255) * 10 If i 0.08 Then Text2.Text = 0 Text1.Text = 0 Else Text2.Text = i * 1.04 Text1.Text = 18.33766 * i * 1.04 End If MSComm1.PortOpen = True j = 0 End If End Select End Sub 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共
34、 22 页 - - - - - - - - - 13 西华大学电气信息学院智能化测控应用系统设计报告4.2 软件的设计流程框图4.3 软件设计总结软件设计中主要运用了所学的单片机课程和VB语言中的知识, 单片机中的程序用的开始ADC0804 的初始化串口的初始化打开 AD ,对数据采集转换串口通信将数据传送给上位机结束VB通过 MSComm控件接收数据,进行数字滤波, 显名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 14
35、西华大学电气信息学院智能化测控应用系统设计报告是 C语言。程序主要包含了ADC0804 的初始化;调用串口功能;串口的初始化;延时程序,主代码段实现了打开AD并对数据进行采集转换。上位机利用的是VB的知识,利用串口通信控件MS.COM 来实现的。编写出来的显示界面如下图 4.1 :图 4.1 显示界面该界面内可以选择串口端口号, 达到了本次设计的基本要求, 显示了 AD的输入电压和测得的液面高度值。5 系统调试5.1 硬件结构部分硬件部分我们先是通过PROTEL 软件画的 AD部分;单片机部分和 RS232部分的原理图,然后这部分没有画PCB 图就直接用万用板和排线进行搭建的。这样在焊接的过程
36、中就会显得比较麻烦,必须很细心才能很好的完成,如果哪个地方焊接错误或者是将要用到的引脚没有焊接上都会导致系统不能工作。比如像我们这次的设计就出现过这样的问题, 在焊接完单片机最小系统和RS232 串口通信后觉得因该能下载程序到单片机内部了,结果利用直流可调的稳压电源给单片机加了+5V的工作电压结果单片机不能工作。在经过讨论发现应该是单片机没有起振,然后发现是晶振的两个引脚焊接反了,这样小小的失误会导致严重的后果。在焊接好 ADC0804 部分后我们对其进行了调试,在调试AD时,我们发现通过 P0口始终不能将数据写到AD ,后来经过查阅资料发现, 要想使 P0口输出数据必须在P0口接上拉电阻,后
37、来我们换P2口为数据输出口,才成功将AD驱动成功。5.2 VB 部分上位机部分的调试是结合前面的AD采集系统一起来进行调试的这样下过会更直观。这里的调试用到了直流可调的稳压电源,给单片机加上 +5V的工作电压后在AD输入端加上 0-5V 的输入电压然后利用RS232串口通信将采集并转换的电压值显示在PC上利用 VB做的显示界面上。结果发现当AD没有给输入电压时,上位机显示有输入电压,经过查资料发现这是由于由于AD器件本身的原因,当没有给输入时,其输入端呈高阻状态,所以当没有输入时,所测到得电压是错误的,为了解决这个问题我们尝试了几种方法,其中是用运放做电压跟随器来进行阻抗变换,使AD输入端不再
38、悬空,但是由于很多运放都不是轨道轨的运放(即不是满伏输出运放),而且会大大增加硬件的结构,所名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 15 西华大学电气信息学院智能化测控应用系统设计报告以不选择这种方法,后来我们想到给输入端加下拉电阻的方法,可以将输入端电压拉至地端,并且当有输入时,其显示的电压也是输入电压。在刚开始设计上位机显示这部分时我们没有想到由于系统整体的原因,所采集到得数据有很大的抖动,讨论过后发现是有多方面
39、的原因的。其一就是我们这次设计采用的 AD0804的采集转换时间为100us,这个时间是非常短的所以数据在不断地更新。后来经过老师对数字滤波的详细讲解,我们下来也查阅了于数字滤波相关的资料,然后运用到上位机部分。在程序部分利用取多组数据再取均值的方法,虽然系统的测试速度有所变慢,但数据抖动很小,只在百分位抖动,影响不大。VB加的部分程序如下:For k = 0 To 19 summ = summ + e(k) Next k c = summ / 20 summ = 0 i = (c / 255) * 10 5.3 压力传感器部分传感器部分主要我们是购买的成品回来,在调试时主要是检验其是否到达要
40、求,输出的线性度如何。在测试时我们把G-接地,I- 接+5V另与 O-之间加上 2 K上拉电阻即可通过 0-输出,然后给传感器装上水管后先不加水看起输出的电压时多少,再不断的加水看输出的电压是否在给的范围之内,再加水到传感器的极限输出即传感器的最大输出电压是多少。6 系统功能及指标参数6.1 系统功能本次设计的智能液位传感器主要能实现以下功能:(1) 压力传感器采用的测量液体的压强的方式来实现测量液面高度;(2) 设计的单片机系统能控制ADC 对压力传感器的输出电压信号进行采集并转换;(3) 测量范围能基本达到设计的要求在0-1 米的范围内误差较小;(4) 能在上位机上直观的显示出测量的液面高
41、度;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页 - - - - - - - - - 16 西华大学电气信息学院智能化测控应用系统设计报告6.2 系统各部分的测试参数6.2.1 AD 部分调试参数在调通 AD后我们对 AD的数据采集功能进行了测试,测试数据如下图6.1 :图 6.1 AD的采集数据与给定的输入数据这几组数据都是在室内测得的,都是在室温接近30 度的情况测得。我们对所测得的数据进行了处理, 一共测了 5 组数据(给定的输入电压是在直流稳压电源上
42、直接读的,而测得的数据则是通过我们所做的上位机显示程序读出来的),求出了每组数据的样本均值和样本方差,通过直观的观察发现和给定的AD 输入误差不是很大,我们也通过excel 做表发现这几组测得的数据与给定的输入电压误差很小。这说明 AD的线性度还是比较高的。6.2.2 系统测量液面高度的数据参数这里测的数据是整个系统组在一起进行的测量,测量我们所给的液面高度。测得的数据如下图6.2: 图 6.2 液面高度的测量数据这些数据都是在室内测得的,在室温30 度左右测得。一共测了三组数据,电压利用上位机显示程序直接读得,而高度的数据则是用米尺测得,一个电压对应一个液面高度。数据处理则是求斜率的问题,每
43、一个高度对应一个斜率主要为后面的上位机显示液面高度的 VB程序找一个理论的依据。这样也可以看压力传感器的工作的线性度如何。6.2.3 调试总结通过调试我们发现调试时最费时间的药考虑很多因素,调试过程要将整个系统组合起来看工作是否正常,能否达到基本的要求。我们设计的只能液位传感器能基本满足设计的基本要求,通过压力传感器测量液位的压强方式 ,ADC0804 对压力传感器的输出的模拟电压进行采集和转换送入单片机然后通过 RS232串口通信传送到上位机上显示液面的高度。实现了将二进制的量化转换为以厘米为单位的 ASCLL标准字符串形式传送到PC机。测量范围在 0-1 米内时误差能基本满足要求。误差主要
44、就是来至压力传感器的输出与ADC0804 的输入有一定的差距,这主要是由于整个系统连接起来过后传感器的内部电阻将其输出电压拉下来了,我们在以后对系统加入电压跟随器来改善。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - 17 西华大学电气信息学院智能化测控应用系统设计报告7 结论本次设计的智能液位传感器达到了预期的基本要求,主要特色之一就是直接利用压力传感器测液体的压力的方式实现了测液面的高度,这种方式实现起来比较容易;其二就
45、是将测量系统与PC机相结合起来这样对数据的读数比较直观,并且能精确到厘米。不过此设计也有很多不足之处,测量时要在容器的底部开口才能读出压力,还可以加入报警系统,当测量超出范围时,系统自动报警。还有就是还可以加上一定的数据存储能力,这样要对以前的数据进行研究的地方非常有帮助。8 总结与体会综合上述各部分的测试结果,本设计完成了课程设计的大多数的要求。基本达到了预期的目标。这次智能综合设计历时接近一个月,在这期间可以说是苦多于甜,但是可以学到很多很多的东西,不仅可以巩固以前所学过的知识,而且学到了很多书本上没有接触过的知识。以前接触的那些程序都是很短很基础的,但是在课程设计中碰到了一些复杂的程序编
46、写,这时画程序方框图就显得很有必要了。通过画程序方框图可以使我们对所要完成的每一步任务都有一个很清楚的思路,让我们明白每一步的任务,同时在程序测试的过程中也有利于查错。另外,以前对于编程工具的使用还处于一知半解的状态上,经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学们的帮助下并且查阅了很多相关的资料才得以解决。通过本次课程设计,我进一步温习和巩固了课本的理论知识,增强了理论联系实际的能力,同时也增强了我通过检索资料来获取相关专业信息以及利用
47、检索到的信息来解决面临问题的能力。本次设计使我深刻认识到自己软件编程方面的知识薄弱,同时也使我体会到软件编程在实际硬件电路连接中的重要作用,软件编程的使用使硬件开销大大减少,同时也使设计更加的简洁易于控制,在今后的学习中我们会加强软件编程方面知识的积累和运用,会更加注重理论与实际的结合。在这次作品制作过程中,我们知道了要真正的做出作品需要考虑非常多的因素,有些看似不起眼的细节都可能对电路产生巨大的影响,如连线是否可等。通过这次课程设计自己看到了许多工程和一些产品中的要求,让自己明白了自己现在缺乏很多工程意识和思考问题的全面性。在此我要特别感谢我们的课程设计指导老师郑海春老师。在设计过程中他为我
48、们提名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 18 西华大学电气信息学院智能化测控应用系统设计报告供了很多的帮助和指导。 在老师的身上我们学也到很多实用的知识,在此我们表示感谢!同时,对给过我们组帮助的所有同学和各位指导老师再次表示忠心的感谢!9 参考文献1 汪德彪 . MCS-51 单片机原理及接口技术 M. 北京电子工业出版社 . 2004. 2 胡文金 , 钟秉翔 . 单片机应用技术实训教程 M. 重庆大学出版社
49、 . 2005. 3 张毅刚 , 彭喜元 , 董继成 . 单片机原理及应用 M. 重庆大学出版社 . 2003. 4 谢自美 . 电子线路设计 ?实验?测试 M . 武汉:华中科技出版社,2000.5 5 谭浩强 .C 程序设计(第三版) M. 北京:清华大学出版社, 2008.1 6 王华奎 . 数字信号处理及应用 M. 北京:高等教育出版社, 2006.12 7 姚燕南 . 微型计算机原理与接口技术M. 北京:高等教育出版社, 2006.4 8 古天祥 . 电子测量原理 M. 北京:机械工业出版社,2009.1 9 徐科军 . 传感器与检测技术 M. 北京:电子工业出版社, 2010.11
50、 附录附录 1:总电路图如下图 1:图 1 总电路图实物图如下图:实物图 1 实物图 2 实物图 3 附录 2:程序单片机程序如下:#include #define uchar unsigned char #define uint unsigned int uchar flag,i,j; sbit wr=P36; sbit rd=P37; void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
51、 - - - - - 第 19 页,共 22 页 - - - - - - - - - 19 西华大学电气信息学院智能化测控应用系统设计报告void adopen()/adc0804初始化 wr=1; wr=0; wr=1; delay(1); rd=0; i=i; i=i;/延时j=P1; rd=1; void initial()/串口初始化 TMOD=0x20;/设置定时器 1 为工作方式 2 TH1=0xfd; TL1=0xfd; TR1=1; REN=1;/串口始能 REN=1时允许串行口接收数据SM0=0;/ 模式 1,8 位数据,波特率由软件设置SM1=1; EA=1;/ 总通断ES
52、=1;/ 串口通断 void main() initial(); while(1) adopen(); if(flag=1) ES=0; flag=0; SBUF=j/2; while(!TI); TI=0; ES=1; void ser() interrupt 4/串口中断 while(TI);flag=1; 上位机 VB部分程序如下:Dim i As Single Dim j As Integer Dim k As Integer Dim d(1) As Byte Dim b As Long Dim c As Double Dim summ As Double Dim e(20) As D
53、ouble Private Sub Combo1_click() MSComm1.CommPort = Combo1.ListIndex + 1 选择通讯口End Sub Private Sub Command1_Click() MSComm1.PortOpen = True 打开串口End Sub Private Sub Command10_Click() End 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 22 页 - - - - - - - - - 20 西华
54、大学电气信息学院智能化测控应用系统设计报告End Sub Private Sub Form_Load() 设置串口MSComm1.Settings = 9600,N,8,1 串口通讯初始化: 波特率为 9600,没有校验位,八位数据传送,一位停止位MSComm1.RThreshold = 1 MSComm1.InputMode = comInputModeText 以文本形式接收数据Combo1.AddItem COM1 Combo1.AddItem COM2 Combo1.AddItem COM3 Combo1.AddItem COM4 Combo1.AddItem COM5 Combo1.
55、AddItem COM6 j = 0 End Sub Private Sub MSComm1_OnComm() 程序的核心部分:VB 的串口通讯控件MSComm Dim a As String Select Case MSComm1.CommEvent Case comEvReceive 每接收一个数据就触发一次事件 a = MSComm1.Input b = Asc(a) e(j) = b 收 20 个数据取平均值再显示出来减小抖动 j = j + 1 If j = 19 Then MSComm1.PortOpen = False For k = 0 To 19 summ = summ +
56、e(k) Next k c = summ / 20 summ = 0 i = (c / 255) * 10 If i 0.08 Then Text2.Text = 0 Text1.Text = 0 Else Text2.Text = i * 1.04 Text1.Text = 18.33766 * i * 1.04 End If MSComm1.PortOpen = True j = 0 End If End Select附录 3 元器件清单元器件清单如下表1:品名单位单价(元)数量价格(元)STC89C52 个6 1 6 名师资料总结 - - -精品资料欢迎下载 - - - - - - -
57、- - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - 21 西华大学电气信息学院智能化测控应用系统设计报告ADC0804 个10 1 10 MAX232 个2 2 4 串口母头套0.8 2 16 USB转串口线根20 1 20 面包板块4 2 8 排线米若干5.5 压力传感器D3B 个25 1 25 晶振个0.5 2 1 合计81.1 表 1:元器件清单表由于这次的设计所用的电阻电容是在实验室找的而且很便宜就没有计算在成本内,总的来说这次设计的智能液位传感器成本还在预算范围内。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 22 页 - - - - - - - - -