【Proteus仿真8086】简单IO接口实验——无条件传输和查询方式
- 本次实验内容来自于顾晖老师《微机原理与接口技术 基于8086和Proteus仿真 第3版》的【例7-1】和51CTO课程的讲解内容第七章输入输出接口0704程序查询方式
https://edu.51cto.com/course/24864.html
原理图和代码与书上相比略有改动 - 无条件传输方式CPU不需要了解外设状态而直接与外设通信,一般用于开关和二极管等简单外设。使用74LS373作为接口和CPU通信,控制8个LED同时亮或者熄灭,亮灭时间为毫秒级。
assume cs:codesg
codesg segment 'code'
start:mov dx, 400hmov al, 0ffh
again:out dx, alcall delaynot aljmp againdelay procpush cxpush bxmov bx, 50
wait0:mov cx, 2801
wait1:loop wait1dec bxjnz wait0pop bxpop cxret
delay endp
codesg ends
end start
当开关K0闭合的时候,点亮LED0、LED1、LED2、LED3;当开关K1闭合时,点亮LED2、LED4、LED6、LED8;其余状态所有LED灯熄灭。在程序中体现为用test指令判断该位是否为0。
查询开关状态判断是否亮灯,比较坑的一点是读取开关数据选用了单向缓冲器74LS244,当片选信号有效时A可以传输到Y,因此A端应该接开关,Y端接数据总线D0~D7。74LS245就是双向的,除了片选信号CS还有一个数据传输方向控制引脚AB\BA。
开关状态的端口地址为200H,LED灯的端口地址为400H
简化电路可以去掉最后一个273因为IO端口的地址总线只使用了低16位
assume cs:codesg
codesg segment 'code'
start:mov dx, 200hin al, dxtest al, 01h ; 开关闭合为低电平,断开高电平jz L1 ; 查询开关0是否闭合 闭合为0test al, 02hjz L2jmp L3
L1:mov al, 55hjmp light
L2:mov al, 0AAhjmp light
L3:mov al, 0hjmp light
light:mov dx, 400hout dx, aljmp startcodesg ends
end start
【Proteus仿真8086】简单IO接口实验——无条件传输和查询方式相关推荐
- 【Proteus仿真8086】简单IO接口实验——读取开关状态控制灯的亮灭
本次实验内容来自于何宏老师<微机原理与接口技术 基于Proteus仿真的8086微机系统设计及应用>的12.1节基本I/O口应用,略有改动 用245读取开关状态,然后用373控制开关的亮灭 ...
- 【Proteus仿真8086实验一】RAM存储器62256
建议把存储器设计和简单IO接口放在第一次实验,重点了解锁存器273和缓冲器373是怎样将数据和地址线进行分离的,具体Proteus的实验操作比如设置内存大小和快速命名接口(属性赋值工具)可以参考这个老 ...
- 【Proteus仿真8086】并行接口芯片8255
这次实验内容根据B站一个老师录制的讲解视频,老师通过导入emu8086编译好的EXE文件到8086中进行仿真,实际上可以在Proteus中直接通过构建工程编译源程序.接口芯片的内容比较复杂,建议先学习 ...
- 【Proteus仿真8086】将IO接口电路封装成子电路CCT001
本次实验内容来自于顾晖老师<微机原理与接口技术 基于8086和Proteus仿真 第3版>的[例7-2],但老师使用的方法是将IO接口电路封装成子电路CCT001,这部分在章节没有讲述,于 ...
- Proteus仿真-数码管显示温度(实验三)
文章参考资料 http://www.51hei.com/bbs/dpj-91394-1.html (基于DS18B20温度传感器温控系统的Proteus仿真) https://wenku.baidu. ...
- Arduino与Proteus仿真实例-简单信号频率计数仿真
简单信号频率计数仿真 Arduino 可用于测量电量(如电压.电流.功率等)或物理量(如温度.湿度.光强.湿度等)或电子元件值等. 本文将演示演示了如何使用 Arduino 测量脉冲的频率和占空比. ...
- ATtiny13与Proteus仿真-TM1637简单时钟仿真
TM1637简单时钟仿真 在前面的文章中,我们使用ATtiny13成功驱动了TM1637,在本次实例中,将实现一个简单的时钟. 在前面的文章中,对TM1637的驱动及应用做了详细的介绍,请参考: AT ...
- TI CC2530基础实验(定时器1查询方式——自由运行模式)
本实验实现通过CC2530的定时器1(16位)查询方式控制LED1以1S的周期性闪烁,此实验使用的三个寄存器T1CTL(定时器1控制寄存器),T1STAT(定时器1状态寄存器),IRCON. 有关CC ...
- 【Proteus仿真8086】往8086 内存中写入数据
这部分内容参考这个博主 https://blog.csdn.net/TTTSEP9TH2244/article/details/122584312 微机原理与接口技术--Proteus仿真软件的使用方 ...
最新文章
- dockerfile php-fpm,1、使用dockerfile制作nginx+php-fpm镜像,实现lnmp。
- 倒车辅助Park Assist
- cdh5.12.1 service monitor监控状态_来,我们在重新说下,线程状态?
- 算法与数据结构 -- 栈与队列(四)
- PHP常用正则:手机 邮箱 网址
- android壁纸选择器,Android 图片选择器
- HDU2191 多重背包或者01背包 xingxing在努力
- 利用opencv中的级联分类器进行人脸检測-opencv学习(1)
- 【作业报告】作业5 四则运算 测试与封装 5.2(已更新)
- 比例电磁阀(二)阀门开度与速度的关系
- 如何进行航拍全景摄影(下)
- 2017杭州云栖大会100位大咖视频+讲义全分享
- 【原创】EXCEL数组公式(1)----数组公式和普通公式计算具体比较
- 关于为什么RAID5往往掉一个盘后第二个盘也立刻挂掉的原因分析
- 身为程序员就算月薪再高,想找女朋友的话这些你千万别做!
- 人工智能实验二——prolog语言求解渡河问题(传教士和野人渡河,农夫渡河问题)实现详解
- 拼多多登录一直连接服务器,拼多多有自己的服务器吗
- 输入年,月,输出这一年的这个月有多少天
- HCNP路由交换学习指南(第一章)学习笔记
- 数据库实验二之数据查询
热门文章
- vue中使用element-ui的表单验证功能prop属性
- python递归函数入门教程_Python递归函数
- python中堆排序_Python实现堆排序的方法详解
- 中国近代史自考必备简答题(一)
- linux 扫描开放的端口命令,在Linux系统中检查(扫描)开放端口的方法
- 【动态规划】线性dp P1043 数字游戏
- x264源代码简单分析:x264命令行工具(x264.exe)
- ffmpeg 从内存中读取数据(或将数据输出到内存)
- python幂运算的符号有哪些及画法_SymPy 符号计算基本教程
- AcWing提高算法课Level-3 第六章 基础算法