设为首页 收藏本站
开启辅助访问 切换到宽版

  找回密码
  立即注册

QQ登录

只需一步,快速开始

快捷导航
  • 论坛
  • 问答区
  • 单片机教程
  • 单片机DIY
  • 电子DIY
  • 帮助

热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计

搜索
» 论坛 嵌入式/单片机论坛 51单片机 51单片机制作的电容测量仪Proteus仿真程序(可测uf和nf级 ...
返回列表 发新帖
查看: 3380|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机制作的电容测量仪Proteus仿真程序(可测uf和nf级别)

[复制链接]
跳转到指定楼层
楼主
ID:892621 发表于 2021-11-9 17:40 | 只看该作者 | 只看大图 回帖奖励 | 倒序浏览 | 阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include <reg51.h>

  2. sbit nF_check = P1^0;         //测量电容(nF)                                 
  3. sbit uF_check = P1^1;         //测量电容(uF)
  4. sbit stop = P1^2;                 //停止测量按钮
  5. sbit P20 = P2^0;                 //百位控制
  6. sbit P21 = P2^1;                 //十位控制
  7. sbit P22 = P2^2;                 //个位及小数点控制
  8. sbit P23 = P2^3;                 //十分位控制
  9. sbit P24 = P2^4;                 //“n”或“u”显示控制
  10. sbit P25 = P2^5;                 //“F”显示控制
  11. sbit P26 = P2^6;                 //
  12. sbit P27 = P2^7;                 //
  13. sbit P30 = P3^0;                 //电阻电容测量继电器
  14. sbit P31 = P3^1;                 //
  15. sbit P32 = P3^2;                 //计时停止请求(中断0)
  16. sbit P33 = P3^3;                 //计时开始请求(中断1)及测量开始开关
  17. sbit P34 = P3^4;
  18. sbit P35 = P3^5;
  19. sbit P36 = P3^6;
  20. sbit P37 = P3^7;

  21. char code word[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
  22.                     0x7F,0x6F,0x37,0x3E,0x71,0x80};     
  23.                                         //'0'~'9'和n、u、F及小数点.等字形码
  24. long int N=0;                //计数变量

  25. /********************************************************************
  26. 函数功能:延时函数
  27. 入口参数: us
  28. 出口参数:
  29. ********************************************************************/
  30. void delay(us)
  31. {
  32.    while(us--);
  33. }

  34. /********************************************************************
  35. 函数功能:中断初始化
  36. 入口参数:
  37. 出口参数:
  38. ********************************************************************/
  39. void INT0_init()
  40. {
  41.    IE = 0x87;  //打开总中断及外部中断0、1,定时器中断0
  42.    IT0 = 1;    //下降沿触发
  43.    IT1 = 1;
  44. }

  45. /********************************************************************
  46. 函数功能:外部中断0处理
  47. 入口参数:
  48. 出口参数:
  49. ********************************************************************/
  50. void INT0_pro(void) interrupt 0    //外部中断0
  51. {
  52.   TR0 = 0;                               //T0停止计时
  53. }

  54. /********************************************************************
  55. 函数功能:外部中断1处理
  56. 入口参数:
  57. 出口参数:
  58. ********************************************************************/
  59. void INT1_pro(void) interrupt 2    //外部中断1
  60. {
  61.     TR0 = 1;                           //T0开始计时
  62. }
  63. /********************************************************************
  64. 函数功能:定时器0初始化
  65. 入口参数:
  66. 出口参数:
  67. ********************************************************************/
  68. void Timer_init() {
  69.         
  70.         TMOD = 0x02;            //定时器0工作于方式2(8位自动重装定时器)
  71.         TH0  = 256-100;            //定时器0设定时间为100us(假设晶振为12MHz,
  72.         TL0  = 256-100;     //则时钟周期为1/12us,机器周期为1us),频率为10kHz。  
  73. }

  74. /********************************************************************
  75. 函数功能:定时器0中断处理(时基)
  76. 入口参数:
  77. 出口参数:
  78. ********************************************************************/
  79. void _Timer_clock(void) interrupt 1   //定时器0(溢出)中断,中断1
  80. {
  81.     N++;
  82. }

  83. /********************************************************************
  84. 函数功能:数据显示函数
  85. 入口参数:  CV
  86. 出口参数:
  87. ********************************************************************/
  88. void CV_disp(long int CV)
  89. {

  90. //数码管位选方式--灌电流//
  91.         P2=0xff;         
  92.                 P0=word[CV/1000];         P20=0; delay(60);          //千位
  93.                 P2=0xff;         
  94.                 P0=word[(CV/100)%10];     P21=0; delay(60);          //百位
  95.         P2=0xff;     
  96.                 P0=word[(CV/10)%10];      P22=0; delay(60);          //十位
  97.         P2=0xff;        
  98.                 P0=word[CV%10];           P23=0; delay(60);          //个位
  99.                            
  100. }

  101. /********************************************************************
  102. 函数功能:主函数
  103. 入口参数:
  104. 出口参数:
  105. ********************************************************************/
  106. void main()
  107. {
  108.    long int C=0;
  109.    INT0_init();
  110.    Timer_init();
  111.    while(1){
  112.          
  113. //数码管位选方式--灌电流//
  114.      while(!nF_check) {                                 //测量电容(nF)
  115.                  P30=1;
  116.                  if(TR0 && !P33) C=N*610/1000;//取R=10M,C为nF级,则时间常数t=RC=(10*10^6)*(C*10^-9)=C*10^-2;
  117.                                               //若在t期间对已知脉冲进行计数,且选脉冲频率f=10k=10^4,
  118.                  else N=0;                                          //则计数值N=f*t=100C(nF),所以C=N/100。
  119.                                               //C=N*610/1000是算法修正
  120.                  P2=0xff;
  121.                  P0=word[10];        P24=0;  delay(60);             //第5位显示n
  122.                  P2=0xff;
  123.                  P0=word[12];                 P25=0;         delay(60);             //第6位显示F
  124.                  P2=0xff;
  125.                  P0=word[13];                 P22=0;         delay(60);             //第3位显示小数点
  126.                  CV_disp(C);                                                                 //显示测量值
  127.                  if(!stop) TR0=0;
  128.           }        
  129.         
  130.           while(!uF_check) {                        //测量电容(uF)        
  131.                  P30=0;                                                
  132.          if(TR0 && !P33) C=N*160/10000;//取R=100k,C为uF级,则时间常数t=RC=(100*10^3)*(C*10^-6)=C*10^-1;
  133.                                                //若在t期间对已知脉冲进行计数,且选脉冲频率f=10k=10^4,
  134.                  else N=0;                                       //则计数值N=f*t=1000C(uF),于是应有C=N/1000。
  135.                                                //C=N*160/10000是为消除误差所进行的补偿运算
  136.          P2=0xff;
  137.                  P0=word[11];        P24=0;  delay(60);             //第5位显示u
  138.                  P2=0xff;
  139.                  P0=word[12];                 P25=0;         delay(60);             //第6位显示F
  140.                  P2=0xff;
  141.                  P0=word[13];                 P22=0;         delay(60);             //第3位显示小数点
  142.                  CV_disp(C);                                                                 //显示测量值
  143.                  if(!stop) TR0=0;
  144.           }        
  145.         }   
  146. }
复制代码

所有资料51hei附件下载:
电容测量.7z (113.41 KB, 下载次数: 93)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:986271 发表于 2021-11-30 10:29 | 只看该作者
你这个仿真的设计思路和方案能简单的说下吗
回复

使用道具 举报

返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版| 小黑屋| 51黑电子论坛 | 51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表

天下网标王焦作网站优化地址越秀网站推广优化价格网站优化工网站外部优化策略永州优化网站网站优化名词解释网站的优化 排名靠前无锡网站优化报价中山网站优化搜索晴隆网站seo优化网站关键词优化讣云速捷详细单页面优化网站园岭网站优化成功案例网站优化中软文营销的重要作用东莞网站优化技巧网站交给别人优化怎么办网站要如何进行seo优化普陀区官方网站优化定制网站托管优化三角网站优化网站推广优化外包按天计费南通市优化网站推广批发河北家纺行业网站优化推广价格黑龙江服务好的网站优化公司网站优化代理开户清远优化网站开发项目北京网站优化的内容濮阳网站优化哪家专业阜阳网站首页优化去哪找网站优化的四个重点香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化