标题: 单片机电容电阻测量仪制作资料(含源码,仿真与实物图) [打印本页]

作者: quan826987826    时间: 2018-1-5 17:23
标题: 单片机电容电阻测量仪制作资料(含源码,仿真与实物图)
电路元件参数RC测量电路的设计
要求:
测量仪的工作原理为:利用振荡电路,将电阻、电容的测量转变为与之成一定函数关系频率的测量,再利用单片机对不同频率进行测量和处理,用数码管显示被测量的大小,可以利用按键对被测量类型进行选择。
测量电阻范围为:1MΩ。
测量电容范围为:≤10000pF
测量精度〈±5%。


单片机电容电阻测量仪仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
整体截图:



局部截图:







主要原理是利用555定时器的振荡频率受外围电阻电容的影响来测量的,以下是部分主要单片机代码:

  1. void measure(void)
  2. {        
  3.         IE=0x8a;  
  4.         EA=1;
  5.         ET1=1;
  6.         ET0=1;
  7.         TMOD=0x51;
  8.         TH0=H_0;
  9.         TL0=L_0;
  10.         TH1=0;
  11.         TL1=0;

  12.         TR0=1;
  13. //        while(fw==1);                                          //测得引脚P3^5为高电平
  14.     TR1=1;                                                          //timer1 开始计数
  15. //  while(fw==0);                                        //测得引脚P3^5为低电平
  16. //  TR1=0;
  17.                                                                 //timer1 停止计数
  18. //  DL=TL1;                                                        //读当前计数值
  19. //  DH=TH1;
  20. ///        freq=DPTR;
  21. //        TH1=100;
  22. //        TL1=100;
  23. //  uu=DH*256+DPL+inte*65536;                        //计算总计数值  
  24. //  inte=0;                                                        //清累计溢出计数
  25. //  tt=uu/(12*1000000.0/12.0);                //求振荡周期
  26. //  ff=(unsigned long int)(1.0/tt);         //频率值       求震荡频率
  27. }

  28. void yunsuan (void)
  29. {
  30.         float tt=0;  
  31. //        DPH=11;
  32. //        DPL=12;
  33.         uu=DH*256+DL+inte*65536;                        //计算总计数值  
  34.         inte=0;                                                        //清累计溢出计数
  35.         tt=uu/(12*1000000.0/12.0);                //求振荡周期
  36.         ff=(unsigned long int)(1.0/tt);         //频率值       求震荡频率                        
  37. }
  38. void judgekey1()
  39. {   
  40.     long int R=0;


  41. //  R=(dat*1000)/(255-dat);
  42.         R=10*dat-130;
  43.         display(R);
  44.         LED=~LED;
  45. }

  46. void judgekey2()
  47. {   
  48.     long int C=0;
  49.         if(scd==0)
  50.         {                  
  51. //      C=3193333.0/freq;
  52.                 C=((9.4*ff)-200)*0.8;
  53.                 display1(C);
  54.                 LED=~LED;            
  55.         }
  56.         else if (scg==0)
  57.         {  
  58. //                C=3193333.0/ff;
  59.                 C=(9.4*ff)-200;
  60.                 display1(C);
  61.                 LED=~LED;
  62.         }                 
  63. }
复制代码


其他部分(proteus仿真和完整的0error 0warning程序见附录)

注意,本人做实物没找到开关,用的是跳线冒,当未接跳线时,显示上面最后一张截图,跳线接好后,将显示对应的测量值。
下面,贴一张本人的实物照片。


【图片说明:待测电容为瓷片电容,标称值为102即1000pF】



全部资料51hei下载地址:
测量电容电阻.rar (122.3 KB, 下载次数: 409)



作者: 阿尔而454    时间: 2018-6-29 11:55
只能测2420K
作者: 阿尔而454    时间: 2018-6-29 11:56
为什么只能测2420k的电阻呢 需要改哪里?
作者: wc666666    时间: 2018-11-17 21:56
阿尔而454 发表于 2018-6-29 11:56
为什么只能测2420k的电阻呢 需要改哪里?

需要加ADC0832
作者: wc666666    时间: 2018-11-17 21:58
电容测量完全不在精度范围内,应该是完全错误的,电阻测量根本就不是这个电路
作者: haaha    时间: 2018-12-21 14:29
wc666666 发表于 2018-11-17 21:56
需要加ADC0832

但是他的电路图里就没加8032啊
作者: l884859265    时间: 2019-3-19 14:26
哇谢谢大佬分享
作者: l884859265    时间: 2019-3-19 14:27
哇,感谢,我先参考参考
作者: jiangxiaoling    时间: 2019-5-16 16:11
我也想做这个东西,正在找资料
作者: 尽铅华    时间: 2019-8-7 11:37
有没有详细点的原理介绍
作者: 三sansan    时间: 2019-8-7 19:09
可以可以,学习一波

作者: guo1234567899    时间: 2019-8-7 20:37
想要呢
作者: 迁就    时间: 2019-8-8 19:19
谢谢分享
作者: 芒芒芒果    时间: 2020-3-28 10:09
大佬能帮忙指导一个测电容电阻的设计吗
作者: zhou689231    时间: 2020-4-10 13:35
真的太棒了!正好用上了!
作者: AkK0    时间: 2020-6-5 16:18
为什么仿真不能用protues打开啊
作者: wengjiamin    时间: 2021-1-8 21:36
不同版本的PROTEUS仿真不兼容

作者: quan826987826    时间: 2021-12-25 11:36
AkK0 发表于 2020-6-5 16:18
为什么仿真不能用protues打开啊

不同版本的protues可能有兼容性问题。换个版本的打开试试。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1