单片机与A-D转换器的接口设计
- 格式:doc
- 大小:247.50 KB
- 文档页数:4
单片机c语言程序设计---D/A转换实验报告课程名称:单片机c语言设计实验类型:设计型实验实验项目名称: D/A转换实验一、实验目的和要求1.掌握数模转换的概念2.掌握D/A转换芯片DAC0832的功能及特点,掌握与单片机的接口3.掌握D/A转换芯片DAC0832的c语言编程实例二、实验内容和原理实验1.信号发生器功能:使用DAC0832用作信号发生器,编写产生锯齿波、三角波和方波的程序。
本次项目中,DAC0832采用单缓冲单极性的线选法接线方式,其选通地址为7FFFH。
(1)硬件设计使用P1口接3个独立的按键S01、S02、S03,当按下S01时输出锯齿波,按下S02时输出三角波,当按下S03时输出方波。
电路原理图如下仿真所需元器件(2)proteus仿真通过Keil编译后,利用protues软件进行仿真。
在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
三、实验要求:1.完成信号发生器实验。
具体包括绘制仿真电路图、编写c源程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。
完成思考题。
四、操作方法与实验步骤1.按照硬件设计在protues上按照所给硬件设计绘制电路图。
2.在keil上进行编译后生成“xxx.hex”文件。
3.编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
五、实验结果与分析void main(){while(1){while( K01==0 ) //生成锯齿波{for(cDigital=0;cDigital<=250;cDigital++){TransformData(cDigital);//进行数模转换}}while( K02==0 ) //生成三角波{for(cDigital=0;cDigital<=250;cDigital++){TransformData(cDigital);//进行数模转换}for(cDigital=250;cDigital>=0;cDigital--){TransformData(cDigital);//进行数模转换}}while( K03==0 ) //生成方波{TransformData(0);//进行数模转换Delay(500);TransformData(250);//进行数模转换Delay(500);}}}六、讨论和心得。
1 引言模/数转换是现代测控电路中非常重要的环节,它有并行和串行两种数据输出形式。
目前,模/数转换器ADC已被做成大规模集成电路,并有多种型号和种类可供选择。
本文介绍了AD7654 的性能特点,并设计了AD7654与单片机ADUC848的接口电路,同时给岀了软件流程和相应的汇编源程序。
2 AD7654 的性能特点和工作原理AD7654是ADI公司推岀的一种低功耗、四通道、电荷再分布式高速A/ D转换器,该A/ D转换器的主要特点是:16位分辨率且无漏失码;0 V〜5 V模拟输入范围;SPI / OSPI/ Microwire / DSP兼容;两个允许同步采样的低噪音、高带宽跟踪/保持放大器;功耗典型值为120 mW可提供串行和并行两种输岀接口,给予用户灵活的选择。
串行A/D转换的速率很高。
并且具有体积小、功耗低、占用单片机口线少的优点,文中采用串行模式设计电路,有关引脚说明如下:A0:转换通道选择;A/B :高电平时,先输岀A通道转换数据再输岀B通道转换数据,低电平反之;SER/PAR串行/并行模式选择。
低电平为并行模式。
高电平为串行模式;EXT/INT :高电平时选择外部时钟。
低电平时选择内部时钟:SDOUT 转换数据输岀位;SCLK串行数据时钟输入或输岀(取决于EXT/ INT的逻辑状态);CNVST开始转换。
CNVST的下降沿使内部采样保持进入保持状态并开始转换:BUSY正在转换标志;EOC 转换结束标志。
AD7654的转换过程由CNVST F降沿启动,转换启动与CS和RD信号状态无关,A0引脚控制转换通道的选择。
在转换结束之前,即使掉电转换也不会重新开始或终止。
转换进行过程中,BUSY 变为高电平,EOC也为高电平,EOC在每一个通道转换结束后变为低电平,而BUSY线在两个通道转换全部结束后才变为低电平,转换的32位数据可以从SDOUT上读岀。
转换时序图如图1所示。
AD7654有串行和并行两种接口方式,每种接口方式又有主从两种模式,本文介绍其串行接口下从模式的硬件和软件设计。
单片机A/D、D/A转换实验硬件实验十三D/A转换实验51/96/88一、实验要求利用DAC0832编制程序产生锯齿波、三角波、正弦波。
三种波轮流显示用示波器观看。
二、实验目的1、了解D/A转换的基本原理。
2、了解D/A转换芯片0832的性能及编程方法。
3、了解单片机系统中扩展D/A转换的基本方法。
三、实验电路及连线用示波器探头接触输出观察显示波形。
四、实验说明1、D/A转换是把数字量转换成模拟量的变换实验台上D/A电路输出的是模拟电压信号。
要实现实验要求比较简单的方法是产生三个波形的表格然后通过查表来实现波形显示。
2、产生锯齿波和三角波的表格只需由数字量的增减来控制同时要注意三角波要分段来产生。
要产生正弦波较简单的方法是造一张正弦数字量表。
即查函数表得到的值转换成十六进制数填表。
D/A转换取值范围为一个周期采样点越多精度越高些。
本例采用的采样点为256点/周期。
3、8位D/A转换器的输入数据与输出电压的关系为U0∽-5VUref/256×N U-5V∽5V2·Uref/256×N-5V 这里Uref为5V 五、实验框图否是开始置计数器初值查表读波形数据启动D/A 改变计数器及表指针转换完毕H13.asm CS0832 equ 0a000h mov dptr CS0832 mov a 0 movx dptr a mov a 40h movx dptr a mov a 80h movx dptr a mov a 0c0h movx dptr a mov a 0ffh movx dptr a ljmp end 硬件实验十四A/D转换实验51/96/88一、实验要求利用实验板上的ADC0809做A/D转换器实验板上的电位器提供模拟量输入编制程序将模拟量转换成二进制数字量用8255的PA口输出到发光二极管显示。
二、实验目的1、掌握A/D转换与单片机的接口方法。
2、了解A/D芯片ADC0809转换性能及编程。
一、实验目的1、掌握单片机与ADC0809的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
二、实验要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。
2、在0809的某一模拟量输入通道上接外部模拟量。
3、在单片机的外部扩展数码管显示器。
4、分别采用延时和查询的方法编写A/D转换程序。
5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。
三、实验电路图四、实验程序流程框图和程序清单1、查询ORG 0000H START:LJMP MAINORG 0100HMAIN: MOV SP, #6FHCLR EALOOP: MOV DPTR, #0fef8H MOVX @DPTR, ALOOP1:JNB P3.2, LOOP1MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, AMOV A, #10MOV 22H, AMOV A, BLCALL CHULIMOV 21H, AMOV A, BLCALL CHULIMOV 20H, A LCALL DIRLJMP LOOPDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #0FEH LOOP2:MOV P2, R3 MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JNB ACC.3, LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1LP2: MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LP3: RETEND2、延时ORG 0000HSTART:LJMP MAINORG 0100HMAIN: MOV SP, #6FHCLR EALOOP: MOV DPTR, #0fef8HMOVX @DPTR, ALCALL DELAY100MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, AMOV A, #10MOV 22H, AMOV A, BLCALL CHULIMOV 21H, AMOV A, BLCALL CHULIMOV 20H, ALCALL DIRLJMP LOOPDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #0FEHLOOP2:MOV P2, R3MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JNB ACC.3, LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1LP2: MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LP3: RETDELAY100: MOV R6,#01H;误差 0usDL0:MOV R5,#2FHDJNZ R5,$DJNZ R6,DL0RETEND3、中断ORG 0000HSTART:LJMP MAINORG 0003HLJMP INTT0ORG 0100HMAIN: MOV SP, #6FHSETB EASETB EX0MOV DPTR, #0000HMOVX @DPTR, AHERE: LJMP HEREINTT0:MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, A //整数部分放22H中MOV A, #10MOV 22H, A //小数点放22H中MOV A, BLCALL CHULIMOV 21H, A //小数点后第一位放21H中 MOV A, BLCALL CHULIMOV 20H, A //小数点后第一位放21H中 LCALL DIRMOV DPTR, #0000HMOVX @DPTR, ARETIDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #01HLOOP2:MOV P2, R3 //位控码初始值MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JB ACC.3 LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LJMP LP3LP2: MOV A, #5MOV B, #0LP3: RETEND五、实验结果六、实验总结通过本次试验掌握了A/D转换的电路设计,掌握了AD0808的使用以及编址技术,熟悉了A/D转换的方法和A/D转换的程序设计方法。
第九章 A/D、D/A转换接口模/数、数/模转换技术在数字测量和数字控制技术中非常重要。
本章着重从应用角度分析几种典型的A/D,D/A电路芯片及与8031的接口逻辑以及相应的程序设计。
9-1 数模D/A转换器DAC08329.1.1 DAC0832芯片的结构原理一、芯片结构DAC0832是CMOS工艺制造的8位单片D/A转换器,芯片采用的是双列直插封装结构。
二、功能特点1、分辨率为8位。
2、只需在满量程下调整其线性度。
3、可与所有的单片机或微处理器直接接口,也可单独使用。
4、电流稳定时间1ms。
5、可以双缓冲(速度快),单缓冲可直通数据输入。
6、 低功耗,200mW 。
7、 逻辑电平输入与TTL 兼容。
8、 单电源供电(+5V 或+15V )。
三、引脚功能1、 DI0~DI7:8位数字量数据输入端(内部为8位数据寄存器)。
2、 AGND :模拟信号输出的接地端。
3、 DGND :数字信号输入的接地端。
4、 1O UT I 、2O UT I :模拟电流信号输出端,1O UT I 与2O UT I 的和为常数且1O UT I 与DAC 寄存器的内容线性变化。
5、 CC V :工作电源。
6、 BF R :反馈信号输入端。
芯片内已有反馈电阻。
在片外一般接运放的输出端。
7、 RE F V :基准电压输入端。
(由外部电路提供的,可在-10V ~+10V 内选取)8、 ILE :数据锁存允许信号输入端,高电平有效。
9、 CS :8位数据寄存器的选通信号输入端,低电平有效。
10、1WR :输入寄存器写选通信号输入端,低电平有效。
11、2WR :DAC 寄存器写选通信号输入端,低电平有效。
12、XFER :数据转移控制信号输入端,低电平有效。
13、1LT 、2LT :为内部两个寄存器的输入锁存端。
⑴ 当1LT =ILE ·CS ·1WR =0时,8位输入寄存器的输出跟随输入变化;当1LT =ILE ·CS ·1WR =1时,数据锁存在输入寄存器中,不再变化。
第26卷第3期 咸 宁 学 院 学 报 Vol .26,No .32006年6月 Journa l of X i a nn i n g College Jun .2006文章编号:1006-5342(2006)03-0080-0312位A /D 转换器AD1674的单片机接口技术3钱灿荣,聂 东(肇庆学院,广东 肇庆 526060)摘 要:AD1674是12位高速A /D 转换器,其内置采样保持电路、参考电压和时钟电路.其三态输出缓冲器可以方便与微处理器接口.8位总线的单片机需要分两次才能读取转换结果.提供了接口电路的设计实例和相应的驱动程序,并描述了正确的布线方法以避免引入高频信号噪声.关键词:高速;A /D 转换;接口电路中图分类号:TP303.3 文献标识码:A 在需要高精度的数模转换的应用领域,采用10位或12位的A /D 转换器与采用8位的A /D 转换器的接口技术是完全不同的.在12位A /D 转换器中AD1674应用比较普遍.AD1674是12位逐次逼近型ADC,它是ANALOG DE 2V I CES 公司在其原有的12位A /D 转换器AD574、AD674和AD774系列的基础上改进而来的,除了在转换速度上有很大提高外,还增加了采样保持器的功能.正确设计8位单片机与12位A /D 转换器AD1674的接口电路是能否实现高精度A /D 转换的前提.1 AD1674的主要特点AD1674的主要特点包括:(1)具有可控三态输出缓冲器;(2)12位数据可以在一个读周期中输出,也可分在两个周期中依次输出;(3)内置10V 的电压基准源;(4)内置时钟电路,无需外部时钟;(5)可实现单极性模拟量输入,也可实现双极性模拟量输入;(6)内置采样保持电路,支持转换器的整个耐奎斯特带宽.采样保持器对用户是透明的,无需查询其等待状态.2 AD1674的管脚功能AD1674的管脚排列见图1,管脚功能见表1.图1 AD1674的管脚排列3 控制逻辑AD1674有两种工作模式,一是完全控制模式,一是独立工作模式.在完全控制模式下,使用了所有的控制信号,该模式用于当系统中地址总线上挂接有多个设备的情况.独立工作模式用于系统中有专门的输入端口,无需全部的总线接口功能.表2是AD1674的功能真值表.4 接口电路图2是AD1674与8位单片机SST89C58的接口电路,AD1674为单极性输入.待测模拟信号量经运放NE5532构成的电压跟随器输入到10V in 输入端.因为AD1674的模拟量输入端的输入阻抗比较低,所以需要阻抗变换电路以提高输入阻抗.R1用于系统调零,即保证在V in =0时输出数字量为全0.R2用于微调片内DAC 基准电流,从而微调增益.AD1674的数据锁存器是可控三态的,可直接与单片机的P0口相连.由于单片机的数据总线是8位的,而AD1674的A /D 转换结果是12位的,因此单片机必须经两次读操作才能获取一次A /D 转换结果,一次为高8位,即DB11~DB4,一次为低4位,即DB3~DB0.图中DB3~DB0只能与DB11~DB8并联,而不能与DB7~DB4并联,因为DB7~DB4在读低4位字节时始终输出为0.5 软件编程AD1674的STS 是A /D 转换器的工作状态指示信号,一旦启动A /D 转换,STS 变为高电平,当转换结束,STS 变为低电平.单片机既可以用中断方式也可以用查询方式来判断AD1674的工作状态.由于AD1674是高速A /D 转换器,从启动转换到获取转换结果的时间不超过10μs,因此采用查询方式并不影响程序的执行效率.图2中的STS 接到单片机的P3.4口,相应的软件采用的就是查询方式.以下是用Keil C 语言编写的启动A /D 和获取A /D 转3收稿日期:2005-10-25 基金项目:肇庆市科委资助项目(10323)换结果的函数,函数的出口参数就是A/D转换的结果.#define ADH I XBYTE[0XBFF D]//A/D转换结果的高8位#define ADLO XBYTE[0XBFFF]//A/D转换结果的低8位sbit ad_busy=P3^4;//ADC0809的STS,1为忙,0表示转换结束33333333333333333333333 333333表1 AD1674的管脚功能描述符号管脚号类型功能描述AG ND9P公共的模拟地A04D I 在转换过程中,A0为低则为12位转换,否则为8位转换;在以8位字节为单位的读数过程中,A0为0时输出高8位(DB11~DB4),A0为1时输出DB3~DB0,DB7~DB4为0000B I P OFF12A I 双极性偏置电平输入端.双极性模式下将其通过一个50Ω电阻连接到REF OUT端,单极性模式下则连接到模拟地.CE6D I芯片使能,高电平激活,用于开始一个转换过程或读取操作CS3D I芯片选择.低电平有效DB11~DB427-24DO 数据位11~8,在12位格式下提供高4位数据.在8位格式下,A0为低时提供高4位,A0为高时被禁止.DB7~DB423-20DO 数据位7~4,在12位格式下提供中间4位数据.在8位格式下,A0为低时提供中间4位,A0为高时全为0.DB3~DB019-16DO 数据位3~0,在12位格式下提供最低4位数据.在8位格式下,A0为低时被禁止输出,A0为高时提供低4位数据.DG ND15P数字地REF OUT8AO+10V参考电压输出R/C5D I高电平时为读操作,低电平时为转换操作REF I N10A I正常情况下该端通过一个50Ω电阻连接到+10V参考电压源STS28DO状态标志.当转换正在进行的时候为高电平,转换结束时为低电平.Vcc7P+12V/+15V模拟电路电源VEE11P-12V/-15V模拟电路电源V l ogic1P+5V逻辑电路电源10V in13A I 10V范围模拟量输入端,单极性下为0到+10V,双极性下为-5V到+5V.如果模拟量输入采用20V电压输入端,则该端不要连接.20V in14A I 20V范围模拟量输入端,单极性下为0到+20V,双极性下为-10V 到+10V.如果模拟量输入采用10V电压输入端,则该端不要连接.12/82D I 该端决定数字输出数据的格式,为低则为两个8位的字节,为高则为一个12位的字. 注:A I表示模拟量输入,AO为模拟量输出,D I为数字量输入,DO为数字量输出,P表示电源.表2 AD1674功能真值表CE CS R/C12/8A0功能0X X X X无X1X X X无100X0启动12位A/D转换100X1启动8位A/D转换1011X12位并行输出10100高8位数据输出10101低4位数据输出,余下4位为018第3期 钱灿荣,聂 东 12位A/D转换器AD1674的单片机接口技术 功能:12位ADC出口:12位的ADC 的结果333333333333333333/unsigned int ADC_result (void ){ADC =0XFF;//启动A /D 转换while (ad_busy ==1);//等待转换接收return ((unsigned int )(ADH I <<4)+(ADLO >>4));//获取A /D 转换的结果}6 转换结果的意义设A /D 转换的结果为D,则对应的输入的模拟量V in 为:V in =(D4096)×10(V )7 电路设计中需要注意的地方AD1674的采样带宽比较宽,窜入到输入端的高频噪声也能检测到,因此电路设计中要注意如何避免高频噪声.(1)参考电压的去耦.要在REF I N 与地之间加一个10μF 的钽电容,以滤除参考电压上的噪声从而提高信噪比.(2)模拟信号和数字信号不应共享一个公共通道.每个信号都应有自己的电流回路,这样就可以减小电感耦合噪声.布线要宽,线径要粗,地线面积要大,使信号通路的阻抗尽可能低.模拟地和数字地要分开,只在一点接地以减小地线环路.模拟信号应尽可能远离数字信号.(3)电源滤波.AD1674的电源应经过稳压和滤波,滤除高频噪声.滤波电容通常为10μF 的钽电容和0.1μF 的瓷片电容的并联,引脚要尽可能短,且围绕AD1674布一层模拟地可以隔离较大的开关信号电流.(4)接地.如果AD1674使用独立的模拟地和数字地,模拟地接AG ND,数字地接DG ND,要求引脚接线要尽可能短.然后将AG ND 和DG ND 在AD1674上连接在一起以避免地线环路感应噪声,也可以避免数字信号穿过模拟信号部分.8 结 论AD1674是一款12位的高速A /D 转换器,单片机可以采用查询或中断的方式判断A /D 转换的状态.AD1674与8位总线单片机接口时,必须分两次读取转换结果,且DB3~DB0只能与DB11~DB8并联而不能和DB7~DB4并联.在设计线路板时一定要考虑到如何避免外界噪声引入到模拟信号电路中.参考文献:[1]ANALOG DE V I CES .122bit 100ks p s A /D ConverterAD1674datasheet .htt p://www .anal og .com,1994.[2]王福瑞.单片微机测控系统设计大全[M ].北京:北京航空航天大学出版社,1998.[3]马忠梅等.单片机的C 语言应用程序设计[M ].第3版.北京:北京航空航天大学出版社,2003.图2 AD1674与8位单片机的接口线路28咸宁学院学报 第26卷。
A/D转换器CS5550与单片机的接口程序设计辛晓宁,吴子旭(沈阳工业大学信息科学与工程学院,辽宁沈阳110178)摘要:分析双通道低成本A/D转换器CS5550的接口特点,以ATmega16单片机为例设计CS5550与单片机的接口电路。
经过对ATmega16单片机SPI口的分析,详细讨论使用硬件SPI接口和软件模拟SPI两种方式的程序设计,并给出相应的软件流程图。
最后对CS5550的两种接口方式进行比较。
关键词:模数转换器;CS5550;单片机;接口程序现代智能化仪器仪表中A/D转换器和单片机是重要组成部分。
串行A/D转换器的串口信号线数目较少,在数据采样速率较低的系统中有利于降低硬件间连线的复杂度,节省单片机的接口资源。
在CS5550的性能特点及其片上串行接口的基础上,给出CS5550与单片机的接口程序设计方案。
1 CS5550的主要性能及接口特点[1]CS5550是Cirrus Logic公司推出的一款双通道低成本Δ-Σ型A/D转换器,内部集成有2个Δ-ΣA/D转换器、2个放大器、1个串行接口以及1个温漂为25 ppm/℃的2.5 V参考电压源。
CS5550在两个通道上都具有24位寄存器,其中通道1具有13位有效位,通道2具有10位有效位[2]。
CS5550片上集成有1个双向数字串行接口,包括CS(片选信号)、SDI(数据输入)、SDO(数据输出)和SCLK(串行时钟)4条控制线。
该串口与标准SPI 接口协议兼容,可与带有SPI接口的单片机传输数据。
另外,CS5550还有一个中断输出引脚INT,可通过配置其屏蔽寄存器(Mask Register)来设定中断,并可通过软件修改配置寄存器中的“IMODE IINV”位来决定中断的产生方式(高/低电平或上升/下降沿有效)。
2单片机的SPI接口与CS5550连接SPI接口是由Motorola公司最先推出的,目前很多型号的单片机都集成有SPI接口,如ATMEL公司的ATmega8[3]、PIC公司的PIC16F877[4]、Analog Devices 公司的ADuC812[5]等。
EDA实验报告之实验十一A/D转换实验1、实验目的(1)掌握A/D转换器与单片机接口的方法;(2)了解A/D芯片0809的转换性能及编程方法;(3)通过实验了解数据采集、处理的基本方法。
2、实验要求利用实验板上的ADC0809做A/D转换器,实验板上的电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,在数码管的最高两位显示出数字量来。
另外要把模拟量值在数码管的最低三位显示出来。
例如显示“80 2.50”(其中80是采样数值,而2.50是电压值。
要求程序可连续运行以便测量不同的模拟电压(类似于电压表)(注意:多次采集求平均值可提高转换精度)3、实验说明1)原理图参看LAB6000使用手册、图示帮助等;2)连线方式与LAB6000给出的有所不同,这里的实验用数码管显示结果(原实验则用LED显示结果);3)EOC可接中断、其它引脚或不接,对应的获取数据方法为中断、查询、延迟,建议采用中断方法;4)注意ADC0809各连线接在了什么位置。
4、写出实验报告(包括6位LED显示的部分电路图)。
5、实验内容5.1 使用仪器、仪表,开发平台型号本实验用到了WAVE 6000软件平台,电脑一台,LAB6000实验箱,若干连线,串行数据线。
5.2 性能指标、技术要求、思路方案、流程图5.2.1性能指标、技术要求见实验目的和实验要求。
5.2.2 思路方案:先将所有中断使能位置位,然后启动A/D转换。
在主程序中显示缓冲区的内容,判断4次中断已满的标志位是否置位,是的话调用计算子程序计算数字平均值和模拟值,这个过程反复循环的进行。
5.2.3流程图:主程序:计算数字量和模拟量的子程序:中断子程序:5.3源程序;采样的数字值放在20H 开始的单元中,修改R6的值(4);可以控制采样的个数(为了方便我们选择2,4,8……等2的倍数),上限为256个ORG 0000HLJMP BEGIN ;ORG 0003H ;外部中断0LJMP INT0ORG 0030H;=================BEGIN:FLAG EQU 50H ;对应到16进制的是2A单元,四次中断是否满的标志位TRANS EQU 51H ;是否一次转换完毕的标志位MOV R0,#20H ;采样数据存储单元MOV R6,#4 ;采样4次求均值CLR FLAGCLR TRANSSETB EA ; 开所有中断SETB IT0 ; INT0边沿触发SETB EX0 ; 允许INT0中断MOV DPTR,#8000H ; 指向0809 IN0通道地址MOVX @DPTR,A;=================LOOP:LCALL DISPLAYJNB TRANS,LOOP ;判断是否发生EOC,为0时转移CLR TRANSJNB FLAG,CONTINUE ;为0时转移CLR FLAGLCALL COMPUTEECONTINUE:MOV DPTR,#8000HMOVX @DPTR,A ; 启动A/D转换,因为与A值无关,故不管ALJMP LOOP;================= ;中断服务程序INT0:MOVX A,@DPTR ; 读A/D转换结果MOV @R0,AINC R0DJNZ R6,RETURNSETBFLAGMOV R6,#4MOV R0,#20HRETURN:SETB TRANSRETI;=================DISPLAY:MOV R4,#02H;==============BEGIN0:MOV A,#01H ;位选择字节MOV R2,#5 ;5次MOV R1,#60H ;数据地址LOOOP:MOV DPTR,#9002H ;位选输出地址MOVX @DPTR,ARL A ;修改位信号PUSH AMOV DPTR,#9004H ;数据输出地址MOV A,@R1LCALL CHECK ;查表CJNE R1,#62H,PEIORL A,#80HPEI:MOVX @DPTR,ALCALL DELAYINC R1POP ADJNZ R2,LOOOPLCALL DELAY ;为了两轮显示间时间间隔久一些DJNZ R4,BEGIN0RET;================DELAY:MOV R5,#02HMOV R3,#09FHLOOPP:DJNZ R3,$DJNZ R5,LOOPPRET;================= ;计算数字平均值和模拟值COMPUTEE: ;计算采样值总和,放在BA单元,前者为高位MOV R1,#20H ;指向20H单元MOV R5,#4CLR CCLR AMOV B,ALLOOPP:ADD A,@R1JNC GOONINC B ;C为1是加一CLR CGOON:INC R1DJNZ R5,LLOOPP;====================MOV R5,#2 ;2的2倍是4次DIVISION: ;数字平均值最后在A中,B移位完后为0PUSH AMOV A,BCLR CRRC AMOV B,A ;暂存POP ARRC ADJNZ R5,DIVISION;===================== ;这部分程序是为了获得模拟值和将数字量分别存为两个字节里面PUSH APUSH AANL A,#0FHMOV 63H,APOP AANL A,#0F0HSWAP AMOV 64H,APOP AMOV B,#5MUL ABMOV 62H,BMOV B,#10MUL ABMOV 61H,BMOV B,#10MUL ABMOV 60H,BRET;==================CHECK:INC AMOVC A,@A+PCRETTABLE:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79HDB 71H5.4实验步骤,完成情况5.4.1在WAVE 6000中新建文件,并将代码写入文件中,保存为EXPERIMENT11.ASM;5.4.2在WAVE 6000中新建项目,并在模块文件中包含上述EXPERIMENT11.ASM文件,最后保存为EXPERIMENT11.PRG。
单片机与A/D转换器的接口设计
王晓光
(本溪冶金高等专科学校,辽宁本溪117022)
摘要:介绍采用AT89C51单片机与MAX195 A/D转换器实现高精度数据采集的方法,分析其硬件接口及软件编程技巧,并给出相应的电路及程序代码。
关键词:单片机;A/D转换器;接口设计
Interface Design of A/DConverter with Single-chip Computer
WANGXiao-guang
(Benxi College of Metallurgy and Profession,Benxi 117022,China)
Abstract:The paperintroduces a method of realizing precise data collection by single-chip computer AT89C51 and A/Dconverter MAX195,discussestheinterface and programming techniques,and providesthe corresponding circuits and programcodes.Key words:single-chip computer;A/Dconverter;interface design
MAX195是16位逐次逼近方式的ADC。
它将高精度、高速度、低电源功耗(消耗电流仅10μA)的关闭方式等性能结合在一起。
内部校准电路对线性度与偏置误差进行校正,所以无需外部调整便可达到全部额定的性能指标。
电容性的DAC 结构使之具有特有的85kbps跟踪/保持功能,变换时间仅需9.4μs。
三态串行数据输出及引脚可选的单极性(0~VREF)或双极性(-VREF~+VREF)的输入范围使之可广泛应用于便携式仪表、医用信号采集及多传感器测量等系统中。
1 MAX195引脚及说明
MAX195有16个引脚,其排列如图1所示。
其中:CLK———变换时钟输入端;SCLK———串行时钟输入端,用于在两次变换之输出数据;———片选端,低电平有效;———变换开始输入端;
———变换/校准结果输出端,正常时为低电平,在变换/校准开始时,由低变高,结束后,由高变低;DOUT———变换结果串行数据输出端;REF———基准电压
输入端0~5V;———复位输入端,上升沿使MAX195复位并开始校准;
———双极性/单极性/关闭方式选择输入端;AIN———模拟输入
端;VDDA、VSSA、VD-DD、VSSD分别为模拟的和数字的±5V电源;AGND、DGND 分别为模拟地和数字地。
2 MAX195转换原理及时序
MAX195片内含有电容性的数字模拟变换器(DAC),可对模拟输入进行特有的跟踪和保持,再由逐次逼近寄存器和比较器,在变换时钟CLK的控制下,把模拟输入变换成16位数字代码,通过片内的串行接口输出。
芯片内的接口和控制逻辑易与大多数微处理器相连,减少了对外部元件的需求。
其变换及数据输出的时序如图2所示。
由时序可以看出,在前次变换结束至少经过三个或三个以上时钟周期后,变换在有效后的CLK时钟下降沿开始(MAX195对信号的跟踪/保持、采集需4
个CLK周期)。
同时,在下一个时钟下降沿变高,待经过9.4μs(CLK为1.7MHz)变换结束后,由高变低,给出变换结束信号,可送去中断或被查询。
变换结束由三态串行口DOUT端输出。
在变换期间由CLK控制读出数据,也可在两次变换之间由SCLK串行时钟定时读出数据,最高速率可达5Mbps。
图2中所示情况为后
者,在保持低电平后,在每个SCLK的下降沿,DOUT端按MSB在前的次序输出一位数据,否则,DOUT处于高阻态。
3 MAX195的校准
MAX195在上电时自动进行校准。
为了减少噪声的影响,每一个校准试验进行多次并对其结果求平均值。
在时钟频率1.7MHz下,校准大约需14000个时钟
周期或8.2ms。
除了上电校准之外,把拉至低电平将使MAX195暂停工作,
使再次回到高电平便启动一次新的校准。
注:只有在上电延迟期间,电源尚未稳定就开始上电校准或电源电压、环境温度及时钟频率发生明显变化时,才建议重新加以校准。
软件校准参考子程序如下:
4 AT89C51与MAX195的接口设计
图3为AT89C51与MAX195接口的硬件电路图。
图中AT89C51的ALE端输出信号(等于1/6晶振频率f osc=6MHz)作为CLK变换时钟。
P1.5作为MAX195的启动控制端。
端悬空表示模拟信号可
双极性输入,也可根据需要接+5V———单极性输入;接地———关闭方式。
根据图3,给出A/D采样程序如下:
注:采样结果保存在R2、R33中。
参考文献
[1]余永全.Flash单片机原理及应用[M].北京:电子工业出版社,1999.[2]何立民.I2C总线应用设计[M].北京航空航天大学出版社, 1995.。