• IO地址译码实验


    实验目的

    1、掌握I/O地址译码电路的工作原理
    2、学习函数的写法

    实验原理和内容

    实验电路如原理图所示:
    在这里插入图片描述

    74LS74为D触发器,可直接实验试验台上“数字电路实验区”的D触发器,
    当CLK上升沿时,Q=1;
    当CD=0,Q=0;
    可以驱动L7连接的发光管点亮、熄灭。



    74LS138为地址译码器。
    译码输出端Y0~Y7在试验台上“I/O地址”输出端引出, 每个输出端包含8个地址。
    Y4:2A0H~2A7H,
    Y5:2A8H~2AFH,

    当CPU执行I/O指令且地址在2A0H~2A7H范围内,Y4输出低电平。
    当CPU执行I/O指令且地址在 2A8H~2AFH范围内,Y5输出低电平。

    例如:执行下面两条指令
          MOV DX,2A0H
          OUT DX,AL(或IN AL,DX)
    Y4输出一个负脉冲到D触发器的CLK上,因为D=1(接了高电平+5V,所以Q被赋值为1。)

          执行下面两条指令
          MOV DX,2A8H
          OUT DX,AL(或IN AL,DX)
    Y5输出一个负脉冲到CD,D触发器被复位,Q=0
    利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

    编程提示

    实验电路中D触发器CLK端输入脉冲时,上升沿使Q端输出高电平L7发光,CD端加低电平L7灭。

    解析

    要使译码电路正常工作,必须使E1处于低电平 。

    L7输出高电平时,发光管是-----亮的
    触发器在它上升沿的时候会把D段的信号(高电平)送给Q端

    CD:清0端
    只要它为低电平,Q端的信号就变为低电平,发光管是-----暗的




    Y4连接CLK 要想CLK有上升沿,则让Y4非为低电平,当为高电平时就有上升沿了

    综上所述:
    ①让Y4非这个引脚是一个低电平信号
    那么

    ABC
    001

    也就是

    A3A4A5
    001

    ②E1为低电平
    经过与非门是低电平,所以U1前的引脚全为高电平。
    所以
        A9为高电平(1)
        A8为低电平(0)经过一个非才为高电平
        A7为高电平(1)
        A6为低电平(0)经过一个非才为高电平
        A2、A1、A0并没有连接,所以取0和取1均可

    A9A8A7A6A5A4A3A2A1A0
    1010100***

    当A2、A1、A0为000时
                                输出端地址为:2A0H
    当A2、A1、A0为111时
                                输出端地址为:2A7H
    在这里插入图片描述




    要想让CD为低电平,那么Y5非为低电平就可以了。
    综上所述:
    ①让Y5非这个引脚是一个低电平信号
    那么

    ABC
    101

    也就是

    A3A4A5
    101

    ②E1为低电平
    经过与非门是低电平,所以U1前的引脚全为高电平。
    所以
        A9为高电平(1)
        A8为低电平(0)经过一个非才为高电平
        A7为高电平(1)
        A6为低电平(0)经过一个非才为高电平
        A2、A1、A0并没有连接,所以取0和取1均可

    A9A8A7A6A5A4A3A2A1A0
    1010101***

    当A2、A1、A0为000时
                                输出端地址为:2A8H
    当A2、A1、A0为111时
                                输出端地址为:2AFH
    在这里插入图片描述




    在这里插入图片描述

    实验报告

    1、画出原理图,分析为什么地址为2A0-2A7时,74LS138的输出端/Y4会为低电平?
    因为74LS138为三八译码器,A、B、C控制Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7引脚,地址为2A0-2A7时,A、B、C分别对应A3、A4、A5且为001。输出端经过非门,故74LS138为Y4的低电平。



    2、写出74LS74、74LS138的功能和逻辑状态。
    74LS74功能:具有记忆功能,能存储1位信息的逻辑电路。
    74LS138逻辑状态:具有两个稳定的状态,在输入信号作用下,可以被置为“0”态或“1”状态。





    74LS138功能:主要是用三位二进制数来控制输出低电平
    74LS138逻辑状态:共有八种状态,分别对应八个输出端的一个信号。Y0=1, Y1=1, Y2=1, Y3=1, Y4=1, Y5=1, Y6=1, Y7=1,。




    3、写出程序并适当加注释。

    outport1  EQU  2A0H
    outport2  EQU  2A8H
    
    code segment
        assume cs:code
    start:
        mov dx,outport1
        out dx,al      ;Y4端口输出一个负脉冲
        call delay     ;调用延时子程序
    
        mov dx,outport2
        out dx,al      ;Y5端口输出一个负脉冲
        call delay     ;调用延时子程序
                
        
        mov ah, 1    ;当ah为1时调用键盘,通过键入值判断程序的循环,然后通过ah来选择并中断4ch的程序。
        int 16h 
        je start     ;若有键盘输入则退出程序,否则继续循环
        
        mov ax, 4c00h 
        int 21h    
        
    delay proc near  ;延时子程序
        mov bx,10	 ;将数据 10 送到 bx 基址寄存器
    lll:mov cx,0	 ;将 cx 计数寄存器设置为 0(执行65536),并设计标注处 lll
    ll: loop ll		;跳转至 ll 处执行程序,并设计标注处 ll
        dec bx    ;bx自减1
        jne lll		;条件转移指令即ZF=0,转至标号处 lll 执行
        ret			;栈顶字单元出栈,其值赋给IP寄存器。即实现了一个程序的转移,将栈顶字单元保存的偏移地址作为下一条指令的偏移地址。
    delay endp	 	;proc、endp 成对出现,分别表示子程序定义的开始和结束
    code ends
    end start 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32




    4、分析延时函数的写法,计算延时的时间

    有图可知,处理器的主频为33 MHz
    在这里插入图片描述

    因为主频不同,延时1s的参数也不相同 cx 计数寄存器设置为 0(执行65536) mov bx,10-->执行10次 一条LOOP语句执行周期数为65536 需要执行的语句数为10次 所以共:65536*10=655360s 课外知识扩展:

    初期推出的80386 DX处理器集成了大约27.5万个电晶体,工作频率为12.5MHz。此后80386处理器逐步提高到20MHz、25MHz、33MHz直至最后的40MHz。



    程序流程图

    在这里插入图片描述



    实验设备

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    实验图解

    在这里插入图片描述
    在这里插入图片描述


    在这里插入图片描述



    在这里插入图片描述



    在这里插入图片描述



    在这里插入图片描述



    在这里插入图片描述



    第一步:
    在这里插入图片描述

    第二步:
    在这里插入图片描述
    第三步:打开与此实验箱相匹配的软件:查询窗口->EM386接口存在
    在这里插入图片描述

    第四步:新建ASM文件
    在这里插入图片描述
    第五步:连线
    在这里插入图片描述

    A19-A0:20位地址线

    D7-D0: 8位数据线

    IRQ: 中断请求输入信号,是用户中断请求引入端,在IRQ2、IRQ3、IRQ4、IRQ7中,IRQ7级别最低,PC总线接口卡在出场时已将IRQ7作为中断信号。

    IOR:I/O读信号

    IOW:I/O写信号

    MEMW: 存储器写信号

    MEMR: 存储器读信号

    AEN: 地址允许信号,控制地址总线,以便进行DMA传送。

    DRQ1: DMAC通道1的DMA请求信号

    DACK1: DMAC通道1的DMA响应信号

    CLK: 时钟输出信号,信号是频率为4。77MHZ的时钟输出信号,作为8088系统时钟(主频)

    ALE: 地址/状态复用线上信号作为地址码加以锁存。

    T/C: 计数终止信号

    其它为电源信号


    实验系统的安装

    1、关上PC机电源,打开微机主机箱。

    2、检查接口卡上的中断请求跳线开关是否已经连好。

    3、将PC总线接口卡插在任意一扩展槽中。

    4、用50线扁平电缆连接接口卡和试验台。
    接口卡功能:是将与实验有关的总线信号加以驱动后引入实验台上。

    在这里插入图片描述


    实验现象和结果

    (1)当实验电路中的D触发器CLK端输入脉冲时,上升沿使Q端输出高电平,则对应的小灯点亮。
    (2)当实验电路中的D触发器CLK端输入脉冲时,下降沿使Q端输出低电平,则对应的小灯熄灭。

  • 相关阅读:
    如何使用ArcGIS Pro自动矢量化道路
    NodeMCU ESP8266构建Web Server网页端控制设备
    2流高手速成记(之八):基于Sentinel实现微服务体系下的限流与熔断
    微服务框架 SpringCloud微服务架构 8 Gateway 网关 8.1 网关作用介绍
    const和readonly的区别
    Unity三维数学总结
    关于网上蛋糕店销售系统的设计答辩问题及回答
    钱包追踪分析的 3 个使用案例
    《c++ Primer Plus 第6版》读书笔记(6)
    css设置输入框边框无效或者不展示边框
  • 原文地址:https://blog.csdn.net/CSDN_e_1/article/details/127668401