加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

洞洞板简易制作电压、电容表(原理图、程序及算法讲解)

2017/01/04
30
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(2)
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

先给大家讲点电压表电容表程序中的稍微有点内涵的部分,让初学者明明白白,别搞成雾里看花就行

电压表Main中有如下几行
uiCH0_Value = ADConvert(0);
sprintf(ucResultString,"Ch0 = %drn",uiCH0_Value);
printf(ucResultString);
上面3行的功能就是将从AD转换芯片读取到的16进制送串口,通过电脑上的串口调试助手看十进值的电压值,通过电脑的串口检查十进值数据可以判断单片机与AD是否通讯正常,转换的结果是否正确,在没有仿真环境的系统中,将看不到却又非常想看的变量值发送到PC串口显示是很实用的调试手段。sprintf这个函数通吃所有类型的变量值转换成字符串,然后在电脑上看字符串就一目了然了。

ulCH0_Voltage = (uiCH0_Value * 5000l)/255; //求当前电压值,单位mV
uiCH0Integer = ulCH0_Voltage / 1000;
ulCH0Dim = ulCH0_Voltage % 1000;

sprintf(ucResultString,"V= %d.%ldV",uiCH0Integer,ulCH0Dim);
LCDLine1(ucResultString,0,0);

上面几行的功能是将程序内部的电压值(0-255)变换成0-5V的显示内容,比如显示出2.5V,1.8V,让当前电压采样值还原成大家习惯的明了的数据。因为uiCH0_Value的值为0-255,现在要将它变换0-5000之间的数,就是一个比例变换的问题,先乘5000,再除255就OK了。注意要在5000后面加个”L“字符哟,因为结果是长整数,不加时是两个短整型相乘,会出错的,加了字符”L“后,就变成1个短整形和1个长整形相乘了,就不会出现数据自动转换出错的现象了。

再来说说电容表吧,电容表是用1个555集成电路构成的多谐振荡器,充电和放电电容就是被测电容,电容越大,振荡频率就越低。设计时将电路分成了独立的两部分,555芯片完成电容测量转频率输出的功能后,此输出波形可以先供助专用的频率计(高级万用表有频率测量功能)来验证电路是否存在问题,然后再把这个已知频率的信号接入到单片机的测量引脚,测试出1S有多少个脉冲,就能反推出电容容值了。
呵呵,有人会问这个555振荡电路输出信号频率是是怎么算的?查查《数字电路基础》的教课书吧,上面有介绍的。下面有个图,经常找不到书的电工就继续往下看图吧!

  • 电压表电路+程序.zip
    描述:电路+程序
  • 电容测试仪电路+程序.zip
    描述:电路+程序

相关推荐

电子产业图谱