测控系统综合设计Word文档格式.docx
- 文档编号:17721286
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:16
- 大小:383.89KB
测控系统综合设计Word文档格式.docx
《测控系统综合设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《测控系统综合设计Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
当金属丝受到轴向力F而被拉伸或压缩产生形变,其电阻值会随之变化,通过对(2.1)式两边取对数后再取全微分得:
(2.2)
式中
为材料轴向线应变,且
跟据材料力学,在金属丝单向受力状态下,有
(2.3)
式中μ为导体材料的泊松比。
因此,有
(2.4)
试验发现,金属材料电阻率的相对变化与其体的相对变化间的关系为
(2.5)
式中,c为常数(由一定的材料和加工方式决定)
将式(2.5)代入(2.4),且当ΔR=R时,可得
(2.6)
式中,k=(1+2µ
)+c(1-2µ
)为金属丝材料的应变灵敏系数。
上式表明,金属材料电阻的相对变化与其线应变成正比。
这就是金属材料的应变电阻效应。
电阻变化率△R/R的表达式为:
K=ΔR/Rµ
/ε,式中μ—材料的泊松系数;
ε—应变量。
当金属丝受外力作用时,其长度和截面积都会发生变化,从上式中可很容易看出,其电阻值即会发生改变,假如金属丝受外力作用而伸长时,其长度增加,而截面积减少,电阻值便会增大。
当金属丝受外力作用而压缩时,长度减小而截面增加,电阻值则会减小。
只要测出加在电阻的变化(通常是测量电阻两端的电压),即可获得应变金属丝的应变情。
3、电阻应变片的基本结构
电阻应变片主要由四部分组成。
如图所示,电阻丝是应变片敏感元件;
基片、覆盖片起定位和保护电阻丝的作用,并使电阻丝和被测试件之间绝缘;
引出线用以连接测量导线。
电阻应变片的基本结构
4、三运放大电路
本次设计的放大器采用了三运放,因为它具有高共模抑制比的放大电路。
它由三个集成运算放大器组成,如图所示。
2.5三运放高共摸抑制比放大电路
其中A1和A2为两个性能一致(主要指输入阻抗,共模抑制比和增益)的同相输入通用集成运算放大器,构成平衡对称差动放大输入级,A3构成双端输入单端输出的输出级,用来进一步抑制A1和A2的共模信号,并适应接地负载的需要。
由于每个放大器求和点的电压等于施加在各自正输入端的电压,因此,整个差分输入电压现在都呈现在RG两端。
因为输入电压经过放大后(在A1和A2的输出端)的差分电压呈现在R5,RG和R6这三只电阻上,所以差分增益可以通过仅改变RG进行调整。
这种连接有另外一个优点:
一旦这个减法器电路的增益用比率匹配的电阻器设定后,在改变增益时不再对电阻匹配有任何要求。
如果R5=R6,R1=R3和R2=R4,则VOUT=(VIN2-VIN1)(1+2R5/RG)(R2/R1)。
由于RG两端的电压等于VIN,所以流过RG的电流等于VIN/RG,因此输入信号将通过A1和A2获得增益并得到放大。
然而须注意的是对加到放大器输入端的共模电压在RG两端具有相同的电位,从而不会在RG上产生电流。
由于没有电流流过RG(也就无电流流过R5和R6),放大器A1和A2将作为单位增益跟随器而工作。
因此,共模信号将以单位增益通过输入缓冲器,而差分电压将按〔1+(2RF/RG)〕的增益系数被放大。
这也就意味着该电路的共模抑制比相比与原来的差分电路增大了〔1+(2RF/RG)〕倍。
在理论上表明,得到所要求的前端增益(由RG来决定),而不增加共模增益和误差,即差分信号将按增益成比例增加,而共模误差则不然,所以比率〔增益(差分输入电压)/(共模误差电压)〕将增大。
因此CMR理论上直接与增益成比例增加,这是一个非常有用的特性。
最后,由于结构上的对称性,输入放大器的共模误差,如果它们跟踪,将被输出级的减法器消除。
这包括诸如共模抑制随频率变换的误差。
5、A/D转换器的简介
在这次设计中我们A/D转换器选用两通道输入的八位ADC0832,ADC0832[3]是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
有关引脚说明如下:
•CS片选使能,低电平芯片使能。
•CH0模拟输入通道0,或作为IN+/-使用。
•CH1模拟输入通道1,或作为IN+/-使用。
•GND芯片参考0电位(地)。
•DI数据信号输入,选择通道控制。
•DO数据信号输出,转换数据输出。
•CLK芯片时钟输入。
•Vcc/REF电源输入及参考电压输入(复用)。
正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
它的结构示意图如图所示。
ADC0832结构示意图
6、AT89C51单片机简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本,如图2.9所示。
AT89C51单机为很多嵌入式控制系统提供灵活性高且廉价的方案。
图2.9AT89C51单片机的结构示意图
四、软件设计
1、ADC0832芯片接口程序的编写
单片机串行工作方式时,串行口是作为同步移位寄存器使用。
这时以P3.3端作为数据移位的入口和出口,而由P3.6端提供移位时钟脉冲。
单片机串行口方式0与ADC0832的接口,单片机P2.0接ADC0832的CS,P3.6接0832的CLK作为时钟信号输出端,P3.7接0832的DO和DI作为启动位、配置位的发送端以及A/D转换后输出数据的接收端。
由于ADC0832在CS变低后的前3个周期内,DO端为高阻态;
转换开始后,DI线禁止,因此,DI端和DO端可连接在一起。
ADC0832的时钟频率最高为400kHz,单片机晶振可选用4MHz,在TXD的输出频率为4MHz/12=333.3kHz,符合要求。
ADC0832输出的串行数据共15位,由两段8位数据组成,前一段是最高位在先,后一段是最高在后,两段数据的最低位共用。
只有在时钟的下降沿,ADC0832的串行数据才移出一位。
由单片机控制时钟信号的发送,并由P3.6发出,以达到控制ADC0832输出数据位的目的。
为了得到一列完整的8位数据,单片机分两次采集含有不同位的数据,再合成一列完整的8位数据。
ADC0832通过内部多路器来控制选择通道,处理器的控制命令通过DI引脚输入。
如下流程图所示,当模拟信号输入开始后,首先是CS使能信号也就是片选信号有效,这时是低电平有效,如果片选是高电平时停止转换。
当时钟信号有效时输入通道的控制字来确定所选择的通道,读取数据后就开始将模拟量转换位数字量,A/D转换结束后,单片机读取数值,如果没转换完,又回到使能开始。
ADC0832数据读取程序流程
2、单片机与键盘的接口程序设计
AT89C51单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。
列线P1.0-P1.3分别接有4个上拉电阻到正电源+5V,并把列线P1.0-P1.3设置为输入线,行线P1.4-P.17设置为输出线。
4根行线和4根列线形成16个相交点。
检测当前是否有键被按下。
检测的办法是P1.4-P1.7输出全“0”,读取P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,不然有键闭合。
去除键抖动。
当检测到有键按下后,延时一段时间再做下一步的检测判断。
若有键被按下,应识别出是哪一个键闭合。
办法是对键盘的行线进行扫描。
P1.4-P1.7按下述4种组合依次输出:
P1.71110P1.61101P1.51011P1.40111在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,不然有键闭合。
由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。
为了保证键每闭合一次CPU仅作一次处理,必须却除键释放时的抖动。
从以上分析得到单片机键盘扫描程序的流程图如图所示。
程序如下
单片机矩阵式键盘接口流程图
3、LED数码管显示程序设计
利用单片机内部的串行接口,可以实现静态的显示处理。
这样不仅可以节省单片机的并行接口资源,而且在大多数不使用串行接口的情况下,可以减少或是免去扩展接口。
在这种设计中,串行口工作于方式0,数据的输入输出都通过RxD实现,移位脉冲则由TxD发出。
每次传送一个字节数据。
每输出一个字节数据,单片机自动使串行中断请求标志TI置。
通过测试该状态,即可确定该字节是否发送完毕。
由硬件电路图可知,74LS164是串行输入并行输出的移位寄存器。
它具有两个串行输入端和8位并行输出端(QA~QH)。
当显示数据从RxD端输出到移位寄存器74LS164的输入端AB时,74LS164将串行数据转换成8位输出码QA~QH,然后加到共阳极LED显示器上。
究竟在哪一位上显示,还要P1口的状态而定。
当某一位为低电平时,该位LED显示,其他位不显示。
由于接口电路中显示模型输出地址和位选信号可一次选中,故只要一次输出即可显示一位。
LED的显示流程图
五、总结
在设计中遇到不少困难,这对自己是一个考验,刚开始拿到题目的时候头绪并不是很多,通过查阅资料对整个系统有了一定的认识。
单片机的相关内容在大三的课程学过,但是学得并不是很深,在设计前我重新学习了一遍单片机的知识,包括芯片接口和51系列单片机的指令等。
串行A/D转换器ADC0832是新接触的一种芯片,除学习芯片功能外,主要了解了对芯片串行输出的控制,这里的软件设计是一个难点,我们这次用的是用PROTEI99绘图软件,我们以前学过但是学的不深这对我来说是个难点,但是通过看书和同学老师的帮忙,使得我画好了原理图和PCB版的出图。
还有就是焊版,焊不好就无法显示要的数据,调试是最关键的时候,刚开始的时候没有显示,在修改程序的时候花了不少时间最后,终于显示可以想要的结果。
当程序下载到焊版的时候,首先是显示0000,如果改变滑动变阻器时,通过ADC0832就可以显示不同的数据,我做的首先是采集模拟量,然后显示需要的数据。
我认为我们专业学习硬件知识相对比软件多,所以在软件设计方面我还有很大不足。
程序的设计经过“学习–模仿–编写–修改–再修改–定型”等阶段,在软件的学习上我也花了比较多的时间和精力,让我欣慰的是收获也很大。
原理图:
程序:
#include<
reg51.h>
stdio.h>
math.h>
#include<
intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
#defineADC0832CH0channel;
//*********定义变量区*******************
sbitclk_adc0832=P3^6;
//定义各个控制引脚
sbitcs_adc0832=P2^0;
sbitdi_adc0832=P3^7;
sbitdo_adc0832=P3^7;
sbitLED0_CS=P1^0;
sbitLED1_CS=P1^1;
sbitLED2_CS=P1^2;
sbitLED3_CS=P1^3;
sbitadarm=P2^2;
ucharcodetable[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
//0,1,2,3,4,5,6,7,8,9,off//共阳极笔端码
ucharch;
//采样返回数据
//*********函数声明区********************
voidtkey(void);
//键盘函数
unsignedrunADC0832(bit);
//A/D转换
voidDelayms(uintx);
//延时显示函数
voidUpdate_LED();
//LED显示函数
voidLED_analyze();
//**********主函数开始**********
voidmain()
{
P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
Uart_Init();
TH0=0x3C;
TL0=0xAF;
ET0=1;
//开外部中断0
EA=1;
//全局中断打开
TR0=1;
nCounter=0;
Change_Flag=0;
while
(1)
runADC0832();
if(Change_Flag==1)
{Update_LED();
if(ch>
9999)
ch=0;
printf("
counterrefreshed%d\n"
ch);
}
delay();
/********矩键查寻键值4*4程序******/按键为P1.0---P1.7
voidTkey(void)
ucharreadkey;
//rereadkey;
ucharx_temp,y_temp;
P1=0x0f;
x_temp=P1&
0x0f;
if(x_temp==0x0f)gotokeyout;
P1=0xf0;
y_temp=P1&
0xf0;
readkey=x_temp|y_temp;
readkey=~readkey;
switch(readkey)
case0x11:
key=0;
break;
case0x21:
key=1;
case0x41:
key=2;
case0x81:
key=3;
case0x12:
key=4;
case0x22:
key=5;
case0x42:
key=6;
case0x82:
key=7;
case0x14:
key=8;
case0x24:
key=9;
case0x44:
key=10;
break;
case0x84:
key=11;
case0x18:
key=12;
case0x28:
key=13;
case0x48:
key=14;
case0x88:
key=15;
default:
key=16;
}
keyout:
_nop_();
}//**********A/D转换子程序开始***************
unsignedrunADC0832(void)//读ADC0832函数
{
uchari=0;
ucharj;
uintdat=0;
ucharndat=0;
if(channel==0)channel=2;
if(channel==1)channel=3;
ADDI=1;
_nop_();
ADCS=0;
//拉低CS端
ADCLK=1;
//拉高CLK端
ADCLK=0;
//拉低CLK端,形成下降沿1
ADDI=channel&
0x1;
//拉低CLK端,形成下降沿2
ADDI=(channel>
>
1)&
//拉低CLK端,形成下降沿3
//控制命令结束
dat=0;
for(i=0;
i<
8;
i++)
{
dat|=ADDO;
//收数据
//形成一次时钟脉冲
dat<
<
=1;
if(i==7)dat|=ADDO;
}
j=0;
j=j|ADDO;
j=j<
7;
ndat=ndat|j;
if(i<
7)ndat>
ADCS=1;
//拉高CS端
//拉低CLK端
ADDO=1;
//拉高数据端,回到初始状态
=8;
dat|=ndat;
return(dat);
//returnadk
voidcontrol(uchard)//数据个、十、百、千取数函数
ch=ch%10000;
AD_bcd[0]=ch/1000;
AD_bcd[1]=(ch/100)%10;
AD_bcd[2]=(ch%100)/10;
AD_bcd[3]=(ch%100)%10;
update_disbuf();
voidupdate_disbuf(void)//对应显示的数据函数
{P0=dis_code[AD_bcd[0]];
LED_0=0;
Delayms(10);
LED_0=1;
P0=dis_code[AD_bcd[1]];
LED_1=0;
LED_1=1;
P0=dis_code[AD_bcd[2]];
LED_2=0;
LED_2=1;
P0=dis_code[AD_bcd[3]];
LED_3=0;
LED_3=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测控 系统 综合 设计