《单片机应用技术(第2版)》课件 项目8 AD与DA转换_第1页
《单片机应用技术(第2版)》课件 项目8 AD与DA转换_第2页
《单片机应用技术(第2版)》课件 项目8 AD与DA转换_第3页
《单片机应用技术(第2版)》课件 项目8 AD与DA转换_第4页
《单片机应用技术(第2版)》课件 项目8 AD与DA转换_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

延时符项目8A/D与D/A转换单片机应用技术知识点:1、AD,DA芯片介绍;2、电路设计简介;

3、相关软件简述;能力要求:能使用AD,DA芯片完成系统设计;能设计相关软件完成系统功能。目录8.1:系统设计概述8.2:A/D芯片介绍8.3:A/D系统设计及相应软件设计8.4:D/A芯片介绍8.5:D/A系统设计及相应软件设计

8.1:系统设计概述延时符延时符系统设计

系统设计主要是指以一个主控芯片为核心,配合相关外围芯片和电路构成一个完整的系统,以达到相应的设计功能。系统设计中,除了了解主控芯片的使用之外,还需熟悉和掌握外围配套芯片的特性,以便相关软硬件的设计。这里,我们主要关注的是相关芯片的管脚功能描述、基本工作流程以及相关信号的时序图。同时,相关芯片或接口的电气特性也要重视。8.2:ADC芯片介绍延时符延时符ADC芯片介绍ADC0809是一款8位8通道ADC芯片,转换时间约为100us。ADC0809管脚图延时符芯片引脚功能描述备注IN0~IN7模拟信号输入端:模拟输入信号,范围在0~+5V之间,芯片内部有一个八选一的模拟选择开关,选择一路进行转换要求转换期间模拟信号保持稳定,如有需要,可增加一个采样保持芯片ADDA,ADDB,ADDC地址线A为低位地址,C为高位地址;这三根地址线用于选通相应的模拟信号通道000对应IN0通道,111对应IN7通道,其他以此类推ALE地址锁存允许信号:ALE上升沿,把ADDA,ADDB,ADDC的信息存入芯片,实现模拟通道选择START转换启动信号:START上升沿,清空所有内部寄存器;START下降沿,开始转换,转换期间START信号应保持低电平输入信号,由单片机提供2-1MSB,2-2~2-7,2-8LSB输出数据线:为三态缓冲(由OE控制)输出形式,可以总线直接相连2-8为最低位;2-1为最高位延时符芯片引脚功能描述备注OE输出允许信号:用于控制三态缓冲输出锁存器向总线输出转换数据;OE=0,输出端高阻;OE=1,输出转换数据输入信号,由单片机提供CLK时钟信号:500KHz左右转换所需时钟,由外部提供时钟频率的高低,决定了转换时间的长短EOC转换结束信号:EOC=0,正在转换;EOC=1,转换结束输出信号,提供给单片机,作为读取数据的参考VCC电源4.5V~6VVref(+),Vref(-)参考电源:用来与输入模拟信号比较,作为逐次逼近的基准。典型值:Vref+=VCC,Vref-=0V延时符ADC芯片介绍延时符ADC芯片介绍ALE信号上升沿把模拟通道地址信息锁存;然后,单片机用START信号启动转换;转换完成,ADC0809把EOC信号置1,通知单片机;单片机把OE信号置0,从数据端读取8位数字信号(转换结果);8.3:ADC芯片系统设计及软件设计延时符延时符ADC芯片介绍延时符ADC芯片系统及软件设计说明:/WRITE和/READ为单片机对应的/WR、/RD信号;AD0-AD15为单片机外部数据地址总线,AD0~AD7需另加锁存器,由单片机ALE信号锁存;INTERRUPT反馈至单片机某一IO口(查询或中断方式);DB0~DB7连接到单片机对外访问的数据总线(AD0~AD7)延时符ADC芯片系统及软件设计//参考程序#defineAD1_ADDR0x5678//定义A/D芯片对应的地址,该地址应于硬件译码电路吻合sbitAD_OK=P3.2;//假定P3.2为INTERRUPT信号的反馈接口UnsignedcharAD_DATA;//定义一个变量存储AD转换数据XBYTE(AD1_ADDR)=0x00;//对外部空间地址AD1_ADDR写操作,写的数据不重要,主要//是提供一个正脉冲,低位数据接锁存器输出while(!AD_OK);//等待转换完成AD_DATA=XBYTE(AD1_ADDR);//完成数据读取;8.4:DAC芯片介绍延时符延时符DAC芯片介绍DAC0832时一款8位DAC芯片,内部有双缓冲。延时符DAC芯片介绍管脚名称功能描述注意事项DI0~DI7转换数据输入DI0:最低位DI7:最高位/CS片选信号(输入)低电平有效ILE数据锁存允许信号(输入)高电平有效/WR1第1写信号(输入)低电平有效;和ILE一起共同控制第一级缓存数据的写入/XFER数据传送控制信号(输入)低电平有效/WR2第2写信号(输入)低电平有效与/XFER一起控制第二级缓存数据的写入延时符DAC芯片介绍管脚名称功能描述注意事项Iout1电流输出1当输入(DI0~DI7)全为1时,最大;当输入全为0时,最小Iout2电流输出2与Iout1相加为一常数;通常两个电流信号与外接运放的正、反输入端相连Rfb反馈电阻端通常接运放输出,构成负反馈电路,把电流信号转换成电压输出Vref基准电压外加高精度电压源;-10V~+10VVCC数字电源+5V~+15VDGNG数字地AGND模拟地延时符DAC芯片介绍延时符DAC芯片介绍

数字部分DAC0832有两级数据缓存,第一级由/CS,/WR1,ILE控制,当3个信号均有效时,总线数据写入第一级缓存;第二级由/WR2,/XFER控制,当两个信号有效时,第一级缓存数据写入第二级缓存;第二级数据缓存的输出直接与D/A转换模块相连,将转换为相应的模拟信号输出,完成整个数字到模拟的转换过程延时符DAC芯片介绍

模拟部分,核心模块由Vref提供精准参考电压(该电压决定网格电流大小,从而决定输出电压的高低),转换模块(电阻网络及开关)把输入的数字信号转换成相应的电流,再由Iout1和Iout2输出。Iout1接外加运放的负极输入端(外部反馈由Rfb连接至Iout1端),Iout2接外加运放的正级输入端,外加运放的输出端与Rfb端相连,构成完整的负反馈放大电路,把Iout1的电流信号转换成电压输出。芯片内部集成了精密反馈电阻Rfb,它可将输出电压控制在0~Vref之间,无需再加反馈电阻。8.3:DAC系统设计及软件设计延时符延时符DAC系统设计多通道同步,双缓冲模式延时符DAC系统设计

该系统中有多个D/A通道,共用一个数据总线。地址信息通过译码器,产生相应的片选信号(/CS),选中对应的DAC芯片,同时系统DAC使能信号使得ILE有效,这时系统写操作(/WR)信号将把总线的数据写入对应的DAC芯片;变换不同地址(各/CS信号分别有效),把各个DA通道数据分别写入到各芯片的一级缓存;然后更换另一地址,该地址通过译码器使得/XFER信号有效;这时再进行一次写操作(/WR),各通道的/XFER和/WR2信号同时有效,各通道同步把各自一级缓存的数据存入二级缓存,再转换为对应的模拟信号输出。延时符DAC系统设计延时符DAC系统软件设计8.5.1DAC部分:以课件所示系统为例实际转换过程如下:1、控制IO口使得ILE信号有效(高电平)。2、单片机对DA1通道地址写入相应数据(对应的/CS1经译码有效)。3、单片机分别对其余DA通道写入相应数据(对应的/CSn有效)。4、单片机对DA转换地址写数据(/XFER有效),触发转换,所有通道模拟数据同步更新,转换完成。延时符DAC系统软件设计//定义通道地址#defineDA10x1234//地址需与译码器设计相吻合...#defineDAN0x2345#defneDA_Trans0x3456//转换触发地址对应/XFER译码XBYTE(DA1)=DATA1;//输出一通道数据;该数据被存入D/A芯片一级缓存...XBYTE(DAN)=DATAN;//输出N通道数据;XBYTE(DA_Trans)=0;//使能/XFER信号,把各D/A芯片一级缓存数据传送至二级//更新模拟输出;延时符DAC系统软件设计示例:1通道产生锯齿波,2通道产生方波#defineDA10x1234//假定地址产生/CS1#defineDA20x1235//产生/CS2#defineDA_T0x1236//产生/XFER#defineTxxxx//信号周期#defineKxxx//锯齿波斜率UnsigedcharD1=0,D2=0,T2;T2=T/2;延时符while(1){ for(i=0;i<T;i++)

{

XBYTE(DA1)=i*K; if(i<T2)

XBYTE(DA2)=0;//方波低电平 else

XBYTE(DA2)=0xff;//方波高电平

XBYTE(DA_T)=0;//触发转换

Delay(n);//调整n也可改变周期和斜率

}//至此完成一个周期的信号输出}//循环输出,产生连续的锯齿波和方波案例分析延时符延时符案例分析频率可调正弦波输出:调整可调电阻,改变电压,由ADC0809采集其信息;51单片机根据输入电压大小,设定相应输出频率,并通过算法产生采样正弦波信号,由DAC0832输出。(若要实现幅度调整,可再增加一组电位器,采用ADC另一端口输入,并在算法中略作改进即可。)延时符案例分析延时符案例分析(1)可调电阻分压输出到ADC0809的IN0端口。ADC时钟采用单片机ALE信号。(2)ADC的转换启动,转换完成,输出允许有单片机P3.7,P3.6,P3.5控制;数据与单片机P2端口相连。(3)单片机P1口相连与DAC芯片,采用数据直通模式以简化软件设计。注意:DAC的输出还需连接相应模拟低通滤波器,以得到平滑的正弦波信号。可调频率输出:该程序,结合相关硬件电路,实现输出频率可挑的正弦波信号。每1s采集一次调整信息。(更新输出正弦波频率)*/#include<reg51.h>#include<intrins.h>#include<math.h>//相关计算常量该常量与主频及计算延时周期有关;//需精确计算两次D/A输出的更新时间,以保证频率的准确;#definePI3.1415926#defineFL33333//500Hz时的时间间隔,#defineFI12//该增量与输入模拟亮的乘积+FL为新的信号时间间隔;//当输入最大时(255),对应频率100Hz;

//当输入最小时(0),对应频率500Hz;#defineT_1s34//A/D转换增加延时延时;#defineT_50ms5//50ms定时中断增加延时;//控制端口定义sbitAD_ST=P3^7;//启动A/D转换sbitAD_OK=P3^6;//A/D转换完成sbitAD_Out=P3^5;//A/D数据输出//1s定时计数;unsignedcharS_count=0;unsignedcharFF;//ADC输入数据//延时产生标志:bitMs_int=0;//50ms,中断程序中置1,主程序清0;bitS_int=0;//1s,A/D转换中置1,主程序清0;//硬件初始化voidInit();//A/D转换,完成控制数据输入,更新FF值;voidAD_trans();//主函数voidmain(){ floatTime=0,Sin_data=0; unsignedcharOut_data=0; unsignedintF_time=0;//初始化 Init();//计算及输出 while(1) { F_time+=FL+FF*FI; if(Ms_int) { F_time+=T_50ms;//补偿50ms定时中断程序增加的延时 Ms_int=0;//清楚标志位 }

if(S_int) { F_time+=T_1s;//补偿A/D转换增加的时间延迟 S_int=0;//清楚标志位 }

F_time=F_time%65535;//充分利用int型的长度,提高计算精度

Time=(float)F_time*2*PI/65536;//转换成弧度???

Sin_data=sin(Time);//计算正弦值:(-1-+1)

Out_data=(Sin_data+1)*128;//转换成正整数值

//0-255对应-1-+1

P1=Out_data;//输出到DAC;由于是直通模式,无需其他操作

}}//初始化voidInit(){//定时器0模式1,50ms定时 TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1;//允许定时器0中断 TR0=1;//启动定时器0}//定时器中断//形成1s中断,每1秒启动一次AD采样,更新FF数据;voidtimer0()interrupt1{ S_count++;//50ms计数 TH0=(65536-50000)/256;// TL0=(65536-50000)%256;//更新初始值 if(S_count==20) { S_count=0; AD_trans(); } Ms_int=1;//设置50ms中断标志位,通知主程序}//AD转换程序voidAD_trans(){ AD_ST=0; AD_ST=1;//启动转换 _nop_(); _nop_(); AD_ST=0; while(!AD_OK);//等待转换完成,AD_OK=0,转换中;AD_OK=1,转换完成 AD_Out=1;//

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论