智能仪器课程设计Word格式.docx
《智能仪器课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《智能仪器课程设计Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
t0为磁芯在线圈内初始伸入深度;
L0为初始电感量。
由式可
(1)见,线圈电感量的变化ΔL正比于测杆位移量的变化量Δt,也就正比于被测部件位置的变化量。
1.2转换电路设计
图1-2转换电路
为了对传感器给出的电感信号进行放大、处理和显示,需将电感量的变化ΔL转换为电压信号。
该测量仪采用交流测量电桥完成这一任务,其原理如图所示。
电桥的两臂Z1和Z2为电感传感器中两个线圈的阻抗(线圈电感L与电阻r的等效阻抗),另外两臂为电源变压器次级线圈的两半绕组(每半绕组的电势为u)。
当电感传感器的铁芯处于中间位置时,两线圈的阻抗相等,即Z1=Z2,则Usc=0,电桥处于平衡状态,无输出电压。
当测杆上升时,上线圈阻抗增加,即Z1=Z+ΔZ,下线圈阻抗减少,即Z2=Z-ΔZ,则有Usc=(ΔZ/Z)u,当测杆下降同样位移时,上述变化相反,有Usc=-(ΔZ/Z)u。
1.3正弦激励电路的设计
图1-3100KHz正弦振荡电路
传感器精度要求激励源必须非常的稳定,不能随负载和温度变化。
因此采用有源晶振提供稳定的激励信号,设计电压反馈稳幅环节保持激励信号的幅值稳定。
100KHz正弦激励,降低电极阻抗,高检测电路频响和提高精度。
晶振X1输出100KHz方波信号,解成傅里叶级数为:
1.4相敏检波电路设计
图1-4相敏检波电路
电路如图所示。
VD1、VD2、VD3、VD4为四个性能相同的二极管,以同一方向串联成一个闭合回路,形成环形电桥。
输入信号u2(差动变压器式传感器输出的调幅波电压)通过变压器T1加到环形电桥的一个对角线。
参考信号u0通过变压器T2加入环形电桥的另一个对角线。
输出信号uL从变压器T1与T2的中心抽头引出。
平衡电阻R起限流作用,避免二极管导通时变压器T2的次级电流过大。
RL为负载电阻。
u0的幅值要远大于输入信号u2的幅值,以便有效控制四个二极管的导通状态,且u0和差动变压器式传感器激磁电压u1由同一振荡器供电,保证二者同频、同相(或反相)。
、
1.5低通滤波器的设计
低通滤波器是容许低于截止频率的信号通过
但高于截止频率的信号不能通过的电子滤波装置。
低通滤波器分为有源低通滤波和无源低通滤波。
本次设计采用无源低通滤波。
无源低通滤波器的实现
一个可以作为低通滤波器的简单电路包括与一个负载串联的电阻以及与负载并联的一个电容。
电容有电抗作用阻止低频信号通过
低频信号经过负载。
在较高频率电抗作用减弱
电容起到短路作用。
这个区分频率(也称为转换频率或者截止频率(Hz))由所选择的电阻和电容所确定。
低通滤波的传递函数为:
1.6单片机的设计
图1-6单片机AT89C51
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节FLASH可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造
与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
特性:
与MCS-51兼容;
4K字节可编程闪烁存储器;
寿命:
1000写/擦循环;
数据保留时间
10年;
全静态工作:
0Hz-24MHz;
三级程序存储器锁定;
128*8位内部RAM;
32可编程I/O线;
两个16位定时器/计数器;
5个中断源;
可编程串行通道;
低功耗的闲置和掉电模式;
片内振荡器和时钟电路。
a:
AT89C51控制引脚
RST:
复位输入。
当振荡器复位器件时
要保持RST脚两个机器周期的高电平。
ALE/PROG:
当访问外部存储器时
地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间
此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号
此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态,ALE禁止,置位无效。
b.AT89C51时钟引脚
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
c.时钟电路
51单片机各功能部件的运行都是以时钟控制信号为基准
有条不紊的一拍一拍的工作。
因此
时钟频率直接影响单片机的速度
时钟电路的质量也直接影响单片机系统的稳定性。
内部时钟方式:
51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1
输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容
就构成一个稳的自激振荡器。
d.复位电路
51单片机的复位是由外部的复位电路来实现的。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST端经电阻与电源VCC接通而实现的。
1.7程控放大电路的设计
图1-7-1反相程控放大电路
程控放大电路采用反相放大电路的基本形式,其中CAT5111是可编程数字电位器,运算放大器是OP07。
此放大电路的放大倍数(CAT5111的阻值记为R):
反相放大电路的特点:
运放两个输入端电压相等并等于0;
故没有共模输入信号,这样对运放的共模抑制比没有特殊要求;
电路在深度负反馈条件下,电路的输出电阻近似为0。
可编程数字电位器CAT5111介绍特性:
100抽头线性电位器;
易失性NVRAM滑动片存储..带缓冲的滑动片;
低功耗CMOS技术;
单电源电压:
2.5、6.0V;
递增/递减串行接口;
电阻值:
10kΩ、50kΩ和100kΩ;
有PDIP,SOIC,TSSOP和MSOP封装。
OP07芯片是一种低噪声,非斩波稳零的双极性(双电源供电)运算放大器集成电路。
由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低(OP07A为±
2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
OP07特点:
超低偏移:
150μV最大。
低输入偏置电流:
1.8nA。
低失调电压漂移:
0.5μV/℃。
超稳定,时间:
2μV/month最大高电源电压范围:
±
3V至±
22V。
图1-7-2OP07管脚图
OP07芯片引脚功能说明:
1和8为偏置平衡(调零端),2为反向输入端,3为正向输入端,4接地,5空脚6为输出,7接电源+
1.8A/D转换电路设计
图1-8-1AD574引脚图
A/D转换器
ADC
的作用就是把模拟量转换成数字量,以便于计算机进行处理。
A/D转换器的主要技术指标
转换时间和转换速率、分辨率、转换精度。
由测量范围和综合性误差的关系可以知道要采用12位AD转换器。
AD574是12位逐次比较型A/D转换器。
转换时间为25μs
转换精度为0.05%,由于芯片内有三态输出缓冲电路,因而可直接与各种典型的8位或16位的微处理器相连,而无需附加逻辑接口电路,且能与CMOS及TTL兼容。
图1-8-2AD574工作特性表
图1-8-3AT89C51与AD574的接口图
1.9LCD显示电路设计
图1-9LCD1602
LCD是液晶显示器的英文名称的缩写,液晶显示器是一种被动式的显示器,即液晶本身不发光,而是利用液晶经过处理后能改变光线通过方向的特征,达到白底黑字或黑底白字的显示目的。
液晶显示器具有功耗低,抗干扰能力强等优点。
液晶显示器种类繁多,按排列形状可分为字段型、点阵字符型和点阵图形型。
字段型是以长条状组成的字符显示。
该类显示器主要用于数字显示,也可以显示西方字母或某些字符,已广泛用于电子表、数字仪表、计算器中。
点阵字符型。
点阵字符型液晶显示模块是专门显示模块是专门用来显示字母、数字、符号等点阵型液晶显示模块。
它是由若干个5×
7或5×
10点阵组成,每一个点阵显示一个字符。
此类显示模块广泛应用在各类单片机应用系统中。
点阵图形型。
点阵图形型是在平板上排列多行或多列,形成矩阵式的晶格点,点的大小可根据显示的清晰度来设计。
这类液晶显示器可广泛应用于图形显示如游戏机、笔记本电脑和彩色电视机等设备中。
液晶显示器LCD1602引脚图如2-12所示。
1602采用标准的16脚接口,其中,
第1脚,VSS为电源地。
第2脚,VDD接5V电源正极。
第3脚,VLCD为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚,RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚,R/W为读写信号线,高电平1时进行读操作,低电平0时进行写操作。
第6脚,E(或EN)端为使能(enable)端。
第7-14脚,D0,D7为8位双向数据端。
第15,16脚,空脚或背灯电源。
15脚背光正极,16脚背光负极。
2.软件系统设计
2.1系统设计流程图
图2-1-1系统总设计流程
激励单元采用正弦激励源电路。
采用有源晶振提供频率稳定的激励信号,设计电压反馈稳幅环节保持激励信号的幅值稳定,100KHz正弦激励,以降低电极阻抗,提高检测电路频响和提高精度。
信号调理单元用开关式相敏检波电路和无源低通滤波。
程控放大单元利用放大器的虚短虚断,用单片机改变数字式电位器的阻值来实现放大信号的倍数的需求。
放大器采用OP07,数字电位器为CAT5111。
信号采集及显示单元。
经程控放大出的信号是模拟式的,经过模数转换器将模拟式的信号转换成数字式的,再将数字式信号送入单片机,经单片机处理后,由LCD显示屏显示。
A/D转换器采用AD574,单片机采用AT89C51,LCD采用LCD1602。
图2-1-2AD574转换主程序流程图
2.2AD574全12位转换子程序
AD574全12位转换读数据函数
转换函数:
//*********************************************/
/*AD574全12位转换读数据函数*/
//参考电压为芯片内部输出的10电压*/
//读写操作:
*/
//启动A0=0,CS=0;
RC=0;
//读低四位CS=0;
A0=1;
RC=1;
//读高四位CS=0;
A0=0;
/**********************************************/
#include"
absacc.h"
at89x51.h"
#defineuintunsignedint
#defineucharunsignedchar
#defineADCOMXBYTE[0xff7c]//启动A0=0,CS=0;
#defineADLOXBYTE[0xff7f]//读低四位CS=0;
#defineADHIXBYTE[0xff7d]//读高四位CS=0;
ucharcodedis1[]={0x28,0x7E,0xA2,//数码管显示代码
0x62,0x74,0x61,0x21,0x7A,0x20,0x60,0xff};
sbitSTS=P3^5;
//转换标志位
//sbitwr=P3^7;
//WR
//sbitrd=P3^6;
//RD
sbitsw=P3^3;
//开始转换
uinttemp;
ucharqian,bai,shi,ge;
uchardisplay_buf[3];
uintaddate[7];
uintad_team;
/*****************************/
voiddelay(uintms)
//延时1MS
{
uchari;
while(ms--)
for(i=0;
i<
125;
i++);
}
voiddisplay();
//转换读出AD数据
uintad574()
ADCOM=0;
while(STS==1);
return((uint)(ADHI<
<
4)+(ADLO&
0x0f));
/*display*/
voiddisplay()
qian=temp/1000;
//2
bai=(temp-qian*1000)/100;
shi=(temp-qian*1000-bai*100)/10;
ge=temp-qian*1000-bai*100-shi*10;
display_buf[0]=dis1[qian];
display_buf[1]=dis1[bai];
display_buf[2]=dis1[shi];
display_buf[3]=dis1[ge];
P1=display_buf[0];
P2_0=0;
delay
(2);
P2_0=1;
P1=display_buf[1];
P2_1=0;
P2_1=1;
P1=display_buf[2];
P2_2=0;
P2_2=1;
P1=display_buf[3];
P2_3=0;
P2_3=1;
/***********************/
main()
//主函数
uintidataresult;
uchars;
temp=0;
ad_team=0;
TMOD=0x01;
TH0=0xd8;
TL0=0xf0;
EA=1;
//开总中断
ET0=1;
TR0=1;
P0=0xff;
while
(1)
{
if(sw==0)//按钮按下,执行AD转换
delay(10);
while(!
sw);
{
for(s=0;
s<
8;
s++)//AD采样8次
temp=0;
result=ad574();
addate[s]=result;
//采样数据保存
delay
(1);
}
s++)//8次AD相加后除8求平均AD值
ad_team=ad_team+addate[s];
}
temp=(uint)ad_team/8;
ad_team=0;
/**********************************/
voidtimer0()interrupt1
//定时中断用作显示AD值
display();
2.3AT89C51与AD转换器连接程序
//EXP11
#include<
reg51.h>
sbitstart=P2^0;
//控制起动转换信号
sbitfinish=P2^1;
//转换结束标志
sbitale=P2^2;
//地址锁存信号
#defineaddressP3//地址口
#definedateP1//数据口
#definedispP0//显示口
voidtransform();
//AD转换函数
voidmain()
start=0;
while
(1)
transform();
//循环调用AD转换函数
}
//**********************
//AD转换函数
voidtransform()
{
start=1;
//正脉冲起动AD转换
address=0x3f;
//送地址给AD转换
ale=1;
//锁存地址
while
(1)//等待转换结束
if(finish==1)//转换完成
{
disp=date;
//取走数据
ale=0;
//撤消地址锁存信号
break;
//跳出循环进行下一次AD转换
}
2.4LCD1602源程序
//液晶控制与显示驱动程序
reg52.h>
intrins.h>
string.h>
#include"
LCD1602.h"
ADC0808.h"
//---------------忙检查-------------------//
ucharLCD_Busy_Check()
ucharLCD_Status;
RS=0;
RW=1;
E=1;
delay4us();
LCD_Status=P0;
E=0;
returnLCD_Status;
//--------------向LCD写入命令--------------------//
voidWrite_LCD_Command(ucharcmd)
while((LCD_Busy_Check()&
0x80)==0x80);
//忙等待
RW=0;
P0=cmd;
//-----------向LCD写入一个字节的数据函数-----------------*/
voidWrite_LCD_Data(uchardat)
0x80)==0x80);
RS=1;
P0=dat;
//-----------LCD初始化-----------------*/
voidInitialize_LCD1602()//液晶初始化函数
Write_LCD_Command(0x38);
delay50us(10);
//功能设置,数据长度为8位,双行显示,5×
7点阵字体
Write_LCD_Command(0x0C);
//显示开,关光标
Write_LCD_Command(0x06);
//字符进入模式:
屏幕不动,字符后移
Write_LCD_Command(0x01);
delay50us(10);
//清屏
//-----------在LCD上显示字符串-----------------*/
voidLCD_Display(uchar*str)
uchari;
strlen(str);
i++)
Write_LCD_Data(str[i]);
delay50us(100);
3.改进意见
分析可得仪器的工作原理为:
工件的微小位移经电感式传感器的测头带动两线圈内衔铁移动,使两线圈内的电感量发生相对的变化。
当衔铁处于两线圈的中间位置时,两线圈的电感量相