基于430单片机微安电流表设计_第1页
基于430单片机微安电流表设计_第2页
基于430单片机微安电流表设计_第3页
基于430单片机微安电流表设计_第4页
基于430单片机微安电流表设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、2015年秋季西南交通大学电子设计竞赛题目数字式直流微安电流表 姓名: 学号: 摘要随着现代化信息技术的发展,数字式电表已逐渐取代传统模拟仪表成为大型测量系统的重要部分,其测量精度和成本都相对传统仪表有了很大提高。本次数字交流电流表的设计主要是利用单片机对经过信号调理电路转换而来的信号进行AD采样和相应的计算换算之后,通过单片机转化信号,使之在数码管上显示数值。目录1. 系统方案31.1放大电路的选择31.2显示方案的比较32.理论分析与计算42.1电流表压降问题42.2量程扩大42.3提高精度43.电路与程序设计43.1总体电路图43.2程序设计54测试方案与测试结果84.1测试方法84.2

2、测试数据84.3测试误差分析91. 系统方案1.1放大电路的选择这次主要是采用LM358运放进行搭建放大电路,LM358是双运算放大器,以其中一个放大器搭建求差电路,另一个放大器搭建正向放大电路。连接方法如图表1所示, 图表 1其中求差电路全用阻值大小为1M的电阻,正向放大电路用一个10k的电位器调节总体电路的放大倍数。1.2显示方案的比较显示电流数值的大小有两种方案选择,可以采用外接12864液晶显示屏的方式进行显示,也可以采用数码管进行显示。两种显示方式的优缺点如图表2所示,显示方式优点缺点4位数码管动态显示编程简单,成本较低所需 单片机io口较多,显示不稳定,亮度较暗,显示位数有限128

3、64液晶显示屏可以显示多位数字,所需单片机io口较少,显示稳定成本较高,编程复杂比较耗电图表2由于本次采用的单片机为4302553,内置AD10,分辨率很难达到0.1uA,因此4位数码管显示位数已经足够了,所以采用4位数码管静态显示,采用74hc595进行串行输出减小所需单片机所需的IO口。2.理论分析与计算2.1电流表压降问题电流表压降应不大于0.1V,因为电流表的最大量程为200uA,所以接入电路的电阻阻值应该不大于500,所以选择498阻值的接入电路,放大10倍以后接入p10进行ad转换。2.2量程扩大量程扩大可以选择3.3v的基准电压,或者降低放大倍数。2.3提高精度因为本次使用的单片

4、机只有10位AD,想要提高精度只有在程序中多次采样,也可以提高电路的放大倍数,本次采用了多次测量,并且在硬件电路中稍做改变,这次制作中就遇到了问题,当实际电流值从3.0 uA改变到6.5 uA是显示电流值只从3.0 uA到6.5uA,在程序中无论怎么改变都无法提高精度,后面我就采用了先在接入电路的电阻中加入一个升压,再把测来的电流值减去一个常数就可以跳过这一段的放大器不稳定的区域。让电压在较小值时仍比较精确。在程序中我也加入了取两次值如果两次值的差值不大于常数时取其平均值以提高精度。3.电路与程序设计3.1总体电路图如图表3所示图表33.2程序设计#include "msp430g2

5、553.h"#define uint unsigned int#define uchar unsigned char#define num_of_results 150unsigned int num10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;static uint resultsnum_of_results;float v;float I14;unsigned int I25;int m=0;void agms(int n)int i=100;while(n-)while(i-);void SendByte1(unsig

6、ned char dat) unsigned char i; for(i=0;i<8;i+) P2OUT&=BIT4; if(dat&0x80) P2OUT|=BIT3; else P2OUT&=BIT3; dat<<=1; P2OUT|=BIT4; void Out595(void) P2OUT|=BIT5; P2OUT&=BIT5;int main( void ) WDTCTL = WDTPW + WDTHOLD; P1DIR|=BIT1+BIT2+BIT3+BIT4; P2DIR|=BIT5+BIT3+BIT4; ADC10CTL0 |=

7、 ADC10SHT_2 + ADC10ON + ADC10SR + MSC+REFON+SREF_1; ADC10CTL1 |= INCH_0 + CONSEQ_2; ADC10AE0 |= 0x01; ADC10CTL0 |= ADC10IE + ADC10SC + ENC; _EINT();#pragma vector=ADC10_VECTOR_interrupt void ADC10 (void) static uchar index = 0; uchar i; resultsindex+ = ADC10MEM; if(index=num_of_results) unsigned lon

8、g sum=0; index = 0; for(i=0;i<num_of_results;i+) sum+=resultsi; sum = sum/num_of_results; I11=I12; I12=sum*2.26486818-69; I13=I12;if(I11>I12&&I11-I12<20)|(I12>I11&&I12-I11<20) I12=(I11+I12)/2;if(I12<120)I12=I12+1.5;if(I12<=27&&I12>24)I12=I12+1.5;if(I12

9、<=89&&I12>86)I12=I12-0.5; if(I12<0) I12=0; I20=(int)(I12/1000); I21=(int)I12%1000/100; I22=(int)I12%100/10; I23=(int)I12%10; for(i=0;i<=1;i+) SendByte1(numI20); Out595(); P1OUT|=BIT1; agms(10); P1OUT&=BIT1; SendByte1(numI21); Out595(); P1OUT|=BIT2; agms(10); P1OUT&=BIT2;

10、SendByte1(numI22&0x7f); Out595(); P1OUT|=BIT3; agms(10); P1OUT&=BIT3; SendByte1(numI23); Out595(); P1OUT|=BIT4; agms(10); P1OUT&=BIT4; 4测试方案与测试结果4.1测试方法将万用表与自制电流表进行串联,改变电路电流大小,对两个值进行记录,且万用表值为真实值,自制电流表值为显示值。4.2测试数据真实值显示值差值2.82.803.13.103.53.504404.54.505.55.506.76.707.57.6-0.18.28.3-0.19.69.7-0.110.210.3-0.111.311.5-0.212.812.8013.413.4014.314.20.115.1

温馨提示

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

评论

0/150

提交评论