常用ADDA芯片的使用并行ADC0809串行ADC0832串行PCF8591docppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

;接收第二字节
CLR RI
;清接收中断标志
MOV A,SBUF
;读第二字节数据
ANL A,#0FH
;第二字节屏蔽高4位
ANL B,#0FOH
;第一字节屏蔽低4位
ORL A,B
;组合
SWAP A
;高低4位互换,组成正确的A/D数据
MOV @R0,A
;存A/D数据
INC R0
;指向下一存储单元
MOV A,#0EH
⑵ 查询方式
工作在查询方式时,0809 EOC端可不必通过反相器与或相连,
直接与80C51 P1口或P3口中任一端线相连。
【例9-13】 图9-20中,用P1.0直接与0809 EOC端相连,试用查
询方式编制程序,对8路模拟信号依次A/D转换一次,并把结果
存入以40H为首址的内RAM中。
解:
MAIN: MOV R1,#40H
⑴ IN0~IN7:8路模拟信号输入端。 ⑵ C、B、A:8路模拟信号转换选择端。
与低8位地址中A0~A2连接。由A0~A2地址000~111选择IN0~IN7八路 A/D通道。
⑶ CLK:外部时钟输入端。 时钟频率高,A/D转换速度快。允许范围为10~1280KHz 。 通常由80C51 ALE端直接或分频后与0809 CLK端相连接。
; ;延时68S:2机周×17=34机周,2S×34=68S
MOVX A,@DPTR ;读A/D值
MOV @R1,A
;存A/D值
INC DPTR
;修正通道地址
INC R1
;修正数据区地址
DJNZ R7,LOOP ;判8路采集完否?未完继续
RET
;8路采集完毕,返回
三、串行A/D ADC0832及其接口电路
S SLAW A COM A S SLAR A Data0 A Data1 A
发出控制命令(写操作)
A/D转换(读操作)
其中红色部分由80C51发送,PCF8591接收; 黑色部分由PCF8591发送,80C51接收;
4、软件编程
【例9-16】 按图9-23(b)编程将AIN0~AIN3 4个通道的模拟
STAT 0013H PINT1 0100H R1,#30H R7,#8 IT1 EX1 EA DPTR,#0FEF8H @DPTR,A MAIN
;复位地址
;转初始化程序 ;中断服务子程序入口地址 ;中断,转中断服务子程序; ;初始化程序首地址 ;置数据区首址 ;置通道数 ;置边沿触发方式 ;开中 ;CPU开中 ;置0809通道0地址 ;启动0通道A/D ;转主程序,并等待A/D中断
2、ADC 0809应用实例
⑴ 中断方式
【例9-12】 按图9-20,用中断方式对8路模拟信号依次A/D转
换一次,并把结果存入以30H为首址的内RAM中,试编制程序。
解:
STAT:
ORG
LJMP ORG LJMP ORG MOV MOV SETB SETB SETB MOV MOVX LJMP
0000H
MOV NUMB,#1
;置发送字节数
LCALL WRNB
;发送控制命令字
MOV R0,#50H
;置A/D数据区首址
VADC0: MOV SLA,#91H
;置接收寻址字节
MOV NUMB,#2
;置接收字节数
LCALL RDNB
;读A/D转换数据
MOV @R0,41H INC R0
;存A/D转换数据(存在50H~53H) ;修改A/D数据区地址
;置数据区首址
MOV R7,#8
;置通道数
SETB P1.0
;置P1.0输入态
MOV DPTR,#0FEF8H ;置0809通道0地址
LOOP: MOVX @DPTR,A
;启动A/D
JNB P1.0,$
;查询A/D转换结束否?未完继续查询等待
MOVX A,@DPTR
;A/D已结束,读A/D值
MOV @R1,A
③ 组合后的8位数据为: D3 D2 D1 D0 D7 D6 D5 D4
④ 高低4位互换后的8位数据为:
D7 D6 D5 D4 D3 D2 D1 D0
四、I2C串行A/D典型应用电路
I2C串行A/D芯片PCF8591,
同时具有A/D、D/A转换功能。
1、PCF8591引脚功能
SDA、SCL:I2C总线数据线、时钟线; A2、A1、A0:引脚地址输入端; AIN0~AIN3:模拟信号输入端, OSC:外部时钟输入端,内部时钟输出端; EXT:内外部时钟选择端,EXT=0时选择内部时钟; VDD、VSS:电源、接地端; AGND:模拟信号地; UREF:基准电压输入端; AOUT:D/A转换模拟量输出端;
① 输入方式0(四路单端输入):
ANI0 —— 通道0(单端输入) ANI1 —— 通道1(单端输入) ANI2 —— 通道2(单端输入) ANI3 —— 通道3(单端输入)
② 输入方式1(三路差分输入):
③ 输入方式2(二路单端一路差分输入): ④ 输入方式3(二路差分输入):
⑵ ADC数据操作格式
1、A/D转换器的主要性能指标:
⑴ 转换精度。转换精度通常用分辨率和量化误差来描述。 ① 分辨率。分辨率 = UREF / 2N 表示输出数字量变化一个相邻数码所需输入模拟电压的
变化量。N为A/D转换的位数,N越大,分辨率越高,习惯上分 辨率常以A/D转换位数N表示。
② 量化误差。量化误差是指零点和满度校准后,在整个转 换范围内的最大误差。
ORG PINT1: PUSH
PUSH MOVX MOV INC INC MOVX DJNZ CLR GORETI:POP POP RETI
0200H Acc PSW A,@DPTR @R1,A DPTR R1 @DPTR,A R7,GORETI EX1 PSW Acc
;中断服务子程序首地址 ;保护现场 ; ;读A/D值 ;存A/D值 ;修正通道地址 ;修正数据区地址 ;启动下一通道A/D ;判8路采集完否?未完继续 ;8路采集已完,关中 ;恢复现场 ; ;中断返回
;置串口方式0,禁止接收 ;串口禁中 ;置A/D数据存储区首址 ;片选0832 ;置CH0通道配置 ;启动A/D ;串行发送启动及通道配置信号 ;清发送中断标志 ;允许(启动)串行接收 ;接收第一字节 ;清接收中断标志,同时启动接收第二字节 ;读第一字节数据 ;暂存
ADC3: JNB RI,ADC3
2、典型应用电路
P1.0片选CS; TXD发送时钟信号输入ADC0832 CLK; RXD与DI、DO端连接在一起。
表9-3
编码
00 01 10 11
通道选择 CH0 CH1 +- -+ +

3、串行A/D转换工作时序
工作时序分为二个阶段: ⑴ 起始和通道配置,由CPU发送,从ADC0832 DI端输入; ⑵ A/D转换数据串行输出,由ADC 0832从DO端输出,CPU接收。
时等待方式编制程序,对8路模拟信号依次A/D转换一次,并把
结果存入以50H为首址的内RAM中。
解:编程如下:
MAIN:MOV R1,#50H ;置数据区首址
MOV R7,#8
;置通道数
MOV DPTR,#0FEF8H;置0809通道0地址
LOOP:MOVX @DPTR,A ;启动A/D
MOV R6,#17 DJNZ R6,$
CJNE R0,#54H,VADC0 ;判4通道A/D完成否?未完继续
RET
;
§9-4 D/A转换接口电路
一、D/A转换的基本概念
1、D/A转换的基本概念 D/A转换的基本原理是应用电阻解码网络,将N位数字量逐
位转换为模拟量并求和,从而实现将N位数字量转换为相应的 模拟量。
设D为N位二进制数字量,UA为电压模拟量,UREF为参考电压, 无论A/D或D/A,其转换关系为:
2、硬件电路设计
该芯片既可用于A/D转换(模拟信号从AIN0~AIN3输 入),又可用于D/A转换(D/A转换模拟量从AOUT输出), 器件地址为1001,若A2A1A0接地,D/A转换写寻址字节 SLAW=90H,A/D转换读寻址字节SLAR=91H。
3、片内可编程功能
⑴ 控制命令字
PCF8591内部有一个控制寄存器,用来存放控制命令,其 格式如下:
⑵ 转换时间。指A/D转换器完成一次A/D转换所需时间。转 换时间越短,适应输入信号快速变化能力越强。
2、A/D转换器分类
A/D转换器分类: 按转换原理形式可分为逐次逼近式、双积分式和V/F变换式; 按信号传输形式可分为并行A/D和串行A/D。
二、并行A/D ADC0809及其接口电路
1、引脚功能和典型连接电路
UA = D×UREF / 2N (其中:D=D0×20+D1×21+ … +DN-1×2N-1)
2、D/A转换器的主要性能指标 ⑴ 分辨率:相对分辨率 = 1/2N ,N越大,分辨率越高。 ⑵ 线性度 ⑶ 转换精度 ⑷ 建立时间 ⑸ 温度系数
二、DAC0832及其接口电路
DAC 0832是8位D/A芯片,由美国国家半导体公司生产, 是目前国内应用最广的8位D/A芯片(请特别注意ADC0832与 DAC0832的区别)。
⑺ START:启动A/D转换信号输入端。 当START端输入一个正脉冲时,立即启动0809进行A/D转换。START端与
ALE端连在一起,由80C51WR与0809片选端(例如P2.0)通过或非门相连。 ⑻ EOC:A/D转换结束信号输出端,高电平有效。 ⑼ UREF(+)、UREF(-):正负基准电压输入端。 ⑽ Vcc:正电源电压(+5V)。GND:接地端。
信号A/D转换后,依次存入以50H为首址的内RAM中。设VIIC软
件包已装入ROM,VSDA、VSCL、SLA、NUMB、MTD、MRD均已按
8.3.2 软件包小结中协议定义。
解:
VADC: MOV SLA,#90H
;置发送寻址字节
MOV MTD,#00000100B;置A/D转换控制命令,通道自动增量
⑷ D0~D7:数字量输出端。 ⑸ OE:A/D转换结果输出允许控制端。
OE=1,允许将A/D转换结果从D0~D7端输出。通常由80C51的端与0809片 选端(例如P2.0)通过或非门与0809 OE端相连接。
⑹ ALE:地址锁存允许信号输入端。 0809 ALE信号有效时将当前转换的通道地址锁存。
;置CH1通道配置
CJNE R0,#32H,ADC0 ;判两通道A/D完毕否?未完继续
CLR REN
;两通道A/D完毕,禁止接收
SETB P1.0
;清0832片选
说明: RET
;
① 接收第D一3 字D节2 的D81位数D0据为D1(注D2意先D3接收D4低位D4):
② 清串行接收中断标志后,启动串行接收第二字节,其数据为: × × × × D7 D6 D5 D4
COM D7 D6 D5 D4 D3 D2 D1 D0
D1、D0:A/D通道编号 00:通道0;01:通道1;10:通道2;11:通道3;
D2:自动增量选择 D2=1时,A/D转换将按通道0~3依次自动转换;
D3、D7:必须为0; D5、D4:模拟量输入方式选择位:
00:输入方式0(四路单端输入); 01:输入方式1(三路差分输入); 10:输入方式2(二路单端一路差分输入); 11:输入方式3(二路差分输入)。 D6:模拟输出允许。D6=1,模拟量输出有效;
;存A/D值
INC DPTR
;修改通道地址
INC R1
;修改数据区地址
DJNZ R7,LOOP
;判8路采集完否?未完继续
RET
;8路采集完毕,返回
⑶ 延时等待方式
工作在延时等待方式时,0809 EOC端可不必与80C51相连,是根
据时钟频率计算出A/D转换时间,略微延长后直接读A/D转换值。
【例9-14】 图9-20中,0809 EOC端开路,fosc=6MHz,试用延
ADC 0832是8位串行A/D转换器; 转换速度较高(250KHz时转换时间32s); 单电源供电,功耗低(15mw)。
1、引脚功能
VDD、VSS:电源接地端,VDD同时兼任UREF; CS:片选端,低电平有效; DI:数据信号输入端; DO:数据信号输出端; CLK:时钟信号输入端,要求低于600KHz; CH0、CH1:模拟信号输入端(双通道);
4、软件编程
【例9-15】按图9-21(b)电路,试编制程序,将CH0、CH1通
道输入的模拟信号A/D转换,分别存入30H31H中。
解:
AD0832:MOV CLR MOV CLR MOV
ADC0: MOV ADC1: JNB
CLR SETB ADC2: JNB CLR MOV MOV
SCON,#00H ES R0,#30H P1.0 A,#06H SBUF,A TI,ADC1 TI REN RI,ADC2 RI A,SBUF B,A
相关文档
最新文档