51单片机的AD转换
姓名:史旭超 学号:0845531133 专业:电子信息工程
摘要:AD转换器是一种能把输入模拟电电压或电电流变成与它成正比的数数字量,即能把被控对对象的各种模拟信息变成计计算机可以识别的数字信息。在单片机测控系统中,被采集的实时信号多为连续变化的模拟量,由于单片机只能处理数字量,所以就需要将连续变化的模拟量转换成数字量,即A/D转换。本次设计中AD转换器选用ADC0809,将其与单片机,8255共同构成转换电路。 关键词:ADC0809 单片机 8255 汇编语言 一、芯片介绍
1. A/D转换芯片0809引脚与功能简介
ADC0809是由美国国家半导体公司推出的8位逐次逼近式A/D转换器,包括8位模/数转换器、8通道多路转换器和与微处理器兼容的控制逻辑。8通道多路转换器能直接连通8个单端模拟信号中的一个。ADC0809与C51单片机有3种接口方式:查询方式、中断方式和等待延时方式。每采集一次一般需100us。中断方式下,A/D转换结束后会自动产生EOC信号。 (1)ADC0809内部逻辑结构如下图所示:
图1 ADC0809的内部逻辑结构
ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字
量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 (2) ADC0809引脚结构功能 D7-D0:8位数字量输出引脚。 IN0-IN7:8位模拟量输入引脚。 VCC:+5V工作电压。 GND:地。
REF(+):参考电压正端。 REF(-):参考电压负端。
START:A/D转换启动信号输入端。 ALE:地址锁存允许信号输入端。 (以上两种信号用于启动A/D转换).
EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。 A、B、C:地址输入线。
图2 ADC0809引脚分布 (3)ADC0809通道选择
ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示:
C B A 选择的通道 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 图3 ADC0809通道选择表 2.C51单片机引脚功能
(1)电源:① VCC - 芯片电源,接+5V; ② VSS - 接地端; (2)时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
(3)控制线:控制线共有4根, ALE/PROG:地址锁存允许/片内EPROM编 程脉冲
① ALE功能:用来锁存P0口送出的低8位地址
② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。 ② VPD功能:在Vcc掉电情况下,接备用电源。
EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。 ② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 (4) I/O线
80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
图4 C51单片机引脚图
3.8255引脚图及功能描述
(1)8255共有40个引脚,采用双列直插式封装,各引脚功能如下:
RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。 D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据
总线传送。 Vcc:+5V电源。
片选端 :A1,A0 8,9 地址总线的最低2位。用于决定断口地址:如A1A0为00,是A口:A1A0 为01,是B口:A1A0为10,是C口:A1A0 是11,是控制字寄存器 D7~D0 27~34 双向数据总线, PA7~PA0 37~40 1~4 A口的8位I/O引脚, PB7~PB0 25~18 B口的8位I/O引脚 ,PC7~PC0 10~13 17~14 C口的8位I/O引脚
GND:地线。
(2)8255的三种工作方式
方式0(基本输入/输出方式):这种工作方式不需要任何选通信号。A口,B口及C口的两个4位口中任何一个端口都可以由程序设定为输入或者输出。作为输出口时,输出数据被锁存:作为输入口,输入数据不锁存。
方式1( 选通输入/输出方式):在这种工作方式下,A,B,C三个口分为两组。A组包括A口和C口的高四位,A口可由编程设定为输入口或者输出口,C口的高四位则是用来作为A口输入/输出操作的控制和同步信号:B组包括B口和C口的低四位,B口可由编程设定为输入口或者输出口,C口的低四位则是用来作为B口输入/输出操作的控制和同步信号。A口和B口的输入或者输出的数据都被锁存。
方式2( 双向传送方式)在这种方式下,A口可以用于双向传送,C口的PC3~PC74用来作为输入/输出的控制同步信号。应该注意的是,只有A口允许用作双向传送,这时B口和PC0~PC2则可编程为方式0或者方式1工作。 (3)编程控制字
8255A 的编程选择是通过对控制口输入控制字的方式实现的。控制字有方式选择控制字和C口置位/复位控制字。 方式选择控制字:其格式如下表6所示:
C口置位/复位控制字:C口具有位操作功能,把一个置位/复位控制字送入送入8255A的控制寄存器(控制口)就能把C口的某一位置1或者清0而不影响其他位的状态。