实验十 ADC0832数模转换的显示

实验十 ADC0832数模转换的显示
实验十 ADC0832数模转换的显示

实验报告十

实验名称:ADC0832数模转换的显示

目的:ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。ADC0832采用串行通信方式,通过DI 数据输入端进行通道选择、数据采集及数据传送。8位的分辨率(最高分辨可达256级),可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。

ADC0832的工作原理:

正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时使用并与单片机的接口是双向的,所以在I/O口资源紧张时可以将DO和DI并联在一根数据线上使用。当ADC0832

未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟(CLK)输入端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第二、三个脉冲下沉之前DI端应输入两位数据用于选择通道功能。

通道地址通道

工作方式说明

SGL/DIF ODD/SIGN 0 1

0 0 + -

差分方式

0 1 - +

1 0 +

单端输入方式

1 1 +

表1:通道地址设置表

如表1所示,当此两位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当两位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当两位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第三个脉冲的下降之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下降沿开始由DO

端输出转换数据最高位Data7,随后每一个脉冲的下降沿DO端输出下一位数据。直到第11个脉冲时发出最低位数据Data0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下降沿输出Data0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。时序说明请参照图4。

作为单通道模拟信号输入时ADC0832的输入电压是0—5V且8位分辨率时的电压精度为19.53mV,即(5/256)V。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。

硬件原理图:

仿真图:

程序如下所示:

/*********************************包含头文件********************************/ #include

#include

/*********************************端口定义**********************************/ sbit CS = P3^5;

sbit Clk = P3^3;

sbit DATI = P3^4;

sbit DATO = P3^4;

sbit P20=P2^0 ;

/*******************************定义全局变量********************************/ unsigned char dat = 0x00; //AD值

unsigned char count = 0x00; //定时器计数

unsigned char CH; //通道变量

unsigned char dis[] = {0x00, 0x00, 0x00}; //显示数值

/*******************************共阳LED段码表*******************************/

unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

char code tablewe[]={ 0xfd,0xfb,0xf7,0xef,0xdf,0xfe };

/**************************************************************************** 函数功能:AD转换子程序

入口参数:CH

出口参数:dat

****************************************************************************/ unsigned char adc0832(unsigned char CH)

{

unsigned char i,test,adval;

adval = 0x00;

test = 0x00;

Clk = 0; //初始化

DATI = 1;

_nop_();

CS = 0;

_nop_();

Clk = 1;

_nop_();

if ( CH == 0x00 ) //通道选择

{

Clk = 0;

DATI = 1; //通道0的第一位

_nop_();

Clk = 1;

_nop_();

Clk = 0;

DATI = 0; //通道0的第二位

_nop_();

Clk = 1;

_nop_();

}

else

{

Clk = 0;

DATI = 1; //通道1的第一位

_nop_();

Clk = 1;

_nop_();

Clk = 0;

DATI = 1; //通道1的第二位

_nop_();

Clk = 1;

_nop_();

}

Clk = 0;

DATI = 1;

for( i = 0;i < 8;i++ ) //读取前8位的值{

_nop_();

adval <<= 1;

Clk = 1;

_nop_();

Clk = 0;

if (DATO)

adval |= 0x01;

else

adval |= 0x00;

}

for (i = 0; i < 8; i++) //读取后8位的值{

test >>= 1;

if (DATO)

test |= 0x80;

else

test |= 0x00;

_nop_();

Clk = 1;

_nop_();

Clk = 0;

}

if (adval == test) //比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉

dat = test;

_nop_();

CS = 1; //释放ADC0832

DATO = 1;

Clk = 1;

return dat;

}

/**************************************************************************** 函数功能:延时子程序

入口参数:

出口参数:

****************************************************************************/ void delay(void)

{

int k;

for(k=10;k<500;k++);

}

/**************************************************************************** 函数功能:将0-255级换算成0.00-5.00的电压数值

入口参数:i

出口参数:

****************************************************************************/ void convdata(unsigned char i)

{

dis[0] = i/51; //个位

dis[1] = (i%51)*10/51*2; //小数点后第一位

dis[2] = ((i%51)*10%51)*10/51*2; //小数点后第二位

}

/**************************************************************************** 函数功能:数码管显示子程序

入口参数:

出口参数:

****************************************************************************/ void display(void)

{

P2=0xff;

P0=tab[dis[0]] & 0x7f; //显示个位和小数点

delay();

P2=0xfd;

P2=0xff;

P0=tab[dis[1]]; //显示小数点后第一位

delay();

P2=0xfb;

P2=0xff;

P0=tab[dis[2]]; //显示小数点后第二位

delay();

P2=0xf7;

P2=0xff;

P0=0xff; //显示小数点后第二位

delay();

P2=0xfe;

}

/**************************************************************************** 函数功能:主程序

入口参数:

出口参数:

****************************************************************************/ void main(void)

{

P2=0xff; //端口初始化

P0=0xff;

delay();

CH = 0x00; //在这里选择通道0x00或0x01

TMOD = 0x01; //设置中断

TH0=(65536-50000)/256;//定时器1初值定时50ms

TL0=(65536-50000)%256;

IE = 0x82;

TR0 = 1;

while(1) //主循环

{ dat = adc0832(CH);

convdata(dat); //数据转换

display(); //显示数值

}

}

/**************************************************************************** 函数功能:定时器中断延时程序这一段的作用时隔一段时间抽样一次否侧显示的最后一位

会不稳定

入口参数:

出口参数:

****************************************************************************/ void timer0(void) interrupt 1

{

TMOD = 0x01;

TH0=(65536-50000)/256;//定时器1初值定时50ms

TL0=(65536-50000)%256;

IE = 0x82;

TR0 = 1;

count++;

if (count == 0x01)

{

count = 0x00;

dat = adc0832(CH);

}

}

程序流程图:

调节AD0,使ADO顺时针转动,LED2上的电压不断减小。

解读高速数模转换器(DAC)的建立和保持时间

解读高速数/模转换器(DAC)的建立和保持时间Oct 10, 2007 摘要:本应用笔记定义了高速数/模转换器(DAC)的建立和保持时间,并给出了相应的图例。高速DAC的这两个参数通常定义为“正、负”值,了解它们与数据瞬态特性之间的关系是一个难点,为了解决这些难题,本文提供了一些图例。 介绍 为了达到高速数/模转换器(DAC)的最佳性能,需要严格满足数字信号的时序要求。随着时钟频率的提高,数字接口的建立和保持时间成为系统设计人员需要重点关注的参数。本应用笔记对建立和保持时间进行详尽说明,因为这些参数与Maxim的高性能数据转换方案密切相关。 定义建立和保持时间 建立时间(t S)是相对于DAC时钟跳变,数据必须达到有效的逻辑电平的时间。保持时间(t H)则定义了器件捕获/采样数据后允许数据发生变化的时间。图1给出了相对于时钟上升沿的建立和保持时间。特定器件的时钟信号有效边沿可能是上升/下降沿,或由用户选择,例如MAX5895 16位、500Msps、插值和调制双通道DAC,CMOS输入。 图1. 相对于时钟信号上升沿的建立和保持时间 采用CMOS技术设计的数字电路通常将电源摆幅的中间值作为切换点。因此,时间参考点定在信号边沿的中点。图1波形标明了器件在典型条件下的建立和保持时间。注意此时定义的这两个参数均为正值,但在建立或保持时间出现负值时将会令人迷惑不解。 MAX5891 600Msps、16位DAC为这一中间值状态提供了很好的学习实例。该器件的建立时间为-1.5ns,而保持时间为2.6ns。图2给出MAX5891的最小建立时间。注意,实际应用中,数据通常在采样时钟跳变后发生变化。图3给出了相同器件的最小保持时间。

数模模数转换实验报告

数模模数转换实验报告 一、实验目的 1、了解数模和模数转换电路的接口方法及相应程序设计方法。 2、了解数模和模数转换电路芯片的性能和工作时序。 二、实验条件 1、DOS操作系统平台 2、数模转换芯片DAC0832和模数转换器ADC0809芯片。 三、实验原理 1、数模转换: (1)微机处理的数据都是数字信号,而实际的执行电路很多都是模拟的。因此微机的处理结果又常常需要转换为模拟信号去驱动相应的执行单元,实现对被控对象的控制。这种把数字量转换为模拟量的设备称为数模转换器(DAC),简称D/A。 (2)实验中所用的数模转换芯片是DAC0832,它是由输入寄存器、DAC 寄存器和D/A 转换器组成的CMOS 器件。其特点是片内包含两个独立的8 位寄存器,因而具有二次缓冲功能,可以将被转换的数据预先存在DAC 寄存器中,同时又采集下一组数据,这就可以根据需要快速修改DAC0832 的输出。 2、模数转换: (1)在工程实时控制中,经常要把检测到的连续变化的模拟信号,如温度、压力、速度等转换为离散的数字量,才能输入计算机进行处理。实现模拟量到数字量转换的设备就是模数转换器(ADC),简称A/D。

(2)模数转换芯片的工作过程大体分为三个阶段:首先要启动模数转换过程。其次,由于转换过程需要时间,不能立即得到结果,所以需要等待一段时间。一般模数转换芯片会有一条专门的信号线表示转换是否结束。微机可以将这条信号线作为中断请求信号,用中断的方式得到转换结束的消息,也可以对这条信号线进行查询,还可以采用固定延时进行等待(因为这类芯片转换时间是固定的,事先可以知道)。最后,当判断转换已经结束的时候,微机就可以从模数转换芯片中读出转换结果。 (3)实验采用的是8 路8 位模数转换器ADC0809 芯片。ADC0809 采用逐次比较的方式进行A/D 转换,其主要原理为:将一待转换的模拟信号与一个推测信号进行比较,根据推测信号是大于还是小于输入信号来决定增大还是减少该推测信号,以便向模拟输入逼近。推测信号由D/A 转换器的输出获得,当推测信号与模拟信号相等时,向D/A 转换器输入的数字就是对应模拟信号的数字量。ADC0809 的转换时间为64 个时钟周期(时钟频率500K 时为128S)。分辨率为 8 位,转换精度为±LSB/2,单电源+5V 供电时输入模拟电压范围为04.98V。 四、实验内容 1、把DAC0832 的片选接偏移为10H 的地址,使用debug 命令来测试 DAC0832 的输出,通过设置不同的输出值,使用万用表测量Ua 和Ub 的模拟电压,检验DAC0832 的功能。选取典型(最低、最高和半量程等)的二进制值进行检验,记录测得的结果。实验结果记录如下:

数模混合设计实验报告

数模混合设计 实验报告 作者:竹叶听筝 时间:2012年12月05日课程题目:声光报警系统

摘要:声光报警器在实际的生活中可以见到许多,运用于生活的许多方面。声光报警电路可作为防盗装置,在有情况时它通过指示灯闪光和蜂鸣器鸣叫,同时报警。声光报警器可用在危险场所,通过声音和光信号向人们发出示警信息。 Abstract: sound and light alarm can be seen in real life many, used in many aspects of life. Sound and light alarm circuit can be used as anti-theft device, when it lights flash and buzzer tweet, alarm at the same time. Sound and light alarms can be used in hazardous locations, issued a warning to people through sound and light signals. 关键词:报警器声音光信号示警 1、设计原理 根据设定的基准报警电压。当输入电压超出报警值时发出声和光报警信号。当输入电压信号减小恢复到报警值以下时,要求有一定的回程余量才能撤销报警信号。也就是要实现电压信号的迟滞比较功能。LED灯闪烁,蜂鸣器报警。 2、方案比较 方案一:通过单片机控制进行AD采样计算,当采样电压超过,设定输入电压时,通过单片机控制LED闪烁,蜂鸣器报警,当输入电压小于设定Vh电压时,单片机撤销报警信号。此方案性能稳定,思路清晰,但性价比不高,涉及微处理器,以及软件编程,开发难度较大。 方案二:采用LM311滞回比较器,比较输入电压值,当大于设定电压时,比较器输出端为高电平,通过光电耦合器,进行传递信号,通过555定时器输出1HZ频率脉冲,是LED灯闪烁,同时蜂鸣器报警,当输入电压小于阈值电压时,LM311输入低电平,撤销报警信号。此方案采用纯硬件方法实现神声光报警,具有成本低,调试容易且通过光耦合器进行数字电路和模拟电路的隔离,同样也具有较高的稳定性。三、系统总体方案描述

微机原理及其应用报告数模转换器DAC0832双缓冲输出设计

本科生实验报告 实验名称:数模转换器DAC0832双缓冲输出设计 一、实验目的 1)了解DAC0832芯片引脚、内部结构及工作原理; 2)掌握应用单片机I/O 端口控制DAC0832实现数模转换的方法; 3)掌握DAC0832单缓冲和双缓冲控制技术及编程设计方法; 二、实验原理 DAC0832是8位分辨率的数模转换集成芯片,内部采用倒T 形网络,电流型 输出模式,电流输出稳定时间为1us ,采用单电源供电。 片内部由一个8位输入锁存器、一个8位DAC 寄存器和一个8位D/A 转换器构成,内部具有双缓冲结构,可以实现单缓冲、双缓冲数字输入。 双缓冲同步控制方式 : 针对多个模拟量需要同时输出的控制系统,可以采用双缓冲同步控制方式。D/A 转换数据的输入锁存和D/A 转换输出分两步完成。首先,CPU 分时向各路D/A 转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后,CPU 同时对所有D/A 转换器发出输入所存数据打入DAC 寄存器的控制信号,即可实现 VREF IOUT2 IOUT1 DGND VCC AGND RFB

多通道的同步模拟量数据输出。 应用双缓冲方式,可以在输出模拟信号的同时采集下一个数字量,有效地提高转换速度。另外,可以在多个D/A转换器同时工作时,利用双缓冲模式实现多路D/A的同步输出。 三、实验内容 通过单片机I/O端口控制两路DAC0832实现数模转换,控制方式采用双缓冲控制方式。 1.阅读理解双缓冲控制电路图,分析双缓冲模式下DAC0832与单片机接口电路的设计及两次DA转换实验在控制电路上的异同。 2.设计程序,实现双缓冲模式下DA转换的同步输出。 首先,CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后,通过按键控制,同时对两个DAC0832锁存数据进行数模转换,同步产生三角波、正弦波模拟输出信号。 四、实验过程 1,实验原理图 2,实验源程序 #include sbit DAC1_WR1=P2^0; sbit DAC2_WR1=P2^1; sbit DAC_SW1=P2^2; sbit DAC_SW2=P2^3;

电路综合设计实验-设计实验2-实验报告

设计实验2:多功能函数信号发生器 一、摘要 任意波形发生器是不断发展的数字信号处理技术和大规模集成电路工艺孕育出来的一种新型测量仪器,能够满足人们对各种复杂信号或特殊信号的需求,代表了信号源的发展方向。可编程门阵列(FPGA)具有高集成度、高速度、可重构等特性。使用FPGA来开发数字电路,可以大大缩短设计时间,减小印制电路板的面积,提高系统的可靠性和灵活性。 此次实验我们采用DE0-CV开发板,实现函数信号发生器,根据按键选择生产正弦波信号、方波信号、三角信号。频率范围为10KHz~300KHz,频率稳定度≤10-4,频率最小不进10kHz。提供DAC0832,LM358。 二、正文 1.方案论证 基于实验要求,我们选择了老师提供的数模转换芯片DAC0832,运算放大器LM358以及DE0-CV开发板来实现函数信号发生器。 DAC0832是基于先进CMOS/Si-Cr技术的八位乘法数模转换器,它被设计用来与8080,8048,8085,Z80和其他的主流的微处理器进行直接交互。一个沉积硅铬R-2R 电阻梯形网络将参考电流进行分流同时为这个电路提供一个非常完美的温度期望的跟踪特性(0.05%的全温度范围过温最大线性误差)。该电路使用互补金属氧化物半导体电

流开关和控制逻辑来实现低功率消耗和较低的输出泄露电流误差。在一些特殊的电路系统中,一般会使用晶体管晶体管逻辑电路(TTL)提高逻辑输入电压电平的兼容性。 另外,双缓冲区的存在允许这些DAC数模转换器在保持一下个数字词的同时输出一个与当时的数字词对应的电压。DAC0830系列数模转换器是八位可兼容微处理器为核心的DAC数模转换器大家族的一员。 LM358是双运算放大器。内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358的封装形式有塑封8引线双列直插式和贴片式。 本次实验选用的FPGA是Altera公司Cyclone系列FPGA芯片。Cyclone V系列器件延续了前几代Cyclone系列器件的成功,提供针对低成本应用的用户定制FPGA特性,支持常见的各种外部存储器接口和I/O协议,并且含有丰富的存储器和嵌入式乘法器,这些内嵌的存储器使我们在设计硬件电路时省去了外部存储器,节省了资源,而

单片机AD模数转换实验报告

一、实验目的和要求 1、掌握单片机与ADC0809的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 二、设计要求。 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。 2、在0809的某一模拟量输入通道上接外部模拟量。 3、在单片机的外部扩展数码管显示器。 4、分别采用延时和查询的方法编写A/D转换程序。 5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。 三、电路原理图。 图1、电路仿真图

四、实验程序流程框图和程序清单。 1、 查询法: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: MOV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码 送位选信号延时1ms 熄灭第四位数码管 延时1ms 返回

数模转换器和模数转换器实验报告

实验报告 课程名称微机原理与接口技术 实验项目实验五 数/模转换器和模/数转换器实验实验仪器 TPC-USB通用微机接口实验系统 系别计算机系 专业网络工程 班级/学号 学生 _ 实验日期 成绩_______________________ 指导教师王欣

实验五数/模转换器和模/数转换器实验 一、实验目的 1. 了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法。 2. 了解模/数转换器的基本原理,掌握ADC0809的使用方法。 二.实验设备 1.PC微机系统一套 2.TPC-USB通用微机接口实验系统一套 三.实验要求 1.实验前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。 2.熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)使用方法。在程序调试过程中,有意识地了解并掌握TPC-USB通用微机接口实验系统的软硬件环境及使用,掌握程序的调试及运行的方法技巧。 3.实验前仔细阅读理解教材相关章节的相关容,实验时必须携带教材及实验讲义。 四.实验容及步骤 (一)数/模转换器实验 1.实验电路原理如图1,DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub),编程产生以下锯齿波(从Ua和Ub输出,用示波器观察) 图1 实验连接参考电路图之一 编程提示: 1. 8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:

(UREF表示参考电压,N表示数数据),这里的参考电压为PC机的+5V电源。 2. 产生锯齿波只须将输出到DAC0832的数据由0循环递增。 3. 参考流程图(见图2): 图2 实验参考流程图之一 (二)模/数转换器 1. 实验电路原理图如图3。将实验(一)的DAC的输出Ua,送入ADC0809通道1(IN1)。 图3 实验连接参考电路图之二 2. 编程采集IN1输入的电压,在屏幕上显示出转换后的数据(用16进制数)。编程提示: 1. ADC0809的IN0口地址为298H,IN1口地址为299H。 2. IN0单极性输入电压与转换后数字的关系为:

Multisim数字电路和模拟电路实验报告

昆明理工大学(MultiSim)实验报告 实验名称:模拟电路和数字电路 实验时间:2014 年9 月11 日 专业:指导教师: 姓名: 学号:成绩:教师签名: 一、实验目的: 了解ADC和DAC的作用,连接方法等。学会让信号实现可视化,把可视化的信号转换为模拟信号。 二、实验内容: 模数转换

数模转换 数模模数转换

电压检测 三、实验步骤: 1.连接电路 2.调试电路 3.调节滑动变阻器,观察信号不同的变化。 出师表 两汉:诸葛亮 先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。 宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。 侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。 将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。 亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。 臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。

串行数模转换器TLC5615引脚,特点,功能及应用电路

串行数模转换器TLC5615引脚,特点,功能及应用电路 1 TLC5615串行数模转换器简介 TLC5615为美国德州仪器公司1999年推出的产品,是具有串行接口的数模转换器,其输出为电压型,最大输出电压是基准电压值的两倍。带有上电复位功能,即把DAC寄存器复位至全零。TLC5615性能价格比高,目前在国内市场很方便购买。 1.1 TLC5615的特点 (1)10位CMOS电压输出; (2)5V单电源供电; (3)与CPU三线串行接口; (4)最大输出电压可达基准电压的二倍; (5)输出电压具有和基准电压相同极性; (6)建立时间12 5μs; (7)内部上电复位; (8)低功耗,最大仅1 75mW。 1.2 TLC5615引脚说明 TLC5615有小型和塑料DIP封装,DIP封装的TLC5615芯片引脚排列如图1所示。 图1TLC5615引脚排列图 引脚功能说明如下: ——脚1DIN:串行数据输入端; ——脚2SCLK:串行时钟输入端; ——脚3CS:芯片选用通端,低电平有效;

——脚4DOUT:用于级联时的串行数据输出端; ——脚5AGND:模拟地; ——脚6REFIN:基准电压输入端; 1.3 TLC5615的时序分析 TLC5615的时序如图2所示。 图2TLC5615的时序图 由时序图可以看出,当片选CS为低电平时,输入数据DIN由时钟SCLK同步输入或输出,而且最高有效位在前,低有效位在后。输入时SCLK的上升沿把串行输入数据DIN移入内部的16位移位寄存器,SCLK的下降沿输出串行数据DOUT,片选CS的上升沿把数据传送至DAC寄存器。 当片选CS为高电平时,串行输入数据DIN不能由时钟同步送入移位寄存器;输出数据DOUT 保持最近的数值不变而不进入高阻状态。由此要想串行输入数据和输出数据必须满足两个条件:第一时钟SCLK的有效跳变;第二片选CS为低电平。这里,为了使时钟的内部馈通最小,当片选CS为高电平时,输入时钟SCLK应当为低电平。 串行数模转换器TLC5615的使用有两种方式,即级联方式和非级联方式。如不使用级联方式,DIN只需输入12位数据。DIN输入的12位数据中,前10位为TLC5615输入的D/A 转换数据,且输入时高位在前,低位在后,后两位必须写入数值为零的低于LSB的位,因为TLC5615的DAC输入锁存器为12位宽。如果使用TL5615的级联功能,来自DOUT的数据需要输入16位时钟下降沿,因此完成一次数据输入需要16个时钟周期,输入的数据也应为16位。输入的数据中,前4位为高虚拟位,中间10位为D/A转换数据,最后2位为低于LSB的位即零。 2 TLC5615应用电路实例 图3给出了在开关电源中,TLC5615和AT89C51单片机的接口电路。在电路中,AT89C51单片机的P3.0-P3.2分别控制TLC5615的片选CS,串行时钟输入SCLK和串行数据输入DIN。电路的连接采用非级联方式。根据开关电源的设计要求,可变基准电压范围为0V~4V。因此,TLC5615的基准电压选为2.048V,其最大模拟输出电压为4.096V。可满足开关电源的要求。

单片机AD模数转换实验报告

单片机AD模数转换实验报告

一、实验目的和要求 1、掌握单片机与ADC0809的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 二、设计要求。 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。 2、在0809的某一模拟量输入通道上接外部模拟量。 3、在单片机的外部扩展数码管显示器。 4、分别采用延时和查询的方法编写A/D 转换程序。 5、启动A/D转换,将输入模拟量的转换

结果在显示器上显示。 三、电路原理图。 图1、电路仿真图 四、实验程序流程框图和程序清单。 1、查询法: ORG 0000H START: LJMP MAIN ORG 0100H

MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: M OV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码送位选信号延时1ms 熄灭第四位数码管延时1ms 返回

数模及模数转换电路设计问答

ADC/DAC设计经典问答 (上) 1. 什么是小信号带宽(SSBW)? 小信号带宽(Small Signal Bandwidth (SSBW))是指在指定的幅值输入信号及特定的频率下,它的输出幅值比低频时的输出幅值下降指定值时,该特定频率为小信号带宽。 2. 什么是共模电压(VCM)? 共模电压(Common Mode Voltage (VCM ))是差动输入的两个引脚上相同的直流输入电压。 3. 什么是MSB(最高有效位)? MSB(最高有效位(Most Significant Bit)),是具有最大的值或权重的位。它的值是满量程的一半。 4. 什么是采样(孔径)延时? 采样(孔径)延时(Sampling (Aperture) Delay)是时钟输入的后边缘到采样开关打开所需的时间。采样/保持电路有效地停止输入信号捕获,并进入“保持”模式,确定时钟延时后的采样。 5. 什么是满量程(FS)输入范围? 满量程输入范围(Full Scale Input Range),是指模数转换器上数字化的输入电压的输入范围,既不低于这个范围也不超过这个范围。比如V REF + = 3.5V 和VREF - = 1.5V, FS = (VREF + )-(VREF - ) = 2.0V。 6. 什么是时钟占空比? 时钟占空比(Clock Duty Cycle)是时钟波形高电平时间和一个时钟周期总时间的比值。 7. 什么是位的有效数(ENOB ,或有效位)? 位的有效数(ENOB ,或有效位)(Effective Number of Bits (ENOB, 或Effective Bits))是信噪比和失真的比率,或SINAD的另一种表达方法。ENOB定义为(SINAD -1.76)/ 6.02,这个位数(ENOB)表示转换器是与理想的模数转换器等效。 8. 什么是增益误差? 增益误差是在第一个代码和最后一个代码发生转换时,实际输人电压与理想输人电压之差。即,这个差值是:满量程- 2 LSB。 9. 许多模数转换器在数据手册中提供的应用,在Va, Vd 和Vref引脚上出现了三个电容。这三个电容器都是必须的吗?

数模转换方法和电路与设计方案

本技术公开了一种数模转换方法和电路,所述方法包括如下步骤:对通过输入接口的串行数据进行解码,获得并行解码数据;基于FPGA程序将所述并行解码数据进行转换后输出给数模DA转换芯片;对所述DA转换芯片输出的数据信号调整后进行模拟输出。本技术方法实现了在现有传统红外光谱测试设备基础上对数字化输出进行转换,变为传统的输出形式,从而实现利用现有设备来进行测试,取得了积极的技术效果。 权利要求书 1.一种数模转换方法,其特征在于,所述方法包括如下步骤: 对通过输入接口的串行数据进行解码,获得并行解码数据; 基于FPGA程序将所述并行解码数据进行转换后输出给数模DA转换芯片; 对所述DA转换芯片输出的数据信号调整后进行模拟输出。 2.如权利要求1所述的方法,其特征在于,所述并行解码数据,包括:标准并行数据和时钟信号。 3.如权利要求2所述的方法,其特征在于,所述基于FPGA程序将所述并行解码数据进行转换后输出给DA转换芯片,包括: 在帧率低于给定阈值的情况下,基于FPGA程序将所有所述标准并行数据进行转换后输出给DA转换芯片; 在帧率高于给定阈值的情况下,基于FPGA程序选取指定位数的标准并行数据进行转换后输出给DA转换芯片。 4.如权利要求3所述的方法,其特征在于,所述基于FPGA程序将所述并行解码数据进行转换后输出给DA转换芯片,还包括: 将FPGA降频至所述DA转换芯片可转换的时钟范围,并将帧起始信号、行起始信号和所述时钟信号经过隔离后进行信号输出。 5.如权利要求4所述的方法,其特征在于,所述对所述DA转换芯片输出的数据信号调整后进行模拟输出,包括: 通过运放电路对所述DA转换芯片输出的数据信号进行输出范围调节和驱动增强后进行模拟输出。 6.一种数模转换电路,其特征在于,所述电路包括: 图像解码电路,用于对通过输入接口的串行数据进行解码,获得并行解码数据;

模 数(A D)转换器(微机实验报告)

模/数(A/D)转换器 一、实验目的 1、掌握ADC0809模数转换芯片与计算机的连接方法; 2、了解ADC0809芯片的功能及编程方法; 3、了解计算机如何进行数据采集。 二、实验设备 1、PC机一台 2、TPC-H微机接口实验系统实验箱一台 3、连接导线若干 三、实验内容 1、实验电路原理图如图1。 ADC0809是8位A/ D转换器,每采集一次一般需100 s。由于ADC0809 A/ D转换器转换结束后会自动产生EOC信号(高电平有效)。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。启动IN0开始转换: O 298, 0 读取转换结果: I 298 图1 模数转换电路 2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。 3、将JP3的1、2短接,使IN1处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。 四、编程提示

1、ADC0809的IN0口地址为298H,IN1口地址为299H。 2、IN0单极性输入电压与转换后数字的关系为: 其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。 3、一次A/D转换的程序可以为 MOV DX,口地址 OUT DX,AL ;启动转换 ;延时 IN AL,DX ;读取转换结果放在AL 五、参考流程图 图2 流程图1

图3 流程图2 六、实验源程序 code segment assume cs:code start: mov dx,298h ;启动A/D转换器 out dx,al mov cx,0ffh ;延迟 delay: loop delay in al,dx ;从A/D转换器输入数据 mov bl,al ;将Al保存到BL mov cl,4 shr al,cl ;将AL右移四位 call disp ;将显示子程序显示其高四位 mov al,bl

微机原理及其应用报告:数模转换器DAC0832双缓冲输出设计

本科生实验报告 实验名称:数模转换器DAC0832双缓冲输出设计 一、实验目的 1)了解DAC0832芯片引脚、内部结构及工作原理; 2)掌握应用单片机I/O端口控制DAC0832实现数模转换的方法; 3)掌握DAC0832单缓冲和双缓冲控制技术及编程设计方法; 二、实验原理 DAC0832是8位分辨率的数模转换集成芯片,内部采用倒T形网络,电流型输出模式,电流输出稳定时间为1us,采用单电源供电。 片内部由一个8位输入锁存器、一个8位DAC寄存器和一个8位D/A转换器构成,内部具有双缓冲结构,可以实现单缓冲、双缓冲数字输入。 双缓冲同步控制方式: 针对多个模拟量需要同时输出的控制系统,可以采用双缓冲同步控制方式。D/A转换数据的输入锁存和D/A转换输出分两步完成。首先,CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后,CPU同时对所有D/A转换器发出输入所存数据打入DAC寄存器的控制信号,即可实现

多通道的同步模拟量数据输出。 应用双缓冲方式,可以在输出模拟信号的同时采集下一个数字量,有效地提高转换速度。另外,可以在多个D/A转换器同时工作时,利用双缓冲模式实现多路D/A的同步输出。 三、实验内容 通过单片机I/O端口控制两路DAC0832实现数模转换,控制方式采用双缓冲控制方式。 1.阅读理解双缓冲控制电路图,分析双缓冲模式下DAC0832与单片机接口电路的设计及两次DA转换实验在控制电路上的异同。 2.设计程序,实现双缓冲模式下DA转换的同步输出。 首先,CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后,通过按键控制,同时对两个DAC0832锁存数据进行数模转换,同步产生三角波、正弦波模拟输出信号。 四、实验过程 1,实验原理图 2,实验源程序 #include sbit DAC1_WR1=P2^0; sbit DAC2_WR1=P2^1; sbit DAC_SW1=P2^2; sbit DAC_SW2=P2^3;

模数转换实验报告

单片机控制ADC0809的模数转换与显示 一、实验内容和要求 本题目对单片机控制ADC0809(Proteus的元件库中没有ADC0809,用ADC0808来代替)的通道3的电压模拟量进行模数转换,转换为数字量后,显示在3位数码管上。调节图中的电位器,可观察到数码管显示的电压值在变化。 二、实验主要仪器设备和材料 计算机一台 三、实验方法、步骤及结果测试 所有操作都在ISIS中进行,步骤如下。 (一)、Proteus电路设计 1.从Proteus库中选取元器件 (1)AT89C51:单片机; (2)RES:电阻; (3)7SEG-MAPX4-CC-BLUE (4)CAP、CAP-ELEC:电容、电解电容 (5)CRYSTAL:晶振; (6)BUTTON:开关 (7)BUTTON (8)ADC0808 (9)POT-HG (10)LED-YELLOW (11)MAX7219 (12)RESONATOR 2.放置元器件、放置电源和地、连线、元器件属性设置、电气检测 所有操作都在ISIS中进行 完成的电路图设计如图

(二)、源程序设计 1、流程图 2、通过Keil u Vision4建立工程,再建立源程序文件

源程序如下 主机程序: LED_0 EQU 30H LED_1 EQU 31H LED_2 EQU 32H ADC EQU 35H CLOCK BIT P2.4 ST BIT P2.5 EOC BIT P2.6 OE BIT P2.7 ORG 00H SJMP START ORG 0BH LJMP INT_T0 START: MOV LED_0, #00H MOV P2,#0FFH MOV LED_1,#00H MOV LED_2,#00H MOV DPTR,#TABLE MOV TMOD,#02H ;设置定时器工作方式2 MOV TH0,#245 MOV TL0,#00H MOV IE,#82H ;开总中断和定时器0中断 SETB TR0 ;启动定时器0 WAIT: CLR ST SETB ST CLR ST JNB EOC,$ ;判断A/D转换结束否 SETB OE ;允许数据量输出 MOV ADC,P3 CLR OE MOV A,ADC MOV B,#51 DIV AB MOV LED_2, A MOV A,B MOV B,#5 DIV AB MOV LED_1, A MOV LED_0, B LCALL DISP ;跳至显示子程序 SJMP WAIT

数电实验报告11 DA、AD转换原理及应用

实验报告 实验十一D/A、A/D转换原理及应用 2.11.1实验目的 (1)掌握D/A、A/D变换的工作原理。 (2)掌握D/A、A/D转换器DAC0832和A/D转换器ADC0809的使用方法。 2.11.2实验仪器与器件 实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。 D/A转换器DAC0832;A/D转换器ADC0809。 2.11.3实验原理 1.D/A转换器 D/A转换器可将输入的数字信号转变为与此数值成正比的模拟电压或电流。 (1)二进制加权电阻网络D/A转换器。图示为4位加权电阻网络D/A转换器的原理图。它由加权电阻网络、4个电子开关和1个求和放大器组成。 (2)倒T型电阻网络转换器。加权电阻网络的缺点是阻值种类多,当转换位数较多时,阻值的变化范围很宽,难以准确选择。采用倒T型网络可适当解决这个问题。 (3)D/A转换器DAC0832。DAC0832是用CMOS工艺制成的单片式8位数模转换器。 2.A/D转换器 A/D模数转换器可将模拟信号转换成数字信号。ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。 2.11.4实验任务 (1)用DAC0832实现D/A转换。按图2-11-8连接电路,改变DAC0832输入数据,将测得的输出电压填入表2-11-1中。

表2-11-1: 数据输入仿真输出实验输出K8 K7 K6 K5 K4 K3 K2 K1 V OUT V OUT 0 0 0 0 0 0 0 0 7mV 9mV 0 0 0 0 0 0 0 1 21.5mV 21mV 0 0 0 0 0 0 1 0 42.3mV 41mV 0 0 0 0 0 1 0 0 83.5mV 81mV 0 0 0 0 1 0 0 0 165.6mV 160.3mV 0 0 0 1 0 0 0 0 330.1mV 319mV 0 0 1 0 0 0 0 0 659mV 636mV 0 1 0 0 0 0 0 0 1.371V 1.272mV 1 0 0 0 0 0 0 0 2.634V 2.545mV (2)用ADC0809实现A/D转换。按图2-11-9连接电路。请按表2-11-2的要求进行实验,并将结果按参考电压为5V和5.12V分别填入表2-11-2中。如果ADDA、ADDB、ADDC连接成010.,那么模拟输入电压应从哪个引脚输入?

实验十ADC0832数模转换的显示

实验报告十 实验名称:ADC0832数模转换的显示 目的:ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。ADC0832采用串行通信方式,通过DI 数据输入端进行通道选择、数据采集及数据传送。8位的分辨率(最高分辨可达256级),可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。 ADC0832的工作原理: 正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时使用并与单片机的接口是双向的,所以在I/O口资源紧张时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟(CLK)输入端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第二、三个脉冲下沉之前DI端应输入两位数据用于选择通道功能。 通道地址通道 工作方式说明 SGL/DIF ODD/SIGN 0 1 0 0 + - 差分方式 0 1 - + 1 0 + 单端输入方式 1 1 + 表1:通道地址设置表 如表1所示,当此两位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当两位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当两位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第三个脉冲的下降之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下降沿开始由DO端输出转换数据最高位Data7,随后每一个脉冲的下降沿DO端输出下一位数据。直到第11个脉冲时发出最低位数据Data0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下降沿输出Data0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D 转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。时序说明请参照图4。

单片机AD模数转换实验报告

、实验目的和要求 1掌握单片机与 ADC0809的接口设计方法 2、掌握Proteus 软件与Keil 软件的使用方法 二、设计要求。 1、 用Proteus 软件画出电路原理图, 在单片机的外部扩展片外三总线, 总线 与0809接口。 2、 在0809的某一模拟量输入通道上接外部模拟量。 3、 在单片机的外部扩展数码管显示器。 4、 分别采用延时和查询的方法编写 A/D 转换程序。 5、 启动A/D 转换,将输入模拟量的转换结果在显示器上显示。 三、电路原理图。 图1、电路仿真图 并通过片外三 n Frr inn LB LL ir~ 才 TT 2ira : 2.1边 存 10 丄 Wil 乙*TH zan.13 2.irxis Z5TS.13 2.1rt19 ricrra 1 2 1c 1 c 儿IE" jjm 3 ATI 「u rip. XTAGl; PEL. ■ .L^c

ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL RET DELAY DELAY: MOV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ RET R5, DL1 WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9 H,0A4H,0B0 1、 BH 四、实验程序流程框图和程序清单。 查询法: 屈刎D 判断P :L 3 4 从ND 中取数抑 数据处理 调显示了函数 display 丁 送百分位字符代码 送位选信号 延时1ms 送十分位字符代码 送位选信号 延时1ms 送个位及小数点字符代码 送位选信号 延时1ms 熄灭第四位数码管 延时1ms 返回

相关文档
最新文档