【《基于STC12C5A60S2系列单片机的无线数字电压电流表设计》11000字】_第1页
【《基于STC12C5A60S2系列单片机的无线数字电压电流表设计》11000字】_第2页
【《基于STC12C5A60S2系列单片机的无线数字电压电流表设计》11000字】_第3页
【《基于STC12C5A60S2系列单片机的无线数字电压电流表设计》11000字】_第4页
【《基于STC12C5A60S2系列单片机的无线数字电压电流表设计》11000字】_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于STC12C5A60S2系列单片机的无线数字电压电流表设计目录TOC\o"1-3"\h\u99911绪论 [6]。LM324是单电源(3~30v)运算放大集成电路,具有真正的差分输入,内部包含4个独立的高增益运放。运用LM324四通道运算放大器中的一组运放组成电压跟随器。如图:图3-6运放构成电压跟随器由运算放大器组成的电压跟随器电路。电压跟随器,从名字就可以知道,输出电压跟随输入电压变化(增益近似为1)的器件,即没有损失输出电压。放大电路的输出端Vout经过导线直接送到放大器的反向输入端,电路是具有反馈的。假定输入信号瞬时极性为正,输入信号加载在运算放大器的同相输入端Vin,所以运算放大器的输出电压Vout的极性也为正,那么反馈电压Uf也为正,此时净输入电压Uid(加载于运算放大器输入端的电压)减小,所以为负反馈,放大电路的输出端、负载和反馈网络有一个公共点,所以为电压反馈,放大电路的输入端和输入回路是串联的关系,所以这个放大电路的反馈类型为电压串联负反馈。有此,电压跟随器就可以极大的保证输入多少电压就输出多少,大大提高了电压测量的准确性。通常进入AD引脚前的信号,如果有长导线引入或信号源极弱,需要加电压跟随器。通过两种方案测量方法的优点和弊端相比较,结合所设计电压表功能指标要求,选用第二种设计方案较为合适。(2)电流信号利用单片机进行电流检测,单片机的IO口只能识别检测电压信号,所以我们想要测量电流的大小就需要知道电压的大小,电流的测量转化成测量电压。方案一:方案一中检测电流的方法是取样电阻直接检测法。在负载端串联一个取样电阻,在线路加上电阻会限制电流的大小,所以该取样电阻必须为小阻值电阻,一般多数小于1欧姆,需要较高的精密度,这样对电路的电流没有多大的影响。电流经过取样电阻的时候会产生两端电压差压降,此时电压差就能反映电流的大小,可以作为样品来供给控制或者监测的电路。因为取样电阻阻值很小,所以取样电阻上的电压微弱,所以我们要通过运算放大器将电压放大再进行测量。如图3-7,是通过运放完成的低端电流采样,R100为取样电阻,运算放大器的放大倍数A=R24/R29=23.5。优点是共模电压小约等于GND,对运放的要求低。图3-7取样电阻检测法方案二:电流互感器检测。对于工频正弦交流电,可以采用电流互感器进行隔离测试,利用变压器原理将原边电流折算到副边。需要注意的是,电流互感器的输入端在任何时候都应该并联上电阻或者导线,以免意外产生高压带来危险和损坏,在这里所用的电阻都是需要用心计算发热功率。整体就是,根据信号要求调节采样电阻R2的阻值,得到充足幅值的测量电压。例如,希望待测电流100mA,次级额定电流1A,对应的测量电压5V,就可以把采样电阻R2设定为5Ω,U=I2*R=1*5=5W,一般情况下功率电阻流出一倍安全量程,所以取5Ω/10W功率电阻。此方案不适用于高频检测,受到激励电流影响,会存在较大的测量误差。在本设计中舍弃此方案。图3-8电流互感器方案三:采取基于电磁效应的霍尔效应的线性电流传感器(ACS712)。无论是大功率分流器还是小型检流电阻,出于少影响待测电阻的目的,他们产生的电压都很小,需要后期放大电路进一步放大信号。霍尔电流传感器内部有调整电路,所以它的信号输出直接是放大修整好的,无需我们进行额外的放大修整。图3-9ACS712检测电流信号采集电路取用了ACS712电流传感器,将要测的模拟量电流的大小转化成模拟量电压的测量。表3-1ACS712引脚功能说明表管脚号名称功能描述1和2IP+用于采样电流的端子,待测电流输入引脚3和4IP-用于采样电流的端子,待测电流的流出引脚5GND接地6FILTER用于装配带宽的外接电容器的终端7VIOUT模拟信号输出8VCC电源由数据手册可以知道,ACS712是低噪声的模拟信号电流传感器,5微秒的输出上升时间;在25°C输出误差在1.5%;输入(1~4引脚)和输出的电压(5~8引脚)不超过2.1KV;用两个输入引脚(1、2)可以增大输入电流;输入的电流可直流可交流;5、6引脚接1nF的电容进行RC滤波。ACS712将待测的模拟电流输入转化为模拟电压输出,所以可以把VIOUT接入到AD端,通过AD测量出VIOUT模拟信号输出的大小,由于VIOUT和待测电流Ip呈现线性相关关系,根据线性的公式反向推算出待测电流Ip的数值大小。ACS712芯片一共有三种类型:ACS712-05、ACS712-20、ACS712-30,型号后边的数字分别代表测量电流的量程。例如ACS712-05可测量±5A输入范围内的电流大小。不同型号有不同的电压电流线性关系。图3-10不同型号电压电流对应关系ACS712-05工作温度为-49~85°C,电流检测范围是±5V,电压输出范围为185mV/A即输入1A电流,则输出的是185mV的电压信号。7引脚VIOUT输出端输出的电流为3~10mA。ACS712-05输入电流Ip和输出电压VIOUT对应关系、计算公式如下:理想情况下输入电流Ip和输出电压VIOUT的关系为185mV/A近似为一个线性关系,实际上变化范围在180mV/A~190mV/A间波动(受温度影响)。取引脚8VCC供电电电压是5V即VCC=5V,计算公式如下:VIOUT=2.5+0.185*Ip图3-11ACS712-05电流电压对应关系典型的运用:电机领域、开关电源领域、电子产品过电流故障保护、载荷检测和管理。在本设计中,运用了此方案。用ACS712直接采集负载电路中的电流,本设计中的负载运用到了小电机。3.3显示模块图3-121602液晶屏为了能够对比出采集模块采集到到的电压、电流数据和终端传输的数据是否一致,本设计加个液晶显示电路。通过液晶屏幕上的显示采集到的数据和传输到终端接收到的数据进行比较,就能够直观确定传输的数据是否无误。处理后的数据将会在LCD1602显示出来。液晶显示器作为平面显示器件具备耗电量低、体积小、辐射低等性能特点。字符式LCD1602因为本身显示字母数字简单、控制简单、成本低、显示质量较高、体积小质量轻、功耗小等好处,作为较为理想的显示零部件。表3-2LCD1602引脚功能说明引脚号引脚名电平输出/输入作用1Vss电源地2Vcc电源(+5V)3Vee对比调整电压4RS0/1输入0=输入指令;1=输出数据5R/W0/1输入0=向LCD写入指令或数据;1=从LCD读取信息6E0/1输入使能信号,1时读取信息;1到0下降沿执行命令7DB00/1输入/输出数据总线line0(最低位)8DB10/1输入/输出数据总线line19DB20/1输入/输出数据总线line210DB30/1输入/输出数据总线line311DB40/1输入/输出数据总线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line614DB70/1输入/输出数据总线line715A+VccLCD背光灯源正极16K接地LCD背光灯源负极3.4WiFi模块WiFi模块采用esp8266芯片。图3-13WiFi模块原理图由于整个系统的正常工作电压为5v,而ESP8266的工作电压只是需要3.3v。所以需要将电压降到3.3v的降压电路以供ESP8266芯片正常工作,可接入AMS1117-3.3v电源模块芯片降压。其实这里的电容起到稳压滤波的作用。AMS1117-3.3v是高效率的线性电压调节器,固定电压输出包括1.2v、1.8v、3.3v,在本文中运用5v电压稳压至3.3v,输出电压精密度高达±2%,最大输出电流为1A,电压线性度为0.2%可见输出电压还是比较平滑的。E1、C2作为输入电容,起保护芯片作用,为防止瞬间断电后闪现的电压反置情景,E3、C3是输出电容,滤波抑制干扰信号纹波,稳定输出3.3v电压。本设计中使用的是模块—AMS1117-3.3v降压电源模块,此模块已经把数据手册中提供的应用电路相应的电容电阻给焊接上去了。乐鑫科技公司的esp8266Wi-Fi微程序控制器,esp8266芯片共有三种工作状态:无线接入点(AP)模式、无线终端STA模式和AP+STA混合模式,出厂默认是第三种模式。内置10bit高精度ADC和TCP/IP协议栈。STA模式:作为客户端,可以接收其他接收器的信号,和日常使用的手机,电脑一样能够接收路由器发出的信号。3-14STA模式AP模式:作为无线接入点即服务器。其功能就是作为服务器把各个无线客户端链接到一起。类似于家里的路由器那样,把有线网络变更成无线网络放射出去。图3-15AP模式STA+AP模式:既可以接收AP的无线,自身也可以发送无线,相当于一个“中继”,两种模式都支持,更方便于我们的运用。图3-16STA+AP模式在本设计中运用到了AP模式。3.5声光报警模块图3-17声光报警模块当电压大于设立的报警值时,单片机P20口控制给一个低电平到PNP型三极管SS8550的基极,三级管导通,二级管电路和有源蜂鸣器电路导通,有电流流过,可触发声光报警,完成声光报警功能。Q1为PNP型三极管,可以不断地放大电流。因为单片机自身引脚电流小(30~40毫安),需要三极管加以辅助从而放大电流,当三极管工作在放大状态,集电极电流IC跟基极电流IB之间成β倍的关系,三个电极电流满足公式IE=IB+IC=IB(1+β)。此时能够让蜂鸣器电路获取足够的电流而发出清晰明亮的响声。发光二级管的工作电流很小(毫安级别),过大的电流会让二级管烧坏,此时需要个串联个电阻来达到限流的目的。取二级管工作电流为20mA,二级管自身电阻值忽略不计,所需的串流电阻250Ω,此时PNP管的VC<VB<VE,发射极电流将会放大IE=IB+IC=IB(1+β),SS8550D的三极管放大倍数β约为160~300,所以在基极串联个2.7k电阻,二级管串联个2.7k的限流电阻保护二级管。3.6总体硬件设计图3-18总体原理图4软件程序设计4.1系统基本框架本设计中,用Keil软件编写单片机实现功能所需的C语言控制程序,并不断的进行编译修改调试,最后得到单片机所需要的.HEX文件,把.HEX文件烧录进STC12C5A60S2单片机后进行软硬件调试工作。当单片机通电后,最初程序对各个模块进行变量赋为默认值,把系统设置成默认状态,设置好各个模块端口,按序调用各功能模块函数,进入循环,定时检测电流及电压值,并将最新的数据更新显示。如图所示。图4-1系统基本框图每按键扫描一次,计数SYS_TIME自加1,SYS_TIME大于20时获取电压电流值并进行更新显示,这样处理的好处是LCD1602显示模块能够在SYS_TIME小于20时能够持续显示数据,不那么快发生跳变。4.2串行口通信STC12C5A60S2单片机是在51单片机的基础上做加强的单片机,性能更为丰富。它具备了两个可以同时发送和接收信息的接口分别是串口1和串口2。本设计中使用到了串行口1独立波特率发生器,其在单片机对应硬件部分IO口引脚分别为:串行输出口P3.1/TxD、串行输入口P3.0/RxD。程序中用到了串行口1工作模式1。图4-2为串行模式1的功能结构示意图及接收/发送时序图。图4-2串行模式1的功能结构示意图及接收/发送时序图串口发送程序如下图所示:图4-3串口1发送函数TI是串口的发送中断标志位,当一帧数据(1Byte)发送结束,内部硬件自动置1TI,申请中断处理,中断响应处理后,需要我们程序进行软件清零。在程序中,当发送结束,TI=1,因此,while(TI==0);是不会被执行到的,直接执行TI=0;即直接软件清零。当发送没有结束时,才会执行while(TI==0);循环一直等待到发送结束TI=1时跳出循环,而后会直接执行TI=0;即软件清零。接收串口数据程序如下图所示:图4-4串口1中断函数通过串口1中断服务函数来接收串口数据。串行通信的中断申请:当一帧数据(1Byte)发送结束,内部硬件主动将发送中断标志位TI置1,即TI=1,申请中断处理,并执行中断程序;当接收完一帧数据(1Byte)时,内部硬件主动将接收中断标志位RI置1,即RI=1,申请中断处理,并执行中断程序。由于发送和接收中断标志位TI和RI以“或逻辑”关联向单片机申请中断,因此单片机响应中断的时候是并不能确定是TI还是RI申请的中断,所以要在中断服务程序中去查询判别TI和RI谁触发了中断,然后分别进行处理。由于两个中断请求标志位TI、RI都不能由硬件主动置0,必需经过程序软件清0取消此中断申请,不然会出现一次请求多次重复执行的差错。AT指令配置ESP8266程序如下:图4-5ESP8266配置运用AT指令集配备工作模式、WiFi名字和密码等。采用默认IP地址:192.168.4.1和默认的端口号8080。设计中直接用stc-isp-15xx-v6.86C软件中的波特率计算器,根据需要选择相应的串口以及串口数据位、波特率大小,波特率发生器类型,来帮助我们计算所须要的程序即可,方便快捷。如下图所示:图4-6波特率115200b/s其程序流程图如图4-5所示:图4-7串口通信流程图4.3数据处理模块在仪表检测系统中,通常要把传感器测试到的连续变化的模拟量,譬如:压力、温度、湿度、光强、甲烷等各种气体浓度等转化为离散的数字量,才可以进行后续相关的计算处理。这些测试的模拟量(电压电流)经过传感器转化为电信号之后,就需要通过ADC把模拟量变成数字量,这样单片机才能对测量量进行运算、判断、控制和处理。STC2C5620AD系列单片机,片内有10位的A/D电路,就不用外接A/D芯片了,要更高精度的A/D转换就要外部扩展了。使用单片机内部ADC,ADC模块参考电压为5v。STC12CSA60S2系列内自带A/D转换口在P1(P1.0~P1.7)口分别对应ADC0~ADC7。一共有8路10位逐次比较型的A/D转换器,从最高位开始依次进行逻辑对比,把所获得的数字量不断逼近输入的模拟量对应的值,具有微妙级高速,8路模拟输入信号通道均为电压输入型A/D。本设计选用P1.5口和P1.7口分别作为电流和电压的A/D输入端口来使用。STC12C5A60S2系列单片机ADC(A/D转换器)的结构如下图所示。图4-8STC12C5A60S2系列单片机ADC(A/D转换器)结构图当AUXR.1/ADRJ=1时,A/D转换结果寄存器格式如下:图4-9A/D转换结果寄存器格式图4-1010-bitA/DConversionResult上述式子中,Vin为模拟输入通道待输送的电压,Vcc为单片机实际工作电压(5v),用单片机工作电压(5v)作为模拟参考电压。电压电流测量数据是否准确与单片机的模拟参考电压关系密切相关,本设计直接用单片机实际的工作电压VCC=5V来作为模拟的参考电压。由于受到多方外界因素的影响,电压源输入的实际电压可能不足够5V,当供电电压达不到准确的5V时,会对测量结果产生较大的误差。所以要保证在使用该设计进行电压电流测量,系统电源接口必须要有稳定的足够的5V参考电压。设计对测量精度要求比较高的话,可在8路A/D转换的一个IO口外接精准的基准参考电压5v,或者在单片机生产时定制将实际勘测到的工作电压记实于片机内部的EEPROM,以供后面进行运算。本设计选取片内的10bitA/D转换器,程序流程图如下:图4-11ADC程序流程图电压数据处理程序如下图所示:图4-12测量电压数据处理程序在实验过程中,根据稳压源不断测量调试发现,当输入待测电压超过20V时,所得测量数值偏大,误差变大。为了减小这个较大的测量误差,需要我们在程序上进行补偿,根据多次测量的多组数据一步步调试,得出我们大概程序补偿所需要的大小,调试出来大概需要的补偿值(-30)。补偿后,经过多此实验测量数据计算、比对,20v以上的输入电压测量误差可小至1.5%,大大增加了测量系统的准确性。20v电压的ADC值=1024*(2/5),约等于409。由上文硬件部分的电压采集部分可知,R5、R4、R3分别取90k、10k、1K欧姆大小的电阻,通过理论计算10K/(90K+10K),可知电压衰减了10倍大小。理论上待测电压在输入电压跟随器前也就是在输入P17电压的A/D输入端口前被衰减了10倍大小,但用万用表实际检测出来的衰减数值有10.3倍,以实际万用表测量的衰减倍数为准。在实际电路连接过程中,没有阻值直接为90k大小的电阻,这需要我们灵活变通,通过串联几个电阻组装来达到90k的大小,这是衰减误差来源之一。电流数据处理程序如下图所示:图4-13测量电流数据处理程序由上文硬件电流采集模块可知,电流传感器的输入电流Ip和输出电压的关系为VIOUT=2.5+0.185*Ip。在本设计中电流测量量程0~5A,无反向输入电流。当输入电流为0时,输出电压VIOUT=2.5v,对应的ADC的值为1024*(2.5/5)=512;也就是当ADC处理后结果值小于512时,电流输出测量值均为0。当输入电流不为0而且为正向输入时,运用ADC结果根据公式反推出输入电流的值。4.4显示模块LCD1602的写、读操作时序图如下:图4-14写操作时序图图4-15读操作时序图根据以上的写、读操作的时序图,我们可以了解到LCD1602显示模块的写、读基本操作时序表,如下表4-1所示:表4-1LCD1602显示模块的写、读基本操作时序输入RSR/WE输出实现的功能011D0—D7为状态字读状态111D0—D7为数据读数据001无写命令101无写数据1602LCD的RAM地址映射如下图所示:图4-16LCD1602内部显示地址要想让液晶显示器显现字符,首先要配置好液晶端口,进行初始化,再调用LCD1602的读写函数,可将采集处理后的相关数值在固定位置实时显示。程序流程图如下:图4-17显示模块流程图5测试及分析(1)测试前的电路调试焊接的时候要合理考虑好各零部件摆放的位置,尽量使电路连接线整齐美观,便于焊接,减少跳线出现。电源部分按照电压大小关系依次进行焊接,先焊接5v,调试成功后再焊接AMS1117-3.3v电源降压芯片,检查无误后再焊接需3.3v电压工作的元器件(ESP8266)注意检查晶振是否能正常起振、按键复位是不是能够正常复位,能不能进行程序的下载和仿真。当设计的电路板焊合完成后,需要这些步骤进行反复检验:1.排查接线的正确性。值得注意是芯片的电源是否连接正确,有无悬空的引脚,标注的网络节点标号是否对应,有无重叠的情况。另一个值得注意的地方是模块封装的引脚顺序,检查各引脚是否连接正确。查看线路连接是否有无错线。用万用表测试电路板焊接是不是存在漏焊、虚焊、焊料过多过少、剥离的情况。2.电路设计中要充分了解元器件芯片正常工作的电压电流、功耗大小。用万用表检测电源电路及电路中的电源和地是否连接正常了,测试每个芯片的引脚是否出现短路的情况。3.检查有正负极性的元器件,如发光二极管、三极管、陶瓷电容等的管脚是否一一对应极性接入电路中。可用万用表进行检验。在以上未上电前的硬件检查做完了之后,才能着手上电检查,先不要测量数据,要时刻注意观察电路有无异常现象。硬件电路检查无误后,把编写好的程序烧录到STC12C5A60S2中,持续调试程序和硬件电路系统,待系统稳定后,再进行实验测试,对实验所得数据进行分析,及时调试,验证系统准确度是否达标。(2)测试数据当系统软硬件调试完成后,对直流电压、电流进行测量工作。在测量电压、电流工作的过程中,使用实验仪器直流稳压电源作为精准的待测输入数据,给系统提供不同的给定值的输入。用系统对稳压源提供的准确待测输入电压进行测

温馨提示

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

最新文档

评论

0/150

提交评论