简易自动电阻测试仪Word格式.docx

上传人:b****1 文档编号:748943 上传时间:2023-04-29 格式:DOCX 页数:22 大小:246.93KB
下载 相关 举报
简易自动电阻测试仪Word格式.docx_第1页
第1页 / 共22页
简易自动电阻测试仪Word格式.docx_第2页
第2页 / 共22页
简易自动电阻测试仪Word格式.docx_第3页
第3页 / 共22页
简易自动电阻测试仪Word格式.docx_第4页
第4页 / 共22页
简易自动电阻测试仪Word格式.docx_第5页
第5页 / 共22页
简易自动电阻测试仪Word格式.docx_第6页
第6页 / 共22页
简易自动电阻测试仪Word格式.docx_第7页
第7页 / 共22页
简易自动电阻测试仪Word格式.docx_第8页
第8页 / 共22页
简易自动电阻测试仪Word格式.docx_第9页
第9页 / 共22页
简易自动电阻测试仪Word格式.docx_第10页
第10页 / 共22页
简易自动电阻测试仪Word格式.docx_第11页
第11页 / 共22页
简易自动电阻测试仪Word格式.docx_第12页
第12页 / 共22页
简易自动电阻测试仪Word格式.docx_第13页
第13页 / 共22页
简易自动电阻测试仪Word格式.docx_第14页
第14页 / 共22页
简易自动电阻测试仪Word格式.docx_第15页
第15页 / 共22页
简易自动电阻测试仪Word格式.docx_第16页
第16页 / 共22页
简易自动电阻测试仪Word格式.docx_第17页
第17页 / 共22页
简易自动电阻测试仪Word格式.docx_第18页
第18页 / 共22页
简易自动电阻测试仪Word格式.docx_第19页
第19页 / 共22页
简易自动电阻测试仪Word格式.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

简易自动电阻测试仪Word格式.docx

《简易自动电阻测试仪Word格式.docx》由会员分享,可在线阅读,更多相关《简易自动电阻测试仪Word格式.docx(22页珍藏版)》请在冰点文库上搜索。

简易自动电阻测试仪Word格式.docx

图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-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测试结果对照分析表

测量值

实际值

101Ω

98.9Ω

1014Ω

998.9Ω

-

989KΩ

五、结论

本设计实现了一种利用52单片机实现的简易电阻测试仪,基于单片机和量程自动切换电路的控制系统,能够根据待测电阻的大小实现适当频率的控制,再分别采样频率,通过程序计算待测电阻Rx并在1602液晶上显示。

并且测量的数据结果较稳定。

设计过程中出现问题有以下:

1.在使用ADC芯片电路中电阻值时,由于单片机对10HZ~10KHZ的频率计数精度最高。

所以要选用合理的电阻大小。

同时又要考虑到不能使电阻的功率过大,这样给我们计算带来了很多的麻烦。

2.我们接收到频率较高,所以通过电路很难控制精确度,产生的误差比较大。

3.继电器在使用时最高位的继电器无法工作导致量程只能在0到1k。

4、在实验过程中时常有捉襟见肘的感觉,一方面是理论不足,很多好的方案,好的思想由于理论的匮乏,无法理解,也不能使用,在以后的学习过程中理论的学习始终是重点;

还有就是程序的问题,由于编程水平跟不上,加上思路也不清晰,导致程序的编写存在很大的问题,好的思想,无法在程序中展现出来,这也是以后需要加强的地方。

参考文献

1.高吉祥,黄智伟,丁文霞.数字电子技术[M].北京:

电子工业出版社,2003年,第1版

2.邹其洪黄智伟高嵩.电工电子实验与计算机仿真[M].北京:

3.张友汉.电子线路设计应用手册[M].福建:

福建科学技术出版社.2000.7第一版.

4.黄智伟.电子电路计算机仿真设计[M].北京:

电子工业出版社,2004年第1版

附录

附录1:

主要元器件清单

at89c52单片机

1

12M晶振

2

11.0592M晶振

22pf瓷片电容

5

4.7k电阻

2.5k电阻

200电阻

10k电阻

500k电阻

3.3k电阻

AD转换器adc0832

mps8098三极管

继电器G2RL-1AB-DC5

蓝白电位器10k

排针

8脚排座

40脚排座

蜂鸣器

1n4148二极管

2n2222三极管

3

发光二极管

附录2:

程序清单

#include<

reg52.h>

#include<

intrins.h>

#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>

j--);

}

ucharADC0832(ucharCH)

{

uchari,dis0,dis1,date;

Clk=0;

//拉低时钟

DI=1;

//初始化

delay

(1);

CS=0;

//芯片选定

Clk=1;

//拉高时钟

if(CH==0)//通道选择

{

//第一次拉低时钟

//通道0的第一位

//第二次拉低时钟,ADC0832DI接受数据

DI=0;

//通道0的第二位

}

else

//通道1的第一位

//通道1的第二位

//第三次拉低时钟,此前DI两次赋值决定通道

//DI开始失效,拉高电平,便于DO数据传输

for(i=0;

i<

8;

i++)//读取前8位的值

dis0<

<

=1;

if(DO)

dis0|=0x01;

dis0|=0x00;

for(i=0;

i++)//读取后8位的值

dis1>

>

dis1|=0x80;

else

dis1|=0x00;

if(dis0==dis1)//两次结束数据比较,若相等

date=dis0;

//则赋值给dat

CS=1;

//释放ADC0832

//拉高输出端,方便下次通道选择DI端有效

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;

en=0;

voidwritedat(uchardate)

{rs=1;

P3=date;

}

voidinit()

writecom(0x38);

writecom(0x0c);

writecom(0x06);

writecom(0x01);

voiddisplay(longx)

{intj,wei=12;

for(j=0;

j<

18;

j++)//qinhkongxianshi

{writecom(0xc0+14-j);

writedat(32);

{if((j%3==0)&

&

(j>

0))

{writecom(0xc0+wei-j);

writedat(44);

wei--;

}

writecom(0xc0+wei-j);

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;

returndatch(ADC0832(0),10000);

longJ3(void)

j3=1;

returndatch(ADC0832(0),500000);

voidmain()

intj;

longx,s=1;

led=1;

beep=0;

init();

j1=1;

for(x=0;

x<

11;

x++)

writedat(table1[x]);

writecom(0x40);

writedat(table[x]);

writecom(0xc0+15);

writedat(0x00);

while

(1)

{

if(j1==1)

s=J1();

if(s>

=1900)

s=J2();

=100000)

s=J3();

elseif(j2==1)

{

if(s<

=1900)s=J1();

elseif(s>

=100000)s=J3();

elseif(j3==1)

{

s=J3();

if((s<

=100000)&

(s>

1900))s=J2();

if(s<

}

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:

实物图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2