案例7 AD_DA转换_第1页
案例7 AD_DA转换_第2页
案例7 AD_DA转换_第3页
案例7 AD_DA转换_第4页
案例7 AD_DA转换_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、8051扩充资源及其编程常熟理工学院物电院2014.12扩充资源 8255、8155、8253 D/A转换 A/D转换知识点 了解8255、8155、8253、ADC0809、DAC0832等常用器件的结构与功能,会设计相应的硬件电路; 掌握外部RAM概念,会根据硬件电路确定外部RAM地址,能正确对外RAM进行读写操作; 掌握用查询或中断方式对扩充资源编程。A/D转换-模拟数字转换 DAS:数据采集系统(Data Acquisition System) 是指将温度、压力、流量、位移等模拟量进行取样、量化转换成数字量后,供后级处理器进行存储、处理、显示或打印的装置。ADC0809 8位A/D转换

2、器(28PIN) IN0IN7:8个模拟通道输入端。 ADDC、ADDB、 ADDA:通道地址线(000111对应了8个通道) ALE:地址锁存允许信号。 START:启动转换信号。 EOC:转换结束信号。 OE:输出允许信号(允许读)。 CLK:外部时钟脉冲输入端,典型值640K。 VREF(+)、VREF(-):参考电压输入端。 Vcc:5V电源。 GND:地。ADC0809结构结构 模拟通道(模拟通道(8 8) 数据线(数据线(D7D7D0D0) 地址线(地址线(C C、B B、A A) 控制线控制线 电压比较器(逐电压比较器(逐步逼近式)步逼近式) 输出锁存器输出锁存器 转换公式:转换

3、公式: Vin=D/Vin=D/(28281 1)VrefVrefA/D转换精度 若Vref=5V,则8 位A/D 转换精度:1/255*5V=19.6mV10位A/D 转换精度:1/1023*5V=4.89mV12位A/D 转换精度:1/4095*5V=1.22mV A/D指标:Vref位数转换速率(串行、并行)通道数ADC0809转换 对ADC0809来说,当Vref=5V时,3V模拟量对应的数字量是多少? 对ADC0809来说,当Vref=5V时,若转换到的数字量为0 x7A,则对应的模拟量是多少? 设计转换电路时,地址线(C、B、A)和数据线(D7D0)应如何与8051连接?ADC08

4、09时序图ADC0809与与8051连接图连接图 各通道地址不连续A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0地址AIN0000*0 x0000AIN1001*0 x2000AIN2010*0 x4000AIN3011*0 x6000AIN4100*0 x8000AIN5101*0 xA000AIN6110*0 xC000AIN7111*0 xE000ADC0809与与8051连接图连接图 各通道地址连续A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0地址AIN0*0000 x0000AIN1*0010 x0001AIN2*0100

5、x0002AIN3*0110 x0003AIN4*1000 x0004AIN5*1010 x0005AIN6*1100 x0006AIN7*1110 x0007ADC0809与与8051连接图连接图外部外部RAM读写操作语句读写操作语句读、写RAM操作 #include absacc.h XBYTE0 x0000=0; /写操作 /ADC0809写操作(START、ALE) 向地址为0 x0000(A15=0 A2A1A0=000)的外部RAM写(WR#=0)字节数据0(D7D0=00) a= XBYTE0 x0000;/读操作 /ADC0809读操作(OE) 从地址为0 x0000(A15=

6、0 A2A1A0=000)的外部RAM读(RD#=0)字节数据(D7D0)到变量a/宏定义#define AIN0 XBYTE0 x0000AIN0=0; /写操作 a=AIN0; /读操作 ADC0809编程ADC0809编程-查询方式#include reg51.h#include absacc.h#define AIN0 XBYTE0 x0000 sbit EOC=P33;void main(void) unsigned char i=0;while(1)AIN0=0; /启动转换i=i;i=i;while(EOC =0); /等待AD转换结束a=AIN0; /读AD转换结果 为什么要两

7、条i=i指令?ADC0809通用采集函数-查询方式对某通道A/D转换的通用函数unsigned char adc0809(unsigned char channel)unsigned char xdata *ad_adr;unsigned char i,a;ad_adr=&IN0;ad_adr=ad_adr+channel;*ad_adr=0;i=i;i=i;while(EOC =0);a=*ad_adr;return(a);ADC0809编程-中断方式ADC0809编程-中断方式#include absacc.h#define AIN0 XBYTE0 x0000 sbit EOC =P33;

8、unsigned char a;void INT1_ISR(void) interrupt 0a=AIN0; /读AD转换结果void main(void) unsigned char i=0;IT0=1;EX0=1;EA=1;while(1)if(-)AIN0=0; /启动转换i=i;i=i; 例例:ADAD滤波(去噪):采样多次,去最高、去最低,求平均滤波(去噪):采样多次,去最高、去最低,求平均 unsigned char adc0809(unsigned char channel) unsigned char aver(unsigned char x,int n)D/A转换常熟理工学院

9、物电院2014.12DAC0832引脚DAC0832结构DAC0832组成: 8位输入寄存器 8位DAC寄存器 8位D/A转换器DAC0832结构 DAC0832有两级锁存器:第一级:输入寄存器第二级:DAC寄存器 DAC0832工作方式: 单缓冲方式 双缓冲方式(见下)因此,DAC0832可工作在双缓冲方式下,这样在输出模拟信号的同时可以采集下一个数字量,这样可以有效地提高转换速度。另外,有了两级锁存器,可以在多个DA转换器同时工作时,利用第二级锁存信号实现多路DA的同时输出。DAC0832引脚功能DI7DI0:8位数据输入端。ILE:输入寄存器的数据允许锁存信号。CS#: 输入寄存器选择信

10、号。WR1#:输入寄存器的数据写信号。XFER#:数据向DAC寄存器传送信号,传送后即启动转换WR2#:DAC寄存器写信号,并启动转换。Iout1,Iout2:电流输出端。Vref参考电压输入端。Rfb:反馈信号输入端。Vcc:芯片供电电压。AGND:模拟电路地。DGND:数字地。DAC0832输出 DAC0832的输出是电流型的 采用I/V转换电路:电流信号转电压信号 输出电压值为D255 Vref (8位D/A转换)。参考电压可正,亦可负DAC0832典型应用利用虚短和虚断得利用虚短和虚断得fOIRv0IfvRIIO实现实现I/V转换,输出为负的,如何输出正的?转换,输出为负的,如何输出正

11、的?Vref=-5VDAC0832典型应用vIvO- -+RfR1AvNvPR2电压并联负反馈电压并联负反馈0PN vv利用虚短和虚断得利用虚短和虚断得fON1NIRvvRvv I1fOvRRv 输出与输入反相输出与输入反相DAC0832电路设计 如图引脚如何连接?DAC0832电路设计741实现I/V转换Vref=+5VAGND、DGND共地DAC0832的外RAM地址确定DAC0832时序图8051外RAM写时序图 写语句:DAC0832=i;外部RAM写操作#define DAC0832 XBYTE0 x0000DAC0832i;功能:写外RAM操作向地址为0 x7FFF的外部RAM输出

12、数据i。DAC0832的单缓冲接口输入寄存器、DAC寄存器共用一个地址 ILE接5V,始终保持有效; WR1#和WR2#相连,接8051的WR#,即数据同时写入两个寄存器; Xfer#(传送允许信号)与CS#(片选)相连,即选中DAC0832后,写入数据立即启动转换。根据连线确定0832的地址为:0000H读程序,说明功能#include absacc.h#include reg51.h#define DAC0832 XBYTE0 x0000void stair(void) unsigned int i; for(i=0;i255;i+) DAC0832=i; void main(void)

13、while(1)stair();锯齿波电压输出编写程序实现各信号输出void wave_rect(void)void wave_stair(void)void wave_sin(void) /正弦波输出for(i=0;i2*PI;i+)DAC0832=i;程序中有何问题?正弦波输出程序void wave_sin(void) /正弦波输出float alfa;for(alfa =0; alfa PI; alfa +=0.1)DAC0832=(unsigned char)(127+127*sin(alfa);for(alfa =0; alfa PI; alfa +=0.1)DAC0832=(uns

14、igned char)(127-127*sin(alfa);DAC0832双缓冲方式电路框架 输入寄存器的控制信号(CS)和DAC寄存器的控制信号(Xfer)分开控制,这种方式适用于几个模拟量需同时输出的系统,每一路模拟量输出需一个DAC0832,构成多个0832同步输出系统。DAC0832双缓冲接口电路 两片0832的输入寄存器各占一个单元地址 两个DAC寄存器占用同一单元地址。 操作: 先向两个0832的输入寄存器写入待转换数据, 后向两个DAC寄存器同时传送启动命令 传送的同时实现两路DA转换。DAC0832寄存器外部RAM地址配置DAC0832的双缓冲程序#define INPUTR1 XBYTE0 x

温馨提示

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

评论

0/150

提交评论