- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C52控制ADC0832应用详解
基于C52控制ADC0832应用详解
摘要:A/D转换器是数字化测量和显示仪表的重要组成部分,其转换速度、精度和分辨率,直接影响着测量结果和显示的质量指标。本文通过一个8位的ADC0832芯片的使用介绍A/D转换的具体控制方法。在控制过程中,主要是清楚单片机与ADC0832芯片管脚的连接,以及它们之间的信号传输。对ADC0832芯片的工作时序、数据信号端口的设置,在编写控制代码时,要严格按照时序图进行。
关键词:分辨率 工作时序 端口设置 控制代码 时序图
中图分类号:TN792 文献标识码:A 文章编号:1007-9416(2013)03-0005-02
A/D转换器是数字化测量和显示仪表的重要组成部分,其转换速度、精度和分辨率,直接影响着测量结果和显示的质量指标。本文通过一个8位的ADC0832芯片的使用介绍A/D转换的具体控制方法。
ADC0832是使用非常普遍的8位D/A转换器,其最高分辨可达256级,由于其片内有输入数据寄存???,故可以直接与单片机接口。ADC0832以电流形式输出,当需要转换为电压输出时,可外接运算放大器。ADC0832主要特性:
(1)分辨率8位。
(2)电流建立时间1μS。
(3)数据输入可采用双缓冲、单缓冲或直通方式。
(4)输出电流线性度可在满量程下调节。
(5)逻辑电平输入与TTL电平兼容。
(6)单一电源供电(+5V~+15V)。
(7)低功耗,20mW。
1 单片机与ADC0832的连接
(图1)
芯片接口介绍:
CS_片选使能,低电平芯片使能。CH0模拟输入通道0,或作为IN+/-使用。CH1模拟输入通道1,或作为IN+/-使用。GND接地。DI数据信号输入,选择通道控制。DO数据信号输出,转换数据输出。CLK芯片时钟输入。Vcc/REF电源输入及参考电压输入(复用)(图2)。
一般情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但是,由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
2 工作时序图分析
(图3)
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。CS使能端置于低电平时,芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲的下降之前DI端必须是高电平,表示启始信号。
在第2、3个脉冲下降之前DI端应输入2位数据用于选择通道功能:
(1)当2位数据为“1、0”时,只对CH0进行单通道转换。
(2)当2位数据为“1、1”时,只对CH1进行单通道转换。
(3)当2位数据为“0、0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
(4)当2位数据为“0、1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。
注:本文中当此2位数据置为“1、0”,只对CH0进行单通道转换。
到第3个脉冲的下降之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。
从第4个脉冲下降开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下降DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下降输出DATD0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束,将CS置高电平禁用芯片。
最后,直接将转换后的数据先进行校验处理。若接收的8位数据与接收的反8位数据相等,则数据接收成功,否则,数据无效,重新接收。
3 C语言实现A/D转换源代码
#include
#define uchar unsigned char
#define uint unsigned int
sbit cs=P1^6;
sbit scl=P1^3;
sbit sda=P1^4;
bit SGL; //定义两个位标量为ADC0832的DI输入,设置转换通道
bit ODD;
void delay(uint z)
{
uint x,y;
for(x=z;x0;x--)
for(y=50;y0;y--);
}
void main()
{
原创力文档


文档评论(0)