基于51开发的D/A&A/D 与单片机接口原理2

发布者:TranquilWhisper最新更新时间:2015-02-06 来源: 51hei关键字:51开发  单片机  接口原理 手机看文章 扫描二维码
随时随地手机看文章

D/A :的操作我们最关心的是,串行还是并行,接口的说明,然后是转换位数和转换速率,完了看操作时序,看接法,DAC0832有好几种,但是一般芯片只有一种接法,接法不同当然操作方法也不同。



上图为D/A 接口图     就从操作2个管脚  P5 的2脚和3脚有个跳线帽  短路了  灯会根据D/A 亮到灭变化

写个程序代码更好理解

#include

 

sbit csda = P3^2;

sbit wr = P3^6;

void main(){

   csda =0; //根据管脚说明操作时序都是低电平有效

    wr =0;//根据管脚说明 操作时序都是低电平有效

 

  P0 = 0xff; //单片机输出全1   灯点亮了

  while (1){

   P0= 0x00;//单片机输出全0   灯熄灭

 }

 

}

//简单吧!  好了我们再做个有点难度的,让灯2秒中从亮到熄灭  循环。

//可以用定时器     也就是 P0 口从输出0  到255  在 2秒时间内送完  ,可以这样做 2秒时间中断255次每次

//加1,外面判断下到255  就不加了。

--------------------------------------------------------------------------------------------------

 一、A/D  :模拟(analog)到数字(digit)

A/D转换的原理及主要技术指标

如图:以电压举例。Vin 电压输入转换原理  参考电压通过D/A 转换器(上面讲过了D/A原理)依次输出一个参考电压 依次跟Vin比较比如参考电压大于那么就经过运算输出1 通过逻辑控制 到N位寄存器 最终实现模拟到数字的转换。如果比较完了 EOC 向单片机发一个中断,表示比较完了,OE 输出一个低电平然后一次读走数据。当然还有很多转换方式。

如下图 双积分式ADC的转换原理



这就不讲了。等学到数字电路积分器和微分器的时候就明白了
二、下面看看A/D转换器的主要技术指标







A/D的速率相对来说是低,我们平时也就几十K 的速率, D/A 很快几十个G的速率。[page]

下面是A/D与单片机接口图

 




AD0804的11   到18 接单片机P1口,0804的第5管脚是中断就是说AD芯片转换完了得要通知单片机,如果使用中断需要接单片机的外部中断。而我们这边上图是没有用中断的就是启动转换之后过一段时间去读,因为它肯定
转换完了也给中断了只不过我们不去读罢了。 WR   RD  接的单片机的P3.6 /P3.7口。CSAD 就是片选我们接的锁存器,锁存器通过P0口可以控制的(P2.7给个高电平就行了)。 19  4 脚 外接一个电阻和电容其实是一个RC振荡电路看datasheet 就给出了这个典型电路了,我们这样就行了。内部有移位寄存器和D/A转换器需要动力。如果你直接给4脚接个时钟频率也可以。这个脚决定了AD的转换速率当然它是有个上限的。不能超过AD速率的范围。RC 振荡跟转换速率的关系等会再讲啊。 第6 脚和7脚可以输入一个差分信号,也就是这2端的电压值AD用来进行比较,而我们直接把7脚接地了。得让6和7之间有个变化的电压,其实它的作用可以采集桥式电路 ,6脚通过一个电阻(限流电阻防止AD电流损坏)接A/Din  它在板子上有个跳线帽是短路的有了电位器,调节电位器就可改变电压0----5V变化。8脚 模拟地,10 数字地、最好分开防止干扰。9脚为1/2的Vref(参考电压),我们用了2个电阻分压(相等的电阻串联1K)2.5V左右。

我们看看他的操作时序图(Timing Diagrams)开始转换



actual internal 实际内部 status of the convrter 转换状态 当CS 在低电平期间 WR 来一个低脉冲 过了1 到8个 *1/晶振频率个时间开始忙 BUSY  (转换)Tc时间转换完了之后输出锁存器DATA IS valid IN OUTPUT LATCHES 有效数据.  INTR就是转换完了   INT ASSERTED 通知中断一个低电平 ,当然单片机读走数据之后INTR就自动置高了。

下图是 输出使能和复位   其实就是读取数据

 

由上图可知就4根线,INTR  CS   RD    DATA OUTPUT(数据总线)
由于我们直接把CS 接地线所以始终就是低电平,这个时序图是在INTR发一个中断  单片机案检测到中断,把RD拉低 ,在RD 从低到高变化的一瞬间把数据读走了。由于我们中断没有用悬空的,所以只看RD  和DATA OTPUT 数据总线,那么就是RD  从高变低  再从从低变高  然后把数据读走。就是设置个变量让这个变量等于P几口就行了, tACC 这段时间就会RD至少要保持这段时间也就是到数据的出现。看数据表得知tACC 也是ns 级的非常短暂,(单片机的一条指令时间都是微秒级的us 所以可以不用管)。

RC 的选择可以从数据手册找到如下图

 



由此图可以得知,RC越大那么这个AD的fclk越小速度越慢,所以我们单片机读的时候不能太快,还没转化完呢。好了下面我写个程序看看吧!

#include

#define uint unsigned int

#define ucar unsigned char

//sbit csad  //连的锁存器 所以我们不用定义

sbit wr =P3^6;

sbi rd = P3^7;

void delay(uint z){

   uint t1,y;

   for (t =z;;t1>0;t1--)

     for(y=110;y>0;y--);

}

void init();

void start();

 

void main(){

 init(); 

 while(1){

     start();

     delay(50);//灯会亮,因为数据管脚不但接单片机而且还接了 灯。

    

     rd=0;//需要rd也拉低   相当于AD芯片的OE  虽然转化完只有OE为低电平使能的时候数据才会出来 

     //调节电位器 之后按复位才变化,说明 你再置高,下次转换完了再置低

     delay(10);

   ru= 1;//这样既解决了不用复位键就能改变、需要加延时不然灯会很暗。

    delay(10);

//转化的快慢跟RC 振荡 和IC 本身都有关系。可以较少RC 的值

  

}

void init(){

    P0 = 0x7f;//片选给个低电平  高位

   

   

}

void start(){

    wr =1;

    wr=0

    wr=1;

   

}

 

//通过以上可以加个变量  把模拟量变化到数据总线端   给数码管显示。

//A/D 输出 赋值给D/A 来实现 模拟变化。跟我们的录音机声音的采集A/D 之后D/A 接功放放出去。

关键字:51开发  单片机  接口原理 引用地址:基于51开发的D/A&A/D 与单片机接口原理2

上一篇:80C51串行口通信
下一篇:基于51单片机接矩阵键盘原理

推荐阅读最新更新时间:2024-03-16 13:53

单片机·DS18B20温度传感器
一、DS18B20的特点 1. 一线总线 数字化温度传感器。(一线掌握好时序,比较简单) 2. 3~5V宽电压工作范围 3. 分辨9-12位可调 二、DS18B20的正确接线 面对着扁平的那一面,左负右正,一旦接反就有可能烧毁,也是温度显示85 C的原因。 且只有一根I/O线,注意读写时序 。 三、DS18B20时序介绍 1)复位 输入 t0-t1时刻:复位脉冲 480-960us ; t1-t2时刻:释放总线 15-60us ; 检测 t2-t3时刻:虚线部分由DS18B20控制,60-240us低电平则表示复位成功,否则失败
[单片机]
AVR 单片机 位操作
在汇编里面位造作用 SEI PORTA 3,把PORTA的第三位置1 , 在C里面,可以用&与|表达: PORTA=PORTA|0x08, 简写为PORTA|=(0x08); PORTA=PORTB&(0xF7) 简写为PORTA&=0xF7 以上是对寄存器的某一位操作,当然也可以同时操作几个位, |0x0F ,则低四位置1; 在很多地方,如ATMEL的文档里我们会看到像TCCR1A|=(1 COM1A0);//A比较匹配, 这样的操作,这是怎么回事呢? 首先要知道 , 的意思,这是左移,右移操作,(A 3)是把A的二进制数向左移3位,即乘以2的三次方. COM1A0是TCCR1A的第6位,这是ATME
[单片机]
51单片机点亮流水灯
1. 直接按位操作一个一个点亮 #include reg51.h //头文件 sbit LED0=P2^0; //位定义单片机接LED灯的端口 sbit LED1=P2^1; sbit LED2=P2^2; sbit LED3=P2^3; sbit LED4=P2^4; sbit LED5=P2^5; sbit LED6=P2^6; sbit LED7=P2^7; void delay()//延时函数 { unsigned char a,b; for(a=0;a 200;a++) for(b=0;b 200;b++); } void main()//主函数 { while(1) { LED0
[单片机]
单片机51多任务的操作系统原理
  想了很久,要不要写这篇文章?最后觉得对操作系统感兴趣的人还是很多,写吧。我不一定能造出玉,但我可以抛出砖。   包括我在内的很多人都对51使用操作系统呈悲观态度,因为51的片上资源太少。但对于很多要求不高的系统来说,使用操作系统可以使代码变得更直观,易于维护,所以在51上仍有操作系统的生存机会。   流行的uCos,Tiny51等,其实都不适合在2051这样的片子上用,占资源较多,唯有自已动手,以不变应万变,才能让51也有操作系统可用。这篇贴子的目的,是教会大家如何现场写一个OS,而不是给大家提供一个OS版本。提供的所有代码,也都是示例代码,所以不要因为它没什么功能就说LAJI之类的话。如果把功能写全了,一来估计你也不
[单片机]
一种基于单片机和串行EEPROM的智能密码锁
1. 引言 电子技术的飞速发展,给传统的机械锁带来了巨大的变革,现代的电子技术与机械技术相结合,产生了一大批如声控锁、电子密码锁、遥控锁,指纹锁等先进的锁具。虽然这类产品安全性高,但因其生产成本高,安装使用不方便,在一定程度上限制了这类产品的普及和推广。本文介绍的是一种基于AT89C51单片机和AT24C01串行EEPROM的智能密码锁的硬件设计和软件实现方法,这种电路设计具有防试探按键输入、智能控制上锁、开锁、报警、修改密码等多种功能。密码长度可变,保密性强,灵活性高,外接各种执行机构,可广泛用于车辆、大门、保险柜等各种需上锁的场合。 2. 设计思路 本设计中,智能密码锁工作时分为两种工作状态,分别是正常状态和锁定状态。锁
[单片机]
一种基于<font color='red'>单片机</font>和串行EEPROM的智能密码锁
单片机汇编语言程序设计
1、汇编语言源程序的格式 1.内部数据传送指令 汇编语言是面向机器的,因此,语言格式因机器不同而异。对MCS-51系统来说,汇编语言中每条语句的格式包括下列4项内容: 标号: 操作码 操作数; 注释 汇编语句中,标号和操作码要用冒号 : 隔开;操作码和操作数之间的分隔符是空格,多个操作数之间用 , 分隔;操作数与注释之间用 ; 分隔;操作码是必选项,其余都是可选项,即任何语句都必须包含操作码,其他部分因语句不同而异。 1.ORG伪指令 ORG伪指令称为起始汇编伪指令,一般用于汇编语言源程序或某数据块的开头,格式为: :ORG 16位的地址或标号 2.END伪指令 END伪指令称为汇编结束伪指令,经常用在
[单片机]
<font color='red'>单片机</font>汇编语言程序设计
市场主流单片机的介绍和选择指南
Motorola单片机  Motorola(现在为飞思卡尔)是世界上最大的单片机厂商。品种全、选择余地大、新产品多是其特点,在8位机方面有68HC05和升级产品68HC08,68HC05有三十多个系列,二百多个品种,产量已超过20亿片。8位增强型单片机68HC11也有三十多个品种,年产量在1亿片以上。升级产品有68HC12。16位机68HC16也有十多个品种。32位单片机的683XX系列也有几十个品种。近年来,以PowerPC、Coldfire、M.CORE 等为CPU。将DSP做为辅助模块集成的单片机也纷纷推出。目前仍是单片机的首选牌品。Motorola单片机特点之一是在同样速度下所用的时钟频率较Intel类单片机 低很多,因而使
[单片机]
MCU巨头,血拼GPU性能
曾经,MCU是电子产品的控制核心,GPU是图像世界的掌控者,二者在过去很少有交集。随着越来越多图形处理需求,MCU中放GPU,已经不是什么新鲜操作。 最近一段时间,边缘AI概念的兴起,以及汽车图形显示性能的提升,越来越多的MCU厂商开始“卷”图像处理性能。 MCU的图形历史 在那个没有GPU的时代,所有图形还都是交给CPU绘制。虽然这没什么问题,但随着显示图形图像愈发复杂,CPU越来越力不从心。对计算机来说,低效率带来的就是延迟和卡顿,整体功耗也会随之攀升,GPU便应运而生,将CPU从繁重的图形计算任务中拯救了出来。 MCU也有类似的发展历程。早期MCU极少有图形显示的需求,即便有,也只是简单的12864之类
[单片机]
<font color='red'>MCU</font>巨头,血拼GPU性能
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved