单片机王静霞教学ch_第1页
单片机王静霞教学ch_第2页
单片机王静霞教学ch_第3页
单片机王静霞教学ch_第4页
单片机王静霞教学ch_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、 本章内容A/D转换器接口D/A 转换器接口第6章 A/D与D/A转换接口1A/D 转换器接口 A/D转换器是实现模拟量向数字量转换的器件,按转换原理可分为四种:计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前最常用的A/D转换器是双积分式A/D转换器和逐次逼近式A/D转换器。前者的主要优点是转换精度高,抗干扰性能好,价格便宜,但转换速度较慢,一般用于速度要求不高的场合。后者是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。2A/D 转换器接口 ADC0809是一个8位8通道的逐次逼近式AD转换器。3A/D 转换器接口 通道选择表

2、地址码选择的通道C B A0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1IN0IN1IN2IN3IN4IN5IN6IN74A/D 转换器接口 CLK:时钟信号,可由单片机ALE信号分频得到。转换步骤ALE信号上升沿有效,锁存地址并选中相应通道。ST信号有效,开始转换。A/D转换期间ST为低电平。EOC信号输出高电平,表示转换结束。OE信号有效,允许输出转换结果。5A/D 转换器接口 ADC0809 引脚图6A/D 转换器接口 ADC0809 引脚图(1)IN7IN0:8个模拟量输入通道。(2)ADDA、ADDB、ADDC:地址线。(3)ALE:地址锁存允许信号

3、。对应ALE上升沿,ADDA、ADDB和ADDC地址状态送入地址锁存器中,经译码后输出选择模拟信号输入通道。(4)START:转换启动信号。对应START上跳沿时,所有内部寄存器清0;对应START下跳沿,开始进行A/D转换;在A/D转换期间,START应保持低电平。(5)D7D0:数据输出线,为三态缓冲输出形式,可以和单片机的数据线直接相连。7A/D 转换器接口 ADC0809 引脚图(6)OE:输出允许信号,用于控制三态输出锁存器向单片机输出转换得到的数据。当OE=0时,输出数据线呈高电阻;当OE=1时,输出转换得到的数据。(7)CLK:时钟信号。ADC0809的内部没有时钟电路,所需时钟

4、信号由外界提供,因此有时钟信号引脚。通常使用频率为500kHz的时钟信号(8)EOC转换结束状态信号。启动转换后,系统自动设置EOC=0,转换完成后,EOC=1。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。(9)Vref:参考电源。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准,其典型值为+5V(Vref (+) =+5V,Vref(-) =0V)。8A/D 转换器接口 单片机系统扩展三总线9A/D 转换器接口 单片机系统扩展三总线 地址锁存器74LS373是带三态缓冲输出的8D锁存器。由于单片机的数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数

5、据信号区分开。74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址。高8位地址由P2口直接提供。 系统扩展中常用的控制线有以下三条: :控制程序存储器的读操作,在执行指令的取指阶段和从程序存储器中取数据时有效。 :控制数据存储器的读操作,从外部数据存储器或I/O端口中读取数据时有效。 :控制数据存储器的写操作,向外部数据存储器或I/O端口中写数据时有效。10A/D 转换器接口 ADC0809与8031单片机的连接11A/D 转换器接口 ADC0809的通道地址表.12A/D 转换器接口 单片机与A/D转换器接口程序设计,主要有以下四个步骤:启动A/D

6、转换,START引脚得到下降沿。查询EOC引脚状态,EOC引脚由0变1,表示A/D转换过程结束。允许读数,将OE引脚设置为1状态。读取A/D转换结果。.13D/A 转换器接口 #include/该头文件中定义XBYTE关键字#include#define uchar unsigned char#define IN0 XBYTE0 xfef8/设置AD0809的通道0地址sbit ad_busy=P33;/定义EOC状态void ad0809(uchar idata *x)uchar i;uchar xdata *ad_adr;/定义指向外部RAM的指针ad_adr=&IN0; /通道0的地址送

7、ad_adrfor(i=0;i8;i+)/处理8通道*ad_adr=0;/写外部I/O地址操作,启动转换,写的内容不重要,只需写操作i=i;/延时等待EOC变低i=i;while(ad_busy=0);/查询等待转换结束xi=*ad_adr;/读操作,输出允许信号有效,存转换结果ad_adr+;/地址增1,指向下一通道void main(void)static uchar idata ad10; /static是静态变量的类型说明符ad0809(ad);/采样AD0809通道的值.14指针 指针变量的定义数据类型 *指针变量名;例如:int i,j,k,*i_ptr; /定义整型变量i,j,k

8、和整型指针变量i_ptr为变量i赋值的方法有以下两种:直接方式: i=10; /将整数10送入地址为2000和2001的单元内(整型数据占两个存储单元2000和2001)间接方式: i_ptr=&i; /变量i的地址送给指针变量i_ptr,i_ptr=2000 *i_ptr=10; /将整数10送入i_ptr指向的存储单元中,即2000单元15指针 指针运算符(1)取地址运算符 取地址运算符&是单目运算符,其功能是取变量的地址,例如:i_ptr=&i; /变量i的地址送给指针变量i_ptr,i_ptr=2000(2)取内容运算符 取内容运算符*是单目运算符,用来表示指针变量所指的单元的内容,在

9、*运算符之后跟的必须是指针变量。例如:j=*i_ptr; /将i_ptr所指的单元2000的内容10赋给变量j,则j=1016指针 指针变量的赋值运算把一个变量的地址赋予指向相同数据类型的指针变量 int i,*i_ptr; i_ptr=&i; 把一个指针变量的值赋予指向相同类型变量的另一个指针变量 int i,*i_ptr,*m_ptr; i_ptr=&i; m_ptr=i_ptr; 把数组的首地址赋予指向数组的指针变量 int a5,*ap; ap=a; ap=&a0; int a5,*ap=a;把字符串的首地址赋予指向字符类型的指针变量 unsigned char *cp; cp=“He

10、llo World!”; 这里应该说明的是,并不是把整个字符串装入指针变量,而是把存放该字符串的字符数组的首地址装入指针变量。17D/A 转换器接口 D/A转换器输入的是数字量,经转换后输出的是模拟量。DAC0832是一个8位D/A转换器。单电源供电,从+5V+15V范围均可正常工作。基准电压的范围为10V;电流建立时间为1s;CMOS工艺,低功耗(仅为20mW)。 .18D/A 转换器接口 .DAC0832 内部结构框图19D/A 转换器接口 DAC0832 内部结构框图DAC0832由输入寄存器和DAC寄存器构成两级数据输入锁存。使用时数据输入可以采用两级锁存(双锁存)形式、或单级锁存(一

11、级锁存,另一级直通)形式,或直接输入(两级直通)形式。此外,由三个与门电路可组成寄存器输出控制逻辑电路,该逻辑电路的功能是进行数据锁存控制。当=0时,输入数据被锁存;当=1时,锁存器的输出跟随输入的数据。20D/A 转换器接口 DAC0832各引脚信号说明21D/A 转换器接口 单片机与DAC0832单缓冲连接方式22D/A 转换器接口 单片机与DAC0832单缓冲连接方式产生三角波程序#include/绝对地址访问头文件#include#define uchar unsigned char#define uint unsigned int#define DA0832 XBYTE0 x7fffvo

温馨提示

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

评论

0/150

提交评论