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

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

废话不多说,先上实物图

注意,做实物没找到开关,用的是跳线冒,当未接跳线时,显示上面最后一张截图待测状态,跳线接好后,将显示对应的测量值。
在这里插入图片描述
单片机电容电阻测量仪仿真原理图截图如下:
在这里插入图片描述
细节1截图在这里插入图片描述
细节2截图
在这里插入图片描述
设计主旨:主要原理是利用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;
}
}

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

最后,附上 程序源代码和 上位机程序文件,需要请自行下载,下载地址
链接:https://pan.baidu.com/s/1ZjL-h0QGXNCn3l9nxkdkjQ&shfl=sharepset 密码:gima

谢谢!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章