您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 6数模-模数转换实验(参考例题8.5;8.6)(1)课案
姓名:学号:-1-实验报告6实验项目名称:D/A、A/D转换实验同组人:彭轶凡实验时间:2016-11-187.8.9.10实验室:K2-407单片机室指导教师:胡蔷一、实验目的:(l)学习外部接口的应用。ADC0809、DAC0832的工作方式,输入/输出方式的应用。(2)熟悉Proteus软件电路设计和Keil软件程序调试方法。重点:ADC0809、DAC0832的工作方式二、实验顶备知识:(l)AT89S51与ADC、DAC接口的连接,ADC0809、DAC0832的基本原理。(2)Proteus软件应用,Keil软件程序调试应用。三、实验内容㈠利用DAC0832转换器输出锯齿波、三角波、方波和正弦波。1、设计要求:以DAC0832转换器和AT89C52单片机设计仿真电路,该电路能在虚拟示波器上显示出锯齿波、三角波、方波和正弦波,并能用虚拟电压表显示输出电压值,要求电压范围为0~15V且周期约为510ms。2、仿真电路原理图元器件选取:①AT89C52:单片机;②RES、RX8:电阻、8排阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤DAC0832:D/A转换器;⑥LM358N:运算放大器。图6-1电路原理图姓名:学号:-2-3、程序设计内容程序设计首先考虑DAC0832转换芯片的入口地址,地址的设置与接口电路的连接方式有关。P2.7端口与DAC0832的CS片选端相连,要选通DAC0832,要求CS引脚为低电平,则DAC0832的入口地址为0x7FFFH。4、程序清单#includereg52.h#includestdio.h#includemath.h#includeABSACC.H//11110111#defineDAC0832Addr0xF7FF//DAC0832地址#defineDAC0832Addr00xBFFF//DAC0832地址//10111111#defineDAC0832Addr10x7FFF//DAC0832地址#defineDAC0832Addr20xEFFF//DAC0832地址#defineDAC0832Addr30xDFFF//DAC0832地址#defineucharunsignedchar//uchar代表无符号字符#defineuintunsignedint//unit代表无符号整型数据类型voidUart_Init(void);//输出口初始化函数voidTransformData(inti,ucharc0832data);//数/模转换函数voidDelay();//延时函数main(){inti;ucharcDigital=0;//Uart_Init();P0=0xFF;//I/O口初始化0xFFP1=0xFF;P2=0xFF;P3=0xFF;Delay();while(1){for(i=0;i5;i++){for(cDigital=0;cDigital255;cDigital++){Delay();TransformData(0,cDigital);//锯齿波姓名:学号:-3-if(cDigital128)//三角波{TransformData(1,cDigital);}else{TransformData(1,255-cDigital);}if(cDigital128)//方波{TransformData(2,122);}else{TransformData(2,0);}if(cDigital128)//正弦波{TransformData(3,100*sin((float)cDigital/254*3.14*2)-127);}else{TransformData(3,100*sin((float)cDigital/255*3.14*2)+127);}TransformData(4,cDigital);}}}}voidTransformData(inti,ucharc0832data)//数/模转换函数{//*((ucharxdata*)DAC0832Addr0)=c0832data;switch(i){case0:*((ucharxdata*)DAC0832Addr0)=c0832data;break;case1:*((ucharxdata*)DAC0832Addr1)=c0832data;break;case2:*((ucharxdata*)DAC0832Addr2)=c0832data;break;case3:*((ucharxdata*)DAC0832Addr3)=c0832data;break;姓名:学号:-4-case4:*((ucharxdata*)DAC0832Addr)=c0832data;break;}}voidUart_Init(void){SCON=0x52;//设置串行口控制寄存器SCONTMOD=0x21;//12MHz时钟时波特率为2400TCON=0x69;TH1=0xf3;}voidDelay()//延时1ms{uinti;for(i=0;i250;i++);}㈡ADC0809电压模/数转换1、设计要求:以AT89C52单片机为核心设计ADC0809模数转换仿真电路,模拟电压输入由可变电位器提供。输入电压范围0~4.99V,经ADC0809转换成对应的0~255通过数码管显示。2、仿真电路原理图元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:12MHz晶振;④CAP、CAP-ELEC:电容、电解电容;⑤7SEG-MPX4-CC:4位七段共阴极数码管;⑥74LS02、74LS04、74LS74、74LS373︰或非门、反相位、D触发器、地址锁存器;⑦POT-LIN:变阻器;⑧ADC0809:8位A/D转换器图6-2电路原理图姓名:学号:-5-3、程序设计内容将单片机的P0.0、P0.1和P0.2通过74LS373地址锁存器与ADC0809的ADDA、ADDB和ADDC相连接,选择ADC0809的采集通道IN0。P2.7控制ADC0809的ALE和OE端口,因此ADC0809的地址可以定位ox7FF8。4、程序清单#includereg52.h#includeabsacc.h#defineunitunsignedint#defineucharunsignedchar#defineADXBYTE[0x7FF8]sbitled1=P2^0;//定义数码管位控制线sbitled2=P2^1;sbitled3=P2^2;sbitled4=P2^3;sbitad_busy=P3^2;//P3.2用于检测EOC信号,判断是否转换结束bitbk=1;unsignedcharad_data,LED1,LED2,LED3;ucharcodeled_segment[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x00};//段码voiddelay(unsignedinti){while(i){i--;}}voiddisplay(void)//显示设置{LED1=ad_data%10;//求个位上的数字LED2=(ad_data/10)%10;//求十位上的数字LED3=ad_data/100;//求百位上的数字P2=0xff;delay(2);P1=led_segment[LED1];//向数码管个位上段码led1=0;delay(100);led1=1;if((LED3==0)&&(LED2==0))//如果十位和百位上的数字都为0,则十位上LED2=10;//的数码管不显示P1=led_segment[LED2];led2=0;delay(100);led2=1;姓名:学号:-6-if(LED3==0)//如果百位上的数字为0,则不显示LED3=10;P1=led_segment[LED3];led3=0;delay(100);led3=1;bk=!bk;}voidad0808(void)interrupt0//中断0响应函数{EA=0;EX0=0;ad_data=AD;//将AD转换数据送给变量ad_dataEA=1;EX0=1;}voidmain(void){EA=1;//中断总允许EX0=1;//打开外部中断0ad_data=0;ad_busy=0;while(1){if(bk){AD=0;}display();}}姓名:学号:-7-四、实验结果及分析:1、DAC0832转换器输出锯齿波、三角波、方波和正弦波2、ADC0809电压模/数转换姓名:学号:-8-五、思考题:1、DAC转换器的主要性能指标有哪些?目前常用的DAC转换器主要有哪几种类型?各有什么特点?2、ADC转换器的主要性能指标有哪些?目前常用的ADC转换器主要有哪几种类型?各有什么特点?指导教师批阅及成绩年月日
本文标题:6数模-模数转换实验(参考例题8.5;8.6)(1)课案
链接地址:https://www.777doc.com/doc-5963495 .html