实验一接口实验(一)--8255并行口实验一、实验目的掌握8255A的编程原理。二、实验设备MUT一IⅢI型实验箱、8086CPU模块。三、实验内容8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。四、实验原理介绍本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。五、实验步骤1、实验接线PBO~PB7发光二极管的输入LED1LED8。CS0<>CS8255;PAO~PA7台平推开关的输出K1~K8:2、编程并全速或单步运行。3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。六、实验提示8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。实验中,8255A工作于基本输入输出方式(方式0)。七、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。assumecs:codecode segment publicorg 100hdx,04a6h;控制寄存器地址movstart:ax,90h,设置为A口输入,B口输出movoutdx,ax;A口地址startl:movdx,04a0hin输入ax,dxdx,04a2hB口地址mov输出outdx,axjmpstartlcodeendsendstart八、编程扩展1.A/B口功能互换
1 实验一 接口实验(一) -8255 并行口实验 一、实验目的 掌握 8255A 的编程原理。 二、实验设备 MUT—Ⅲ型实验箱、8086CPU 模块。 三、实验内容 8255A 的 A 口作为输入口,与逻辑电平开关相连。8255A 的 B 口作为输出口,与发光二极管相连。编写 程序,使得逻辑电平开关的变化在发光二极管上显示出来。 四、实验原理介绍 本实验用到两部分电路:开关量输入输出电路和 8255 可编程并口电路。 五、实验步骤 1、实验接线 CS0CS8255; 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 八、编程扩展 1.A/B 口功能互换
2.实现一对多和多对一。3.使用8255芯片实现38译码器功能。2
2 2.实现一对多和多对一。 3.使用 8255 芯片实现 38 译码器功能
实验二接口实验(二)--A/D实验一、实验目的熟悉A/D转换的基本原理,掌握ADC0809的使用方法。二、实验设备MUT一IⅢI型实验箱、8086CPU模块。三、实验内容从ADINO输入一路模拟信号,启动A/D转换,用简单输入口(74LS244)查询EOC信号,转换结束后查看转换结果。同时用万用表测量输入的模拟电压,与转换后的数字量比较。作图,横坐标是模拟电压,纵坐标是转换的数字量,检查A/D转换的线性度。其它通道实验与通道0类似,相应修改地址即可。四、实验原理介绍本实验用到两部分电路:简单I/O口扩展电路、A/D、D/A电路五、实验步骤1、实验连线ANO ADINOCS0>CS0809CS1CS244E0CIN02、用实验箱左上角的“VERF.ADT”电位器调节ADC080912脚上的参考电压至5V。3、编写程序并全速运行。4、检查显示数据是否与电位器输出的电压相符合。六、实验提示实验电路中启动信号START与地址锁存信号相连,所以启动A/D转换的方法为:MOVDX,ADDRESS:ADDRESS是ADC0809的端口地址OUTAL,DX;发片选及IOW信号,启动0通道七、实验结果在输入电压AN0分别为OV,1V,2V,3V,4V,5V时显示数据分别为00H,33H,66H,99H,0CCH,0FFH(数据低位略有偏差属正常现象)。程序:con8279 equ0492hdat8279equ0490hassumecs:codecode segment publicorg 100hstart1start:jmpsegcod db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71hstartl:dx,04a0hmovmovax,34hdx,ax启动通道0outwaitl:movdx,04b0h;CS244inax,dx读EOCandax,13
3 实验二 接口实验(二) -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 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 ;启动通道 0 wait1: mov dx,04b0h ;CS244 in ax,dx ;读 EOC and ax,1
ax,1cmpwaitl;如果EOC=0,waiting...jnedx,04a0hmovinax,dx;读转换结果andax,fthmovbx,axnop;disp:movdi,offsetsegcodax,08h,工作方式,16位,左入movdx.con8279movoutdx,axax,90hmovdx,con8279movdx,ax写显示RAM命令,地址自增outdx,dat8279movpush bx;取高4位andbx,ofohcl,4movshrbx,cl adddi,bxal,cs:[di]movah,0movoutdx,ax写RAMOnopnopmovdi,offset segcodbxpop;取低4位andbx,0fhadddi,bxmoval,cs:[di]ah,0movoutdx,ax写RAM1delay.cx,Offmhmov;time delaydelay1:nopnoploop delay1start1jmpcode endsend start八、编程扩展使用8255芯片实现模拟量输入控制指示灯输出。4
4 cmp ax,1 jne wait1 ;如果 EOC=0,waiting. 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 start 八、编程扩展 使用 8255 芯片实现模拟量输入控制指示灯输出
实验三接口实验(三)--D/A实验一、实验目的熟悉数模转换的基本原理,掌握D/A的使用方法。二、实验设备MUT一IⅢI型实验箱、8086CPU模块、示波器。三、实验内容利用D/A转换器产生锯齿波和三角波。四、实验原理图本实验用A/D、D/A电路五、实验步骤1、实验接线DS跳线:1>2CSO>CS0832示波器DOUT2、用实验箱左上角的“VERF.ADJ”电位器调节0832的8脚上的参考电压至5V。3、调试程序并全速运行,产生不同波形。4、用示波器观察波形。六、实验提示利用电位器“ZERO.ADJ”可以调零,“RANGE.ADJ”电位器调整满偏值。DAC0832在本实验中,工作在双缓冲接口方式下。当A1=0时可锁存输入数据:当A1=1时,可起动转换输出。所以要进行D/A转换需分二步进行,方法如下:MOVDX,ADDRESS;ADDRESS片选信号偶地址MOVAL, DATAOUTDX, AL;锁存数据ADDDX, 2OUTDX, AL;启动转换程序:assume cs:codecode segment publicorg 100hdx,04a0hstart:movbx,0upl:movup2:ax,bxmovoutdx,ax锁存数据movdx,04a2h输出使能outdx,axdx,04a0hmovbxinc数据加一jmpup25
5 实验三 接口实验(三) -D/A 实验 一、实验目的 熟悉数模转换的基本原理,掌握 D/A 的使用方法。 二、实验设备 MUT—Ⅲ型实验箱、8086CPU 模块、示波器。 三、实验内容 利用 D/A 转换器产生锯齿波和三角波。 四、实验原理图 本实验用 A/D、D/A 电路 五、实验步骤 1、 实验接线 CS0 CS0832 示波器DOUT DS 跳线:1 2 2、用实验箱左上角的“VERF.ADJ”电位器调节 0832 的 8 脚上的参考电压至 5V。 3、调试程序并全速运行,产生不同波形。 4、用示波器观察波形。 六、实验提示 利用电位器“ZERO.ADJ”可以调零,“RANGE.ADJ”电位器调整满偏值。 DAC0832 在本实验中,工作在双缓冲接口方式下。 当 A1=0 时可锁存输入数据;当 A1=1 时,可起动转换输出。 所以要进行 D/A 转换需分二步进行,方 法如下: MOV DX,ADDRESS ;ADDRESS 片选信号偶地址 MOV AL,DATA OUT DX,AL ;锁存数据 ADD DX ,2 OUT DX,AL ;启动转换 程序: assume cs:code code segment public org 100h start:mov dx,04a0h up1: mov bx,0 up2: mov ax,bx out dx,ax ;锁存数据 mov dx,04a2h out dx,ax ;输出使能 mov dx,04a0h inc bx ;数据加一 jmp up2