简易自动电阻测试仪.docx
- 文档编号:4768258
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:18
- 大小:245.72KB
简易自动电阻测试仪.docx
《简易自动电阻测试仪.docx》由会员分享,可在线阅读,更多相关《简易自动电阻测试仪.docx(18页珍藏版)》请在冰豆网上搜索。
简易自动电阻测试仪
简易自动电阻测试仪
摘要
本设计根据题目要求制作一台简易自动电阻测试仪,能够测量100Ω、1kΩ、10kΩ、10MΩ四档不同的量程,并实现其中前三档的自动量程转换功能,同时自动显示小数点和单位。
基于这些要求,经过讨论,决定利用ADC芯片将电阻参数转化为频率,频率f是单片机很容易处理的数字量,一方面测量精度高,另一方面便于使仪表实现自动化,而且单片机构成的应用系统有较大的可靠性。
通过输入单片机AT89C52控制继电器控制被测频率的自动选择,输入输出控制采用LED指示灯、LCD1602显示系统和蜂鸣器电路组成,能很好的实现各个要求。
单片机具有可编程性,硬件的功能描述可完全在软件上实现,另一方面便于使仪表实现自动化,设计时间短,成本低,可靠性高。
关键字:
AT89C52单片机ADC芯片继电器自动量程转换
一、选择题目
目前电子设备发展迅猛,很多便利仪器出现。
这次设计的仪器具有四个档位量程的简易自动电阻测试仪,量程分别为100Ω、1kΩ、10kΩ、10MΩ四个档,难点在于小电阻的测量的精度。
测量时电阻值为3位数字显示(最大显示数必须为999),能自动显示小数点和电阻单位,如99.9欧姆,并实现前三个档位的自动量程转换。
在本设计中我重点介绍一种把电子元件的参数R转换成频率信号f的方法,之后采用单片机控制,再通过程序处理运算求出R的数值,最后应用LCD1602显示模块限制阻值。
目前市场测量电子元器件参数R的仪表种类繁多,并且方法和优缺点也各有不同。
一般的测量方法都存在计算复杂,不易实现自动测量而且很难实现智能化等缺点。
将电阻参数转化为频率,这样处理一方面使测量精度提高了,另一方面也便于使仪表实现智能化,并能很好的实现各个要求。
二、方案论证
2.1方案论证与选择
方案一:
最基本的就是根据R的定义式来测量。
在如图2-1中,分别用电流表和电压表测出通过电阻的电流和通过电阻的电压,根据公式R=U/I求得电阻。
这种方法要测出两个模拟量,不易实现自动化。
而指针式万用表欧姆档是把被测电阻与电流一一对应,由此就可以读出被测电阻的阻值,如图2-2所示。
这种测量方法的精度变化大,若需要较高的精度,必须要较多的量程,电路复杂。
图2-1定义法测电阻图2-2万用表测电阻
方案二:
把电阻转换成频率信号f,转换的原理是用A/D芯片将连续变化的模拟信号转变为数字信号频率,单片机根据所选通道,向模拟开关送两路地址信号,取得振荡频率,作为单片机的时钟源,通过计数则可以计算出被测频率,再通过该频率,通过公式计算出各个电阻参数。
然后根据所测频率判断是否转换量程,或者是把数据处理后,把电阻的值送显示部分显示出相应的参数值,利用编程实现量程自动转换。
总结:
通过精确度以及方便使用的角度考虑,方案二的方法更好。
2.2设计思路
2.2.1总体方案组成和说明
选择系统的电路设计方框图如图2-3所示,它由四个部分组成:
①管理控制部分的主芯片采用单片机AT89C52;②测量的部分主要是采用A/D芯片实现将被测电阻的阻值转换为频率;③通道的选择部分通过52单片机I/O接口连接继电器来控制自动选择被测电阻的档位;④显示的部分是通过LCD1602、二极管指示灯及蜂鸣器而组成的测量部分。
图2-3设计框图
2.2.2组成部分及其说明
第一,控制部分
(1)分析:
本设计采用AT89C52单片机,利用其具备的中断系统和延时程序来控制换挡,以及LCD1602液晶屏的显示等等功能。
(2)原理图
图2-452单片机最小系统设计
第二,测量部分
(1)计算分析:
利用ADC0832实现转换被测电阻的频率,通过52单片机的I/O接口的自动识别电阻量程,来实现自动测量。
(2)仿真图&原理图
图2-5
(1)ADC转换电路仿真图
图2-5
(2)ADC转换电路原理图
第三,通道选择部分
(1)分析说明:
本设计通过单片机控制来控制继电器完成自动选择,继电器是一种电子控制器件,它具有输入回路和输出回路,经常应用于自动控制电路中,原理实际上是用较小的电流去控制较大电流的一种“自动开关”。
所以在电路中起着自动调节、安全保护、转换电路等作用。
(2)仿真图
图2-6继电器自动选择电路
第四,显示部分
(1)分析说明:
使用1602液晶显示屏,具有画面效果好,分辨率高,抗干扰能力强等特点,可以显示4行字,符合本次设计任务的要求。
(2)仿真图&原理图
图2-7
(1)1602显示仿真图
图2-7
(2)1602显示原理图
三、设计实现
3.1测量电路设计
根据题目要求,采用ADC芯片,将电阻量转换为相应的频率信号值。
考虑到单片机对频率的灵敏度,具体的讲就是单片机对10HZ~10KHZ的频率计数精度最高。
所以要选择合适的电阻大小,同时又要考虑到不能使电阻的功率过大。
所以首先要确定对应档位时适合的频率,然后在确定电阻,从而算出3个电阻的值以及对应频率范围。
档位
电阻R1
频率范围
100Ω~1KΩ
R1=200Ω
8500~9500HZ
1KΩ~10KΩ
R2=10KΩ
3600~6600HZ
10KΩ~10MΩ
R3=500KΩ
11000~16400HZ
表3-1电路对应量程参数
3.2通道选择电路设计
利用继电器类别的转换,继电器型号为943-1C-5DS,5v控制开关关断
电路流程图如下:
图3-3量程自动转换流程图
3.3控制电路设计
本设计使用单片机为核心部件,来控制换挡以及显示。
以下是单片机管脚说明:
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89S52的一些特殊功能口,如表1所示:
表1P3特殊功能口
P3口引脚
第二功能
P3.0
RXD(串行口输入)
P3.1
TXD(串行口输出)
P3.2
INT0(外部中断0输入)
P3.3
INT1(外部中断1输入)
P3.4
T0(定时器0外部脉冲输入)
P3.5
T1(定时器1外部脉冲输入)
P3.6
WR(外部数据存储器写脉冲输出)
P3.7
RD(外部数据存储器读脉冲输出)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.4显示电路
系统的显示部分采用LCD1602液晶显示模块。
3.5软件设计
系统通过频率来控制量程自动切换,并根据换算对应的电阻,然后再控制显示模块输出。
图3-2程序设计流程图
四、测试及结果分析
4.1测试方法及使用的仪器
测量方法:
采用555多谐振荡电路,将电阻量转换为相应的频率信号值。
再利用单片机及有关程序对范围的选择,显示侧量出数值。
测试使用的仪器设备:
数字万用表、示波器。
4.2指标测试和测试结果
表4.1.2测试结果对照分析表
档位
测量值
测量值
实际值
100Ω~1KΩ
101Ω
98.9Ω
1KΩ~10KΩ
1014Ω
998.9Ω
10KΩ~10MΩ
-
989KΩ
五、结论
本设计实现了一种利用52单片机实现的简易电阻测试仪,基于单片机和量程自动切换电路的控制系统,能够根据待测电阻的大小实现适当频率的控制,再分别采样频率,通过程序计算待测电阻Rx并在1602液晶上显示。
并且测量的数据结果较稳定。
设计过程中出现问题有以下:
1.在使用ADC芯片电路中电阻值时,由于单片机对10HZ~10KHZ的频率计数精度最高。
所以要选用合理的电阻大小。
同时又要考虑到不能使电阻的功率过大,这样给我们计算带来了很多的麻烦。
2.我们接收到频率较高,所以通过电路很难控制精确度,产生的误差比较大。
3.继电器在使用时最高位的继电器无法工作导致量程只能在0到1k。
4、在实验过程中时常有捉襟见肘的感觉,一方面是理论不足,很多好的方案,好的思想由于理论的匮乏,无法理解,也不能使用,在以后的学习过程中理论的学习始终是重点;还有就是程序的问题,由于编程水平跟不上,加上思路也不清晰,导致程序的编写存在很大的问题,好的思想,无法在程序中展现出来,这也是以后需要加强的地方。
参考文献
1.高吉祥,黄智伟,丁文霞.数字电子技术[M].北京:
电子工业出版社,2003年,第1版
2.邹其洪黄智伟高嵩.电工电子实验与计算机仿真[M].北京:
电子工业出版社,2003年,第1版
3.张友汉.电子线路设计应用手册[M].福建:
福建科学技术出版社.2000.7第一版.
4.黄智伟.电子电路计算机仿真设计[M].北京:
电子工业出版社,2004年第1版
附录
附录1:
主要元器件清单
at89c52单片机
1
12M晶振
2
11.0592M晶振
2
22pf瓷片电容
5
4.7k电阻
2
2.5k电阻
2
200电阻
2
10k电阻
2
500k电阻
2
3.3k电阻
2
AD转换器adc0832
2
mps8098三极管
5
继电器G2RL-1AB-DC5
5
蓝白电位器10k
2
排针
2
8脚排座
2
40脚排座
2
蜂鸣器
2
1n4148二极管
5
2n2222三极管
3
发光二极管
2
附录2:
程序清单
#include
#include
#defineucharunsignedchar
uchartable[]={0x00,0x04,0x0A,0x11,0x11,0x0A,0x1B,0x3B,};
uchartable1[]="THERESIS:
";
sbitCS=P1^5;
sbitClk=P1^6;
sbitDI=P1^7;
sbitDO=P1^7;
sbitrs=P2^0;
sbiten=P2^1;
sbitj1=P2^7;
sbitj2=P2^6;
sbitj3=P2^5;
sbitbeep=P1^4;
sbitled=P2^3;
voiddelay(intx)
{intj;
for(;x>0;x--)
for(j=20;j>0;j--);
}
ucharADC0832(ucharCH)
{
uchari,dis0,dis1,date;
Clk=0;//拉低时钟
DI=1;//初始化
delay
(1);
CS=0;//芯片选定
delay
(1);
Clk=1;//拉高时钟
delay
(1);
if(CH==0)//通道选择
{
Clk=0;//第一次拉低时钟
DI=1;//通道0的第一位
delay
(1);
Clk=1;//拉高时钟
delay
(1);
Clk=0;//第二次拉低时钟,ADC0832DI接受数据
DI=0;//通道0的第二位
delay
(1);
Clk=1;
delay
(1);
}
else
{
Clk=0;
DI=1;//通道1的第一位
delay
(1);
Clk=1;
delay
(1);
Clk=0;
DI=1;//通道1的第二位
delay
(1);
Clk=1;
delay
(1);
}
Clk=0;//第三次拉低时钟,此前DI两次赋值决定通道
DI=1;//DI开始失效,拉高电平,便于DO数据传输
for(i=0;i<8;i++)//读取前8位的值
{
delay
(1);
dis0<<=1;
Clk=1;
delay
(1);
Clk=0;
if(DO)
dis0|=0x01;
else
dis0|=0x00;
}
for(i=0;i<8;i++)//读取后8位的值
{
dis1>>=1;
if(DO)
dis1|=0x80;
else
dis1|=0x00;
delay
(1);
Clk=1;
delay
(1);
Clk=0;
}
if(dis0==dis1)//两次结束数据比较,若相等
date=dis0;//则赋值给dat
delay
(1);
CS=1;//释放ADC0832
DI=1;//拉高输出端,方便下次通道选择DI端有效
Clk=1;//拉高时钟
delay
(1);
returndate;
}
longdatch(uchara,longst)//计算电阻
{longy;
doublex=1.0*st*(255-a)/a;
y=x;
returny;
}
voidwritecom(ucharcom)
{rs=0;
P3=com;
delay(10);
en=1;
delay(10);
en=0;
}
voidwritedat(uchardate)
{rs=1;
P3=date;
delay(10);
en=1;
delay(10);
en=0;
}
voidinit()
{
en=0;
writecom(0x38);
writecom(0x0c);
writecom(0x06);
writecom(0x01);
}
voiddisplay(longx)
{intj,wei=12;
for(j=0;j<18;j++)//qinhkongxianshi
{writecom(0xc0+14-j);
delay(10);
writedat(32);}
for(j=0;x>0;j++)//qinhkongxianshi
{if((j%3==0)&&(j>0))
{writecom(0xc0+wei-j);writedat(44);wei--;}
writecom(0xc0+wei-j);
delay(10);
writedat(x%10+48);
x=x/10;
}
}
longJ1(void)
{j1=1;
j2=0;
j3=0;
delay(40);
returndatch(ADC0832(0),200);
}
longJ2(void)
{j1=0;
j2=1;
j3=0;
delay(40);
returndatch(ADC0832(0),10000);
}
longJ3(void)
{j1=0;
j2=0;
j3=1;
delay(40);
returndatch(ADC0832(0),500000);
}
voidmain()
{
intj;
longx,s=1;
led=1;
beep=0;
init();
j1=1;
j2=0;
j3=0;
for(x=0;x<11;x++)
{
writedat(table1[x]);
delay(10);
}
writecom(0x40);
for(x=0;x<8;x++)
{
writedat(table[x]);
}
delay(10);
writecom(0xc0+15);
writedat(0x00);
while
(1)
{
if(j1==1)
{
s=J1();
if(s>=1900)
s=J2();
if(s>=100000)
s=J3();
}
elseif(j2==1)
{
s=J2();
if(s<=1900)s=J1();
elseif(s>=100000)s=J3();
}
elseif(j3==1)
{
s=J3();
if((s<=100000)&&(s>1900))s=J2();
if(s<=1900)s=J1();
}
j=ADC0832(0);
if(j>=254)beep=1;
elsebeep=0;
if((j==0)||(j==255))led=0;
elseled=1;
if(x!
=s)
{
x=s;
display(s);}}
}
附录3:
实物图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 自动 电阻 测试仪