单片机数模转换1

合集下载

单片机数模转换器DAC0832设计实验报告(附程序)

单片机数模转换器DAC0832设计实验报告(附程序)

实验名称:数模转换器DAC0832设计实验学生姓名:xx 学号:xx 班级:测控xx班时间:课程名称:微机机原理及应用教师:成绩:一、实验目的1)了解DAC0832芯片引脚、内部结构及工作原理;2)掌握应用单片机I/O端口控制DAC0832实现数模转换的方法;二、实验内容1. 通过单片机I/O端口控制DAC0832实现数模转换,控制方式采用单缓冲方式,通过按键TRI/SIN选择输出,分别产生锯齿波、方波、正弦波。

1)绘制DAC0832与单片机接口电路原理图;2)参考PPT课件内容,设计程序,实现信号选择输出功能;2. 扩展功能:增加按键,通过按键控制调节输出信号的频率变化。

接口电路图设计参考下图所示:三、设计参考:正弦信号数据表:uchar code sine_tab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29 ,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x0 6,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c, 0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6 f,0x72,0x76,0x79,0x7c,0x80};四.实验报告①实现调频功能的中断程序:void int0() interrupt 0//外部中断0,用以控制调节延时程序次数,达到调节频率的作用{counter++; //外部中断0触发一次,延时程序调用次数加1}②延时程序:void delay(){int i;for(i=0;i<10;i++){}} //延时子程序③锯齿波程序:#include<reg51.h>sbit MR=P2^7;void main (void){int num;int j;MR=0;while(1){for(num =0; num <=255; num++){ P1=num;for(j=0;j<counter;j++)delay(); //调用延时子程序}}}运行截图:调频前:调频后:④正弦波程序#include<reg51.h>sbit MR=P2^7;void main (void){unsigned char code sine_tab[256]= //正弦波字表{0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29 ,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x0 6,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c, 0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};int num;int j;MR=0;while(1){for(num =0; num <=255; num++){ P1=sine_tab[num];for(j=0;j<counter;j++)delay(); //调用延时子程序}}}运行截图:调频前:调频后:⑤方波程序:#include<reg51.h>sbit MR=P2^7;void main (void){ int num;int j;MR=0;while(1){int b;for(num=0;num<=255;b++){if(num<128){ P1=0x00;for(j=0;j<counter;j++)//当counter小于128时,P1输出0x00对应低电平delay();}else{P1=0xFF;//当num大于或等于128时,P1输出0xFF对应高电平for(j=0;j<counter;j++)delay();}}}调频前:调频后:主程序#include<reg51.h>sbit MR=P2^7;sbit P2_0=P2^0;sbit P2_1=P2^1;int counter=0;//设置延时程序次数变量counter,调节频率unsigned char code sine_tab[256]= //正弦波字表{0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0 x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x5 1,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29, 0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x 0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06, 0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x 1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43 ,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0 x72,0x76,0x79,0x7c,0x80}; //正弦转换字符void delay(){int i;for(i=0;i<10;i++){}}//延时子程序void int0() interrupt 0//外部中断0,用以控制调节延时程序次数,达到调节频率的作用{counter++;//外部中断0触发一次,延时程序调用次数加1}void main(){int num;int j;EA=1;//中断总允许使能EX0=1;//外部中断0使能IT0=1;//外部中断0下降沿触发MR=0;//P2^7输出低电平,芯片正常工作while(1){if(P2_0==0&&P2_1==1) //P2_1为高电平,P2_0为低电平输出锯齿波{for(num=0;num<256;num++){P1=num; //P1直接输出numfor(j=0;j<counter;j++)delay(); //调用延时子程序}}if(P2_0==1&&P2_1==0)//P2_1为低电平,P2_0为高电平输出正弦波{P1=sine_tab[num];//P1端口输出正弦波字符数组for(j=0;j<counter;j++)delay(); //调用延时子程序}}if((P2_0==0&&P2_1==0)||(P2_0==1&&P2_1==1))//P2_1为低电平P2_0为低电平以及P2_1为高电平P2_0为高电平时输出矩形波for(num=0;num<256;num++){if(num<128)//当num小于128时,P1输出0x00对应低电平{P1=0x00;for(j=0;j<counter;j++)delay();}else{P1=0xFF;//当num大于或等于128时,P1输出0xFF对应低电平for(j=0;j<counter;j++)delay();}}}}五.总结在该实验的设计过程中,首先单独写出锯齿波、正弦波以及方波的程序,并写出延时程序以及外部中断0程序。

单片机c语言程序设计---DA转换实验报告

单片机c语言程序设计---DA转换实验报告

单片机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、掌握 TLC549同步串行接口的ADC模块的特性、编程原理,了解TLC5620的4种时序图以及产生波形幅度的计算方法。

2、能实现TLC549、TLC5620与MCS-51单片机的连接,分别进行数据采集和波形观测。

3、能采用Proteus ISIS软件进行串行模数转换的电路设计。

4、能运用MCS-51单片机汇编语言进行串行模数/数模转换实验的软件设计。

二.实验要求:1、将TLC549 与MCS-51单片机进行连接,利用汇编语言编写出数据采集程序,将转换的模拟电压以二进制的形式通过单片机的P0口输出显示。

1)将单片机的P0口与LED1~LED8连接起来,作为输出显示。

由于LED采用灌电流方式驱动,所以要将数据取反后再输出显示,以获得“正逻辑”效果2)利用P1口与TLC549的控制信号进行连接,TLC549的基准电压REF+端与基准电压+5V相连,将电位器的上端连接VCC、下端连接GND,抽头与TLC549的模拟输入ANIN连接。

在运行程序时,不断地调节电位器,使其抽头电压连续变化,通过LED1~LED8的状态观察ADC转换的结果。

3)运用Proteus ISIS软件完成串行模数转换实验的硬件电路设计。

4)实现KeilC与Proteus软件的联调。

2、设计软件程序,用单片机的I/O口控制TLC5620实现D/A转换,使其通道1产生一个三角波,而通道2产生一个和通道1周期、幅度均相同的方波。

1)短接B7区的电源供给跳线JP16,调节B7区的电位器W3,使其输出接线柱Verf的电压为2.6V。

2)将A2区P16、P17、T0、T1分别连接到B9区的CLK、DAT、LDAC、LOAD,将B7区Verf连接到B9区REF接线柱,短接B9区电源跳线JP13。

3)运行光盘中的相应程序,用双踪示波器的两个探头观察DACA、DACB输出的波形。

三.流水灯硬件电路图四.软件程序1. 串行模数实验程序流程图2.程序清单 1) 串行模数:SDO BIT P1.0 ;数据输出CS BIT P1.1 ;片选SCLK BIT P1.2 ;时钟ORG 8000HAJMP MAINORG 8100HMAIN: MOV SP,#60HLOOP: ACALL TLC549_ADCCPL A ;累加器A取反MOV P0,A ;数据给P0口ACALL DELAYSJMP MAINTLC549_ADC: PUSH 07HCLR A ;清零CLR SCLKMOV R6,#08H ;计数器赋初值CLR CS ;选中TLC549LOOP1:SETB SCLK ;SCLK置位,数据输出NOPNOPMOV C,SDORLC A ;累加器A循环左移CLR SCLK ;SDO=0,为读出下一位数据作准备 NOPDJNZ R6,LOOP1 ;R6-1→R6,判断R6=0SETB CS ;禁止TLC549,再次启动AD转换 SETB SCLKPOP 07HRETDELAY: PUSH 00HMOV R0,#00HDJNZ R0,$POP 00HRETEND2)串行数模:SCLA BIT P1.6SDAA BIT P1.7LOAD BIT P3.5LDAC BIT P3.4VOUTA DATA 30HVOUTB DATA 31HORG 8000HAJMP MAINORG 8100HMAIN:MOV SP,#60HNOPCLR SCLACLR SDAASETB LOADSETB LDACMOV R3,#0A2HMOV R4,#00HMOV VOUTA,#00HMOV R5,#0A2HMOV R6,#00HMOV VOUTB,#00HDACHANG:MOV R1,#01HMOV R2,VOUTALCALL DAC5620DJNZ R3,CONTINUEAMOV R3,#0A2HMOV A,R4CPL AMOV R4,ACONTINUEA:CJNE R4,#OFFH,CONTINUEB DEC R2SJMP CONTINUEC CONTINUEB:INC R2CONTINUEC:MOV VOUTA,R2MOV R1,#03HMOV R2,VOUTBLCALL DAC5620DJNC R5,CONTINUEDMOV R5,#042HMOV A,R6CPL AMOV R6,A CONTINUED:CJNE R6,#0FFH,CONTINUEE MOV R2,#OA2HSJMP CONTINUEF CONTINUEE:MOV R2,#00H CONTINUEF:MOV VOUTB,R2LJMP DACHANG DAC5620:MOV A,R1CLR SCLAMOV R7,#08HLCALL SENDBYTEMOV A,R2CLR SCLAMOV R7,#08HLCALL SENDBYTECLR LOADSETB LOADCLR LDACSETB LDACRETSENDBYTE:SETB SCLARLC AMOV SDAA,CCLR SCLADJNZ R7,SENDBYTE RETEND五.实验结果观察实验结果,可知道通过调节电位器,数字量在对应的发生改变。

基于单片机片内dac数模转换器的产生正弦波信号的应用编程

基于单片机片内dac数模转换器的产生正弦波信号的应用编程

基于单片机片内dac数模转换器的产生正弦波信号的应用编程在基于单片机的应用中,使用片内DAC(数模转换器)产生正弦波信号是一个常见的需求。

下面是一个基本的步骤和代码示例,展示了如何使用单片机和DAC来生成正弦波信号。

步骤概览1. 配置单片机:初始化单片机,配置DAC和其他必要的硬件。

2. 计算正弦波数据:根据所需的频率和幅度,计算正弦波的样本值。

3. 发送数据到DAC:将计算出的样本值发送到DAC以生成正弦波。

示例代码(伪代码)```cinclude <>include <>define SAMPLE_RATE 44100 // 采样率,可以根据需要调整define FREQUENCY 440 // 频率,单位Hzdefine PI // 圆周率define MAX_AMPLITUDE 1023 // DAC的最大幅度,根据DAC规格调整// 初始化DAC和其他硬件void init_hardware() {// ...}// 计算正弦波样本值int calculate_sine_wave(int sample_number) {double angle = 2 PI sample_number / SAMPLE_RATE;return (int)(MAX_AMPLITUDE sin(angle)); // 返回-MAX_AMPLITUDE 到 MAX_AMPLITUDE 的值}// 主函数int main() {init_hardware(); // 初始化硬件for (int sample_number = 0; sample_number < SAMPLE_RATE; sample_number++) {int sine_wave_sample = calculate_sine_wave(sample_number); // 计算正弦波样本值// 将sine_wave_sample发送到DAC以生成正弦波// ...}return 0;}```注意事项硬件配置:具体配置单片机和DAC的代码取决于你所使用的硬件平台和开发环境。

单片机vdda供电

单片机vdda供电

单片机VDDA供电单片机中,VDDA(Voltage at the Digital to Analog Converter)通常是模拟电压供电引脚,用于提供模拟电压给数字模拟转换器(DAC)或其他模拟电路。

单片机的VDDA供电是整个芯片正常工作的关键之一。

下面将详细讨论单片机VDDA供电的相关方面。

1.VDDA的基本概念1.1 数字和模拟电源单片机通常需要两种不同的电源:数字电源(VDD)和模拟电源(VDDA)。

VDD主要供给数字电路,而VDDA则主要用于模拟电路,如ADC(模数转换器)和DAC。

1.2 模拟电路的需求VDDA通常用于模拟部分的电源,以确保模拟电路的精确性和稳定性。

ADC和DAC是模拟电路的关键组成部分,它们需要稳定的模拟电源来实现精确的模数转换和数模转换。

2.VDDA供电的重要性2.1 精准模数转换ADC是单片机中的一个重要功能,用于将模拟信号转换为数字信号。

VDDA的稳定供电对于实现高精度和准确的模数转换至关重要。

2.2 数模转换DAC用于将数字信号转换为模拟信号。

VDDA的稳定性直接影响DAC的性能,尤其是输出的精确性和稳定性。

3.VDDA供电电路3.1 过滤和稳压VDDA通常需要通过过滤电路和稳压器来提供稳定的电源。

这有助于降低电源噪声,确保ADC和DAC在工作时获得稳定的模拟电源。

3.2 外部元件外部元件如电容器、电感等也可能用于帮助提供稳定的VDDA电源。

4.VDDA供电设计考虑因素4.1 电源噪声电源噪声可能对模拟电路产生不良影响。

因此,设计VDDA供电电路时需要考虑如何降低电源噪声。

4.2 稳定性VDDA供电电路的稳定性直接影响到ADC和DAC的性能。

因此,在设计中需要确保VDDA电源的稳定性,尽量减小电源波动和漂移。

5.VDDA的实际应用5.1 数据手册和参考设计在单片机的数据手册和参考设计中,通常会提供有关VDDA供电的详细信息,包括推荐的供电电路和稳压器的选择。

单片机实现5v电压ad数模转换

单片机实现5v电压ad数模转换

Stc12c5a60s2系列单片机的A/d数模转换模块实验摘要:与时间成连续函数的物理量,一般都称之为模拟量。

人们在工业生产及科研过程中遇到的被测量绝大部分是模拟量。

例如:电压,电流,温度,压力,位移,速度等。

计算机技术是测量与控制自动化与智能化的关键,是现代测控技术的核心技术之一。

现代计算机是数字计算机,它无法直接处理模拟信号,因此欲实现基于计算机的测量与控制,必须具备将连续变化的模拟信号转变成计算机能够识别及处理的数字信号的手段。

为此模/数转换技术应运而成,并成为现代测控技术中的重要组成部分。

将模拟量转换为一定码制的数字量称为模/数转换。

Stc12c5a60s2系列单片机作为微型控制芯片的一种,其自身自带a/d装换口:P1(p1.0-p1.7),可实现数模转换功能。

实验目的:以Stc12c5a60s2单片机以及1602液晶显示屏做一个简易的”电压测量器“,测量线性稳压电源提供的直流电压,精度0.01v,通过调节电位器,将输入的电压转换为数字量实时显示在1602lcd上。

实现过程:1.理论学习:(1)在掌握1602lcd工作原理及使用方法的基础上,查阅Stc12c5a60s2单片机数模转换模块应用介绍,弄清楚a/d转换器的结构,了解a/d转换器是如何工作的。

(2)理解与a/d转换器相关的寄存器的设置,会根据实际需要设置相关的寄存器。

(3)了解如何配置a/d转换口,如何取出转换结果。

以十位结果为例,计算公式如下:Vcc即单片机实际工作电压,我们用单片机工作电压做模拟参考电压,则输出的实际电压vin=result(结果寄存器中的值)×vcc(单片机工作电压5v)/1024。

2.需注意的问题:(1)Stc12c5a60s2单片机的参考电压源是输入的工作电压vcc,所以一般不用外接参考电压源,如果单片机是采用电池供电,电池电压会在一定范围内漂移,所以vcc就不固定,这时候就需要在8路a/d转换的一个通道外接一个稳定的参考电压源,来计算此时的工作电压vcc,再计算出其他几路a/d转换通道的电压。

单片机中数据类型的强制转换

单片机中数据类型的强制转换

单片机中数据类型的强制转换
在单片机中,数据类型的强制转换是指将一种数据类型转换为另一种数据类型。

常见的数据类型强制转换包括以下几种:
1. 显式强制转换:通过强制转换运算符来实现,将一种数据类型转换为另一种数据类型。

例如:(int)num 将num转换为int
类型。

2. 隐式强制转换:是指编译器自动进行的类型转换,不需要显示地使用强制转换运算符。

例如,将一个char类型数据赋值
给一个int类型变量,编译器会自动将char类型转换为int类型。

3. 整数提升:在一些运算中,如果参与运算的两个数的数据类型不一致,编译器会将较低精度的数据类型提升为较高精度的数据类型。

例如,将一个char类型和一个int类型进行运算时,编译器会将char类型提升为int类型。

4. 类型截断:当将一个较高精度的数据类型赋值给一个较低精度的数据类型时,编译器会自动进行类型截断,只保留赋值变量能表示的范围内的值。

例如,将一个int类型赋值给一个
char类型的变量,编译器会将int类型的值截断为char类型能
表示的范围。

需要注意的是,数据类型的强制转换可能导致数据的丢失或截断,因此在进行数据类型强制转换时,需要谨慎考虑数据精度的问题,避免数据错误或产生意外结果。

单片机DA与DA

单片机DA与DA

AD:模数转换,将模拟信号变成数字信号,便于数字设备处理。

DA:数模转换,将数字信号转换为模拟信号与外部世界接口。

具体可以看看下面的资料,了解一下工作原理:1. AD转换器的分类下面简要介绍常用的几种类型的基本原理及特点:积分型、逐次逼近型、并行比较型/串并行型、∑-Δ调制型、电容阵列逐次比较型及压频变换型。

1)积分型(如TLC7135)积分型AD工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。

其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。

初期的单片AD转换器大多采用积分型,现在逐次比较型已逐步成为主流。

2)逐次比较型(如TLC0831)逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。

其电路规模属于中等。

其优点是速度较高、功耗低,在低分辩率(<12位)时价格便宜,但高精度(>12位)时价格很高。

3)并行比较型/串并行比较型(如TLC5510)并行比较型AD采用多个比较器,仅作一次比较而实行转换,又称FLash(快速)型。

由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模也极大,价格也高,只适用于视频AD转换器等速度特别高的领域。

串并行比较型AD结构上介于并行型和逐次比较型之间,最典型的是由2个n/2位的并行型AD转换器配合DA转换器组成,用两次比较实行转换,所以称为Half flash(半快速)型。

还有分成三步或多步实现AD转换的叫做分级(Multistep/Subrangling)型AD,而从转换时序角度又可称为流水线(Pipelined)型AD,现代的分级型AD中还加入了对多次转换结果作数字运算而修正特性等功能。

这类AD速度比逐次比较型高,电路规模比并行型小。

4)∑-Δ(Sigma?/FONT>delta)调制型(如AD7705)∑-Δ型AD由积分器、比较器、1位DA转换器和数字滤波器等组成。

单片机ad da实验报告

单片机ad da实验报告

单片机ad da实验报告单片机AD/DA实验报告1. 引言单片机(Microcontroller)是一种集成了处理器、存储器和输入输出接口等功能的微型电子计算机系统。

作为现代电子技术的重要组成部分,单片机在各个领域都有广泛的应用。

其中,AD(模数转换)和DA(数模转换)是单片机中常见的功能模块,用于将模拟信号转换为数字信号或将数字信号转换为模拟信号。

本实验旨在通过实际操作,了解单片机AD/DA的原理和应用。

2. 实验目的通过本次实验,我们的目标是:- 理解AD/DA的基本原理和工作方式;- 掌握单片机AD/DA的编程方法;- 实现AD/DA功能的应用。

3. 实验原理AD(Analog-to-Digital)转换是将模拟信号转换为数字信号的过程。

单片机通过采样和量化的方式将连续的模拟信号转换为离散的数字信号。

DA(Digital-to-Analog)转换则是将数字信号转换为模拟信号的过程。

单片机通过将数字信号经过数值处理,再通过电压输出方式将其转换为模拟信号。

4. 实验器材本次实验所需的器材包括:- 单片机开发板;- AD/DA转换模块;- 电源供应器;- 信号发生器;- 示波器。

5. 实验步骤5.1 连接实验电路将AD/DA转换模块与单片机开发板连接,按照实验电路图进行正确的接线。

5.2 编写程序使用C语言编写单片机程序,实现AD/DA的功能。

根据实验需求,可以选择使用单片机的内部AD/DA模块,也可以通过外部模块进行扩展。

5.3 烧录程序将编写好的程序烧录到单片机开发板中,确保程序可以正常运行。

5.4 实验测量使用信号发生器产生模拟信号,并通过AD/DA转换模块输入到单片机中。

通过示波器观察和测量AD/DA转换的结果,并与理论值进行对比。

5.5 数据处理将单片机采集到的数字信号进行处理,如滤波、放大等操作,再通过DA转换模块输出为模拟信号。

通过示波器观察和测量输出信号的波形和特性。

6. 实验结果与分析通过实验测量和数据处理,我们可以得到AD/DA转换的结果。

单片机与数模及模数转换接口

单片机与数模及模数转换接口
5
单缓冲方式的接口(1)
——一个处于直通方式,另一个处于受控的锁存方式
译码器输出
6
单缓冲方式的接口(2)
——两个输入寄存器同时受控的方式
“同时”做何解释?
7
单缓冲方式的应用
——产生锯齿波
假定采用接口(1)方式,即输入寄存器受控,而DAC寄存器直通, 输入寄存器地址为E000H,产生锯齿波。
源程序清单如下: ORG 0200
21
3. 当单片机启动 ADC0809 进行模 / 数转换时,应采用( )指令。 A. MOV A , 20H B. MOVX A , @DPTR C. MOVC A , @A+DPTR D. MOVX @DPTR , A 4. A/D转换通常采用( )方式。 A. 中断方式 B. 查询方式 C. 延时等待方式 D. 中断、查询和延时等待
典型芯片—ADC0809介绍
ADC0809是一个8位8通道的AD转换器。
14
ADC0809功能分析
转换有以下几步:
1. ALE信号上升沿有 效,锁存地址并 选中相应通道。 2. ST信号有效,开 始转换。A/D转换 期间ST为低电平。 3. EOC信号输出高电 平,表示转换结 束。 4. OE信号有效,允 许输出转换结果。 CLK:时钟信号,可由单片机ALE信号分 频得到。 15
D/A转换
控制对象
D/A转换器的主要指标
转换速度:一般几十微秒到几百微秒,快速的可达1微秒。
转换精度(分辨率):决定于输入数字量的位数,位数越多, 精度越高。 3
典型芯片-DAC0832介绍
DAC0832是一个八位D/A转换器,转换时间1微秒,结构如下: 可输 转出 换为 为模 电拟 压电 。流 , LE1或LE2=1,当前寄存器的输出跟随输入 LE1或LE2=0,锁存数据

基于51单片机实现ADC0808数模转换与显示

基于51单片机实现ADC0808数模转换与显示

基于51单片机实现ADC0808数模转换与显示LT摘要通过上学期对数据采集的学习,让我对A/D转化器有了一定的了解.A/D转换器是把采集到的采样模拟信号量化和编码后,转换成数字信号并输出的一种器件.而现在A/D转换电路已集成在一块芯片上.本课程设计采用芯片是ADC0808.ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

本课程设计以AT89C51单片机为核心,实现ADC0808的数模转换与显示,然后把转换后的结果显示在数码管上。

关键字:数据采集,A/D转化器,ADC0808,逐次逼近式,单片机目录一、设计目的 (1)二、设计要求和设计指标 (1)三、设计内容 (1)3.1 芯片简介 (1)3.1.1 A/D转换模块 (1)3.1.2 AT89C51单片机的结构原理与引脚功能 (4)3.2电路设计 (7)3.3程序设计 (9)四、本设计改进建议 (11)五、总结 (12)六、主要参考文献 (12)附录 (12)一、设计目的本课程设计的目的就是要锻炼学生的实际动手能力。

在理论学习的基础上,通过完成一个具有综合功能的小系统,使学生将课堂上学到的理论知识与实际应用结合起来,对电子电路、电子元器件等方面的知识进一步加深认识,同时在软件编程、调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立设计单片机应用系统的开发设计工作打下一定的基础。

二、设计要求和设计指标以AT89C51单片机为核心,实现ADC0808的数模转换与显示。

转换后的结果显示在数码管上。

三、设计内容3.1 芯片简介3.1.1 A/D转换模块ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制[1]逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

(1)ADC0808的内部逻辑结构由下图3-1-1可知,ADC0808由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

数模和模数转换电路

数模和模数转换电路

;的模拟量
INC A
;A中内容加1
LJMP LOOP
;继续循环转换
(2)方波
(2)产生方波
MOV DPTR,#7FFFH ;指向0832的口地址
LOOP:MOV A,#0FFH
;将最大数字量0FFH送A
MOVX @DPTR,A ;送D/A转换输出对应的模拟量
LCALL DEL
;调延时子程序
MOV A,#00H
D/A转换器的基 准电压VREF由稳 压管上的电压分 压后提供。图中 运算放大器的作 用将D/A转换器 输出电流转换成 电压输出。
图中的接法是采用线选法把DAC0832当作8031扩展的一个并行I/ O口,当P2.7=0时,则信号/CS和/XFER有效,若设其它无关的地 址位为“1”,则DAC0832的口地址为7FFFH。将一个8位数据送 入DAC0832完成转换的指令如下: MOV DPTR,#7FFFH ;指向0832的口地址 MOV A,#data ;待转换的数据送A MOVX @DPTR,A ;写入0832,即实现一次转换并输出
14.2.2 DAC0832的工作方式
3.双缓冲工作方式 2双1..缓单直冲缓通工冲工作工作方作方式方式是式使输入寄存 单器缓和当D冲0A8工C32作寄所方存有式器的是都控使处制两于信个受号寄控存状 器态(/C始。S终这、有主/W一要R个用1、于(多/W多为R路D2DA、/CIL寄AE转存、换器) 处系/X于统FE直以R通实)都状现为态多有,路效另模时一拟,个信两处号个于的寄受同 控步存状输器态出处。于如例直使 如通有/状W三R态2个,=八0此和位时二数进据 /制线XF数的E,R数=分字0别,信先或号后将经进/两W入个R1三寄与个存/W器R直2 相D接A连进C及0入8/D3X2F/芯EAR片转与的换/C输器S入相进寄连行存,转器则换, D这并A时输C若寄出将存。三器此个处工D于作A直方C通0式8状适32态用的,于DA输连C 入寄续寄存反存器馈器的控处锁制于 存中受信。控号状同态时。变为低 应电用平系(统三中个D如A只C有08一32路的D引/脚A转 换/W,R2或、有/X多F路ER转分换别但接不在要一求起同, 步即输可出达时到,此可目采的用)单,缓冲工作 则分别先后锁存在三个DAC0832方芯式片。的输入寄存器中的数据同

数模转换和模数转换

数模转换和模数转换
• 常用的D/A转换器有T型(倒T型)电阻网络D/A转换器、权电阻网络D/A 转换器、权电流D/A转换器及电容型D/A转换器等等。这里只介绍一 下倒T型电阻网络D/A转换器。
• 1.倒T型电阻网络D/A转换器 • 如图9-1-2所示为一个4位倒T型电阻网络D/A转换器(按同样结构可将
它扩展到任意位),它由数据锁存器(图中未画)、模拟电子开关 (S0~S3) , R~ 2R倒T型电阻网络、运算放大器(A)及基准电压U REF组 成。
上一页 下一页 返回
9. 2 模数转换电路
• 3. ADC0809应用说明 • (1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 • (2)初始化时,使ST和OE信号全为低电平。 • (3)送要转换的那一通道的地址到A,B,C端口上。 • (4)在ST端给出一个至少有100ns宽的正脉冲信号。 • (5)是否转换完毕,可以根据EOC信号来判断。 • (6)当EOC变为高电平时,这时给GE为高电平,转换的数据就输出给
的取样频率由取样定理确定。 • 根据采样定理,用数字方法传递和处理模拟信号,并不需要信号在整
个作用时间内的数值,只需要采样点的数值。所以,在前后两次采样 之间可把采样所得的模拟信号暂时存储起来以便将其进行量化和编码。 • 2.量化和编码 • 经过采样、保持后的模拟电压是一个个离散的电压值。对这么多离散 电压直接进行数字化(即用有限个。
• 1.集成D/A转换器DA7520 • 常用的集成D/A转换器有DA7520,DAC0832,DA00808 , DA01230,
MC1408、AD7524等,这里只对DA7520做介绍。 • DA7520的外引线排列及连接电路如图9-1-3所示. • DA7520的主要性能参数如下: • (1)分辨率:十位; • (2)线性误差 • (3)转换速度

模拟输入通道(数模、模数转换)

模拟输入通道(数模、模数转换)

;中断服务程序入口
;置数据区首地址 ; 转换通道数 ;为边沿触发方式 ;开中断 ;允许中断 ;指向IN0通道 ;启动A/D转换 ;等待中断
2021/7/1
26
PINT1 NEXT:
ORG 2100H
转换后数据
MOV @R1,A ;数据存入RAM中
INC R1
二、双积分式ADC的转换原理
标准电压
积分器输出
VIN

比较器




时钟 控制逻辑
T2’
t
T2 =
T1 VREF
VIN
2021/7/1
T1
N D= VREF VIN
T2 18
8.2.2 ADC0809芯片及其与单片机的接口
主要性能为: 分辨率为8位; 单+5V供电,模拟输入电压范围为0~+5V; 8路模拟输入; 可锁存三态输出,输出与TTL电平兼容; 时钟频率范围:典型值为时钟频率640KHz,转换时间约为 100μS。
2021/7/1
35
四、固态继电器输出接口
固态继电器(SSR)是近年发展起来的一种新型电子继电 器,其输入控制电流小,用TTL、HTL、COMS等集成电 路或加简单的辅助电路就可直接驱动,具有无机械噪声、 无抖动和回跳、开关速度快、体积小、重量轻、寿命长、 工作可靠等特点,并且耐冲力、抗潮湿、抗腐蚀,因此在 微机测控等领域中。
MAIN: MOV R1,#30H
;置数据区首地址
MOV DPTR,#7FF8H
;指向0通道
MOV R7,#08H
;置通道数
LOOP: MOVX @DPTR,A
;启动A/D转换
JNB P3.3,$

单片机指令的DAC输出与模拟信号调整

单片机指令的DAC输出与模拟信号调整

单片机指令的DAC输出与模拟信号调整随着科技的不断发展,单片机在各个领域的应用越来越广泛。

单片机是一种微型计算机系统,具有高度集成、体积小、功耗低等特点,可用于实现各种功能。

其中,DAC(数字模拟转换器)模块是单片机中常用的输出模块,用于将数字信号转换为模拟信号,并通过外部电路输出。

本文将着重介绍单片机指令的DAC输出与模拟信号调整的相关内容。

一、DAC输出的基本原理与结构DAC作为一种数字到模拟信号的转换器,一般由数字量输入转换电路和模拟量输出电路两部分组成。

1.数字量输入转换电路:该电路主要由加法器、数字滤波器和D/A 转换器组成。

其中,加法器用于将输入的数字量信号与参考电压进行相加,得到加和信号;数字滤波器用于对加和信号进行滤波处理,使其更接近原始的输入信号;D/A转换器则将滤波后的数字信号转换为模拟信号。

2.模拟量输出电路:DAC输出电路一般由输出缓冲器、低通滤波器和负载等组成。

输出缓冲器用于提供足够的电流驱动能力,以满足外部负载的需求;低通滤波器则对DAC输出电压进行滤波,去除高频噪声,得到稳定的模拟信号。

二、单片机中DAC输出的实现方式单片机中的DAC输出实现方式有两种:软件实现和硬件实现。

1.软件实现:软件实现方式是通过单片机的GPIO口模拟DAC输出。

在一些资源比较紧张、对精度要求不高的场合,可以采用这种方式。

通过设置GPIO口的电平状态,可实现0~3.3V或者0~5V的模拟信号输出。

但是,由于软件实现方式受到单片机IO速度的限制,无法满足高速、高精度的要求。

2.硬件实现:硬件实现方式是通过单片机内部的DAC模块实现模拟信号输出。

这种方式可以实现更高的转换精度和更快的转换速率。

对于一些对信号质量要求较高的场合,应优先考虑采用硬件实现方式。

在使用硬件实现方式时,只需将需要转换的数字量发送给DAC模块的控制寄存器,DAC模块会自动进行转换,并将模拟信号输出。

三、单片机指令对DAC输出的控制在单片机中,为了方便对DAC输出进行控制,提供了相应的指令和寄存器。

单片机数模转换原理

单片机数模转换原理

单片机数模转换原理
数模转换是指将数字信号转换为模拟信号的过程。

在单片机中,数模转换一般是通过使用模数转换器(ADC)来实现的。


面介绍数模转换的原理。

1.采样:数模转换的第一步是采样,即将模拟信号按照一定频
率进行测量和记录。

采样频率决定了信号的最高频率分辨率,一般使用奈奎斯特采样定理来确定采样频率,即采样频率应该是模拟信号最高频率的两倍以上。

2.量化:采样得到的数据是连续的模拟信号,为了将其转换为
离散的数字信号,需要对其进行量化。

量化是指将连续的模拟信号按照一定精度进行离散化的过程,通常使用的是均匀量化。

量化的精度由ADC的分辨率决定,分辨率越高,量化误差越小。

3.编码:量化得到的离散信号是模拟信号的近似表示,因此需
要将其进行编码,使其可以被数字系统处理。

常用的编码方式有二进制编码、格雷码等。

4.输出:经过采样、量化和编码后,模拟信号已转换为数字信号,可以通过输出端口输出给其他数字设备进行进一步处理。

数模转换的原理实质上是将连续的模拟信号按照一定频率进行采样,然后对采样后的数据进行量化和编码,将其转换为离散的数字信号,从而实现数字系统对模拟信号的处理和控制。

模数和数模转换控制系统

模数和数模转换控制系统
数字量并发送到总线上,可以知道该函数需要指定输入的通 道,还要将转换后的数字量返回。
任务4 认识数模转换D/A
• 引导问题13 •D/A转换的主要技术指标有哪些?
• 引导问题14 • 写出两种数模转换方式。
任务4 认识数模转换D/A
• 引导问题15 • 常用的数模转换芯片有哪些?
• 引导问题12 • 举例说明哪些地方需要用到数模转换?
任务5 1路检测外部模拟量输入
• 任务要求: 使用4路AD中的1路检测外部模拟量输入。 • 任务分析:AD转换即将AIN端口输入的模拟电压转换为
学习情境5-模数和数模转换控制系统
情境描述
• 当今世界,计算机技术得到了飞速发展与普及,尤其在现代控制、通信及检测等领域,为了 提高系统的性能指标,对信号的处理广泛采用了数字计算机技术。
• 单片机是一个典型的数字系统。数字系统只能对输入的数字信号进行处理,其输出信
号也是数字的。 • 但是在工业控制、通信、检测等系统和日常生活中的许多物理量都是模拟量,比如温度、位
• 采样是指用每隔一定时间的信号样值序列来代替原来在时间上连 续的信号,也就是在时间上将模拟信号离散化。
任务2 模数转换的过程
• 保持是将取样电路每次取得的模拟信号转换为数字信号都需要一定时间,为了给后续的量化 编码过程提供一个稳定值,每次取得的模拟信号必须通过保持电路保持一段时间。
• 量化是用有限个幅度值近似原来连续变化的幅度值,把模拟信号的连续幅度变为有限数量的 有一定间隔的离散值。
• 引导问题8 • A/D转换器的分 类如右图,请查 阅资料并作简单 了解。
• 引导问题9 • 分别解释ADC0809、ADC0832、PCF8591?
ADC0809 ADC0832 PCF8591
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第九章 数∕模 与 模∕数转换
测量对象和被控对象,是连续变化的模拟量,
具有模拟量输入和模拟量输出的MCS —51应用系统结构如图:
开关量
模拟量
物理量:位移,加速度,速度;
压力,温度,湿度;
光强,颜色;
磁场强度,磁通量;
A/D 与D/A 电路已经集成化, 掌握其参数,合理的选用
§9.1 D/A 转换器的工作原理及指标 一、 工作原理
D/A 转换器:输入数字量: D n-1 D n-2 … D 1 D 0
实际物理量(非电量) 传感器 及变换电路 单 片
机 模拟信号 AD 转 换 器
D/A
转换器
输出模拟量: Vo
Vo = D • Vr Vr 为参考电压
D = D n-1• 2n-1
+ D n-2 • 2
n- 1
… + D 1 • 2 + D 0
实现方法很多,介绍两种 1. 权电阻D/A 转换法
位切换开关 权电阻 Vr :基准电压
构成:模拟电子开关,运算放大器 模拟电子开关:Di=1 接通
Di=0 断开
运算放大器:反向放大求和 输出电压:Vo =(
R D 80+R D 41+R D 22+R
D 3
) • R F • Vr 2.R —2R T 型电阻网络D/A 转换器 框图:
T 型解码网络
求和放大器
参考电压 模拟电子开关
D0 D1 Dn-1
T 型电阻网络D/A 转换器框图
T 型电阻网络D/A 转换原理图
由R-2R 网络、模拟开关、运算放大器构成 从每个节点看,等效电阻为:R 从D3、D2、D1、D0看,等效电阻为 3R ; 从每一模拟开关流入的电流为:I=
R
Vr
3 ; 电流经电阻网络分流后,进入运算放大器的电流为: D3:2
1I D2:4
1I
二进制输入
D1:81I D0:16
1I
Vo = R
Vr Rf 3∙(D 3 • 2-1 + D 2 • 2-2 + D 1 • 2-3 + D 0 • 2-4

=
16
3∙∙R Vr Rf (D 3 • 2-3 + D 2 • 2-2 + D 1 • 2-1 + D 0 • 20

D/A 转换器件提供的是电流,需要加运算放大器进行放大和转换。

输出的电压与运算放大器的反馈电阻Rf 及参考电压Vf 有关。

R-2R 电阻网络实现容易,实用上大量采用 如:DAC0832 DAC0808 AD7520 二、D/A 转换器的性能指标
1. 分辨率
最小输出电压(对应输入数字量只有最低位为1)与最大输出电压(对应输入数字量全部为1)之比,与该数模转换器的位数有关:
10位,最小输出电压:Vmin = 00 0000 0001Vr 最大输出电压:Vmax = 11 1111 1111Vr 分辨率:
10231≈ 0.001 即 102
1 位数越高,输出电压最小值越小,分辨率越高,灵敏度越高; 以D/A 转换器的位数来表示其灵敏度,位数越高,灵敏度越高; 如:DAC083
2 8位
分辨率为:
82
1
≈ 0.004
2.建立时间
D/A中的输入代码有满刻度值的变化时,其输出模拟信号达到满度值±LSB/2所需时间;
3.精度
通常以最大转换误差的形式给出,包括非线性误差,比例误差,漂移误差等。

精度与分辨率不同:
4.线性度
实际输出值对D/A转换器理想输入/输出曲线的接近程度,通常以非线性误差的大小表示线性度;
1LSB
以最低位的分数来表示,LSB ,
2
还有:输出电压范围,输入电平类型,温度系数,工作温度,功耗三、D/A转换器的分类
1.按速度(建立时间)分类
1MHz以上为高速
THS8133 5ns
2.按输出信号类型分类
电流型:后面加运放I—V转换
电压型:直接得到电压
3.按接口类型分类:
并行:DAC0832,AD7520,
串行:MAX531, TLV5638(双12位)
4.参考源类型
内部和外部
5.供电电源类型:
单电源和双电源
四、D/A转换器的选择
考虑各种参数
所用的场合情况
§9.2 模数转换器DAC0832与MCS-51接口
一、DAC0832结构及特性
DAC0800系列:DAC0830\DAC0831\DAC0832可以完全代换1.主要特性参数:
●分辨率:8位
●电流稳定时间:1µs
●可以单稳态、双稳态或直接数字输入
●单一电源供电(+5V ─+15V)
●输入电平:TTL
●功耗:20mW
2.结构框图
DAC0832数模转换器框图
两个数据锁存器、一个T型网络D/A转换器、控制电路
8位输入寄存器
由8D锁存器组成,用来作为输入数据的缓冲寄存器,可以直接与微机相连,LE1为其控制输入,
LE1=1:D触发器接受信号,
LE1=0: D触发器锁存信号
8位DAC寄存器
也由8D锁存器组成,8位输入数据只有通过DAC寄存器才能送到D/A转换器去转换;控制端LE2;
LE2=1: 输出跟随输入
LE2=0:锁存
8位D/A转换器
采用T型网络,电流输出,
3.引脚说明:(共20脚)
DI0 ─ DI7: 数字量数据输入;
ILE:数据锁存允许;
CS:输入寄存器选择,低电平有效;
WR1: 输入寄存器选通信号,低电平有效;
ILE=1, CS=0:
WR1=0, 则:LE1=1, 输入寄存器的输出随输入变化;
WR1=1, 则:LE1=0, 数据锁存在输入寄存器中;
XFER:数据转移控制信号,低电平有效;
WR2: DAC寄存器选通信号;
XFER、WR2同时为低时,LE2=1, 8位DAC寄存器的输
出随输入而变化,WR2的上升沿锁存;
Vref: 基准电压输入;
Rfb:运算放大器反馈信号输入,芯片内已有反馈电阻;
Iout1 Iout2: 电流输出,Iout1+Iout2=常数;
Iout1随DAC寄存器的内容线性变化;
Vcc: 工作电源,
DGND:数字地,工作电源地、数据地、控制信号地;
AGND:模拟地,基准电压地、模拟信号地;
在D/A和A/D系统中,模拟地和数字地应分开,以保证转换精度,提高系统的抗干扰能力。

二、DAC0832与8051的接口设计
1.单缓冲方式
输入寄存器、DAC寄存器直接送D/A转换器
单路模拟量输出电路
ILE=+5V, 片选信号CS与XFER一起接P2.7,
WR1和WR2接在一起与8051的WR信号相连,既完成了数据的锁存,又完成了D/A转换,
0832的地址为:7FFFH
完成一次D/A转换的指令为:
MOV DPTR, #7FFFH ; 选中DAC0832
MOV A , #DATA ; 要转换的数据
MOVX @DPTR , A ; 输入数据
利用0832产生各种波形:
锯齿波:
ST: MOV DPTR ,#7FFFH ; 选中DAC0832 MOV A , #00H ; 取初值
LP: MOVX @DPTR , A ; 转换
INC A ;A A+1
SJMP LP ;
输出波形为:
V
t 三角波:
ST: MOV DPTR ,#7FFFH ; 选中DAC0832
MOV A , #00H ; 取初值
UP: MOVX @DPTR , A ; 转换
INC A ;A A+1
JNZ UP ; 上升结束?
DOWN: DEC A ; 下降
MOVX @DPTR , A ; 转换
JNZ DOWN ; 下降结束?
SJMP ;完成一个周期,重复
波形图:
V
t
矩形波:
ST : MOV DPTR ,#7FFFH ; 选中DAC0832 LP: MOV A , #DATA1 ; 高电平
MOVX @DPTR , A ; 转换
ACALL DELAY_H ; 延时1
MOV A , #DATA2 ; 低电平
MOVX @DPTR , A ;
ACALL DELAY_L ; 延时2
SJMP LP ; 循环
V
如何产生正弦波?
2.双缓冲方式
需要多路数模同时输出时,可用双缓冲方式:
双路输出0832与8051接口
P2.5: 第一片0832输入寄存器地址,DFFFH
P2.6: 第二片0832输入寄存器地址,BFFFH
P2.7: 两片0832DAC寄存器地址,7FFFH
双缓冲原理:
MOV DPTR ,#DFFFH ; 选中第一片DAC0832
MOV A , #DATA1 ;
MOVX @DPTR , A ; 锁存DATA1
MOV DPTR ,#BFFFH ; 选中第二片DAC0832
MOV A , #DATA1H ;
MOVX @DPTR , A ; 锁存DATA2
MOV D PTR ,#7FFFH ; 选中两片DAC寄存器
MOVX @DPTR , A ; 两路同时输出。

相关文档
最新文档