微机原理笔记分享
课程链接:https://www.bilibili.com/video/BV1qv411Y7AA?share_source=copy_web
I/O接口
I/O设备
常见的输入设备:
- 键盘、鼠标、图形扫描仪、条形码读入器、光笔和触摸屏等。
常见的输出设备:
- 显示器、打印机、绘图仪和影像输出设备等。
在测控系统中,还会用到模/数转换器、数/模转换器、发光二极管(LED)、按钮、开关等。此外,还有许多专用I/O设备。
IO接口
I/O接口的作用
-
解决高速CPU与低速外设之间不匹配问题
- 速度不匹配
- 信号电平不匹配
- 信号格式不匹配
- 时序不匹配
-
I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路
接口电路的功能
-
缓冲、锁存
- 输入要缓冲,输出要锁存
-
联络
-
握手,应答,工作状态联络
- Ready
- Busy
-
-
变换
- 电压/电流变换
- 串行/并行变换
- 电平/电平变换
- A/D、D/A变换
-
地址译码
- I/O寻址,选中工作端口
-
I/O端口交换信息类型
-
数据
- 通过数据口(数据寄存器)传送
-
命令
- 通过控制口接受CPU发送的各种控制信号启动、停止。中断使能等
-
状态
- 通过状态口提供外设状态,供CPU测试、联络等
-
-
接口电路内部结构
IO端口及寻址方式
-
I/O单独编址
-
8086/8088、Z80等
- 不占用存储空间,由M/IO区分
- 不占用存储空间,由M/IO区分
-
-
I/O与存储器统一编址
-
存储器映象方式
-
MC68000、68HCO5等
- 无需I/O指令
- 占存储空间
-
-
8086的I/O端口编址
- 采用I/O独立编址方式(但地址线与存储器共用)
- 地址线上的地址信号用IO/M来区分
- I/O操作只使用20根地址线中的16根:A15~A0
- 可寻址的I/O端口数为64K(65536)个
- I/O地址范围为0~FFFFH
- IBM PC只使用了1024个I/O地址(0~3FFH)
-
常见I/O接口芯片
-
可编程接口芯片
- 8255:可编程并行接口芯片
- 8251:可编程串行接口芯片
- 8253:可编程定时/计数器
- 8259:可编程中断控制器
- 8237:可编程DMA控制器
-
CPU与外设的数据传输方式
-
程序控制I/O方式
-
无条件传送方式
-
需要传送时,执行IN/OUT指令即可
-
适用于无需应答联络的场合
-
IN/OUT指令
-
使用累加器AX或AL传送信息
-
IN输入指令格式为:
- IN AL,端口地址(8位地址,1个端口)
- IN AX,端口地址(8位地址,2个端口)
- IN AL,DX (16位地址,1个端口)
- IN AX,DX (16位地址,2个端口)
-
OUT输出指令格式为:
- OUT端口地址,AL
- OUT 端口地址,A
- OUT DX, AL
- OUT DX,AX
-
-
例
-
例1.简单输入口:将开关状态→CPU
-
例2.简单输出口:控制LED发光
-
-
-
条件传送/查询模式
-
例
-
例3.查询方式:打印输出
- 状态口:83H
数据口:82H - BUSY=1,忙
0,空闲
- 状态口:83H
-
-
查询方法
-
例
-
例4.查询式I/0接口电路
-
-
-
-
-
中断方式
-
查询与中断方式比较
- 查询:CPU主动查询外设状态,等待费时
- 中断:外设准备好才向CPU请求中断,CPU效率高
-
-
DMA方式
-
DMA传送
-
程序控制传送的不足:
- 外设→CPU→存储器
- 外设←CPU←存储器
-
直接存储器存取DMA:
- 外设→存储器
- 外设←存储器
- CPU释放总线,由DMA控制器管理
-
-
DMA传送过程
-
CPU对DMA控制器进行初始化设置
-
外设、DMAC和CPU三者通过应答信号建立
- 联系:CPU将总线交给DMAC控制
-
DMA传送
- DMA读存储器:存储器→外设
- DMA写存储器:存储器←外设
-
自动增减地址和计数,判断传送完成否
-
-
8255的工作原理
可编程并行接口8255
-
主要引线功能及结构
-
3种工作方式及其特点
-
应用
- 芯片与系统的连接
- 芯片的初始化编程
- 数据输入/输出控制程序设计
8255特点
- 通道型接口
- 含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力
- 可通过编程,设置各端口工作在某一确定状态下。
8255主要引脚
-
连接系统端的主要引线:
-
连接外设端的引脚:
- PA0 —— PA7
- PB0 —— PB7
- PC0 —— PC7
8255与系统的连接示意图
接口和工作方式
-
接口
-
B组
- 端口B
- 端口C的低4位
-
A组
- 端口A
- 端口C的高4位
-
-
方式
-
基本输入/输出方式(方式0)
-
相当于三个独立的8位简单接口
-
各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出
-
C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口
-
常用于连接简单外设,适于无条件或查询方式
-
通常情饥:
- A端口和B端口作为8位数据的输入或输出口
- C口的某些位作为状态输入
-
注
- 若使C端口低4位中某一位作为输入口,则低4位中其他位都应作为输入口。同时可设高4位作为输出。
-
-
方式0连接示意图
-
-
选通工作方式(方式1)
-
利用一组选通控制信号控制A端口和B端口的数据输入输出
-
A口、B口作输入或输出口,C口的部分位用作选通控制信号
-
A口、B口在作为输入和输出时的选通信号不同
- 方式1主要用于中断控制方式下的输入输出
- C口的8位除用作选通信号外,其余位可工作于方式0下,作为输入或输出口。
-
-
双向传送方式(方式2)
-
双向输入输出方式
- 可以既作为输入口,又作为输出口。
-
只有A端口可工作在方式2下
-
可使A端口作为双向端口所有
-
用于中断控制方式
-
当A口工作于方式2时:
-
B口可工作于方式1
- 此时C口的所有位都用作选通控制信号的输入输出
-
B口也可工作于方式0
- 此时C口的剩余位也可工作于方式0
-
-
-
8255控制字
-
方式控制字:
- 用于确定3个端口的工作方式及数据传送方向;
-
位控制字
- 仅用于C端口
- 可设置C口某位的初始状态(为高电平或低电平)
- 当其工作于方式0下且作为输出口时,一般需要对作为输出的位设置初始状态(即初始化)
-
方式控制字
-
置位/复位控制字
-
例
- 从PC5引脚输出一正脉冲,设8255口地址:60H~63H
- 从PC5引脚输出一正脉冲,设8255口地址:60H~63H
-
8255应用举例
芯片与系统的连接(端口地址)
芯片的初始化
相应的控制程序
基本I/O
- 检测开关KO7状态,并用LEDO7实时指示。(断开灯亮)
确定8255端口地址
查询程序
键盘接口
-
键盘结构
-
编程要点
-
确定是否有键按下
- 发行码:行线输出全0
- 读列码:判列线是否全1?
否,则有键按下
-
确定键的位置(行反转法)
- 置行线输出全0,列线输入
- 闭合键的列线值必为0→AH
-
置列线输出,行线输入
- 将获得的列线值输出,读行线,闭合键所在行也为0→AL
- 若为F键,则:AX=1111,1110,1111,0111求反→0000,0001,0000,1000
-
确定键名
- 将键码、键名排列成表,通过键码查表确定键名。
-
程序实现
7段数码管显示
-
例
-
设8255各端口地址分别为60H、62H、64H和66H,如果要求先显示数字“3”,然后显示数字“6”,写出程序段。
-
直接法
-
查表
-
-