




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章第九章8051外部接口的外部接口的C编程编程 1 1 模拟量模拟量 D/A传感器传感器执行元件执行元件A/D 数字量数字量数字量数字量模拟量模拟量 模拟量输入模拟量输入 (数据采集数据采集) 模拟量输出模拟量输出 (过程控制过程控制) 计算机计算机 1、模拟接口的作用、模拟接口的作用 模拟量的输入、输出通道是微型计算机与控制对象之间的重模拟量的输入、输出通道是微型计算机与控制对象之间的重 要接口,也是实现工业过程控制的重要组成部分。要接口,也是实现工业过程控制的重要组成部分。 实际工业生产环境实际工业生产环境连续变化的模拟量连续变化的模拟量 v例如:电压、电流、压力、温度、位移、流量例如
2、:电压、电流、压力、温度、位移、流量 计算机内部计算机内部离散的数字量离散的数字量 v二进制数、十进制数二进制数、十进制数 第九章第九章8051外部接口的外部接口的C编程编程 2 2 输入通道输入通道 模拟接口电路的任务模拟接口电路的任务模拟电路的任务模拟电路的任务 00101101 10101100 工工 业业 生生 产产 过过 程程 传传 感感 器器 放大放大 滤波滤波 多路转换多路转换 /*数据送到输入寄存器数据送到输入寄存器*/ INPUTR2=data2; DACR=0; /*启动两路启动两路D/A同时转换同时转换*/ 第九章第九章8051外部接口的外部接口的C编程编程 17 17
3、第九章第九章8051外部接口的外部接口的C编程编程 18 18 DAC0832ILE接接+5V, 始终保持有效。写信始终保持有效。写信 号控制数据的锁存,号控制数据的锁存, WR1与与WR2相连,接相连,接 8051的的WR,即数据同,即数据同 时写入寄存器;传送时写入寄存器;传送 允许信号允许信号XFER与片选与片选 CS相连,即选中相连,即选中 DAC0832后,写入数后,写入数 据立即启动转换。据立即启动转换。 第九章第九章8051外部接口的外部接口的C编程编程 19 19 按照片选确定按照片选确定FFFEH为该片为该片DAC0832的地址。的地址。 #include #include
4、#define DA0832 XBYTE0 xfffe #define uchar unsigned char #define uint unsigned int void stair(void) while(1) for(i=0;i=255;i+) DA0832=i; 第九章第九章8051外部接口的外部接口的C编程编程 20 20 vAD7521是12位的D/A转换器,片内不带输入寄存器。对于 没有输入寄存器的D/A转换器,当输入数据变化时,输出电 流或电压会消失。在实际使用中,为控制一个对象,往往 要求转换后的模拟量保持一定时间。因此,在这类D/A转换 器之前,需增加一个数据锁存器再与总线
5、相连。 由于由于AD7521是是12位数据输入,因此需外加位数据输入,因此需外加12位数据锁存器。这里采用低位数据锁存器。这里采用低8 位和高位和高4位位2个锁存器,且低个锁存器,且低8位用位用2片片74LS377作双缓冲器,高作双缓冲器,高4位用位用1片片 74LS379作单缓冲寄存器。输出转换数据时,先输出低作单缓冲寄存器。输出转换数据时,先输出低8位数据到第一级位数据到第一级 缓冲器,然后输出高缓冲器,然后输出高4位数据到位数据到4位缓冲寄存器。在输出高位缓冲寄存器。在输出高4位数据的同时,位数据的同时, 把低把低8位数据打入第二级缓冲寄存器,以便位数据打入第二级缓冲寄存器,以便12位数
6、据同时转换。位数据同时转换。 第九章第九章8051外部接口的外部接口的C编程编程 21 21 图中第一级缓冲器的地址为图中第一级缓冲器的地址为7FFFH,第二级缓冲器和,第二级缓冲器和4位缓冲器地位缓冲器地 址为址为BFFFH。 #include #include #define DA7521L XBYTE0 x7fff #define DA7521H XBYTE0 xbfff #define UP 0 x10 #define T 1000 #define uint unsigned int Void dlms(uint a); void stair(void) uint I; for(i=0
7、;i=2=2Fm Fm,则 ,则Xs(t)Xs(t)保留了保留了X(t )X(t )的全部信息的全部信息 (从(从Xs(t)Xs(t)可以不失真地恢复出可以不失真地恢复出X(t)X(t))。)。 奈奎斯特采样频率奈奎斯特采样频率 第九章第九章8051外部接口的外部接口的C编程编程 24 24 3、A/D转换的参数转换的参数 (1)模拟量输入范围和分辨率模拟量输入范围和分辨率 ADC把模拟量转换为数字,模拟量输入范围可以是:把模拟量转换为数字,模拟量输入范围可以是: 例:例:8 8位位ADCADC,单极性输入,单极性输入0 05V5V,数字量为,数字量为0 0255255,它能分,它能分 辨的最
8、小输入信号是辨的最小输入信号是(5V/256)=20mV(5V/256)=20mV,分辨率,分辨率=2=28 8 =256位 1212位位ADCADC,双极性输入,双极性输入-5V-5V+5V+5V,数字量为,数字量为-2048-2048+2047+2047, 它能分辨的最小输入信号是它能分辨的最小输入信号是(10V/4096)=2mV(10V/4096)=2mV,分辨率,分辨率= = 2 212 12=4096 =4096位位 05V 010V 单极性输入单极性输入 -5V+5V: 双极性输入双极性输入 转换后的数字量一般有转换后的数字量一般有8、10、12、14、16位。位。 ADCADC
9、的的分辨率分辨率是指它能够分辨的最小输入信号,一般用位数是指它能够分辨的最小输入信号,一般用位数 来表示来表示 第九章第九章8051外部接口的外部接口的C编程编程 25 25 (2)转换时间和转换率)转换时间和转换率 转换时间转换时间:ADCADC完成一次转换所需的时间。完成一次转换所需的时间。 转换率转换率:1 1秒时间内能完成转换的次数,秒时间内能完成转换的次数,kHZkHZ,MHZMHZ。 A/D转换的参数(续)转换的参数(续) 第九章第九章8051外部接口的外部接口的C编程编程 26 26 (3)转换精度)转换精度 ADCADC输出的实际数字量与理想数字量之间有一定误差,输出的实际数字
10、量与理想数字量之间有一定误差, 这种误差由两部分构成:这种误差由两部分构成: u量化误差量化误差 量化误差是把连续的模拟量转换为离散的数字量(这一过程量化误差是把连续的模拟量转换为离散的数字量(这一过程 称为量化)时产生的误差,它必然存在的,是不可避免的。称为量化)时产生的误差,它必然存在的,是不可避免的。 u器件误差器件误差 器件误差是由于器件制造精度、温度漂移等造成的,可以通器件误差是由于器件制造精度、温度漂移等造成的,可以通 过提高产品质量来降低。过提高产品质量来降低。 如,如,8 8位位ADCADC,单极性输入,单极性输入0 05V5V,数字量为,数字量为0 0255255,它的量,它
11、的量 化误差是化误差是=(1/2)=(1/2)* *(5V/256)=10mV(5V/256)=10mV,如,如, 4.994.995.00V5.00V输入输入 对应的数字均为对应的数字均为255255,这是不可避免的。,这是不可避免的。 A/D转换的参数(续)转换的参数(续) 第九章第九章8051外部接口的外部接口的C编程编程 27 27 3.转换精度转换精度 A/DA/D转换精度用数字量的最低有效位(转换精度用数字量的最低有效位(LSBLSB)来表示。)来表示。 如果模拟量在如果模拟量在(/2)范围内,都产生相对应的唯一数字范围内,都产生相对应的唯一数字 量,称为这个量,称为这个ADC是无
12、误差的,或者称其精度为是无误差的,或者称其精度为0LSB 如果模拟量在如果模拟量在 范围内,都产生相对应的唯一范围内,都产生相对应的唯一 数字量,这个数字量,这个ADC的精度为的精度为1/2LSB 如果模拟量在如果模拟量在(+3/43/4)范围内,都产生相对应的范围内,都产生相对应的 唯一数字量,这个唯一数字量,这个ADC的精度为的精度为1/4LSB。 A/D转换的参数(续)转换的参数(续) 第九章第九章8051外部接口的外部接口的C编程编程 28 28 4、A/D转换的原理和方法转换的原理和方法 A/DA/D转换器按转换原则可分为转换器按转换原则可分为直接直接A/DA/D转换器转换器和和间间
13、 接接A/DA/D转换器转换器 u直接直接A/D转换转换 把模拟信号直接转换为数字信号,如逐次逼近型,并联比把模拟信号直接转换为数字信号,如逐次逼近型,并联比 较型等较型等 u间接间接A/D转换转换 把模拟量转换成中间量,然后再转换为数字量,如电压把模拟量转换成中间量,然后再转换为数字量,如电压 时间转换型,电压频率转换型,电压脉宽转换型时间转换型,电压频率转换型,电压脉宽转换型 等。等。 第九章第九章8051外部接口的外部接口的C编程编程 29 29 START EOC CLK OE D7 D0 VREF(+) VREF(-) ADDC ADDB ADDA ALE IN0 IN7 比较器比较
14、器 8路模路模 拟开拟开 关关 逐位逼近寄存器逐位逼近寄存器 SAR 树状开关树状开关 电阻网络电阻网络 三态三态 输出输出 锁存锁存 器器 时序与控制时序与控制 地址地址 锁存锁存 及及 译码译码 D/A 8 个个 模模 拟拟 输输 入入 通通 道道 8选选1 ADC0809是是8位逐次逼近型位逐次逼近型A/D转换器,带转换器,带8个模拟量输入通道,芯片内个模拟量输入通道,芯片内 带通道地址译码锁存器,输出带三态数据锁存器,启动信号为脉冲启动方带通道地址译码锁存器,输出带三态数据锁存器,启动信号为脉冲启动方 式,每一通道大约式,每一通道大约100us。 第九章第九章8051外部接口的外部接口
15、的C编程编程 30 30 主要引脚如下:主要引脚如下: D7D0:输出数据线(三态):输出数据线(三态) IN0IN7:8通道(路)模拟输入通道(路)模拟输入 ADDA、ADDB、ADDC:通道地址(通道选择):通道地址(通道选择) ALE:通道地址锁存:通道地址锁存 START:启动转换:启动转换 EOC:转换结束,可用于查询或作为中断申请:转换结束,可用于查询或作为中断申请 OE:输出允许(打开输出三态门):输出允许(打开输出三态门) CLK:时钟输入(:时钟输入(10KHz1.2MHz) VREF(+)、VREF(-):基准参考电压:基准参考电压 ADC0809由两大部分组成:由两大部分
16、组成: l 一部分为输入通道,包括一部分为输入通道,包括8位模拟开关、位模拟开关、3条地址线的锁存器和条地址线的锁存器和 译码器,可实现译码器,可实现8路模拟输入通道的选择;路模拟输入通道的选择; l 一部分为逐次逼近型一部分为逐次逼近型 A/D转换器。转换器。 第九章第九章8051外部接口的外部接口的C编程编程 31 31 ADC0809的工作过程如下:的工作过程如下: 把把通道地址送到通道地址送到ADDAADDC上,选择模拟输上,选择模拟输 入;入; 在通道地址信号有效期间,在通道地址信号有效期间,ALE上的上的上升沿该上升沿该 地址锁存到内部地址锁存器;地址锁存到内部地址锁存器; STA
17、RT引脚上的下降沿启动引脚上的下降沿启动A/D变换;变换; 变换开始后,变换开始后,EOC引脚呈现低电平,引脚呈现低电平, EOC重新重新 变为高电平时表示转换结束;变为高电平时表示转换结束; OE信号打开信号打开输出锁存器的三态门送出结果输出锁存器的三态门送出结果 。 第九章第九章8051外部接口的外部接口的C编程编程 32 32 单路输入单路输入 v模拟信号可固定连接到任何一个输入端模拟信号可固定连接到任何一个输入端 v地址线根据输入线编号固定连接地址线根据输入线编号固定连接(高电平或低电平高电平或低电平) 多路输入多路输入 v模拟信号按顺序分别连接到输入端模拟信号按顺序分别连接到输入端
18、v要转换哪一路输入,就将其编号送到地址线上要转换哪一路输入,就将其编号送到地址线上(动态动态 选择选择) 单路输入时单路输入时 ADDC ADDB ADDA IN4输入输入 多路输入时多路输入时 ADDC ADDB ADDA IN0 IN1 IN2 IN3 IN4 ADC0809 输入输入0 输入输入1 输入输入2 输入输入3 输入输入4 CPU指定指定 通道号通道号 +5V 模拟输入端模拟输入端INi 第九章第九章8051外部接口的外部接口的C编程编程 33 33 多路输入时,地址线不能接死,而是要通过一个接口芯多路输入时,地址线不能接死,而是要通过一个接口芯 片与数据总线连接。接口芯片可以
19、选用:片与数据总线连接。接口芯片可以选用: v锁存器锁存器74LS273,74LS373等(要占用一个等(要占用一个I/O地址)地址) v可编程并行接口可编程并行接口8255(要占用四个(要占用四个I/O地址)地址) CPU把通道地址通过接口芯片送给把通道地址通过接口芯片送给0809 ADDC ADDB ADDA IN0 IN1 IN2 IN3 IN4 ADC0809 输输 入入 DB 74LS273 Q2 Q1 Q0 CP 来自来自I/O 译码译码 D0-D7 ADDC ADDB ADDA IN0 IN1 IN2 IN3 IN4 ADC0809 DB 8255 PB2 PB1 PB0 CS#
20、 来自来自I/O 译码译码 D0-D7 A1 A0 A1 A0 地址线地址线ADDA-ADDC 第九章第九章8051外部接口的外部接口的C编程编程 34 34 内部已接有三态门,故可直接连到内部已接有三态门,故可直接连到DB上上 也可另外通过一个输入接口与也可另外通过一个输入接口与DB相连相连 上述两种方法均需占用一个上述两种方法均需占用一个I/O地址地址 D0-D7 ADC0809 DB OE 来自来自I/O 译码译码 D0-D7 ADC0809 DB OE 来自来自I/O 译码译码 直接连直接连DB 通过输入接口连通过输入接口连DB 74LS244 +5V DIDO E1# E2# 数据输
21、出线数据输出线D0-D7 第九章第九章8051外部接口的外部接口的C编程编程 35 35 两种连接方法:两种连接方法: v独立连接:用两个信号分别进行控制独立连接:用两个信号分别进行控制需占用两个需占用两个 I/OI/O端口或两个端口或两个I/OI/O线线( (用用82558255时时) ); v统一连接:用一个脉冲信号的上升沿进行地址锁存,统一连接:用一个脉冲信号的上升沿进行地址锁存, 下降沿实现启动转换下降沿实现启动转换只需占用一个只需占用一个I/OI/O端口或一端口或一 个个I/OI/O线线( (用用82558255时时) )。 ADC0809 ALE START 独立连接独立连接 来自
22、来自I/O 译码译码1 来自来自I/O 译码译码2 ADC0809 ALE START 统一连接统一连接 来自来自I/O 译码译码 地址锁存地址锁存ALE和启动转换和启动转换START 第九章第九章8051外部接口的外部接口的C编程编程 36 36 软件延时等待软件延时等待(比如延时比如延时1ms)不用不用EOC信号信号 vCPU效率最低效率最低 软件查询软件查询EOC状态状态 vEOC通过一个三态门连到数据总线的通过一个三态门连到数据总线的D0(其他也可以其他也可以) v三态门要占用一个三态门要占用一个I/O端口地址端口地址 vCPU效率低效率低 把把EOC作为中断申请信号作为中断申请信号
23、v在中断服务程序中读入转换结果,效率高。在中断服务程序中读入转换结果,效率高。 转换结束转换结束EOC ADC0809与系统的连接(续)与系统的连接(续) 第九章第九章8051外部接口的外部接口的C编程编程 37 37 ADC0809的启动的启动 信号信号START由片由片 选选P2.7与写信号与写信号 WR的的“或非或非”产产 生。要求一条向生。要求一条向 ADC0809写操作写操作 指令来启动转换。指令来启动转换。 ALE与与START相相 连,即按打入的通连,即按打入的通 道地址接通模拟量道地址接通模拟量 并启动转换。输出并启动转换。输出 允许信号允许信号OE由读由读 信号信号RD与片选
24、信与片选信 号号P2.7”或非或非“产产 生生,即一条即一条 ADC0809的读操的读操 作使数据输出。作使数据输出。 第九章第九章8051外部接口的外部接口的C编程编程 38 38 ADC0809的模拟通道的模拟通道07的地址为的地址为7FF8H7FFFH。从。从ADC0809的的8通道通道 轮流采集一次数据,采集的结果放在数组轮流采集一次数据,采集的结果放在数组ad中。中。 #include #include #define uchar unsigned char #define IN0 XBYTE0 x7ff8 /*设置设置ADC0809的通道的通道0地址地址*/ sbit ad_bus
25、y=P33; /*EOC状态状态*/ void ad0809(uchar idata *x,uchar n) /*采样结果放指针中的采样结果放指针中的A/D采集函数采集函数*/ uchar i; uchar xdata *ad_adr; ad_adr= for(i=0;in;i+) /*处理处理8个通道个通道*/ *ad_adr=0; /*启动启动A/D转换转换*/ i=i; i=i; /*延时等待延时等待*/ while(ad_busy=0); /*查询等待转换结束查询等待转换结束*/ xi=*ad_adr; /*存转换结果存转换结果*/ ad_adr+; void main(void) s
26、tatic uchar idata ad8; ad0809(ad,8); 第九章第九章8051外部接口的外部接口的C编程编程 39 39 A/D采样地址为采样地址为7FF8H,8位位A/D最大值为最大值为255,用三个数码管,用三个数码管 显示,以显示,以P3.3为查询位。为查询位。 #include #define uint unsigned int #define uchar unsigned char #define SAMPLENUM 50 sbit ad_busy=P3.3; void ad0809(uchar idata *x) uchar data i; uchar xdata
27、*ad_adr; ad_adr=0 x7ff8; for(i=0;iSAMPLENUM;i+) *ad_adr=0; i=i; i=i; while(ad_busy=1); bufi=*ad_adr; P3=0 x01; 第九章第九章8051外部接口的外部接口的C编程编程 40 40 void main(void) uint i, j, m, total; uchar idata bufSAMPLENUM; uchar idata dis3; uchar code tab16=0 x3f,0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07, 0 x7
28、f, 0 x6f, 0 x77, 0 x7c, 0 x39, 0 x5e, 0 x79, 0 x71; void delay(uchar data delay1) uchar data i,j; for(i=0;idelay1;i+) for(j=0;j=0;i-) total+=bufi-1; total=total/SAMPLENUM; dis0=total%10 total=total/10; dis1=total%10; dis2=total/10; for(m=0;mSAMPLENUM;m+) for(i=0;i3;i+) if(i=0) P3=0 x01; else P3=1; P
29、1=tabdisi; delay(50); 第九章第九章8051外部接口的外部接口的C编程编程 42 42 AD574是由模拟部分和数字部分混合而成:是由模拟部分和数字部分混合而成: 模拟部分由模拟部分由12位位D/A芯片芯片AD565和参考电压组成;和参考电压组成; 数字部分由控制逻辑电路逐次逼近寄存器和三态输出缓冲器组成。数字部分由控制逻辑电路逐次逼近寄存器和三态输出缓冲器组成。 AD574是快速型是快速型12位逐次逼近式位逐次逼近式A/D转换器。它无需外接元器件就可转换器。它无需外接元器件就可 以独立完成以独立完成A/D转换功能,转换时间为转换功能,转换时间为1535us;可以并行输出;可以并行输出12位,位, 也可以分为也可以分为8位和位和4位两次输出。位两次输出。 第九章第九章8051外部接口的外部接口的C编程编程 43 43 6、12位位A/D芯片芯片ADC574 第九章第九章8051外部接口的外部接口的C编程编程 44 44 12位位A/D芯片芯片AD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年重庆医科大学附属永川医院招聘笔试真题
- 2025年中国水泥熟料数据监测研究报告
- 中石化:石油脑市场分析及竞争策略分析报告
- 深冷成套装置产业分析报告
- 2025至2030中国消化系统药物市场发展现状调研及前景趋势研究报告
- 考虑中断时间的汽车供应链弹性策略研究
- 连续并购企业估值方法优化问题研究-以美的集团为例
- 宁波建工逆向混改路径及绩效研究-基于共生理论视角
- 2025至2030中国手持绿篱机行业销售渠道趋势及投融资前景规划报告
- 2025至2030中国婴儿餐椅行业发展策略及投资建议研究报告
- 2025商业综合体委托经营管理合同书
- 2024-2025学年北师大版生物七年级下册期中模拟生物试卷(含答案)
- T-CACM 1212-2019 中医妇科临床诊疗指南 产后小便不通
- 林业理论考试试题及答案
- 超市店长价格管理制度
- 2025-2030中国脑芯片模型行业市场发展趋势与前景展望战略研究报告
- 2025年河南省洛阳市洛宁县中考一模道德与法治试题(含答案)
- 掘进爆破、爆破安全知识
- 绿色工厂员工培训
- 2025年吉林省长春市中考一模历史模拟试题(含答案)
- 贵州民族建筑知到智慧树章节测试课后答案2024年秋贵州民族大学
评论
0/150
提交评论