2024年3月7日发(作者:)

微机原理与汇编语言综合性实验报告

实验项目名称:A/D转换器 ADC0809数字温度计设计

实验目的:

掌握A/D转换原理,掌握0809A/D转换芯片的硬件电路和软件编程。

实验要求:

包括开发环境要求,技术文档要求两部分。

开发环境要求:

软件环境:windows98/windowsXP/windows2000,QTH-8086B环境

硬件环境:计算机(Pen4CPU, 256MRAM,60G以上硬盘,输入输出设备)

技术文档要求:

按照实验报告编写要求进行。要求软、硬件功能描述清晰,实验总结深刻。

实验内容:

1 、实验原理

图1 电路原理图

本实验采用 ADC0809 做 A/D 转换实验。ADC0809 是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度为±1/512,适用于多路数据采集系统。ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。

图中ADC0809的CLK信号接CLK=2.385MHZ,基准电压Vref(+)接Vcc。一般在实际应用系统中应该接精确+5V,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。ADC0809的转换结束信号EOC未接, 如果以中断方式实现数据采集,需将EOC信号线接至中断控制器8259A的中断源输入通道。本实验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD-A、ADD-B、ADD-C 接系统

A/D转换器 ADC0809数字温度计设计

数据线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、03H、04H、05H 、

06H、07H。

启动本A/D转换只需如下三条命令:

MOV DX,ADPORT ;ADPORT为ADC0809端口地址。

MOV AL,DATA ;DATA为通道值。

MOV DX, AL ; 通道值送端口。

读取A/D转换结果用下面二条指令:

MOV DX,ADPORT

IN AL,DX

2、相关芯片介绍

ADC0809的主要性能:

(1) 8位逐次逼近型A/D转换器,所有引脚的逻辑电平与TTL电平兼容。

(2) 带有锁存功能的8路模拟量转换开关,可对8路0~5V模拟量进行分时切换。

(3) 输出具有三态锁存功能。

(4) 分辨率:8位,转换时间:100μs。

(5) 不可调误差:±1LBS,功耗:15mW。

(6) 工作电压:+5V,参考电压标准值+5V。

(7) 片内无时钟,一般需外加640KHz以下且不低于100KHz的时钟信号。

ADC0809的内部结构:

ADC0809是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路0~5V的输入模拟电压信号分时进行转换。模拟多路开关由8路模拟开关和3位地址锁存译码器组成,可选通8路模拟输入中的任何一路,地址锁存信号ALE将3位地址信号ADDA、ADDB、ADDC进行锁存,然后由译码电路选通其中的一路,被选中的通道进行A/D转换。A/D转换部分包括比较器、逐次逼近寄存器(SAR)、256R电阻网络、树状电子开关、控制与时序电路等。另外ADC0809输出具有TTL三态锁存缓冲器,可直接连到CPU数据总线上。

2

微机原理与汇编语言综合性实验

图2 ADC0809的内部结构图

ADC0809的多路转换:

在实时控制与实时检测系统中,被控制与被测量的电路往往是几路或几十路,对这些电路的参数进行模/数、数/模转换时,常采用公共的模数、数模转换电路。因此,对各路进行转换是分时进行的。此时,必须轮流切换各被测电路与模数、数模转换电路之间的通道,以达到分时切换的功能。

ADC0809转换时序:

首先输入地址选择信号,在ALE信号作用下,地址信号被锁存,产生译码信号,选中一路模拟量输入。然后输入启动转换控制信号START(不小于100ns ),启动A/D转换。转换结束,数据送三态门锁存,同时发出EOC信号,在允许输出信号控制下,再将转换结果输出到外部数据总线。

3

A/D转换器 ADC0809数字温度计设计

图3 ADC0809转换时序图

ADC0809内部引脚:

图4 ADC0809内部引脚图

IN0-IN7:8条模拟量输入通道

ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:4条

ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

3、实验线路的连接

在原理图中,粗黑线是学生需要连接的线, 粗黑线两端是需连接的信号名称。

4

微机原理与汇编语言综合性实验

(1)IN0插孔连W1的输出V1插孔。

(2)0809CS连译码输出060H~06FH插孔。

4、实验方法、步骤及结果测试

1) 正确连接好实验线路。

2) 理解实验原理。

3) 打开源程序,仔细阅读,弄懂实验程序。

4) 运行实验程序:(1)按“调试”按钮 (2)按“运行”按钮

在DVCC-8086JH实验箱上应显示“0809-XX”。

5) 调节电位器W1,以改变模拟电压值,显示器上会不断显示新的A/D转换结果。用ADC0809做A/D转换,其模拟量与数字量对应关系的典型值为+5V-FFH,2.5V-80H,0V-00H。

实验讨论

本实验利用实验板上的ADC0809做A/D转换实验,将模拟信号转换成数字信号并在数码管上显示,调节电位器观察数码管上数据的变化。

当调节电位器时,数码管上将显示00H-FFH之间的数字。特别地,当模拟量分别输入+5V,2.5V,0V时,数码管上将分别显示(数字量)FFH,80H,00H;当模拟量数值介于它们之间时,数码管上也会相应的显示00H-FFH之间相应的数值。

微机原理与汇编语言实验收获与总结

收获:

1、熟悉了ADC0809的实验引脚及工作过程;

2、掌握了A/D转换的工作原理及实验过程;

3、对汇编语言程序的编写与调试有了进一步的认识。

总计:

本次实验,使我掌握了A/D转换的工作原理及实验过程,熟悉了ADC0809芯片的引脚及工作原理,并且能够正确的连接各引脚之间的线路,此外,也了解了一些A/D转换器的应用与接口技术,汇编语言程序的编写、编译、调试的水平得到了进一步的提高,使我以后的学习有了扎实的基础。

参考文献

[1]冯博琴,吴宁.微型计算机原理与接口技术(第二版)[M].清华大学出版社

附录:源程序代码

;0809选通信号接A14,CLK接ALE,INT0接电位器

PAGE 60,132

.MODEL SMALL

.STACK 20H

.DATA 20H

5

A/D转换器 ADC0809数字温度计设计

AD0809 EQU 0B000H

A8255 EQU 7000H

B8255 EQU 7001H

C8255 EQU 7002H

D8255 EQU 7003H

DCLK0 EQU 00000000B

DCLK1 EQU 00000001B

DIN0 EQU 00000010B

DIN1 EQU 00000011B

.CODE

DIDATA DB ?

ORG 0100H

MAIN: MOV SP,9000H

MOV DX,D8255

MOV AL,80H ;写8255控制字A、B输出,C输入

OUT DX,AL

NEXT: MOV DX,AD0809

MOV AL,00H

OUT DX,AL ;启动AD转换

CALL DELAY ;延时

IN AL,DX ;转换结束读取结果

CMP AL,DIDATA

JZ NEXT

MOV DIDATA,AL

CALL DISP

CALL DELAY1

JMP NEXT

;***************************************************************

; /*显示子程序*/ *

;***************************************************************

DISP: MOV AL,DIDATA ;取低位

AND AL,0FH

CALL SEND ;显示

MOV AL,DIDATA

MOV CL,04H

SHR AL,CL ;取高位

CALL SEND ;显示

RET

SEND: PUSH CX

MOV AH,00H

MOV DI,AX

MOV BX,OFFSET SGTB1

MOV AL,[BX+DI] ;取字符

6

微机原理与汇编语言综合性实验

MOV AH,AL

MOV CX,01H

SEND1: MOV DX,D8255

MOV AL,DCLK0 ;DCLK<-0

OUT DX,AL

MOV AL,AH

RCL AL,CL

JC SEND2

MOV AL,DIN0 ;DIN<-0

OUT DX,AL

JMP SEND3

SEND2: MOV AL,DIN1 ;DIN<-1

OUT DX,AL

SEND3: MOV AL,DCLK1

OUT DX,AL ;DCLK<-1

INC CX

CMP CX,09H

JNZ SEND1

MOV AL,DIN1

OUT DX,AL

POP CX

RET

;*****************************************************************************

; /*延时程序*/

;*****************************************************************************

DELAY: PUSH CX

MOV CX,0FFH ;延时

LOOP $

POP CX

RET

DELAY1: PUSH CX

MOV CX,0FFFFH ;延时

LOOP $

POP CX

RET

SGTB1 DB 0C0H ;0

DB 0F9H ;1

DB 0A4H ;2

DB 0B0H ;3

DB 99H ;4

DB 92H ;5

DB 82H ;6

DB 0F8H ;7

DB 80H ;8

7

A/D转换器 ADC0809数字温度计设计

DB

DB

DB

DB

DB

DB

DB

DB

END

90H

88H

83H

0C6H

0A1H

86H

8EH

00H

;9

;A

;B

;C

;D

;E

;F

8