创意小发明:单片机制作电容电阻测量仪 (含C语言原源码,仿真文件与实物图)

应一个读者的要求,用单片机单片机制作电容电阻测量仪
课题
电路元件参数RC测量电路的设计
设计要求:
测量仪的工作原理为:利用振荡电路,将电阻、电容的测量转变为与之成一定函数关系频率的测量,再利用单片机对不同频率进行测量和处理,用数码管显示被测量的大小,可以利用按键对被测量类型进行选择。
测量电阻范围为:≤1MΩ。
测量电容范围为:≤10000pF。
测量精度〈±5%。

废话不多说,先上实物图

注意,做实物没找到开关,用的是跳线冒,当未接跳线时,显示上面最后一张截图待测状态,跳线接好后,将显示对应的测量值。
创意小发明:单片机制作电容电阻测量仪 (含C语言原源码,仿真文件与实物图)
单片机电容电阻测量仪仿真原理图截图如下:
创意小发明:单片机制作电容电阻测量仪 (含C语言原源码,仿真文件与实物图)
细节1截图创意小发明:单片机制作电容电阻测量仪 (含C语言原源码,仿真文件与实物图)
细节2截图
创意小发明:单片机制作电容电阻测量仪 (含C语言原源码,仿真文件与实物图)
设计主旨:主要原理是利用555定时器的振荡频率受外围电阻电容的影响来测量的,
以下是部分单片机C语言参考代码:

void measure(void)
{
IE=0x8a;
EA=1;
ET1=1;
ET0=1;
TMOD=0x51;
TH0=H_0;
TL0=L_0;
TH1=0;
TL1=0;

TR0=1;
// while(fw1);//测得引脚P3^5为高电平
TR1=1; //timer1 开始计数
// while(fw
0); //测得引脚P3^5为低电平
// TR1=0;
//timer1 停止计数
// DL=TL1; //读当前计数值
// DH=TH1;
/// freq=DPTR;
// TH1=100;
// TL1=100;
// uu=DH256+DPL+inte65536; //计算总计数值
// inte=0; //清累计溢出计数
// tt=uu/(12*1000000.0/12.0); //求振荡周期
// ff=(unsigned long int)(1.0/tt); //频率值 求震荡频率
}

void yunsuan (void)
{
float tt=0;
// DPH=11;
// DPL=12;
uu=DH256+DL+inte65536; //计算总计数值
inte=0; //清累计溢出计数
tt=uu/(12*1000000.0/12.0); //求振荡周期
ff=(unsigned long int)(1.0/tt); //频率值 求震荡频率
}
void judgekey1()
{
long int R=0;

// R=(dat1000)/(255-dat);
R=10
dat-130;
display®;
LED=~LED;
}

void judgekey2()
{
long int C=0;
if(scd0)
{
// C=3193333.0/freq;
C=((9.4*ff)-200)*0.8;
display1©;
LED=~LED;
}
else if (scg
0)
{
// C=3193333.0/ff;
C=(9.4*ff)-200;
display1©;
LED=~LED;
}
}

鉴于篇幅限制,只能写部分代码

最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,
如果需要 程序完整源代码和 设计文件,请在下方留言或者私信我,看到后会第一时间回复。

谢谢!