【接口技术】实验二:基本I/O实验

该实验主要介绍了如何掌握I/O端口地址译码和简单并行接口的工作原理。在实验2-1中,通过编程控制译码电路使得L7二极管闪烁,实现了地址译码的控制。实验2-2则涉及了键盘输入和ASCII码的输出验证,通过74LS273和74LS32电路读取并显示字符。实验结果表明,二极管按照预期闪烁,且键盘输入的字符能够正确通过并行接口显示。
摘要由CSDN通过智能技术生成

一. 实验目的

  1. 掌握I/O端口地址译码电路的工作原理。
  2. 掌握简单并行接口的工作原理及使用方法。

二. 实验内容

硬件平台:TPC-ZK-II配套实验箱
软件环境:TPC-ZK-II

实验2-1:I/O端口地址译码实验

电路图:
在这里插入图片描述
接线:
在这里插入图片描述
实验要求:
实验电路中D触发器CLK端输入脉冲时,上升沿使Q端输出高电平,L7发光,CD端加低电平,L7灭。要求通过编程控制译码电路的负脉冲输出,使L7闪烁发光(亮灭交替),时间间隔通过软件延时实现。

汇编代码:

OUTPORT1 EQU 2A0H
OUTPORT2 EQU 2A8H

CODE SEGMENT
	ASSUME CS:CODE

START:
	MOV DX,290h          ;将290H(0010 1001 0000)送入控制端口DX
	OUT DX,AL            ;输出Y2的一个负脉冲
	CALL DELAY           ;调用延时子程序

	MOV DX,2A0h          ;将2A0H(0010 1010 0000)送入控制端口DX
	OUT DX,AL            ;输出Y4的一个负脉冲
	CALL DELAY           ;调用延时子程序

	MOV AH,1             ;将立即数1送入AH中
	INT 16H              ;读取键盘缓冲区,从键盘读入字符送AL寄存器
	JE START             ;跳转至START
	MOV AH,4CH           ;返回DOS
	INT 21H              ;中断,退出

DELAY PROC NEAR          ;延时子程序开始定义

	MOV BX,500           ;将立即数500送入BX中,用于控制亮灭的时间间隔为0.5s

label1:
	MOV CX,0             ;将立即数0送入CX中

label2:
	LOOP label2          ;循环执行label2
	DEC BX               ;计时,BX自减
	JNE label1           ;跳转到label1
	RET                  ;修改IP实现近转移

DELAY ENDP               ;延时子程序结束定义

CODE ENDS
END START

运行结果:
在这里插入图片描述
观察实验箱中的L7二极管,二极管不停闪烁,如下图所示:
在这里插入图片描述

实验2-2:简单并行接口I/O实验

电路图:
在这里插入图片描述
接线:
在这里插入图片描述
实验要求:

  1. 利用74LS273和74LS32组合电路,编程从键盘输入一个字符或数字,将其ASCII码通过输出接口Q1-Q8输出,根据8个发光二极管L0-L7的发光情况验证正确性。
  2. 利用74LS244和74LS32组合电路,通过逻辑电平开关预置某个字母的ASCII码,编程实现输入这个ASCII码,并将其对应字母在屏幕上显示出来。

汇编代码:

ls244 equ 2a0h

code segment 
    assume cs:code

start:
    mov dx,ls244      ;从2A0输入一数据送入dx端口中
    in al,dx          ;将端口dx中的数据送入al中
    mov dl,al         ;将所读数据保存在DL中
    mov ah,02h        ;调用DOS的2号功能
    int 21h           ;中断,输出

    mov dl,0dh        ;显示回车符'0dh'
    int 21h           ;中断,输出

    mov dl,0ah        ;显示换行符'0ah'
    int 21h           ;中断,输出

    mov ah,06h        ;调用DOS的6号功能,直接输入输出字符
    mov dl,0ffh       ;检测是否有键按下
    int 21h           ;中断,输出

    jnz exit          ;如果有键按下,则跳转至exit操作
    je start          ;如果没有键按下, 则跳转至start操作

exit:
    mov ah,4ch        ;返回DOS
    int 21h           ;中断,退出

code ends 
end start

运行结果:

拨动实验箱开关,程序窗口显示相应字符:
在这里插入图片描述
若取消回车,则显示如下状态:
在这里插入图片描述
若取消换行,则始终输出一行的内容。

汇编代码:

ls273 equ 2a8h

code segment
    assume cs:code

start: 
    mov ah,02h        ;调用DOS的2号功能
    mov dl,0dh        ;显示回车符'0dh'       
    int 21h           ;中断,输出

    mov ah,01h        ;调用DOS的1号功能,等待键盘输入
    int 21h           ;中断,输出

    cmp al,1bh        ;判断按下的是否为ESC键'1bh'
    je exit           ;若是则跳转至exit退出
    mov dx,ls273      ;若不是则从端口2A8H读预置的字符
    out dx,al         ;输出读取的字符al的ASCII码
    jmp start         ;跳转至start操作

exit:
    mov ah,4ch        ;返回DOS
    int 21h           ;中断,退出
code ends 
end start

运行结果:
在这里插入图片描述
运行程序,在键盘上输入一个字符,实验箱指示灯便可显示相应ASCII码。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jeron Zhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值