微机控制技术实验讲义
- 格式:docx
- 大小:26.08 KB
- 文档页数:7
实验一 8255并行口实验
一、实验目的
掌握8255A的编程原理。
二、实验设备
MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容
8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
四、实验原理介绍
本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。
五、实验步骤
1、实验接线
CS0↔CS8255; PA0~PA7↔平推开关的输出K1~K8; PB0~PB7↔发光二极管的输入LED1~LED8。
2、编程并全速或单步运行。
3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。
六、实验提示
8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A 有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。实验中,8255A工作于基本输入输出方式(方式0)。
七、实验结果
程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:
K2置于L位置,则对应的LED2应该点亮。
assume cs:code
code segment public
org 100h
start: mov dx,04a6h ;控制寄存器地址
mov ax,90h ;设置为A口输入,B口输出
out dx,ax
start1: mov dx,04a0h ;A口地址
in ax,dx ;输入
mov dx,04a2h ;B口地址
out dx,ax ;输出
jmp start1
code ends
end start
实验二 A/D实验
一、实验目的
熟悉A/D转换的基本原理,掌握ADC0809的使用方法。
二、实验设备
MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容
从ADIN0输入一路模拟信号,启动A/D转换,用简单输入口(74LS244)查询EOC 信号,转换结束后查看转换结果。同时用万用表测量输入的模拟电压,与转换后的数字量比较。作图,横坐标是模拟电压,纵坐标是转换的数字量,检查A/D转换的线性度。
其它通道实验与通道0类似,相应修改地址即可。
四、实验原理介绍
本实验用到两部分电路:简单I/O口扩展电路、A/D、D/A电路
五、实验步骤
1、实验连线
AN0 ↔ ADIN0 CS0 ↔CS0809 CS1 ↔CS244 EOC ↔IN0
2、用实验箱左上角的“VERF.ADJ”电位器调节ADC0809 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(数据低位略有偏差属正常现象)。
程序:
con8279 e qu 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 ;启动通道0
wait1: mov dx,04b0h ;CS244
in ax,dx ;读EOC
and ax,1
cmp ax,1
jne wait1 ;如果EOC=0,waiting....
mov dx,04a0h
in ax,dx ;读转换结果
and ax,0ffh
mov bx,ax
nop ;
disp: m ov 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: n op
nop
loop delay1
jmp start1
code ends
end start