“简单并行输出”实验分析

阅读所需知识点

  • 引脚名头上有一杠代表低电平有效
  • CLK有个三角标代表上升沿工作

“简单并行输出”实验代码详细注解

start:
	mov ah,2	;ah为21h中断模块入口,2为字符显示模块
	mov dl,0dh	;dl为显示字符入口,0dh代表回车符ASCII码
	int 21h	;执行21h中断2号模块,在屏幕中显示出回车符
	
	mov al,1	;1为等待键盘输入模块入口,输入字符码保存到al寄存器中
	int 21h	;执行21h中断1号模块,等待键盘输入,将值保存到al
	
	cmp al,27	;比较al是否为esc字符,27h为esc字符ASCII码
	je exit	;相等(标志位ZF=1)则跳转到exit(程序结束返回DOS系统中断程序)标号处
	
	mov dx,2a8h	;将立即数送入dx寄存器,立即数由这条代码提供
	out dx,al	;out为(CPU)输出指令,将al寄存器内容输出到地址为[dx]的设备中
	
	jmp start	;无条件跳转指令,无限循环以上代码直到按esc退出

exit:
	mov ah, 4ch
	int 21h

“out dx,al”指令时序分析

IO写操作时序图

  1. T1时刻:A0~A19、BHE、ALE、M/IO信号有效,此时地址锁存器将地址信号锁存到地址总线上
    地址锁存器

  2. T2时刻:ALE信号无效,地址锁存器不工作,但地址信号一直有效;D0-D15、DEN信号开始有效,DT/R为高电平,数据收发器将数据发送到数据总线上(图中将左边A0-A7数据锁存到右边)
    数据收发器

  3. T3时刻:继续数据发送工作

  4. T4时刻:DEN信号失效,数据发送工作结束

“简单并行输出”实验电路图

“I/O地址译码”实验电路图
“简单并行输出”实验电路图

实验工作原理:

  1. T1时刻,地址总线有02a8h(0000001010101000)电平信号,译码器中Y5会生效,但此时IOW和IOR为高电平,都无效,U2:A输出0,U1输出1,译码器不工作,Y5输出高电平,74LS32输出高电平(02a8h与Y5相连);
  2. T2时刻,IOW生效,U2:A输出1,U1输出0,译码器工作,Y5输出低电平,74LS32输出低电平;
  3. T3时刻电平不发生改变;
  4. T4时刻IOW失效,译码器不工作,Y5输出高电平,74LS32输出高电平,此时8D触发器74LS273工作,将D0-D7(T2-TW时刻数据总线数据输出完成)锁存到右边。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值