第一部分 系统介绍
-
Upload
kiayada-blanchard -
Category
Documents
-
view
111 -
download
5
description
Transcript of 第一部分 系统介绍
第一部分 系统介绍
第二部分 基本电路介绍
第三部分 基本实验( 8086 )
实验一 I/O 端口实验
实验二 8255 键盘扫描与 LED 数码管显示实验实验三 8253 定时实验
实验四 8259 中断控制及中断服务实验
实验五 A/D 转换实验
实验六 D/A 实验
目录
配有两块可编程器件: EPM7128 被系统占用。另一块 EPM7032 供用户实验用。两块器件皆可通过 JTAG 接口在线编程。使用十分方便。
第一部分 系统介绍
一、系统特点
6264 系统 RAM ,地址范围 0 ~ 3FFFH ,奇地址有效6264 系统 RAM ,地址范围 0 ~ 3FFFH ,偶地址有效27C64 系统 ROM ,地址范围 FFFFF ~ FC000H ,奇地 址有效27C256 系统 ROM ,地址范围 FFFFF ~ FC000H ,偶地 址有效
1 )、时钟频率: 6.0MHz
2 )、存储器
二、系统概述
3 )、系统资源分配
本系统采用可编程逻辑器件( CPLD ) EPM7128
做地址的编译码工作,可通过芯片的 JTAG 接口与 PC
机相连,对芯片进行编程。部分地址单元经译码后输出
(插孔 CS0---CS5 )给用户使用,他们的地址固定,用
户不可改变。具体的对应关系见下地址分配。注意,用
户的地址不能与系统相冲突,否则将导致错误。
· 地址分配
CS0 片选信号,地址 04A0 ~ 04AF 偶地址有效
CS1 片选信号,地址 04B0 ~ 04BF 偶地址有效
CS2 片选信号,地址 04C0 ~ 04CF 偶地址有效
CS3 片选信号,地址 04D0 ~ 04DF 偶地址有效
CS4 片选信号,地址 04E0 ~ 04EF 偶地址有效
CS5 片选信号,地址 04F0 ~ 04FF 偶地址有效
CS6 片选信号,地址 0000 ~ 01FF 偶地址有效
CS7 片选信号,地址 0200 ~ 03FF 偶地址有效
8250 片选地址: 0480~048F ,偶地址有效8279 片选地址: 0490 ~ 049F ,偶地址有效
所有实验程序的起始地址为 011
00H , CS=0100H , IP=0100H ,代码段、数据段、堆栈段在同一个 6
4K 的地址空间中。
· 硬件实验说明
6264 系统 RAM ,地址范围 0 ~ 3FFFH ,奇地址有效6264 系统 RAM ,地址范围 0 ~ 3FFFH ,偶地址有效27C64 系统 ROM ,地址范围 FFFFF ~ FC000H ,奇地 址有效27C256 系统 ROM ,地址范围 FFFFF ~ FC000H ,偶地 址有效
8066 单元1 )微处理器: 80862 )时钟频率: 6MHz3 )存储器
( 1 )简单 I/O 扩展实验( 2 )存储器扩展实验( 3 ) CPLD 地址译码实验( 4 ) 8255 可编程并口实验( 5 ) 8253 定时 / 计数器实验( 6 ) A/D0809 实验( 7 ) D/A0832 实验( 8 ) 8250 可编程串口实验( 9 ) 8279 显示器接口实验( 10 ) 8279 键盘扩展实验( 11 ) 8259 可编程中断控制器实验( 12 ) 8237DMA 控制器实验
8066 单元4 )可提供的对 8086 的基本实
验
1 、 熟悉 74LS273 , 74LS244 的应用接口方法。2 、 掌握用锁存器、三态门扩展简单并行输入、 输出口的方法。
第三部分 基本实验 (8086)
实验一 I/O 端口实验
一、实验目的
MUT—Ⅲ型实验箱、 8086CPU 模块。
二、实验设备
用常用输入输出芯片 244 扩展输入, 237 扩展输出控制开关输入、发光二极指示灯显示输出结果。 1 、设计出 244 、 277 与 8086 接口对应硬件电路,并完成相应的连接 2 、调试对应 244 、 273 、开关硬件接口电路及相应接口软件 3 、用开关接输入部分 , 当拨动开关对应发光二极管亮 , 显示输出结果 4 、写出习题部分要求的程序
三、实验内容
本实验用到两部分电路:开关量输入输出电路,简单 I/O 口扩展电路。
四、实验原理介绍
1 、实验接线: ( 表示相互连接 )
CS0 CS244 ; CS1CS273 ; 平推开关的输出 K
1 ~ K8 IN0 ~ IN7 (对应连接); O0 ~ O7L
ED1 ~ LED8 。
2 、编辑程序,单步运行,调试程序
3 、调试通过后,全速运行程序,观看实验结果。
4 、编写实验报告。
五、实验步骤
74LS244 或 74LS273 的片选信号可以改变,例如连接 CS2 ,此时应同时修改程序中相应的地址。
程序全速运行后,逻辑电平开关的状态改变应能
在 LED 上显示出来。例如: K2 置于 L 位置,
则对应的 LED2 应该点亮。
六、实验提示
七、实验结果
开 始
初始化
读输入至AL
输出AL
结束
八、程序框图 ( 实验程序名 :T244273.ASM)
assume cs:code
code segment public
org 100h
start: mov dx,04a0h ;74LS244 地址 in al,dx ; 读输入开关量 mov dx,04b0h ;74LS273 地址 out dx,al ; 输出至 LED
jmp start
code ends
end start
九、程序源代码清单
1 、修改模式为: 跳跃式左移或右移,如每次移动两位2 、调整移位频率为:加快一倍,降低一倍3 、重新调整按钮功能: KK1—— 启动键,按下后,方可开始移位 KK2—— 停止健,按后终止 LED 管的移位显
示 KK3——更新移位模式,每按一次,在左 / 右
移 位模式间变换 KK4——更新亮灯模式,每按一次在 1 亮 7暗
1
亮间变换
( 在完成上面的实验后 , 修改原程序 , 使实现如下功能 )十、习题
MUT—Ⅲ型实验箱、 8086CPU 模块。
实验二 8255 键盘扫描与 LED 数码管显示实验
掌握 8255A 的编程原理。
一、实验目的
二、实验设备
三、实验内容
用 8255 扩展扫描 3X8 行列式键盘,由一位 LED 数码管显示用 8255 扩展扫描 3X8 行列式键盘,由一位 LED 数码管显示
1 、设计出 8255 与 8086 接口对应硬件电路,并完成 相应的连接2 、调试对应 8255 、键盘、及数码管硬件接口电路 及相应接口软件3 、当用键盘输入时在数码管上显示相应值4 、写出习题部分要求的程序
四、实验原理介绍
本实验用到两部分电路:开关量输入输出电路和 825
5 可编程并口电路。
1 、实验接线 CS0CS8255 ; PA0 ~ PA7 RL10 ~ RL17 ; PB0 ~ PB7 LED-A ~ LED-DP;
PC0 ~ PC2KA10 ~ KA12;PC3LED1 。2 、编程并全速或单步运行。3 、全速运行时按动键盘,观察数码管的变化。
五、实验步骤
8255A 是比较常用的一种并行接口芯片,其特
点在许多教科书中均有介绍。 8255A 有三个 8 位的
输入输出端口,通常将 A 端口作为输入用, B 端
口作为输出用, C 端口作为输出用,本实验也是如
此。实验中, 8255A 工作于基本输入输出方式(方
式 0 )。
六、实验提示
七、实验结果
本实验为对 3X8 键盘 ( 一行有 8 个按钮 ,共三行 .
如第一行 8 个按钮对应实验箱上键盘区最上一行 6
个加上下一行前两个 ,逐次类推 )逐行扫描实验 , 每
按一个键通过数码管显示其值 .
如一行一列显示 0, 二行三列显示 8. 逐次类推 .
初始化 8255
检测是否有键按下
延时消抖逐行扫描键盘
显示于数码管
八、程序框图 ( 实验程序名 t8255.asm)
assume cs:codecode segment public
org 100hstart: mov dx,04a6h ; 控制寄存器地址
mov ax,90h ; 设置为 A 口( 04A0H )输入,
B 口( 04A2H )输出 ,C 口( 04A4H )输出
out dx,axcheck0: mov ax,00h
mov dx,04a4hout dx,axmov dx,04a0h
九、程序源代码清单
in ax,dx
cmp al,0ffh
je check0
mov cx,05ffh
delay: loop delay ;延时消抖mov cl,3
mov ah,0
mov al, 0fbh
contin: push ax
mov dx,04a4h
out dx,al
mov dx,04a0h
in al,dx
mov ah,al
cmp ah,0ffh
jne next
pop ax
ror al,1
loop contin
jmp check0
next: mov ch,cl ;保存行值至 CH
mov cl,7
begin0: shl ah,1
jnc goon
loop begin0
jmp check0
goon: mov bl,cl ;保存列值至 BL
dec ch
mov cl,3
shl ch,cl
add bl,ch
mov bh,0
mov cx,bx ; 显示码偏移量送 C
X
display: mov si,offset discoed
add si,cx
mov dx,04a4h
mov al,0fh
out dx,al
mov ax,[si]
mov dx,04a2h
out dx,ax
nop
nop
jmp check0
discode db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db 7fh,6fh,77h,7ch,39h,5eh,79h,71h
db 01h,02h,04h,08h,10h,20h,40h,80h ; 显示段码表
code ends
end start
1 、重新定义键值按递减方式排列,即依次为: F E C D
B A 9 8
7 6 5 4
3 2 1 0
2 、按下键的二进制值改在 LED 灯的高四位显示3 、 按第一次键,在个位上显示相应键位。 按第二次键,在十位上显示相应键位。 按第三次键,在百位上显示相应键位。 按第四次键,在千位上显示相应键位。 按第五次键,在个位上显示相应键位。 其余类推。
十、习题
MUT—Ⅲ型实验箱、 8086CPU 模块、示波器。
实验三 8253 定时实验
一、实验目的
二、实验设备
掌握 8253 定时器的编程原理,用示波器观察不同模式下的输出波形。
用 8253 作为定时器,控制周期为 0.5秒的方波,用一个发光二极管指示灯亮表示高电平 ,灭表示低电平,亮、灭时间相同 1 、设计出 8253 与 8086 接口对应硬件电路,并完成相应的连接 2 、调试对应 8253 、发光二极管硬件接口电路及相应接口软件 3 、写出习题部分要求的程序
三、实验内容
四、实验原理介绍
本实验用到两部分电路:脉冲产生电路、 8253 定时器 / 计数器电路
1 、实验连线:
CS0CS8253 OUT08253CLK2
OUT2LED1 示波器 OUT1
CLK38253CLK0 , CLK38253CLK1
2 、编程调试程序
3 、全速运行,观察实验结果
五、实验步骤
8253是计算机系统中经常使用的可编程定时器 / 计
数器,其内部有三个相互独立的计数器,分别称为 T0 ,
T1 , T2 。 8253 有多种工作方式,其中方式 3 为方波
方式。当计数器设好初值后,计数器递减计数,在计数
值的前一半输出高电平,后一半输出低电平。实验中,
T0 、 T1 的时钟由 CLK3 提供,其频率为 750KHz 。
六、实验提示
程序中, T0 的初值设为 927CH ( 37500十进制),则 OUT0 输出的方波周期为( 37500*4/3*10-6=
0.05s )。 T2 采用 OUT0 的输出为时钟,则在 T2 中设置初值为 n 时,则 OUT2 输出方波周期为 n*0.05s 。 n
的最大值为 FFFFH ,所以 OUT2 输出方波最大周期为3276.75s(=54.6 分钟 ) 。可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非
常有用的。
程序全速运行后, LED1闪烁 (周期为 0.25s) ,
OUT1 示波器观察为方波,频率为 15KHz 。
七、实验结果
八、程序框图 ( 实验程序名: t8253.asm)
assume cs:codecode segment public
org 100hstart:
mov dx,04a6h ; 控制寄存器mov ax,36h ; 计数器 0 ,方式 3out dx,axmov dx,04a0hmov ax,7Chout dx,axmov ax,92hout dx,ax ; 计数值 927Chmov dx,04a6hmov ax,76h ; 计数器 1 ,方式 3out dx,axmov dx,04a2h
九、程序源代码清单
mov ax,32h out dx,ax mov ax,0 ; 计数值 32h out dx,ax mov dx,04a6h mov ax,0b6h ; 计数器 2 ,方式3 out dx,ax mov dx,04a4h mov ax,04h out dx,ax mov ax,0 ; 计数值 04h out dx,axnext: nop
jmp nextcode ends
end start
十、习题
1.改变定时时钟的周期,加快一倍和放慢一倍 mov ax,0b6h ; 计数器 2 ,方式 3
out dx,ax
mov dx,04a4h
mov ax,04h
out dx,ax
mov ax,0 ; 计数值 04h
out dx,ax
修改实验程序,如上的 mov ax,04h 的 04H 的值即可
2.试将 8253 的三个定时 / 计数器分别设为不同的工作方式,对同一输入信号计数,在三个输出端分别对输入信号进行 2 分频, 4 分频, 8 分频,用示波器观察其波形。 3.试用 8253测量一个脉冲的的脉宽,把测量的结果存放在 2010H 、 2011H 。 GATE0 接被测脉冲, 8253 的 GATE0和 74LS244 的 I
N0 ,时钟发生电路 CLK3 接 8253CLK0 。 CS8253 接 CS0 ,CS244 接 CS1 。程序请参参考 t8253pw.asm ,程序运行时候请按程序注释处设断点。查看 2010H 、 2011H 中的结果。
1 、掌握 8259A 的工作原理。2 、掌握编写中断服务程序方法。3 、掌握初始化中断向量的方法。
实验四 8259 中断控制及中断服务实验
一、实验目的
二、实验设备
MUT—Ⅲ型实验箱、 8086CPU 模块。
用 8259 控制开关中断源输入中断,由 LED 数码管显示 1 、设计出 8259 与 8086 接口对应硬件电路,并完成相应的连接 2 、调试对应 8259 、开关、发光二极管硬件接口电路及相应接口软件 3 、 用开关做中断源输入部分 , 发光二极管显示输出
结果 , 当分别拨动开关 KK1 、 KK2 、 KK3 、 KK4 时发
光二极管相应作左、右、由中间向两边和反显流水灯显示 4 、写出习题部分要求的程序
三、实验内容
本实验用到三部分电路:电平开关电路、简单 I/O 口扩展电路和 8259 中断控制器电路。
四、实验原理介绍
1 、实验接线 CS0 CS8259 CS1 CS273 O0 ~ O7
LED1 ~ LED8 K1 ~ K8IR0 ~ IR7 INT
INT INTAINTA
2 、编译调试程序3 、全速运行程序,拨动某一电平开关,观察 LED 的变化情况。
五、实验步骤
1 、 8259 的使用说明请详细阅读教科书。
2 、 8086 的中断系统是向量中断方式。内存中特
定位置有一中断向量表,表内存有不同中断类型的中断
向量(中断入口地址)。不同中断类型的中断向量在表
内有对应的偏移地址,其计算方法是:中断类型 *4 。
六、实验提示
3 、中断类型由 8259 通过数据总线送给 8086 , 80
86 内部电路会将该类型值自动乘 4 ,而后赋给指令指针,
从而转向中断向量表的相应单元取得中断入口地址,之
后就进入中断服务程序。请仔细研读 8259 的工作时序。
4 、中断类型的高 5 位由 8259寄存器 ICW2决定,
低 3 位由中断源 IRx 的编码自动填入。 IR0 ~ IR7 的编
码分别为 000 , 001 , 010 , 011 , 100 , 101 , 110 ,
111 。
七、实验结果
全速运行程序,由上往下拨动开关。
主程序
中断服务程序
初始化 8259 控制字及中断量表 . 开中断
初始化标志字
判断标志字 , 根据标志字跳转到相应子程序
跑马灯左移跑马灯右移LED 灯翻滚
入中断口
改变标志位
中断返回
八、程序框图 ( 实验程序名: t8253.asm)
assume cs: code
code segment public
org 100h
start: mov dx,04b0h
mov al,0ffh
out dx,al
mov bl,00h
mov ch,00h
九、程序源代码清单
start1: cli
push ax
mov dx,04a0h
mov ax,13h
out dx,ax ;ICW1, ICW4 NEEDED
mov dx,04a2h
mov ax,80h
out dx,ax ;ICW2 中断类型 80h
mov ax,01h;01
out dx,ax ;ICW4
mov ax,00h
out dx,ax ;OCW1, 开放所有中断nop ; 以上为 8259初始化
mov ax,0mov ds,axmov di,200h ;初始化中断向量表mov ax,offset int0mov ds:[di],axadd di,2mov ds:[di],100hadd di,2mov ax,offset int1mov ds:[di],axadd di,2mov ds:[di],100hadd di,2mov ax,offset int2mov ds:[di],ax
add di,2
mov ds:[di],100h
add di,2
mov ax,offset int3
mov ds:[di],ax
add di,2
mov ds:[di],100h
add di,2
mov ax,offset int4
mov ds:[di],ax
add di,2
mov ds:[di],100h
add di,2
mov ax,offset int5mov ds:[di],axadd di,2mov ds:[di],100hadd di,2mov ax,offset int6mov ds:[di],axadd di,2mov ds:[di],100hadd di,2mov ax,offset int7mov ds:[di],axadd di,2 ; 上述程序为芯片 8259 的初始化程
序 mov ds:[di],100hpop ax
main: sti ; 开中断。waiting: cmp bx,00h
je waiting ;没发生中断,则等待cmp bl,0feh
je int0_s
cmp bl,0fdh
je int1_s
cmp bl,0fbh
je int2_s
jmp start
int0: cli ; 关中断。以下类推。mov ch,01h ; 此两行为 IR0 的中断服务程
序mov bl,0feh ; 用户可修改。iret ; 中断返回,以下类推。
int1: cli mov ch,01h ; 此两行为 IR1 的中断服务程序,
mov bl,0fdh ; 用户可修改。iret
int2: climov ch,01h ; 此两行为 IR2 的中断服务程序,mov bl,0fbh ; 用户可修改。iret
int3: clinop ; 此两行为 IR3 的中断服务程序,mov ax,0f7h ; 用户可修改。iret
int4: clinop ; 此两行为 IR4 的中断服务程序,mov ax,0efh ; 用户可修改。
iret
int5: cli
nop ; 此两行为 IR5 的中断服务程序,mov ax,0dfh ; 用户可修改。iret
int6: cli
nop ; 此两行为 IR6 的中断服务程序,mov ax,0bfh ; 用户可修改。iret
int7: cli
nop ; 此两行为 IR7 的中断服务程序,mov ax,07fh ; 用户可修改。iret
int0_s: cmp ch,01hjne next1mov al,0fehmov dx,04b0hout dx,al
next1: call delaymov dx,04b0hmov ah,alnot ahrol ah,1not ahmov al,ahout dx,almov ch,00hjmp start1
int1_s: cmp ch,01hjne next2mov al,07fhmov dx,04b0hout dx,al
next2: call delaymov dx,04b0hmov ah,alnot ahror ah,1not ahmov al,ahout dx,almov h,00hjmp start1
int2_s: cmp ch,01h
jnz next3
mov dx,04b0h
mov al,0e7h
out dx,al
not al
mov cl,al
and al,08h
and cl,10h
next3: call delay
push bx
rol cl,1
ror al,1
mov bh,cl
mov bl,al
or al,cl
mov cl,al
not al
mov dx,04b0h
out dx,al
mov cl,bh
mov al,bl
pop bx
mov ch,00h
jmp start1
delay proc near
cli
push cx
mov cx,0ff55h
here: loop here
pop cx
ret
code ends
end start
1 、利用 8259 做交通灯实验,当中断产生时,各路口
红灯全亮。
2 、正常显示时,流水灯为同时亮 2盏灯;
3 、正常显示时,流水灯向左边移动
4 、正常显示时,流水灯移动频率加快或放慢一倍
5 、中断显示时,改变闪动的频率,加快或放慢一倍
6 、中断显示时,改动闪动模式为,亮 1 、 3 、 5 、
7 号灯与亮 2 、 4 、 6 、 8 号灯交替闪灯。
十、习题
7 、重新定义键:
KK1—— 启动键
KK2—— 开放 /屏蔽中断键
KK3—— 停止键
8 、改变中断含义:没有进行中断的初始值仍为流
水灯显示
第奇次中断后: 1 、 3 、 5 、 7 号
灯亮 /暗闪动 (2 、 4 、 6 、 8 始终暗 )
第偶次中断后: 2 、 4 、 6 、 8 亮 /暗闪动。
MUT—Ⅲ型实验箱、 8086CPU 模块。
实验五 A/D转换实验
一、实验目的
二、实验设备
熟悉 A/D转换的基本原理,掌握 ADC0809 的使用方法。
由 0809构成的数据采集电路采集电位器上电压,
在 LED 数码管显示结果
1 、设计出 0809 与 8086 接口对应硬件电路,并完成
相应的连接
2 、调试对应 0809 、基本 I/O 口、数码管显示硬件
接口电路及相应接口软件
3 、调节电位器时相应的电压值在数码管显示
4 、写出习题部分要求的程序
三、实验内容
本实验用到两部分电路:简单 I/O 口扩展电路、 A/D 、D/A 电路
四、实验原理介绍
1 、实验连线
AN0 ADIN0 CS0 CS0809 CS1 CS244 EOC IN0
2 、用实验箱左上角的“ VERF.ADJ” 电位器调节 ADC080
9 12脚上的参考电压至 5V 。
3 、编写程序并全速运行。
4 、检查显示数据是否与电位器输出的电压相符合。
五、实验步骤
实验电路中启动信号 START 与地址锁存信号相连,所以启动 A/D转换的方法为: MOV DX , ADDRESS ; ADDRESS是 ADC0809
的端口地址OUT AL , DX ;发片选及 IOW 信号,启动 0 通道
六、实验提示
七、实验结果
在输入电压 AN0 分别为 0V , 1V , 2V , 3V , 4V ,5V 时显示数据分别为 00H , 33H ,66H , 99H , 0CCH , 0FFH (数据低位略有偏差属正常现象)。
八、程序框图 ( 实验程序名: t0809.ASM)
开始
启动通道0
读取转换结果
转换结束?
con8279 equ 0492h
dat8279 equ 0490h
assume cs:code
code segment public
org 100h
start: jmp start1
segcod db 3fh,06h,5bh,4fh,66h,6dh,7dh,
07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
start1: mov dx,04a0h
mov ax,34h
out dx,ax ; 启动通道
九、程序源代码清单
wait1: mov dx,04b0h ;CS244
in ax,dx ; 读 EOC
and ax,1
cmp ax,1
jne wait1 ; 如果 EOC=0,waitin
g....
mov dx,04a0h
in ax,dx ; 读转换结果 and ax,0ffh
mov bx,ax
nop ;
disp: mov di,offset segcod
mov ax,08h
; 工作方式, 16 位,左入
mov dx,con8279
out dx,ax
mov ax,90h
mov dx,con8279
out dx,ax
; 写显示 RAM命令,地址自
增
mov dx,dat8279
push bx
and bx,0f0h ;取高 4 位mov cl,4
shr bx,cl
add di,bx
mov al,cs:[di]
mov ah,0
out dx,ax ; 写 RAM0
nop
nop
mov di,offset segcod
pop bx
and bx,0fh ;取低 4 位add di,bx
mov al,cs:[di]
mov ah,0
out dx,ax ; 写 RAM1
delay: mov cx,0ffffh ;time delay
delay1: nop
nop
loop delay1
jmp start1
code ends
end tart
1.修改程序,改用 AD0809 的第二个通道进行 AD转换,并显示在数码管上。实验接线与做实验的接线一样。start1: mov dx,04a0h
mov ax,34h
out dx,ax ; 启动通道 0
wait1: mov dx,04b0h ;CS244
in ax,dx ; 读 EOC
and ax,1
cmp ax,1
jne wait1
十、习题
要改变通道只要修改 mov dx,04a0h 中的把 04a0h 改成 04a2即改为了第二个通道 , 通道及地址值对应如下: 地址值 通道
04a0H 0通道04a2H 1通道04a4H 2通道04a6H 3通道04a8H 4通道04aAH 5通道04aCH 6通道04aEH 7通道
2.根据实验程序,编写程序实现两个通
道同时 AD转换并,并在数码管上显示两个通
道的值 ,请参考程序 T0809.asm 。实验接线,
与做实验接线一样,然后把第 0 通道和第 1 通
联接起来,数码上显示两个通道的值应一样。
利用 D/A转换器产生锯齿波和三角波。
实验六 D/A 实验
一、实验目的
二、实验设备
熟悉数模转换的基本原理,掌握 D/A 的使用方法。
MUT—Ⅲ型实验箱、 8086CPU 模块、示波器。
三、实验内容
1 、 实验接线CS0 CS0832 示波器 DOUT DS 跳线: 1 2
2 、用实验箱左上角的“ VERF.ADJ” 电位器调节0832 的 8脚上的参考电压至 5V 。3 、调试程序并全速运行,产生不同波形。4 、用示波器观察波形。
四、实验原理图
五、实验步骤
本实验用 A/D 、 D/A 电路
利用电位器“ ZERO.ADJ” 可以调零,“ RANGE.AD
J” 电位器调整满偏值。 DAC0832 在本实验中,工作在双缓冲接口方式下。 当 A1=0 时可锁存输入数据;当 A1=1 时,可起动转换输出。 所以要进行 D/A转换需分二步进行,方法如下: MOV DX , ADDRESS ; ADDRESS 片选信号偶地址 MOV AL , DATA
OUT DX , AL ;锁存数据 ADD DX , 2
OUT DX , AL ;启动转换
六、实验提示
程序一 产生锯齿波 ( 实验程序名: dac-1.asm)
七、程序框图
assume cs:codecode segment public
org 100hstart: mov dx,04a0hup1: mov bx,0up2: mov ax,bx
out dx,ax ; 锁存数据 mov dx,04a2h out dx,ax ; 输出使能 mov dx,04a0h inc bx ; 数据加一 jmp up2 code ends end start
八、程序源代码清单
1 、只采用通道 2 ,且将采样数据经量纲转换后在 4 位 LED 显示器上显示出来。 其中: FFH 255V/382.5V(255×1.5=382.5) 00H
0V/0V
2 、一个 2 路模拟量循回检测系统如图。
九、习题
A 通道选择BC
8 通道A/D转换器EOC
OESTART
8 路模拟量输入
VIN0
VIN1
VIN2
VIN3
VIN4
VIN5
VIN6
VIN7
D0
D1
D2
…
D7
三态
控制口 40H
控制口 42H端口译码
数据总线
41H状态口
M/IO
A7
A0…
地址总线
8 通道模拟量采集电路
转换器有 3 个输入端口, A 、 B 、 C 用作通道选择。通道选择数据由 CPU 通过数据总线的 D0 、 D1 、 D2送到 A 、B 、 C 端子上,当 OUT 指令送控制口 H 时, START 有效,启动转换,转换结束后, D7 位读回 EOC 状态,查询 D7 位一直到转换完成为止,查询一次转换完后,用 IN命令发出数据端口选通信号,使 A/D转换器输出允许端口 OE 有效, CP
U取走转换数据,完成一个通道的一次数据输入。 3 、利用 EOC 信号改 A/D查询式采样方式的中断采样方式,要求在 IRQ2 中断服务程序中读取 A/D转换结果,并启动下一次 A/D转换结果。