中国高校课件下载中心 》 教学资源 》 大学文库

大连理工大学:《单片机系统及应用》课程教学资源(PPT课件)第9章 单片机应用中模拟量的输入输出

文档信息
资源类别:文库
文档格式:PPTX
文档页数:21
文件大小:1.37MB
团购合买:点击进入团购
内容简介
大连理工大学:《单片机系统及应用》课程教学资源(PPT课件)第9章 单片机应用中模拟量的输入输出
刷新页面文档预览

第9章单片机应用中模拟量的输入输出

第9章 单片机应用中模拟量的输入输出

9.1.基本概念1.A/D转换模拟量:随时间连续变化的量,如温度、压力、速度等数字量:随时间离散变化的量将模拟量转换为数字量

9.1 基本概念 1.A/D转换  模拟量:随时间连续变化的量,如温度、压力、速度等  数字量:随时间离散变化的量 将模拟量转换为数字量

模拟量电信号自然信息过程电压信号经过A/D转换输入到模拟量A/D单片机传感器转换器现场图9.2模拟量输入过程方框图数字量

电压信号经过A/D转换输入到单片机的过程 图9.2 模拟量输入过程方框图 单 片 机 A/D 转 换 器 传 感 器 现 场 自然信息 模拟量 模拟量 电信号 数字量

2.A/D转换器的类型逐次逼近型A/D转换位数越多,分辨率越量低,灵敏度越高。积分型A/D转换3.衡量A/D转换器料性能的主要技术指标分辨率A由楼从开始到转换结转换时间束所用的时间转换精度线性度实际转换特性曲线与理想直线间的最大偏差模拟量输入信号的范围·A/D转换器的通道数4.A/D转换的方式·并行A/D转换串行A/D转换

2.A/D转换器的类型  逐次逼近型A/D转换  积分型A/D转换 3.衡量A/D转换器性能的主要技术指标  分辨率  转换时间  转换精度  线性度  模拟量输入信号的范围  A/D转换器的通道数 4.A/D转换的方式  并行A/D转换  串行A/D转换 一个数字量能分辨的模拟量, 与A/D转换的位数有关。 位数越多,分辨率越 低,灵敏度越高。 实际值与理 论值的差异 由模拟量误差和 数字量误差组成 实际转换特性曲线与理想 直线间的最大偏差 从开始到转换结 束所用的时间

9. 2并行A/D转换1.并行A/D转换器芯片ADC0809引脚图IN328IN2I23456INA27INiIN526INo25IN6A24BINT23CSTARTADC722EOCALE0809821D3D7/0808920D6OE19D5CLOCK10Vcc18D41117VREF(+)12Do1613GNDVREF(-)15Di14D2

9.2 并行A/D转换 1.并行A/D转换器芯片ADC0809引脚图 ADC 0809 /0808 IN0 IN7 IN6 IN3 IN2 IN5 IN4 IN1 D7 D6 D3 D4 D5 D1 D0 D2 VREF(+) VREF(-) VCC GND CLOCK OE EOC START B A ALE C 1 3 2 5 4 6 8 7 11 12 9 13 10 14 15 20 19 18 17 16 21 25 23 24 22 26 28 27

引脚功能说明IN~INz:8路模拟量输入EOC:转换结束信号。高电平表示转换结束,数字量锁力入“三态输出锁存器oIN3IN2C、B、A:选择8路输入27INTCLK:时钟输入信号。模拟量之一,C为高位。26INo频率范围10~1200KHZ25A典型值为640KHZ。5LHODSTART:将模拟量转换成数字量的启动信号,正脉冲有-效,持续时间大于100ns,上8升沿清零逐次逼近式寄存器福OE9下降沿启动ADC工作。10CLOCKALE:J位地班(C、B、A)锁Vcc存输入信号,高电平有效。YRER(t)1217Do1316GNDVREF()DDo:#数据总线1514DiD2VREF(+)VREF(-) :OE:输出使能控制,高参考电压输入端电平时将转换后的数字量输出至数据总线上

IN0 IN7 IN6 IN3 IN2 IN5 IN4 IN1 D7 D6 D3 D4 D5 D1 D0 D2 VREF(+) VREF(-) VCC GND CLOCK OE EOC START B A ALE C 1 3 2 5 4 6 8 7 11 12 9 13 10 14 15 20 19 18 17 16 21 25 23 24 22 26 28 27 ADC 0809 /0808 引脚功能说明 IN0~IN7: 8路模拟量输入 C、B、A:选择8路输入 模拟量之一,C为高位。 ALE:3位地址(C、B、A)锁 存输入信号,高电平有效。 CLK:时钟输入信号。 频率范围10~1200KHZ, 典型值为640KHZ。 VREF(+)、VREF(-): 参考电压输入端 START:将模拟量转换成数 字量的启动信号,正脉冲有 效,持续时间大于100ns,上 升沿清零逐次逼近式寄存器, 下降沿启动ADC工作。 EOC:转换结束信号。高电 平表示转换结束,数字量锁 入“三态输出锁存器”。 OE:输出使能控制,高 电平时将转换后的数字量 输出至数据总线上。 D7~D0:数据总线

2.单片机与ADC0809芯片的硬件接口·ADCO0809芯片硬件地址的确定·A/D转换结果的读取方式①查询方式②中断方式单片机与ADC0809的连接方法①直接连接法(小系统)将ADC0809数据总线与单片机的某个并口直连,其它控制端与单片机其它并口的某引脚连接,通过编程产生相应的控制信号,通过查询EOC来决定是否发信号给ADCO809的OE端进行A/D转换后数据的读取。②总线扩展连接法见图9.4

2.单片机与ADC0809芯片的硬件接口  ADC0809芯片硬件地址的确定  A/D转换结果的读取方式 ①查询方式 ②中断方式  单片机与ADC0809的连接方法 ①直接连接法(小系统) 将ADC0809数据总线与单片机的某个并口直连,其它控制端与单 片机其它并口的某引脚连接,通过编程产生相应的控制信号,通过 查询EOC来决定是否发信号给ADC0809的OE端进行A/D转换后数据的读 取。 ②总线扩展连接法 见图9.4

“1"无效“0"无效/RD写XXFOH片外单元,就是选“0"有效≥1中0809的CBA(即确定某路模拟量),并开始转换目前还不知道CBA是用数START/WR还是地据总线的低3位,ALE址总线的低3位IN7~INOA7~A0Po.2“0"无效译码器地址/FOHPOPo.TB例如:锁存器Po.4P向0809芯片写03H(即A7~A0805100000011B)就是选中809芯片的IN3模拟量D7X本电路是在主程序中读二分步有效转换好的数据还是在中CLK写入一个数据断服务程序中读?且只用这个数据/INT1赋给CBA从译码器输出看,只有地址为FOH时,译码器输出低电平(有效),与/RD或/WR(有效)结合才能使0809芯片的0E、START和ALE有效。由此得出:0809芯片地址为XXF0H。图9.4单片机与ADCU809连按硬件电路图

图9.4 单片机与ADC0809连接硬件电路图 A7~A0 地址 锁存器 8051 A7~A0 /RD /WR P0 /INT1 ALE “0”有效 读XXFOH片外单元, 就是读A/D芯片0809 转换好的数据 译 码 器 △ 二 分 频 P0.2 P0.1 P0.0 0809 OE START CLK EOC ALE C B A D7~D0 ≥1 /FOH ≥1 IN7~IN0 “1”有效 “0”有效 “1”无效 “0”无效 “0”有效 “1”无效 “0”无效 “1”有效 写XXFOH片外单元,就是选 中0809的CBA(即确定某路 模拟量),并开始转换 例如: 向0809芯片写03H(即 0000 0011B),就是选中 0809芯片的IN3模拟量 本电路是在主程序中读 转换好的数据还是在中 断服务程序中读? 写入一个数据, 且只用这个数据 的低3位赋给CBA 目前还不知道CBA是用数 据总线的低3位,还是地 址总线的低3位 从译码器输出看,只有地址为F0H时,译码器输 出低电平(有效) ,与/RD或/WR(有效)结合 才能使0809芯片的OE、START和ALE有效。由此 得出:0809芯片地址为XXFOH

3.并行A/D转换的软件编程主程序的任务①设置存放转换后数据的地址②设置待转换模拟量的输入通道③打开相应的外部中断请求的允许位④设置中断请求的触发方式(边沿触发或电平触发)③设置ADC0809芯片开始转换的硬件地址③启动A/D转换中断服务程序的任务①读A/D转换后的结果②修改转换后数据的存放地址③修改待转换模拟量输入通道的硬件地址④再次启动转换③中断返回

3.并行A/D转换的软件编程  主程序的任务 ①设置存放转换后数据的地址 ②设置待转换模拟量的输入通道 ③打开相应的外部中断请求的允许位 ④设置中断请求的触发方式(边沿触发或电平触发) ⑤设置ADC0809芯片开始转换的硬件地址 ⑥启动A/D转换  中断服务程序的任务 ①读A/D转换后的结果 ②修改转换后数据的存放地址 ③修改待转换模拟量输入通道的硬件地址 ④再次启动转换 ⑤中断返回

以图9.4为例,编写一个从IN。~IN,输入一遍8路模拟量数据的A/D转换程序将A/D转换后的结果存入以内部RAM3OH为首地址的单元中"absacc.h”#include“reg5l.h”#includeFA-1FVL-PORT1 DBYTE[Ox3O+i]#define下降沉触尘#define PORT2 XBYTE[OxOOf07只有一个中断char i=0;送转换器数i,即启main()动IN.路模拟量转换IE=0x84IT1-1;脉止IP=0x04;读取转换好的数PORT2=i;据送片内单元for(;;);启动下一路voidservice intlOiirterrupt 2us模拟量转换PORT1=PORT2;8路模拟量转换完后关闭i++;中断,即不再转换if( i<=7(PORT2=i)else(IE=0x00)

以图9.4为例,编写一个从IN0~IN7输入一遍8路模拟量数据的A/D转换程序, 将A/D转换后的结果存入以内部RAM 30H为首地址的单元中。 #include “absacc.h” #include “reg51.h” #define PORT1 DBYTE[0x30+i] #define PORT2 XBYTE[0x00f0] char i=0; main() { IE=0x84; IT1=1; IP=0x04; PORT2=i; for( ; ; ); } void service_int1() interrupt 2 using 1 { PORT1=PORT2; i++; if( i<=7 ) {PORT2=i;} else {IE=0x00;} } EA=1,EX1=1 下降沿触发 只有一个中断 源,可不设 送转换器数i,即启 动INi路模拟量转换 踏步 读取转换好的数 据送片内单元 启动下一路 模拟量转换 8路模拟量转换完后关闭 中断,即不再转换

共21页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档