智能仪器设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能仪器设计报告
姓名:
学号:
专业:电子信息工程
日期:2012-11-14
南京理工大学紫金学院电光系
摘要
本课题是设计并制作一个基于单片机和Labview的智能数字电压表,实现电压的自动换挡,提高测量精度。
电压表分成三档0~100mV;100mV~1V;1~5V,利用程控增益放大器改变放大器的放大倍数,将各档内的输入电压依次放大50倍,5倍,1倍;程控放大器的输出端经ADC0809进行A/D转换,转换结果传输给AT89C51,AT89C51根据结果将信息反馈给多路选择器从而改变放大器放大倍数的,并利用串行通信发送给上位机,在Labview上实现测量数据的显示。
关键词:智能数字电压表AT89C51 A/D转换程控放大器
引言
《智能仪器课程设计》是一门理论和实践相结合的课程。
它融入了现代电子设计的新思想和新方法,将智能仪器和虚拟仪器的理论和知识相结合,再结合所学的模拟电路和数字电路及单片机的理论和知识,设计、制作一个智能数字电压表,通过理论和实际的应用,帮助学生进一步提高系统的知识和实际设计能力。
本课程对于推动信息电子类学科面向21世纪课程体系和课程内容改革,引导、培养大学生创新意识、协作精神和理论联系实际的学风,加强学生工程实践能力的训练和培养,促进广大学生踊跃参加课外科技活动和提高毕业生的就业率都会起到了良好作用。
1 主要技术指标和要求
1.1(1)输入电压:0~5V(直流);
(2)分成三档:0~100mV;100mV~1V;1~5V;
(3)自动根据输入电压换挡;
(4)测量精度:最大值的0.4%;
(5)自动校零;
(6)利用虚拟仪器实现测量结果在微机上显示
1.2 实物要求
根据智能仪器的设计要求,在仿真的基础上,对系统的程控放大器在面包板上完成连接、装配、调试并和单片机的开发系统连接并通过开发系统与微机连接,最后在微机上显示所测的电压数值。
1.3 实验仪器
单片机与微机;功率函数信号发生器: SP1631A;万用表:UNI-T
1.4 主要器件及典型电路形式
(1)本次课程设计用器件介绍:
单片机实验箱、微机、OP07、AD0808、Protues、Protel、Labview、Keil C51、(2)典型数字电路形式和模拟电路:
程控运放电路
2工作原理:
2.1 智能仪器数字电压表电路设计
1.软件设计总流程图:
2.各个组成模块:
I.量程自动切换电路:
同相放大器的放大增益为:K=1+R f/R S , 在本电路中使R6、R7分别为R5的50 倍和5倍。
与多路选择开关配合,使电路分别放大50、5和1倍。
CD4052真值表:
II.A/D采集和输出电路:
元器件引脚图,真值表
OP07
OP07的功能介绍:OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。
由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
OP07引脚图
1和8为偏置平衡(调零端),2为反向输入端,3为正向输入端,4接地,
5空脚6为输出,7接电源
CD4052
C D4052是一个双4选一的多路模拟选择开关,具体接通哪一通道,由输入地址码AB来决定
管脚图:
真值表:
2.2 实验内容
#include <reg51.h>
#include <intrins.h>
#include <absacc.h>
#define PINO XBYTE[0X7FF8] #define uchar unsigned char
#define uint unsigned int
sbit CD4052_A=P1^0 ;
sbit CD4052_B=P1^1;
void delay(uint i)
{ uint j=0;
while (j<i)
j++;
}
void vart_uint()
{ TMOD=0X20;
TH1=0XFA;
TL1=0XFA;
TR1=1;
PCON=0X80;
SCON=0X50;
}
void vart_tx_byte(uchar tx_data) { TI=0;
SBUF=tx_data;
while (!TI);
TI=0;}
void vart_tx(uchar voltage,uchar gain) { vart_tx_byte(0X7E);
vart_tx_byte(0X02);
vart_tx_byte(voltage);
vart_tx_byte(gain);
}
uchar read_adc0808()
{ uchar adc_data;
PINO=0;
delay(200);
adc_data=PINO;
return adc_data;
}
void tx_voltage()
{
uchar adc_data;
CD4052_A=0; CD4052_B=0;delay();
adc_data=read_adc0808();
if (adc_data<0XFF)
vart_tx(adc_data,50);
else { CD4052_A=1; CD4052_B=0;delay();
adc_data=read_adc0808();
if(adc_data<0XFF)
vart_tx(adc_data,10);
else { CD4052_A=0; CD4052_B=1;delay();
adc_data=read_adc0808();
if(adc_data<0XFF)
vart_tx(adc_data,1);
}
}
}
void main()
{
uchar i;
vart_uint();
while(1)
{
tx_voltage();
for(i=0;i<50;i++)
delay(1000);
}
}
II.Proteus原理图:
III.实验数据:
50档:输入: 26.5mv 输出: 1.267v
40.4mv 1.937v
反馈电阻 Rf=240KΩ理论放大 49倍实际放大 48倍5档: 输入: 161.8mv 输出: 800mv
567mv 2.831v
反馈电阻 Rf=20KΩ理论放大 5倍实际放大 4.95倍1档输入: 1.29v 输出: 1.37v
3.46v 3.65v
电路-电压跟随器理论放大 1倍实际放大 1.05倍
3 单元模块设计
3.1 程控放大器的设计
程控放大器实现多个放大倍数,确保输出电压在0~5V之间,能有效输入到ADC0809。
同相放大器的放大增益为:K=1+ R f/ R s,在本电路中使R2、R3、R4分别为R6的49 倍、4倍和趋于0倍。
与多路选择开关配合,使电路分别放大50、5和1倍。
3.2 A/D采集电路的设计
包括启动、等待、采集数据。
ADC0809系列内部含有三—八译码电路,以控制分别选通八个模拟输入通道,首先确定ADDA、ADDB、ADDC(一般用P0口的P0.0、P0.1、P0.2),在ALE信号下将该地址锁存在AD0809内部的地址锁存器中,经译码后选通指定的模拟通道。
然后在START引脚上输出一个脉冲以启动A/D转换。
EOC端上电平在A/D转换期间为低,转换后变成高电平,可作为查询中断信号使用。
当OE为低电平时,D0-D7为高阻状态,当A/D转换完成后,在OE引脚上给高电平可使转换结果出现在数据总线D0-D7上。
3. 3 单片机电路
3.4串口电路
3.5 Labview显示界面
4.系统测试
当输入电压为50mv时,电压表为第一档,即放大倍数为50,串口发送如下图所示,电压为80,即D=128/255*5=2.51V,放大倍数约为50.
当输入电压为0.1v时,电压表为第二档,即放大倍数为5,串口发送如下图所示,电压为33,即D=51/255*5=1 v,放大倍数约为5。
当输入电压为2v时,电压表为第三档,即放大倍数为1,串口发送如下图所示,电压为6D,即D=109/255*5=2.13v,放大倍数约为1。
Labview与proteus联合测试
5.设计总结
1.通过本次实验,我了解和掌握了电子系统研发产品的一个基本流程,即软件设计—软件仿真—硬件安装—硬件调试。
这个过程是不可跳跃的,前者是后者的基础,所以我们应该认真对待软件设计和仿真环节,观察实验异常现象,认真分析其出现原因,因为硬件调试的时候可能会出现类似的情况。
2.复习和回顾了以前的知识。
其中既有软件操作,例如用keil 编写代码,用proteus实现软件仿真,通过串口连接收发数据等;又有书本上的知识,比如自动量程选择的实现方法,通过多路选择开关CD4052实现自动换挡,运算放大器的反馈电路,各种芯片的管脚作用等。
参考文献
[1]史健芳.智能仪器设计基础.北京:电子工业出版社.2009
[2]闫玉德、葛龙、俞虹.单片微型计算机原理与设计.北京:中国电力出版
社.2010
[3]张重雄虚拟仪器技术分析与设计北京:电子工业出版社 2007
紫金学院.微型与单片机原理及应用实验指导书.。