电阻参数单片机测试系统的设计文档格式.docx

上传人:b****2 文档编号:4522684 上传时间:2023-05-03 格式:DOCX 页数:15 大小:93.95KB
下载 相关 举报
电阻参数单片机测试系统的设计文档格式.docx_第1页
第1页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第2页
第2页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第3页
第3页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第4页
第4页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第5页
第5页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第6页
第6页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第7页
第7页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第8页
第8页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第9页
第9页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第10页
第10页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第11页
第11页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第12页
第12页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第13页
第13页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第14页
第14页 / 共15页
电阻参数单片机测试系统的设计文档格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电阻参数单片机测试系统的设计文档格式.docx

《电阻参数单片机测试系统的设计文档格式.docx》由会员分享,可在线阅读,更多相关《电阻参数单片机测试系统的设计文档格式.docx(15页珍藏版)》请在冰点文库上搜索。

电阻参数单片机测试系统的设计文档格式.docx

前者电路简单,速度快,但精度低;

后者测量精度高,但速度慢。

随着数字化测量技术的发展,在测量速度和精度上有很大的改善,电容的数字化测量常采用恒流法和比较法。

纵览目前国内外的LRC测试仪,硬件电路往往比较复杂,体积比较庞大,不便携带,而且价格比较昂贵。

例如传统的用阻抗法、Q表、电桥平衡法等测试LRC的过程中不够智能而且体积笨重,价格昂贵,需要外围环境优越,测试操作过程中需要调很多参数,对初学者来说很不方便,当今社会,对LRC的测试虽然已经很成熟了,但是价格和操作简单特别是智能方面有待发展,价格便宜和操作简单、智能化的仪表开发和应用存在巨大的发展空间,本系统正是应社会发展的要求,研制出一种价格便宜和操作简单、自动转换量程、体积更小、功能强大、便于携带的LRC测试仪,充分利用现代单片机技术,研究了基于单片机的智能LRC测试仪,人机界面友好、操作方便的智能LRC测试仪,具有十分重要的意义。

2.方案设计

本设计是以将被测参数模拟转化为频率,并利用单片机实现计算频率,所以,本次设计需要做好以下工作:

(1)学习单片机原理等资料。

(2)学习PROTEUS等工具软件的使用方法。

(3)设计测量电阻的电路。

(4)设计测量LCD动态显示电路。

(5)设计测量频率程序,设置程序。

(6)调试,并进行实际测试,记录测试数据和结果。

2.2设计方案

2.1电阻的系统设计方案比较

(1)电阻测试方案

通过测量输出振荡频率的大小即可求得电阻的大小,如果固定电阻值,该方案硬件电路实现简单,通过选择合适阻值即可获得适当的频率范围,再交由单片机处理。

(2)总体思路

本设计是基于单片机80C51智能处理,根据单片机的外接按键控制测量电路的选择,通过555定时器构成的多谐振荡器产生的一定频率的波。

再通过单片机的I/O口对高低电平的捕获读出频率,再通过程序算法处理换算成电阻电容的值,然后再通过单片机送给液晶显示。

RC简易测量仪设计的关键问题是:

如何完成RC的测量。

RC简易测量仪设计的核心问题是:

如何产生转化电路输出频率。

(3)系统总体框图

1)控制部分:

本设计以单片机为核心,采用51单片机,利用其管脚的特殊功能以及所

具备的中断系统,定时/计数器和LCD显示功能等。

LCD灯:

本设计中,设置了1盏,电源指示灯,采用LCD以共阳极方式来连接,直观易懂,操作也简单。

数码管显示本设计中有1个74HC02、2个74LS573、1个2803驱动和6个数码管,采用共阳极方式连接构成动态显示部分,降低功耗。

2)通道选择:

本设计通过单片机控制CD4052模拟开关来控制被测频率的自动选择。

3)测量电路:

电路实现被测电阻变化。

通过51单片机的IO口自动识别量程切换,实现自动测量。

3.硬件设计

3.1单片机最小系统

内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序。

本电路使用单片机内部振荡器,11.0592MHz的晶体谐振器直接接在单片机的时钟端口X1和X2,电路中C2、C3为振荡器的匹配电容。

该电路简单,工作可靠。

另外本系统的容阻上电复位,就是

利用RC电路的充电过程来给单片机复位。

RC电路的时间常数计算公式:

T=RC即:

T=RC=10u*10k=100ms。

当需要复位时,也可以按下复位按键,进行复位。

3.2显示驱动部分

在本设计中,考虑到单片机构成的应用系统有较大的可靠性,容易构成各种规模的应用系统,且应用系统有较高的软、硬件利用系数。

还具有可编程性,硬件的功能描述可完全在软件上实现。

另外,本设计还需要利用单片机的定时计数器、中断系统、串行接口等等,所以,选择以单片机为核心进行设计具有极大的必要性。

在硬件设计中,选用MS-51系列单片机,其各个I/O口分别接有按键、LCD灯、七位数码管等,通过软件进行控制。

MCS-51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元,以及数据总线、地址总线和控制总线等三大总线,现在分别加以说明:

1)中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

2)数据存储器(RAM):

内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

3)程序存储器(ROM):

共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

4)定时/计数器(ROM):

有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

5)并行输入输出(I/O)口:

共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

6)全双工串行口:

内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

7)中断系统:

具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串口中断,可满足不同的控制要求,并具有2级的优先级别选择。

4软件设计

4.1软件流程

在本设计的模块中,模块是以单片机为核心,再通过按键控制测量的被测参数在数码管显示,按键主流程图如下显示

5.实验结果与讨论

5.1实验仿真

源程序

#include<

reg52.h>

intrins.h>

#defineDATAP0

#defineucharunsignedchar

#defineuintunsignedint

sbitadcs=P2^3;

//可以硬件直接接地

sbitadrd=P2^5;

sbitadwr=P2^4;

sbitRS=P2^0;

//1602写地址

sbitRW=P2^1;

//1602写数据

sbitEN=P2^2;

//1602工作使能

sbitc_test=P3^6;

//开始测量电阻的按键输入

sbit_reset=P3^5;

//555时基芯片工作控制信

uintT_flag,N,D,C,i,Dis1,Dis0;

ucharget_ad();

uintA,F,H,A1,A2;

uintr[]={'

R'

'

='

0'

.'

K'

0Xf4};

//显示R=00.0KΩ

uintData1;

/***********延时1MS******************/

voidDelay1ms(uintmm)

{uinti;

for(;

mm>

0;

mm--)

for(i=0;

i<

100;

i++);

}

voiddelay(uintz)//延时程序

{

uintx,y;

for(x=z;

x>

x--)

for(y=110;

y>

y--);

/***************检查忙否*****************/

voidCheckstates()

uchardat;

RS=0;

RW=1;

do{EN=1;

//下降沿

_nop_();

//保持一定间隔

dat=DATA;

EN=0;

}while((dat&

0x80)==1);

/**************LCD写命令函数*********/

voidwcomd(ucharcmd)

Checkstates();

RW=0;

DATA=cmd;

EN=1;

/**********LCD写数据函数**************/

voidwdata(uchardat)

RS=1;

DATA=dat;

/*****************初始化********************/

voidLCDINIT()

Delay1ms(15);

wcomd(0x38);

//功能设置

Delay1ms(5);

wcomd(0x01);

//清屏

wcomd(0x08);

//关显示

wcomd(0x0c);

//开显示,不开光标

/***********显示函数**************/

voidDisplay1()//显示函数显示电阻

uchari,j;

uchara[12]={0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,

0X54,0X53};

for(i=0;

12;

i++)//写显示第一行

{wcomd(0x80+i);

Delay1ms

(1);

wdata(a[i]);

}

for(j=0;

j<

9;

j++)//写显示第二行

{

wcomd(0xc0+j);

wdata(r[j]);

Delay1ms(1000);

ucharget_ad()//adc0804操作

uchartemp;

adcs=1;

adwr=1;

delay

(1);

adcs=0;

adwr=0;

P1=0xff;

adrd=1;

delay(20);

adrd=0;

temp=P1;

returntemp;

}

voidmain()

IE=0x81;

//打开全外部中断允许

TMOD=0x09;

//T0方式1

IT0=1;

//设置外部中断的触发的方式为脉冲触发

TH0=0x00;

TL0=0x00;

T_flag=0;

LCDINIT();

while

(1)

if(!

c_test==1)

Display1();

Data1=get_ad();

A=100*Data1;

H=A/(256-Data1);

A1=H/10;

A2=H%10;

wcomd(0x80+0x43);

wdata(0x30+A1);

wcomd(0x80+0x45);

wdata(0x30+A2);

voidint0(void)interrupt0//第一次中断开始计数,第二个中断停止计数

T_flag=!

T_flag;

if(T_flag==1)

TR0=1;

//开始计时

}

if(T_flag==0)

TR0=0;

//停止计时

EX0=0;

//关闭中断

N=TH0*256+TL0;

//计算计数器的值

N=N*5/3;

TH0=0x00;

//恢复初值

TL0=0x00;

7参考文献

[1]彭伟.单片机C语言程序设计实训100例.电子工业出版社.

[2]周景润张丽娜.Proteus入门实用教

[3]电子技术基础(模拟部分)康华光高等教育出版社

[4]数字电路基础崔建宗北京航空航天大学出版社

[5]电路邱关源高等教育出版社

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

当前位置:首页 > 解决方案 > 学习计划

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

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