创意小发明:单片机制作电容电阻测量仪 (含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;
}
}

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

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

谢谢!

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值