微机原理与接口实验 4.4 模数转换-ADC0809 赖晓铮
ADC0809模数转换实验详解

实验三 ADC0809模数转换实验一、实验目的1、掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用。
2、掌握用查询方式、中断方式完成模/数转换程序的编写方法。
二、实验说明本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D 转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。
下图为该芯片的引脚图。
各引脚功能如下:IN0~IN7:八路模拟信号输入端。
ADD-A、ADD-B、ADD-C:三位地址码输入端。
八路模拟信号转换选择由这三个端口控制。
CLOCK:外部时钟输入端(小于1MHz)。
D0~D7:数字量输出端。
OE:A/D转换结果输出允许控制端。
当OE为高电平时,允许A/D转换结果从D0~D7端输出。
ALE:地址锁存允许信号输入端。
八路模拟通道地址由A、B、C输入,在ALE信号有效时将该八路地址锁存。
START:启动A/D转换信号输入端。
当START端输入一个正脉冲时,将进行A/D转换。
EOC:A/D转换结束信号输出端。
当 A/D转换结束后,EOC输出高电平。
Vref(+)、Vref(-):正负基准电压输入端。
基准正电压的典型值为+5V。
VCC和GND:芯片的电源端和地端。
三、实验步骤1、单片机最小应用系统1的 P0口接A/D转换的D0~D7口,单片机最小应用系统1的Q0~Q7口接0809的A0~A7口,单片机最小应用系统1的WR、RD、P2.0、ALE、INT1分别接A/D转换的WR、RD、P2.0、CLOCK、INT1,A/D转换的IN接入+5V,单片机最小应用系统的RXD、TXD连接到串行静态显示实验模块的DIN、CLK。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加AD0809.ASM源程序,进行编译,直到编译无误。
8位数模转换器ADC0809实验报告

8位数模转换器ADC0809实验报告实验目的:本实验旨在通过使用8位数模转换器ADC0809来将模拟信号转换为数字信号,并输出至LED灯中,以达到理解数字信号的目的。
实验原理:ADC0809是典型的8位数模转换器,它是一种具有8个模拟输入通道的典型ADC。
ADC0809是一种串行转换器,它可以实现单端和差分两种模式的转换。
ADC0809的转换精度为8比特,转换速率为100厘秒。
ADC0809通过8个输入通道将模拟信号转换为数字信号,并通过8个数据引脚输出数字信号。
实验器材:电脑、ADC0809、LED灯、电阻、电容、按键开关、电源、实验板。
实验步骤:1.将ADC0809插入实验板上。
2.将电阻连接至ADC0809的引脚,以使引脚与电阻的连接具有正确的阻值。
3.将电容插入ADC0809的引脚,并连接至电源。
4.将按键开关插入ADC0809的引脚,并连接至电源。
5.将LED灯连接至ADC0809的引脚,并连接至电源。
6.将实验板接入电源,启动电路。
7.按下按键开关,开始信号转换。
8.数字信号转换完成后,将数字信号输出至LED灯中。
实验结果:本实验成功地将模拟信号转换为数字信号,并将数字信号输出至LED灯中,达到了理解数字信号的目的。
结论:通过本实验,我们可以了解数字信号的基本原理和用途。
通过使用ADC0809将模拟信号转换为数字信号,并输出至LED灯中,我们可以更好地理解数字信号的应用和意义。
同时,该实验也为我们打下了更深入学习数字电路和信号处理技术的基础。
微机接口实验 4.4 模-数转换实验

微程序版“CPU+ADC0809”电路图
初始化过程
1) 启动仿真后,时钟CLK选择从手动按钮MANUAL输入信号; 2) 手动按钮使信号#RESET跳变“101”,令信号ON=1,
CLK允许输出,过程结束。
注:初始化完成后,若时钟信号CLK继续接开关MANUAL,则CPU进入手动模式, 手动MANUAL开关,生成时钟信号CLK,程序单步执行;若时钟信号CLK接 信号源AUTO-CLK(主频10Hz),则CPU进入自动模式,程序自动运行, 直到HLT指令的“断点”处暂停。
RA
RB
ANDI RA, IMM; (RA)∧IMMRA 1110
RA
0/0
IMM
OR RA. RB;
(RA)∨(RB)RA 1111
RA
RB
ORI RA, IMM; (RA)∨IMMRA 1111
RA
0/0
IMM
XOR RA, RB; (RA)⊕(RB)RA 1011
RA
RB
XORI RA, IMM; (RA)⊕IMMRA 1011
ADD RA, RB; (RA) +(RB)RA 1101
RA
RB
ADDI RA, IMM; (RA) +IMMRA 1101
A)-(RB)RA 1100
RA
RB
SUBI RA, IMM; (RA)-IMMRA 1100
RA
0/0
IMM
AND RA, RB; (RA)∧(RB)RA 1110
重启过程(跳出“断点” )
1) 时钟CLK切换到手动按钮 MANUAL输入信号;
2) 手动按钮使信号#RESET跳变 “101”,令信号#HLT=1, CLK允许输出,过程结束。
微机实验报告数模转换器和模数转换器实验

实验报告课程名称微机接口与汇编语言实验项目实验五数/模转换器和模/数转换器实验实验仪器 TPC-USB通用微机接口实验系统系别计算机学院专业班级/学号学生姓名实验日期 2013.12.19成绩指导教师胡信裕实验五数/模转换器和模/数转换器实验一、实验目的1. 了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法。
2. 了解模/数转换器的基本原理,掌握ADC0809的使用方法。
二.实验设备1.PC微机系统一套2.TPC-USB通用微机接口实验系统一套三.实验要求1.实验前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。
2.熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)使用方法。
在程序调试过程中,有意识地了解并掌握TPC-USB通用微机接口实验系统的软硬件环境及使用,掌握程序的调试及运行的方法技巧。
3.实验前仔细阅读理解教材相关章节的相关内容,实验时必须携带教材及实验讲义。
四.实验内容及步骤(一)数/模转换器实验1.实验电路原理如图:DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub),编程产生以下锯齿波(从Ua和Ub输出,用示波器观察)参考电路图2. 8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:(UREF表示参考电压,N表示数数据),这里的参考电压为PC机的+5V电源。
3. 产生锯齿波只须将输出到DAC0832的数据由0循环递增。
4. 参考流程图:参考流程图(二)模/数转换器1. 实验电路原理图如图。
将(一)的DAC的输出Ua,送入ADC0809通道1(IN1)。
连接参考电路图2. 编程采集IN1输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
3. ADC0809的IN0口地址为298H,IN1口地址为299H。
4. IN0单极性输入电压与转换后数字的关系为:其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。
微机原理实验之模数转换器ADC0809的使用

微机原理实验之模数转换器ADC0809的使用2011年05月18日星期三 10:04实验器材:模数转换器0809,8255(作为显示结果用的),实验台线路。
实验目的:貌似比较简单,就是知道ADC0809可以进行模数转换,了解一下它的地址分配,以及如何实现片选的,不知到同学们是否达到了这个目的,貌似很多人接好线,看看可以运行就撤退了。
实验内容:用ADC0809把滑动变阻器限制的电压转化成某个范围内的数字量并通过8255显示在发光二极管上。
实验步骤:一、接线。
1.ADC0809的接线。
从左上角引过滑动变阻器限制的输入电压连接到ADC0809的输入端I0上。
系统0.5M时钟频率发生器连接到ADC0809的CLK上,作为其工作的时钟信号。
将三条地址选择线A,B,C分别接到系统的A0,A1,A2上。
74LS138的210h~217h接到ADC0809A 的CS端。
(这里其实是两个门电路的公共输入端,起到了片选的效果)。
2.8255的接线。
CS端接到74LS138的200h~207h上,把A口与8个发光二极管对应相连。
二、程序。
code segmentassume cs:codestart:;init 8255 A output at mode 0mov dx,203hmov al,80hout dx,allp:;activate ADC0809mov dx,210hout dx,al;if you connect A,B,C with A0,A1,A2,al内容无所谓,but if 连D0,D1,D2,here al must be 0;delay 100us to wait for 0809 conversionmov cx,100del:loop del;display the outcome with 8255in al,dxmov dx,200hout dx,aljmp lpcode endsend start三、操作及结果。
杭电微机原理AD转换DA转换实验实验报告

七、实验程序
CODE SEGMENT ASSUME CS:CODE
MAIN PROC FAR START: MOV CX, 4 FANG: PUSH CX
MOV DX, 0FF80H MOV AL, 00H OUT DX, AL CALL DELAY MOV DX, 0FF80H NOT AL OUT DX, AL CALL DELAY POP CX
;显示子程序
3
A/D 转换实验
POP BX MOV DX, PB OUT DX, AL MOV AL, CL MOV DX, PA OUT DX, AL PUSH CX DIS2: MOV CX, 00A0H LOOP $ POP CX CMP CL, 0FEH JZ LX1 INC BX ROR CL, 1 JMP DIS1 LX1: MOV AL, 0FFH MOV DX, PB OUT DX, AL RET DISP ENDP CODE ENDS END MAIN
;循环显示 4 次方波 ;压入堆栈,保护循环次数 ; 0832 口地址 ;首先输出方波低电平部分
;延时
;取反输出方波高电平部分
;延时 ;弹出方波次数
6
D/A 转换实验(一)
LOOP FANG MOV CX, 03FCH MOV DX, 0FF80H MOV AL, 00H
JUCHI: OUT DX, AL INC AL
(保存后缀为.asm 文件); 3. 编译下载; 4. 全速运行,运行程序。
七、实验程序
CODE SEGMENT ASSUME CS:CODE
MAIN PROC FAR START: MOV DX, 0FF80H
MOV AL, 00H UP: OUT DX, AL
微机原理实验4-ADC0809实验

VREF(-)
转换原理
K7 K6 K5 K4 K3 K K1 K0 2.048 1.024 0.512 0.256 0.128 0.064 0.032 0.016
Ki = 1 ( i = 0,1,2,3,4,5,6,7 ) 例如: Vx = 2.567V, 则 K7=1, Vc = 2.048(V) < Vx , 故 K7 = 1 K6 = 1, Vc = 2.048 + 1.024 = 3.072(V),故 K6 = 0 K5 = 1, Vc = 2.048+ 0.512 = 2.560 (V) < 2.567(V) , 故 K5 = 1 同理, K4 = 0, K3 = 0, K2 =0, K1 = 0, K0=0 则转换结果为: 2.560 (V)
A/D转换器0809结构框图
START
6
CLOCK
10 7
转换结束 (中断) EOC
模 拟 量 输 入
IN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0
5 4 3 2 1 28 27 26
控制逻辑 8通道 多路 模拟开关 Vx Vc
W1 W2
逐次逼近型寄存器 SAR
开关树组 地 址 选 择
实验电路图
D0...D7 D0 : D7 CLOCK 10 VCC 11
12
500kHz VCC Vr5V(5.00V)
2.048V 基准电压 ×2 运放
0~4.096V
ADC0809 VREF(+)
RD 1Y2 WR 1Y1(PC5) A0 A1 A2
7
9 6 22
VREF(-) 16 GND 13 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
adc0809实验报告

adc0809实验报告adc0809实验报告引言:在现代科技发展的今天,模拟信号与数字信号的转换已经成为了一个非常重要的领域。
而ADC(Analog-to-Digital Converter)芯片的应用则是实现这种转换的重要手段之一。
本实验旨在通过使用ADC0809芯片,对模拟信号进行采样和转换,进而实现模拟信号的数字化处理。
一、实验目的本实验的主要目的是通过使用ADC0809芯片,掌握模拟信号的数字化转换原理和方法,并能够进行模拟信号的采样和转换。
二、实验器材1. ADC0809芯片2. 电压源3. 示波器4. 电阻、电容等元器件5. 电路板等实验设备三、实验原理ADC0809芯片是一种8位的逐次逼近型模数转换器。
它通过对模拟信号进行采样,再经过一系列的比较和逼近,最终将模拟信号转换为相应的8位数字信号。
四、实验步骤1. 搭建实验电路:根据实验要求,将ADC0809芯片与其他元器件连接起来,形成完整的电路。
2. 设置电压源:根据实验需要,设置适当的电压源,以提供模拟信号的输入。
3. 连接示波器:将示波器与ADC0809芯片的输出端连接,以便观察数字信号的波形。
4. 运行实验:通过控制电路中的时钟信号,使ADC0809芯片开始对模拟信号进行采样和转换。
5. 观察结果:通过示波器观察数字信号的波形,并记录下相应的数据。
五、实验结果与分析通过实验观察和记录,我们可以得到一系列的数字信号数据。
通过对这些数据的分析和处理,我们可以得到模拟信号的数字化表示。
同时,我们还可以通过对数字信号的波形进行分析,了解模拟信号在转换过程中可能出现的误差和失真情况。
六、实验总结通过本次实验,我们深入了解了ADC0809芯片的工作原理和应用方法。
通过实际操作和观察,我们掌握了模拟信号的数字化转换技术。
同时,通过对实验结果的分析和总结,我们对模拟信号的数字化处理有了更为深入的理解。
七、实验心得本次实验对于我们来说是一次非常有意义的实践活动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、寄存器及I/O操作指令:
汇编语言 MOV RA, RB; SET RA, IMM; 注释 (RB)RA IMMRA I 7 I6 I5 I4 0110 0011 I3 I2 RA RA IMM I3 I2 RA RA RA I1 I0 RB x/x
汇编语言 IN RA, PORTx; OUT RA, PORTx; OUTA RA, PORTx;
微机原理与接口 实验系列 一、IO端口扩展(8255) 二、定时器/计数器(8253) 三、串口通信(8251) 四、模数转换(ADC0809) 五、数模转换(DAC0832) 六、液晶屏显示(LCD1602) 七、中断控制器(8259) 赖晓铮 博士
华南理工大学 laixz@ QQ: 68046508
RB
JZ ADDR;
JZR RB;
0001
0001
1/0 ADDR 1/0 1/1 ADDR 1/1
0/0
RB
JS ADDR;
JSR RB;
0001
0001
0/0
RB
五、算术逻辑运算指令:
汇编语言 RLC RA; LLC RA; RRC RA; LRC RA; 汇编语言 INC RA; DEC RA; NOT RA; THR RA; 功能 (RA)右逻辑移位 (RA)左逻辑移位 (RA)右循环移位 (RA)左循环移位 功能 (RA)+1RA (RA)-1RA #(RA)RA (RA)RA I7 I6 I5 I4 1010 1010 1010 1010 I7 I6 I5 I4 0010 0010 0010 0010 I3 I2 RA RA RA RA I3 I2 RA RA RA RA I1 I0 0/0 1/0 0/1 1/1 I1 I0 0/0 0/1 1/0 1/1
附录:CPU指令集(OP码表)
OP码 ( I7 I 6 I 5 I 4 ) 0111 0110 0101 指令助记符
IRET
MOV OUT/OUTA
OP码 ( I 7 I6 I5 I4 ) 1111 1110 1101
指令助记符
OR/ORI
AND/ANDI ADD/ADDI
0100
0011 0010 0001 0000
test_0809
汇编助记符 SET R0, E2H 注释 设置ADC0809(地址[1110xxxx]) 的通道A (M地址:机器指令) 00H:00110000 01H:11100010 02H:00110100 03H:10000000 04H:00000001 选择 0809 通道A 输出R0只是为了触发0809写信号 保存ADC转换结果(ADC0809时钟 ADCLK至少是CPU时钟CLK的20 倍,才能保证此处OUT和IN指令间 ADC转换完成,否则要填充NOP) 选择 373锁存器 ADC转换结果锁存373显示 05H:01010010 06H:01010000 07H:01001000 08H:01010110 09H:01011000 0AH:00010000 0BH:00000100
五、算术逻辑运算指令:
汇编语言格式 ADD RA, RB; 功能 (RA) +(RB)RA I7 I6 I5 I4 1101 1101 1100 1100 1110 1110 1111 1111 1011 1011 I3 I2 RA RA IMM RA RA IMM RA RA IMM RA RA IMM RA RA IMM I1 I0 RB 0/0 RB 0/0 RB 0/0 RB 0/0 RB 0/0
POP RA, [RB]; STO RA, [ADDR];
PUSH RA, [RB];
[RB]RA (RA)[ADDR]
(RA)[RB]
1000 1001
1001
RB 0/0
RB
四、跳转系列指令:
汇编语言 JMP ADDR; 功能 ADDRPC I7 I6 I 5 I4 0001 I 3 I2 0/0 ADDR 0/0 0/1 ADDR 0/1 I1 I0 0/0
IN
SET SOP (INC/DEC/NOT/THR) JMP/JMPR/Jx/JxR NOP/HLT
1100
1011 1010 1001 1000
SUB/SUBI
XOR/XORI SHT (RLC/ LLC/ RRC/ LRC) STO/PUSH LAD/POP
一、系统指令:
汇编语言 NOP; HLT; IRET; 功能 无操作(延时4个T) 停机(断点) 中断返回 BP_PCPC;BP_PSWPSW I7 I6 I5 I 4 0000 0000 0111 I3 I2 0/0 0/0 0/0 I1 I0 x/0 x/1 x/x
(四) 模数转换(ADC0809)实验
实验目的:
● 理解模数转换器ADC0809的特征和工作原理。 ●
掌握使用ADC0809芯片进行模拟数据采集和模数转换的方法。
实验内容:
● 构建一个“CPU+ADC0809”的微型计算机系统及编程相应的
机器语言程序,实现通过ADC0809芯片对输入的模拟电压进 行采集,并转换成相应的8位字节数据的功能。该模数转换 结果以LED形式显示。
XORI RA, IMM; (RA)⊕IMMRA
实验步骤:
1) ADC0809测试程序test_0809.asm存放在实验4.4项目的子文 件夹test里,其功能是CPU设置并启动ADC0809芯片,把 ADC0809通道A输入的模拟电压转换成一个8位字节数据(该 数据与输入模拟电压线性相关),并且锁存到8位LED灯显 示。具体代码如后页所示。 2) 编译、烧写、自动运行上述test_0809源程序,观察 74LS373锁存的转换结果(8位数据),通过本实验中列举 的公式换算成理论电压值,与分压电阻上并联的电压表显 示的实际电压数值进行对比。(编译和烧写asm文件的方法 参见“2.6存储器实验:ROM批量导入数据”) 3) 不断调整分压电阻的分压比,观测输入模拟电压的最大值、 最小值和中间值的ADC0809输出的转换结果(8位数据); 在输入模拟电压逐渐变大或变小的过程中,观察ADC0809输 出的转换结果(8位数据)是否呈现一致的线性变化趋势。
JMPR RB; JC ADDR;
JCR RB;
(RB)PC IF CF=1, ADDRPC IF CF=1, (RB)PC IF ZF=1, ADDRPC IF ZF=1, (RB)PC IF SF=1, ADDRPC IF SF=1, (RB)PC
0001 0001
0001
RB 0/0
ADDI RA, IMM; (RA) +IMMRA SUB RA, RB; SUBI RA, IMM; AND RA, RB; (RA)-(RB)RA (RA)-IMMRA (RA)∧(RB)RA
ANDI RA, IMM; (RA)∧IMMRA OR RA. RB; ORI RA, IMM; XOR RA, RB; (RA)∨(RB)RA (RA)∨IMMRA (RA)⊕(RB)RA
功能 (PORTx)RA (RA)PORTx (RA)PORTx
I7 I6 I5 I4 0100 0101 0101
I1 I0 PORTx 0/PORTx 1/PORTx
三、存储器及堆栈操作指令:
汇编语言 LAD RA, [ADDR]; 功能 [ADDR]RA I7 I6 I5 I4 1000 I3 I2 RA ADDR RA RA ADDR RA I1 I0 0/0
微程序版“CPU+ADC0809”电路图
初始化过程
1) 时钟信号CLK接手动开关MANUAL,启动仿真,使能复位信号 #RESET=0; 2) 手动按钮MANUAL开关“010”,然后令信号#RESET=1.
注:初始化完成后,若时钟信号CLK继续接开关MANUAL,则CPU进入手动模式, 手动MANUAL开关,生成时钟信号CLK,程序单步执行;若时钟信号CLK接 信号源AUTO-CLK(主频10Hz),则CPU进入自动模式,程序自动运行, 直到HLT指令的“断点”处暂停。
重启过程(跳出“断点”)
1) 时钟信号CLK接开关MANUAL,手 动令复位信号端#RESET的状态 “101”变化,即重启完成, 跳出“断点”继续执行 。
注:跳出“断点”后,CPU进入HLT指令的 后续下一条指令的取指周期。
ADC0809应用电路图
模数转换芯片ADC0809结构图
模数转换芯片ADC0809工作时序图
SET R1, 80H
HLT OUTA R0, PORT0 OUT R0, PORT0 IN R2, PORT0
设置373锁存器,地址[1000xxxx]
OUTA R1, PORT0 OUT R2, PORT0 JMP 04H
(四)模数转换(ADC0809) 实验
思考题:
●
请把本实验的微程序版“CPU+ADC0809”电路改成硬布线版 和流水线版“CPU+ADC0809”电路,并且运行本实验步骤所 示的ADC0809测试程序。请问上述程序在硬布线或流水线版 本中需要修改么? 若需要,请修改并测试。