OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 141|回复: 3

51单片机之AD芯片

[复制链接]

  离线 

1

主题

6

帖子

0

精华

新手上路

Rank: 1

积分
21
金钱
21
注册时间
2017-11-7
在线时间
1 小时
发表于 2017-11-7 15:25:45 | 显示全部楼层 |阅读模式
正点原子公众号
  本文章,提供8、10、12位分辨率的AD芯片,与单片机的连接图,程序。
  学生时代,在学校学的stc89c51,算是最简单入门的单片机了。有时候,要读取电压值,但是单片机处理的是数字信号,是不能直接读取模拟信的,这就需要我们在单片机外围接上AD芯片。
  工业上,很多传感器的输出是4--20ma电流的。举个例子,电流传感器,测量范围1--100A, 对应输出就是4--20ma电流。那么,我们怎么测出输出电流,从而知道传感器的输入电流多大呢?
  很简单,在传感器的输出,接上一个250欧姆的电阻,根据U=IR,就可以把4-20ma的电流,转化为1--5V电压,通过AD芯片,单片机得出电压值,从而得到输出电流值,再根据传感器输入电流和输出电流的对应公式,程序写好,我们就可以得到电流传感器所测到的输入电流了。
  好吧,废话少说,与其飞飞在这“长篇大论”,说那么多,有什么用呢,是吧?还不如直接上图、给程序来得痛快。
  (1) 8位串行模数转换器:TLC549
11.jpg

  TCL549与单片机连接图
12.jpg

  驱动程序
  假如所测真实电压是1.234V,为什么返回是1234,而不是1.234呢? 很简单:
  ad_value/1000,可以得到千位数字1;
  ad_value/100%10,可以得到百位数字2;
  ad_value/10%10,可以得到十位数字3;
  ad_value%10,可以得到个位数字4。这样数码管就可以显示出我们所测电压值了。
  (2)10位串行模数转换器 :TLC1543
  看图,这个芯片,可以测11路输入:
13.jpg

  TLC1543与单片机连接图
14.jpg

  TL1543驱动
  (3) 12位串行模数转换器 :MAX1241
15.jpg

  max1241与单片机连接
16.jpg

  max1241驱动
  好吧,protues仿真一下(3)
17.jpg


18.jpg


  检查一下,lcd显示,与MAX1241所测的模拟量,数据是一致的。

回复

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

新手上路

Rank: 1

积分
21
金钱
21
注册时间
2017-11-7
在线时间
1 小时
 楼主| 发表于 2017-11-7 15:26:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

  离线 

7

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2017-10-30
在线时间
11 小时
发表于 2017-11-9 13:39:49 | 显示全部楼层
感觉挺不错的        
回复 支持 反对

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

新手上路

Rank: 1

积分
21
金钱
21
注册时间
2017-11-7
在线时间
1 小时
 楼主| 发表于 5 天前 | 显示全部楼层
谢谢支持
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-20 21:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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