欢迎来到天天文库
浏览记录
ID:31776833
大小:57.02 KB
页数:7页
时间:2019-01-18
《基于c52控制adc0832应用详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于C52控制ADC0832应用详解摘要:A/D转换器是数字化测量和显示仪表的重要组成部分,其转换速度、精度和分辨率,直接影响着测量结果和显示的质量指标。本文通过一个8位的ADC0832芯片的使用介绍A/D转换的具体控制方法。在控制过程中,主要是清楚单片机与ADC0832芯片管脚的连接,以及它们之间的信号传输。对ADC0832芯片的工作时序、数据信号端口的设置,在编写控制代码时,要严格按照时序图进行。关键词:分辨率工作时序端口设置控制代码时序图中图分类号:TN792文献标识码:A文章编号:1007-9416(2013)03-0005-02A
2、/D转换器是数字化测量和显示仪表的重要组成部分,其转换速度、精度和分辨率,直接影响着测量结果和显示的质量指标。本文通过一个8位的ADC0832芯片的使用介绍A/D转换的具体控制方法。ADC0832是使用非常普遍的8位D/A转换器,其最高分辨可达256级,由于其片内有输入数据寄存器,故可以直接与单片机接口。ADC0832以电流形式输出,当需要转换为电压输出时,可外接运算放大器。ADC0832主要特性:(1)分辨率8位。(2)电流建立时间1uS。(1)数据输入可采用双缓冲、单缓冲或直通方式。(2)输出电流线性度可在满量程下调节。(3)逻辑电平输
3、入与TTL电平兼容。(4)单一电源供电(+5V〜+15V)。(5)低功耗,20mWo1单片机与ADC0832的连接(图1)芯片接口介绍:CS_片选使能,低电平芯片使能。CHO模拟输入通道0,或作为IN+/-使用°CH1模拟输入通道1,或作为IN+/-使用。GND接地。DI数据信号输入,选择通道控制。DO数据信号输出,转换数据输出。CLK芯片时钟输入。Vcc/REF电源输入及参考电压输入(复用)(图2)。一般情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DR但是,由于DO端与DI端在通信时并未同时有效并与单片机的
4、接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。2工作时序图分析(图3)当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和D0/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。CS使能端置于低电平时,芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下降之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下降之前DI端应输入2位数据用于选择通道功能:(1)当2位数据
5、为“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端的输入电平就失去输入作用,此后D0/DI端则开始利用数据输出D0进行转换数据的读取。从第4个脉冲下降开始由D0端输出转换数据最高位DATA7,随后每一个脉冲下降DO端
6、输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下降输出DATDOo随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束,将CS置高电平禁用芯片。最后,直接将转换后的数据先进行校验处理。若接收的8位数据与接收的反8位数据相等,则数据接收成功,否则,数据无效,重新接收。3C语言实现A/D转换源代码^include#defineucharunsignedchar#defineuintunsignedintsbitcs二Pl-;
7、sbitscl=Pl1-;sbitsda=Pl」;bitSGL;//定义两个位标量为ADC0832的DI输入,设置转换通道bitODD;voiddelay(uintz)uintx,y;for(x=z;x>0;x--)for(y=50;y>0;y一);voidmain(){uinti;ucharflag,tempi,temp2;//tempi接收8位数据,//temp2接收反8位数据//flag标志位,标志一次接收数据接收完成,//并经过校验。flag=l;〃标志位初始化。while(1){while(flag){scl=0;//起始信号de
8、lay(1);cs=0;//A/D芯片开始工作delay(1);sda二1;delay(1);scl=l;//第一个下降沿delay(1);scl=O;//选择通道SGL=1;s
此文档下载收益归作者所有