电阻电容测试仪结题报告表文档格式.docx
《电阻电容测试仪结题报告表文档格式.docx》由会员分享,可在线阅读,更多相关《电阻电容测试仪结题报告表文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
并通过STC89C51单片机进行频率测量和计算以及对系统的控制,实现对电阻、电容的测试并在LCD1602上显示其测试结果。
1.3项目进展情况:
1.3.1资料收集
通过在图书馆的查询和网上浏览,我们找到了有关单片机的书籍《MCS_51单片机原理及应用》,《51单片机系统开发与实践》和《单片机微型计算机原理、借口及应用》;
同时通过电子实验的课题学习,我们掌握了555多谐振荡器的功能。
1.3.2硬件资源规划和购买
根据设计所需,资金问题及市场上资源购买可行性的综合考虑,我们把将要购买的物品选定为51单片机,555芯片,显示屏,电阻电容若干等等。
1.3.3硬件设计及仿真
1.3.3.1电阻测量
本设计采用555多谐振荡器的振荡频率由构成它的电容电阻确定的原理,确定其中电容的值,并由单片机识别振荡频率的方法,求出未知电阻。
电容C1的充电所需的时间,即脉冲维持时间:
(2-1)
放电所用时间,即脉冲低电平时间:
(2-2)
所以由公式(2-1)和(2-2)可得脉冲周期时间为:
(2-3)
根据公式(2-3)可得输出脉冲频率为:
(2-4)
则,第一个量程100
≤Rx≤10000
:
R1=330
C1=4.7uF,如图2-1所示:
图2-1电阻小量程测试
第二个量程10000
≤Rx≤10M
R1=18K
,C1=1nF,如图2-2所示:
图2-2电阻大量程测量
1.3.3.2电容测量
知其振荡周期为:
(2-5)
得出:
(2-6)
即:
(2-7)
为使频率在单片机高精度测量范围内,我们同样设计了两路电路,取值分别为
第一量程:
选取:
;
如图2-3所示。
图2-3电容小量程测量实现图
第二量程:
如图2-4所示。
图2-4电容大量程测量实现图
1.3.3.3控制模块及显示模块设计
图2-51602与单片机接口的连接图
本设计使用的1602液晶为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。
1602与单片机接口的连接图如图2-5所示。
单片机引脚说明(如图2-6所示):
图2-6单片机引脚说明图
1602接口说明:
(如表2-1所示)
表2-11602液晶模块接口说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据口
2
VDD
电源正极
D3
3
VQ
液晶显示对比度调节
11
D4
4
RS
数据/命令选择端(H/L)
12
D5
5
R/W
读写选择端(H/L)
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光灯电源正极
8
D1
16
BLK
背光灯电源负极
1602写操作时序图:
(如图2-7所示)
图2-71602写操作时序图
1602读操作时序图:
(如图2-8所示)
图2-81602读操作时序图
1.3.4软件程序设计(如表2-9所示)
图2-9
针对51单片机控制部分所编写的程序见附录。
1.3.5实物焊接
一,整理元件清单如图2-10所示:
图2-10元件清单
二,焊接硬件电路部分如图2-11所示:
图2-11硬件电路焊接部分
目前由于无法完成对针对51单片机程序的烧写,故电路的软件部分尚无法完成,无法调试。
2.项目中采取的主要技术手段和方法,取得的重要成果
2.1主要技术及方法
主要技术:
本项目实验过程中主要用到的技术有:
multisim的电路设计与仿真技术,电路焊接技术与51单片机开发技术。
主要方法:
利用RC和555定时器组成的多谐振荡电路,通过测量输出振荡频率的大小即可求得电阻、电容的大小,如果固定电路参数值,该方案硬件电路实现简单,能测出较宽的量程范围,能够较好满足题目的要求。
我们把电子元件的集中参数R、C转换成频率信号f,然后用单片机计数后在运算求出R、C的值,并送显示,转换的原理分别是RC振荡。
其实,这种转换就是把模拟量进拟地转化为数字量,频率f是单片机很容易处理的数字量,这种数字化处理一方面便于使仪表实现智能化,另一方面也避免了由指针读数引起的误差。
2.2取得成果
本次项目所取得的成果有:
一、顺利完成电路的设计和仿真,并在电路板上实现;
二、通过对电路的总体统筹,将51单片机的程序编写完成。
2.3硬件实物照片:
(如图2-12和2-13所示)
图2-12实物正面图
图2-13实物反面图
3.项目组成员各自的工作和贡献
3.1项目前期
刘佳妮:
在图书馆查询相关书籍如:
《MCS_51单片机原理及应用》,《51单片机系统开发与实践》和《单片机微型计算机原理、借口及应用》;
李金蓉:
通过上网查询相关技术及原理
3.2项目中期
主要负责方案的电路设计及仿真、报告的编写
拟出项目所需元器件、报告的修改
3.3项目后期
负责元器件的购买、元器件焊接、程序编写、程序的调试、报告的编写
元器件组装、程序调试、报告完善
4.工作总结
通过本次项目实践,对测量电阻、电容电路的设计、仿真、电路实现等过程,进一步巩固了对multisim的熟练使用,了解了电路排版,焊接的一些注意事项,并学习单片机的有关内容以及单片机的C语言开发实现等等,但是项目的进行仍然遇到一些问题和困难,致使最后项目的预期成果没有完成。
附录:
//初始化
#include<
reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
#defineulongunsignedlong
#definePI3.1415926
ucharcodetable1[8]="
Welcome!
"
;
uchartable2[16]="
f(Hz)="
uchartable3[16]="
R(Ohm)="
uchartable4[16]="
C(pF)="
ucharnum,a=0,th0,tl0;
uintC;
ulongf,R;
sbitlcden=P2^4;
//液晶使能端
sbitlcdrs=P2^5;
//液晶数据命令选择端
sbitkey_Rl=P1^0;
//测量电阻小量程按键
sbitkey_Rb=P1^1;
//测量电阻大量程按键
sbitkey_Cl=P1^2;
//测量电容小量程按键
sbitkey_Cb=P1^3;
//测量电容大量程按键
sbitRl_out=P1^4;
//测量电阻小量程信号输入
sbitRb_out=P1^5;
//测量电阻大量程信号输入
sbitCl_out=P1^6;
//测量电容小量程信号输入
sbitCb_out=P1^7;
//测量电容大量程信号输入
//声明子函数
voiddelayms(uintxms);
//延时函数
voidwrite_com(ucharcom);
//液晶写命令函数
voidwrite_data(uchardate);
//液晶写数据函数
voidled_init();
//液晶初始化函数
voidt_init();
//定时器0初始化函数
voidkeyscan();
//键盘检测函数(确定被测元件为电阻、电容或电感)
voiddisplay_f(ulongf);
//频率显示函数
voiddisplay_R(ulongR);
//电阻显示函数
voiddisplay_C(uintC);
//电容显示函数
voiddisplay_L(uintL);
//电感显示函数
//主函数
voidmain()
{
led_init();
t_init();
keyscan();
write_com(0x01);
while
(1)
{
display_f(f);
switch(a)
case1:
R=(ulong)(5000000.0/0.6931472/f-150+0.5);
display_R(R);
break;
case2:
R=(ulong)(5000000.0/0.6931472/f-150+0.5);
case3:
C=(int)(100000000.0/153/0.6931472/f+0.5);
display_C(C);
case4:
}
}
}
//中断函数
voidT0_count()interrupt1
while(Rl_out);
while(!
Rl_out);
TH0=0;
TL0=0;
while(Rl_out);
while(!
th0=TH0;
tl0=TL0;
TR0=0;
break;
while(Rb_out);
Rb_out);
while(Rb_out);
Rb_out);
while(Cl_out);
Cl_out);
while(Cl_out);
case4:
while(Cb_out);
Cb_out);
while(Cb_out);
f=1000000.0/1.085069/(th0*256+tl0)+0.5;
//延时函数
voiddelayms(uintxms)
uinti,j;
for(i=xms;
i>
0;
i--)
for(j=110;
j>
j--);
//液晶写命令函数
voidwrite_com(ucharcom)
lcdrs=0;
P0=com;
delayms(5);
lcden=1;
lcden=0;
//液晶写数据函数
voidwrite_data(uchardate)
lcdrs=1;
P0=date;
//液晶初始化函数
voidled_init()
write_com(0x38);
//设置16×
2显示,5×
7点阵,8位数据接口
write_com(0x0c);
//设置开显示,不显示光标
write_com(0x06);
//写一个字符后地址指针加1
//显示清0,数据指针清0
write_com(0x80);
//显示欢迎界面
for(num=0;
num<
8;
num++)
write_data(table1[num]);
//定时器0初始化函数
voidt_init()
TMOD=0x01;
//设置定时器0工作方式1(M1M0=0x0001)
TH0=0;
//装初值
TL0=0;
EA=1;
//开总中断
ET0=1;
//开定时器0中断
TR0=1;
//启动定时器0
//键盘检测函数(确定被测元件为电阻、电容或电感)
voidkeyscan()
if(key_Rl==0)
delayms(10);
a=1;
else
if(key_Rb==0)
a=2;
else
if(key_Cl==0)
a=3;
if(key_Cb==0)
a=4;
while(key_R&
&
key_C&
key_L);
//按键按下时退出死循环
//频率显示函数
voiddisplay_f(ulongf)
ucharcount=0;
ulongf0;
f0=f;
while(f)
f=f/10;
count++;
for(num=5+count;
num>
5;
num--)
table2[num]=f0%10+48;
f0=f0/10;
6+count;
num++)
write_data(table2[num]);
//电阻显示函数
voiddisplay_R(ulongR)
ulongR0;
R0=R;
while(R)
R=R/10;
for(num=6+count;
6;
table3[num]=R0%10+48;
R0=R0/10;
write_com(0x80+0x40);
7+count;
write_data(table3[num]);
//电容显示函数
voiddisplay_C(uintC)
uintC0;
C0=C;
while(C)
C=C/10;
table4[num]=C0%10+48;
C0=C0/10;
write_data(table4[num]);
以下内容由专家组填写
评审情况
综合评定:
组长签名
年月日
成
绩
姓名:
说明:
1、本表由学生、验收专家如实填写;
2、学院教务科汇总后,与有关论文、成果实物及其证明材料等一起备案。
3、专家组以答辩会的形式,根据项目组提交的报告及成果实物对项目进行评审