单片机与模数转换器的接口

单片机与模数转换器的接口

ID:17629328

大小:160.48 KB

页数:3页

时间:2018-09-04

单片机与模数转换器的接口_第1页
单片机与模数转换器的接口_第2页
单片机与模数转换器的接口_第3页
资源描述:

《单片机与模数转换器的接口》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、单片机和模数转换器的接口·吴景逖·数据采集是各种智能仪表、工控系统、科学试验等工作中必不可少的任务,它是将实时变化的各种物理量如温度、压力、流量等先经过各种传感器和变换器变成电压或电流信号,再经过模数转换器(以下简称A/D)变成数字信号,送到单片机或微机进行运算、显示、打印、控制等处理。现在很多单片机内部已经嵌入了A/D,简化了硬件设计,但是这种A/D的精度一般仅为10位或8位,满足不了一些要求较高的应用需求。本文将以80C31单片机和AD574A的接口为例,从硬件设计和编程两方面介绍如何实现单片机和A

2、/D的接口。希望读者通过本文的介绍可以系统了解A/D转换的过程以及相关的其它技术问题。AD574A的特性AD574A是12位逐次逼近型的A/D,芯片内有三态输出缓冲器,输出可直接连到单片机总线,输入控制信号有CE、/CS、R/C,A0及12/8。当CE为1,/CS为0,R/C为0时,表示作A/D转换,R/C为‘1’时,表示读A/D转换后的数据。起动AD574A时,如果A0(通常将它和单片机的最低位地址线A0相连)为‘0’,表示设定AD574A为12位A/D,如果A0为‘1’,表示设定为8位A/D。在A/

3、D结束后读取数据时,如果A0为‘0’,表示允许输出转换结果12位中的高8位,如果A0为‘1’,表示允许输出低4位。引脚12/8如接数字地,表示以两个8位字的方式输出数据(与80C31的接口采用本方式)。引脚12/8如接+5V,表示以一个12位字的方式输出数据。AD574A完成一次A/D转换的时间约15~35微秒,它提供的STS信号可以用来被单片机查询A/D是否完成。转换开始时,STS从‘0’到‘1’,转换过程中,它保持‘1’,转换结束时,它从‘1’到‘0’,‘1’到‘0’的下降沿通知单片机A/D已结束,

4、可以开始读取A/D转换的结果。80C311和1和AD574的接口80C31和AD574的接口电路如图1所示。由图可以看出AD574的高8位DB11~DB4和80C31的数据线D7~D0直接相连,低4位DB3~DB0和80C31的D3~D0相连,这样A/D结束后,A0为0时读取转换结果的高8位,A0为‘1’时,读取低4位。/CS端接到译码器的一个输出端“AD574ADDRR(即AD574的地址)”;80C31的/WR和/RD经一个与非门接到CE端,表示A/D转换时(WR=0)和读取数据时(/RD=0),C

5、E=‘1’。同时(/RD反相后接R/C端)转换时RD=1,R/C=‘0’,读数据时RD=0,R/C=‘1’。附表为AD574A1控制真值表。附表CE/CSR/C12/8AO工作状态0XXXX不工作X1XXX不工作100X0按12位启动转换100X1按8位启动转换1011X12位并行输出10100高8位并行输出10101低4位并行输出一般A/D器件的模拟量输入端仅1个,而需要检测的模拟量是多个(假设为8个),这可以通过多路模拟开关(如13508)和一个通道锁存器(74LS373)来解决。向通道锁存器写不同

6、的控制字,其输出端A、B、C有8种组合,分别选通8个模拟量输入端AIN0~AIN7中的1个,等一个通道的A/D结束并读取数据后,再选择下一个通道,直到完成全部8个通道的A/D转换。从电路图上可以看到通道锁存器的控制端是由/WR和CH_ADDR控制,CH_ADDR是74LS373的地址,来自译码器(图中未画)的另一个输出端,它不同于AD574ADDR。STS信号经倒相后并经数据缓冲器连到80C31的数据线D7,在程序中,80C31不停地检测D7(即检测STS的下降沿),当D7由‘1’变为‘0’时表示A/D

7、转换结束,可以读取结果了。A/D转换及输出数据时有关的控制端及检测端的时序请见图2。AD574的驱动程序如下(设通道号寄存器为R1,通道锁存器地址为#CH-ADDR,AD574地址为#AD574,A/D转换结果缓冲器地址指针R0)。MOVR1,#00H;通道号初值为0CHSET:MOVA,R1;送通道号MOVDPTR,#CH-ADDR;选通道锁存器MOVX@DPTR,AINCR1ACALLDELAY10US;延时10USADSTART:MOVDPTR,#AD574;选AD574MOVX@DPTR,A;启

8、动A/D,按12为转换MOVDPTR,#CH-ADDR;选数据缓冲器LOOP:MOVXA,@DPTR;读取STSJNBD7,LOOP;若STS=‘1’,继续等待MOVDPTR,A;若STS=‘0’,A/D结束INCDPL;使A0=‘1’MOVXA,@DPTR;读A/D结果的低4位MOV@R0,A;存低4位DECDPL;使A0=‘0’INCR0MOVXA,@DPTR;读A/D结果的高8位INCR0MOVA,R1;选通道号CLRCCJNEA,#

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。