第一部分 系统介绍

Post on 30-Dec-2015

113 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

第一部分 系统介绍. 第二部分 基本电路介绍. 第三部分 基本实验( 8086 ). 目录. 实验一 I/O 端口实验. 实验二 8255 键盘扫描与 LED 数码管显示实验. 实验三 8253 定时实验. 实验四 8259 中断控制及中断服务实验. 实验五 A/D 转换实验. 实验六 D/A 实验. 第一部分 系统介绍. 一、系统特点.  配有两块可编程器件: EPM7128 被系统占用。另一块 EPM7032 供用户实验用。两块器件皆可通过 JTAG 接口在线编程。使用十分方便。. - PowerPoint PPT Presentation

TRANSCRIPT

第一部分 系统介绍

第二部分 基本电路介绍

第三部分 基本实验( 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转换结果。

top related