DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1716|回复: 1
打印 上一主题 下一主题

[待整理] 软件A/D

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-5 14:04:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
软件A/D

/*软件A/D所能实现的精度有限,测量电压范围是2-15V,
而且速度低(约1KHz),但仅用一个电容和一个电阻的诱惑
力,我想大虾您会笑纳的。用于某些场合是有用的。
原理是利用470K电阻对1uF电容充电,利用P0.0口作为检测电压,
当电压低于1/3 VCC时,P0.0读入的I/O电平为0,当充电电压超过
1/3 VCC时,P0.0读入的I/O电平为1。通过测量此过程所用的时间,
就能判断输入电压(需要换算)。
程序的编写用定时器0实现
*/

//设计时需要计算过2V充电时测量的电压时间小于250ms,否则time溢出。
//如需要高精度,time,vol换成int,测量时间会长一点

sbit v_input=P0^0;
unsigned char time,vol,n;
unsigned int total;

void int_t0(void) interrupt 1 {
TL0+=24;TH0=0xfb; //1000个机器周期
time++;
if (v_input) {
  v_input=0; //把电容电压放调
  total+=time;
  time=0;
  if ((++n)>10) { //统计10次测量的时间
   n=0;
   vol=total/10; //vol的值为测量的电压(还没有转换)
   total=0;
  }
  v_input=1;
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-26 14:18 , 耗时 0.084212 秒, 17 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

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