Autium altiumdesigner元件库中创建自己的元件,PCF8591的芯片上有A0 A1 A2

PCF8591芯片的使用_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
PCF8591芯片的使用
&&C语言编程
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢&>&PCF8591—8位A-D与D-A转换器
PCF8591—8位A-D与D-A转换器
上传大小:250KB
PCF8591是一款单电源、低功耗8位COMS型A/D、D/A转换芯片,它具有4路模拟量输入通道、一路模拟量输出通道和1个I2C总线接口。该器件I2C从地址的低三位由芯片的A0、A1和A2三个地址引脚决定,所以在不增加任何硬件的情况下同一条I2C总线最多可以连接8个同类型的器件。
  该器件具有多路模拟量输入、片上跟踪保持、8位A/D转换和8位D/A转换等功能。A/D与D/A的最大转换速率由I2C总线的最大传输速率决定。
综合评分:0(11位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
LXK_2014lj51
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:0
mcdull_lzj
综合评分:
积分/C币:10
阿格雷beta
综合评分:
积分/C币:3
lizhijie11111
综合评分:
积分/C币:3
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
PCF8591—8位A-D与D-A转换器
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
yxiaobinbin
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
PCF8591—8位A-D与D-A转换器PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入、一个输出和一个串行I2C 总线接口。3 个地址引脚A0、A1 和A2 用于编程硬件地址,允许将最多8 个器件连接至I2C总线而不需要额外硬件。PCF8591由于其使用的简单方便和集成度高,在单片机应用系统中得到了广泛的应用,这篇文章是介绍IIC通信在ADDA转换芯片PCF8591中的应用。
IIC总线通信协议的介绍在""有详细的介绍。
关于PCF8591
PCF8591是单片、单电源低功耗8位CMOS数据采集器件,具有4个模拟输入、一个输出和一个串行I2C总线接口。3个地址引脚A0、A1 和A2 用于编程硬件地址,允许将最多8个器件连接至I2C总线而不需要额外硬件。器件的地址、控制和数据通过两线双向I2C总线传输。器件功能包括多路复用模拟输入、片上跟踪和保持功能、8位模数转换和8位数模拟转换。最大转换速率取决于I2C总线的最高速率。
PCF8591的操作和AT24C02非常类似,只不过AT24C02是写入或读出数据,而PCF8591是AIN端口输入模拟电压,然后PCF8591将转换后的数字量通过IIC总线发送给单片机,或是单片机通过IIC总线给一个数字量,然后PCF8591通过AOUT端口将模拟电压输出.
控制字格式
最高位默认为0
第6位是选择是否允许模拟电压输出,在DA转换时设置为1,AD转换时设置为0或1均可
第5/4位是选择模拟电压输出方式,一般选择00单端输入方式,其他的几种方式如下图所示
第3位默认为0
第2位是自动增量使能位,如果自动增量(auto-increment)标志置1,每次A/D 转换后通道号将自动增加。
第1/0为是在AD转换时选择哪一个通道输入的电压转换为数字量.
PCF8591的器件地址
每一个IIC器件都有一个器件地址,来区分不同的IIC设备,下面是PCF8591的地址
它的地址是由1001和A2A1A0组成的,在原理图中可以看出,A2A1A0均为0,所以器件地址为0x90/0x91,最后一位是读写方向位,0表示下一个字节往总线上写数据,1表示下一个字节从总线上读取数据.
AD转换函数
AD转换即将AIN端口输入的模拟电压转换为数字量并发送到总线上,可以知道该函数需要指定输入的通道,还要将转换后的数字量返回,所以该函数有返回值,和一个形参
程序实现:
/*读取某一个通道转换后的数字量*/uchar Read_D(uchar Channel)
start(); write_byte(0x90);
//器件地址+0 ack(); write_byte(Channel);
//控制字0x01表示通道1 ack(); start(); write_byte(0x91);
//器件地址+1,下一个字节要读取 ack(); dat=read_byte();
ack(); stop();// AD_led=0;
//转换成功显示 }
DA转换函数
DA转换即将从总线上接收到的数字量通过AOUT输出,该函数无返回值,有一个形参
程序实现:
void Out_A(uchar Digital)
write_byte(0x90);
//器件地址+0,下一个字节为写入
write_byte(0x40);
//设置控制字
允许模拟输出,不自增单端
write_byte(Digital);
//将要转换的数字量写入
// DA_led=0;
//转换成功显示
我们可以用一个转换公式,将AD转换后的数字量转换为对应的电压值,在数码管或液晶上显示,公式如下:
#define fun(x) (int)(5*x/255.0*100+0.5)
//数字电压x转换为模拟电压的公式
 主函数调用
dat1 = Read_D(0x01);
//将通道1(电位器v2)的模拟电压转换的数字量读出
Out_A(dat1);
//将数字量转换为模拟量输出到led显示
dis_Voltage1(fun(dat1));
//数码管显示电压值
Delay_Ms(5);
//延时缓冲
  这样就可以实时显示输入的电压值了.还可以将电压值输出到led亮度显示出来.这样就可以作为一个简易的小量程(5v)的电压表了
从程序可以看出PCF8591的操作和AT24C02基本一致,就是增加了控制字的内容,相比于其他的ADDA转换芯片,它结构简单,不需要外围的电路,可以直接使用,而且容易实现模块化设计,在大多数单片机系统中ADDA几乎是不可缺少的,而PCF8591只需要两个IO口(时钟和数据)和电源就可以实现,大大节省了IO口的使用。
关于AT24C02的使用,请看我另一篇随笔:“”
参加资料:
阅读(...) 评论()}

我要回帖

更多关于 altium designer 元件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信