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非这个引脚是一个低电平信号
那么
A | B | C |
---|---|---|
0 | 0 | 1 |
也就是
A3 | A4 | A5 |
---|---|---|
0 | 0 | 1 |
②E1为低电平
经过与非门是低电平,所以U1前的引脚全为高电平。
所以
A9为高电平(1)
A8为低电平(0)经过一个非才为高电平
A7为高电平(1)
A6为低电平(0)经过一个非才为高电平
A2、A1、A0并没有连接,所以取0和取1均可
A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
---|---|---|---|---|---|---|---|---|---|
1 | 0 | 1 | 0 | 1 | 0 | 0 | * | * | * |
当A2、A1、A0为000时
输出端地址为:2A0H
当A2、A1、A0为111时
输出端地址为:2A7H
要想让CD为低电平,那么Y5非为低电平就可以了。
综上所述:
①让Y5非这个引脚是一个低电平信号
那么
A | B | C |
---|---|---|
1 | 0 | 1 |
也就是
A3 | A4 | A5 |
---|---|---|
1 | 0 | 1 |
②E1为低电平
经过与非门是低电平,所以U1前的引脚全为高电平。
所以
A9为高电平(1)
A8为低电平(0)经过一个非才为高电平
A7为高电平(1)
A6为低电平(0)经过一个非才为高电平
A2、A1、A0并没有连接,所以取0和取1均可
A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
---|---|---|---|---|---|---|---|---|---|
1 | 0 | 1 | 0 | 1 | 0 | 1 | * | * | * |
当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
4、分析延时函数的写法,计算延时的时间
初期推出的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端输出低电平,则对应的小灯熄灭。