微机原理及接口技术
基本架构
硬件系统
- 主机系统
- CPU
- 存储器
- 内存储器
- 容量小速度快
- 按单元组织
- 每个单元对应一个唯一地址
- 每个单元存1Byte数据,8位
- 单元的个数称为内存容量
- 工作方式
- 外存储器
- 输入输出接口
- 接口是CPU与外部设备间的桥梁
- 数据缓存寄存
- 信号电平或类型的转换
- 实现主机与外设间的运行匹配
- 总线
- 是一组导线和相关的控制、驱动电路的集合
- 是计算机系统各部件之间的传输地址、数据和控制信息的通道
- 类型
- 外部设备
- 所有可以通过输入输出接口与计算机进行信息交换的电子设备
- 不能与CPU直接进行信息交换的部件
软件系统
- 软件
- 为运行、管理和维护计算机系统或实现某一功能而编写的各种程序的总和及其相关资料
- 系统软件
- 应用软件
微机工作过程
- 计算机的工作就是执行程序,程序是指令的序列
- 逐条执行由指令构成的程序
- 指令的执行过程
- 指令
- 取指令
- 顺序执行
- 并行执行
- 流水线工作方式
- 同时执行多条指令
- 执行时间
- 第一条指令3∆t,其余每经过1∆t,就有一条指令结束执行
冯·诺依曼机
- 存储程序工作原理
- 运算器为核心
- 读取一条指令的工作过程
- 将指令所在地址赋给程序计数器PC
- PC内容送到地址寄存器AR,PC自动加1
- 将AR的内容通过地址总线送至内存储器,经地址译码器译码,选中响应单元 。
- CPU的控制器发出读指令
- 在读指令控制下,把所选中单元的内容(即指令操作码)经数据总线送到数据寄存器DR。
- 指令译码
- 数据寄存器DR将它送到指令寄存器IR,然后再送到指令译码器ID
- 特点
- 程序存储,共享数据,顺序执行
- 顺序处理机,适合于确定的算法和数据的处理
- 不足
- 与存储器间有大量的数据交互,对总线要求很高
- 执行顺序由程序决定,对大型复杂任务较困难
- 以运算器为核心,处理效率低
- 由PC控制执行顺序,难以进行真正的并行处理
哈佛结构
- 以数据、存储器为核心
- 指令和数据分别存放在两个独立的存储器模块中
- CPU与存储器间指令和数据的传送分别采用两组独立的总线
- 可以在一个机器周期内同时获得指令操作码和操作数
8088/8086
特点
- 采用并行流水线
- 内存空间分段管理
- 将内存分为4个段并设置地址段寄存器,实现对1MB空间的寻址
- 实模式存储器寻址
- 支持协处理器
- 工作模式
- 最大模式
- 多处理器,部分控制信号由外部总线控制器产生
- 用于包含协处理器
- 最小模式
- 选择方式
- 0 工作于最大模式
- 1 工作于最小模式
最小模式下的主要引脚信号
- 完成一次访问内存或接口所需要的主要信号
- 地址线和数据线
- AD0-AD7
- 低8位地址和低8位数据信号分时复用。在传输地址信号时为单向,传送数据信号时为双向。
- A16-A19
- A8-A15
- 主要控制信号
- #WR
- #RD
- IO/#M
- IO/M
- #DEN
- DT/#R
- ALE
- RESET
- 与外部同步控制信号
- 中断请求和响应信号
- 总线保持和响应信号
- HOLD
- 总线保持请求信号输入端。当CPU以外的其他设备要求占用总线时,通过该引脚向CPU发出请求。
- HLDA
- 总线保持响应信号输出端。CPU对HOLD信号的响应信号。
读取一条指令的控制过程
- 读取数据所在的目标地址
- 发出读控制信号
- 送出传输的数据
内部结构
- 执行单元EU
- 构成
- 通用寄存器
- 数据寄存器
- AX
- 累加器
- 所有IO指令都通过AX与接口传送信息
- 中间运算结果大多存AX
- BX
- CX
- DX
- 数据寄存器
- 在间接寻址的IO指令中存放IO端口地址
- 在32位乘除法运算时,存放高16位
- 地址指针寄存器
- SP
- BP
- 基址指针寄存器,常用与在访问内存时存放内存单元的偏移地址。
- 变址寄存器
- ALU
- FLAGS
- EU部分控制电路
- 主要功能
- 总线接口单元BIU
- 地址加法器
- 段寄存器
- 指令预取队列
- 并行流水线工作的基础
- EU和BIU两个部分可以同时工作
- 负责与内存或IO之间的数据传送
- 在执行转移程序时,BLU使预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。
实模式下的存储器寻址
- 内存分段管理思想
- 8088是16位体系结构的微处理器
- 同时处理(产生)16位二进制码
- 8088需要管理管理1MB内存
- 实模式下内存地址变换
- 每个内存单元在整个内存空间中必须具备唯一物理地址
- 内存单元的编址
- 物理地址=段基地址x10H+偏移地址
- 段寄存器的应用
- 逻辑段与逻辑地址
- 内存的分段是逻辑分段,不是物理段。
- 同一程序模块装入主存,不同类型的段可以装入在相同/不同的物理空间
- 两个不同程序模块装入主存时,同一类型的逻辑段也可以装入相同或不同的物理空间中。
- 堆栈的概念
- 内存中一个特殊区域,用于存放暂时不用或需要保护的数据
- 常用于响应中断或子程序调用
- 空栈
- 满栈
系统总线
- 总线时序
- CPU工作时序
- 总线周期
- CPU完成一次访问内存(或接口)操作所需要的时间
- 一个总线周期至少包括4个时钟周期
- 总线
- 是一组导线和相关的控制、驱动电路的集合。是计算机系统各部件之间传输地址、数据和控制信息的通道。
- 一般分类
- 层次结构
- 结构
- 基本功能
- 性能指标
- 总线带宽(B/S)
- 单位时间内总线上可传输的数据量
- 总线位宽bit
- 总线的工作频率MHz
- 总线带宽=(位宽/8)x(工作频率/每个存取周期的时钟数)
指令系统
指令与指令系统
指令格式
- 操作码 [目标操作数], [源操作数]
- 零操作数指令:操作码
- 单操作数指令:操作码 操作数
- 双操作数指令:操作码 操作数,操作数
- 多操作数指令
指令中的操作数
寻址方式
- 指令直接给出的方式
- 寄存器寻址
- 存放于寄存器中的寻址方式
- 表现形式 [ 偏移地址 ]
- 存储器操作数字长本身不确定,字长取决于寄存器操作数,或其他。
- 直接寻址
- 指令中直接给出操作数的偏移地址
- MOV AX,[1200H]
- MOV AX,ES:[1200H]
- 间接寻址
- 操作数存放在内存中,数据在内存器中的偏移地址为方括号中寄存器中的内容。
- [间址寄存器]
- MOV BX,1200H
- MOV AX,[BX]
- 相对寻址
- 操作数的偏移地址为寄存器的内容加上上一个偏移量
- MOV AX,[BX+DATA]
- 用于一维数组的操作
- 基址、变址寻址
- BX在数据段
- BP在堆栈段
- MOV SI,1100H
- MOV BX,SI
- MOV AX,[SI+BX]
- 一维数组
- 基址、变址、相对寻址
- 基址寄存器内容+变址寄存器内容+位偏移
- 二维表格
- MOV DI,1100H
- MOV BP,DI
- MOV AL,BP5
- 隐含给出方式
指令系统
- 数据传送
- 通用数据传送
- 一般数据传送
- MOV dest,src
- 操作数字长必须相等
- 两个操作数不允许同时为存储器操作数
- 两个操作数不允许同时为段寄存器
- 在源操作数是立即数时,目标寄存器不能是段寄存器
- IP CS 不能作为目标操作数,FLAGES一般不会在指令中出现
- 堆栈操作
- 堆栈操作的原则
- 压栈 PUSH OPRD
- 出栈 POP OPRD
- 交换指令
- 查表转换
- XLAT
- 用BX的内容代表表格首地址,AL内容为表内偏移量,BX+AL得到要查找元素的偏移地址。
- [BX+AL]=>AL
- 字位扩展
- 无符号数扩展规则在高位补0
- 有符号数的符号位扩展到高位
- CBW
- CWD
- 地址传送
- 取偏移地址指令LEA
- 将变量的16位偏移地址写入目标寄存器
- LEA REG,MEM
- LDS
- 32bit 的远地址指针写入目标寄存器
- Load pointer usingDS
- LES
- 标志传送
- 输入输出
- 专门面向IO端口操作的指令
- 端口地址在指令中的表示方式
- 指令功能
- 从端口地址读入数据到累加器/将累加器的值输出到端口中
- 指令格式
- 指令寻址方式
- 根据端口地址码的长度,指令具有两种不同的端口地址表现形式。
- 直接寻址
- 端口地址为8位,指令中直接给出8位端口地址
- 寻址256个端口
- 间接寻址
- 端口地址为16位时,指令中的端口地址必须由DX指定
- 可寻址64K个端口
- 算术运算
- 加法运算
- 普通加法指令
- 带进位的加法指令
- ADC OPRD1,OPRD2
- 用于多字节数相加,使用前要将CF清零
- 加1指令
- INC OPRD
- 不能是立即数或段寄存器
- 常用于修改地址指针
- OPRD+1=>OPRD
- 不影响CF
- 减法运算
- 普通减法指令
- 考虑借位的减法指令
- 减一指令
- 求补指令
- NEG OPRD
- 0-OPRD=>OPRD
- 对一个负数取补码就相当于用零减去此数
- 一般CF=1,除非操作数为0
- 求负数的绝对值
- 比较指令
- CMP OPRD1,OPRD2
- OPRD1-OPRD2
- 执行结果不影响目标操作数,仅影响标志位
- 无符号数的比较
- CMP AX,BX
- AX ≥ BX => CF = 0
- AX < BX => CF = 1
- AX = BX => CF=1, ZF=1
- 有符号数的比较
- 乘法运算
- 无符号的乘法指令
- MUL OPRD
- OPRD为字节数
- OPRD 为16位数
- OPRD不是立即数
- 带符号的乘法指令IMUL
- IMUL OPRD
- 对两个操作数取补码(对负数按位取反+1,正数不变)
- 做乘法运算
- 对乘积取补码
- 隐含寻址
- 乘法指令执行结果为相乘数的双倍字长
- 除法运算
- 无符号除法指令
- 有符号除法指令
- 若 OPRD 为字节数
- 若 OPRD 为双字节数
- 指令要求被除数是除数的双倍字长
- 逻辑运算和位移
- 逻辑运算
- 特点
- 操作数不是立即数
- 除“非”运算指令,其余指令的执行都会影响除AF外的标志位
- 无论执行结果如何,都会使标志位OF=CF=0
- “非”运算指令的执行不影响标志位
- 与
- AND OPRD1,OPRD2
- 实现两操作数按位相与的运算
- 使目标操作数的某些位不变,某些位清零
- 在操作数不变的情况下使 CF 和 OF 清零
- 或
- OR OPRD1,OPRD2
- 实现两操作数相“或”
- 是某些位不变,某些位置 1
- 在不改变操作数的情况下 CF=OF=0
- 非
- 异或
- XOR OPRD1,OPRD2
- 两操作数按位异或,结果送目标地址
- 清零
- XOR BL,80H
- 测试
- 移位操作
- 非循环移位
- 逻辑左移
- SHL OPRD,1
- SHL OPRD,CL
- 最高位移入CF,最低位补0
- 算术左移
- SAL OPRD,1
- SAL OPRD,CL
- 最高位移入CF,最低位补0
- 逻辑右移
- SHR OPRD,1
- SHR OPRD,CL
- 最低位移入CF,最高位补0
- 算术右移
- SAR OPRD,1
- SAR OPRD,CL
- 最高位复制并右移,最低入移入CF
- 左移乘法运算,右移除法运算
- 循环移位
- 不带进位
- 带进位
- 循环移位指令
- 用于某些位状态的测试
- 高位部分和低位部分的交换
- 与非循环移位指令一起组成32位或更长字长的移位
- 移位次数为1或存CL
- 程序控制
- 处理器控制
- 串操作
- 说明
- 针对数据块或字符串的操作
- 可以实现存储器到存储器的数据传送
- 待操作的数据串成为源串,目标地址成为目标串
- 明确串所在的区域、首地址、长度、操作方向
- 要求
- 源串一般在数据段,偏移地址由SI指定,允许段重设,不允许在代码段
- 目标串必须在附加段,偏移地址有DI指定。
- 串长度由CX指定
- 方向由DF标志位决定,指令根据DF状态自动修改地址指针
- 重复前缀
- 无条件重复
- REP
- 当CX≠0 REP后的指令继续重复执行
- 常用传送类指令前,未完成则继续传送
- 条件重复
- 相等(为零)重复:REPE(REPZ)
- CX≠0 and ZF =1,则前缀后的指令将继续重复执行
- 不相等(不为零)重复:REPNE(REPNZ)
- CX≠0 and ZF=0,则前缀后的指令将继续重复执行
- 串操作指令
- 串传送
- MOVS
- 增地址,操作结束时
- 减地址,操作结束时
- 源数据串传送到目标地址
- MOVS OPRD1,OPRD2
- MOVSB
- MOVSW
- 串传送指令常与无条件重复前缀REP连用
- 串比较
- CMPS
- 增地址,操作结束时
- 减地址,操作结束时
- 用于两个数据串的比较
- 目标串-源串,结果不写回目标地址
- 常与条件重复前缀连用
- CMPS OPRD1,OPRD2
- CMPSB
- CMPSW
- 串扫描
- SCAS
- 常用于在指定存储区域中寻找某个关键字
- SCAS OPRD
- SCASB
- SCASW
- 源操作数是AX或AL
- 串装入
- LODS
- LODS OPRD
- LODSB
- LODSW
- 操作
- 对字节 AL <= [DS:SI]
- 对字 AX <= [DS:SI]
- 一般不加重复前缀
- 用于将内存某个区域的数据串依次装入累加器,以便显示或输出到接口
- 串存储
- STOS OPRD
- STOSB
- STOSW
- 操作
- 对字节:AL=> [ES:DI]
- 对字: AX => [ES:DI]
- 应用
- 常用于将内存中某个区域置为同样的值
- 此时将传送的数据放入AL或AX
- 确定操作方向和区域大小
- 使用无条件重复前缀和串存储指令可以实现数据传送
- 注意
- 需要定义附加段
- 需要设置数据的操作方向
- 源串和目标串指针分别放SI和DI
- 串长度必须由CX指定
- 传送类指令加无条件重复前缀
- 串比较类指令加条件重复前缀,但前缀不影响ZF的状态
程序控制指令
- 转移指令
- 无条件转移指令
- JMP OPRD
- 目标地址
- 段内转移
- 段间转移
- 转移的目标地址不在当前代码段内
- 目标地址为32位,包括段地址和偏移地址
- 指令中直接给出目标地址
- 由指令中32位存储器操作数指出目标地址
- 条件转移指令
- 看状态标志位
- 满足一定条件则转移到目标地址继续执行
- 条件转移为段内短转移,即转移范围-128~+127
- 基于1个标志位状态实现转移的指令
- JC/JNC
- JZ/JNZ
- JO/JNO
- JP/JPE
- JS/JNS
- 基于2、3个标志位实现状态转义的指令
- JA/JAE/JB/JBE
- JG/JGE/JL/JLE
- 判断SF+OF或SF+OF+ZF状态,比较有符号数
- 基于CX内容跳转的指令
- 循环控制指令
- 循环范围
- 循环次数由CX寄存器指定
- 循环指令
- LOOP LABEl
- LOOPZ LABEL
- 先使CX-1,再根据CX中的值以及ZF值来决定是否继续循环
- LOOPNZ LABEL
- 过程调用指令
- 调用一个子过程
- 保护返回地址
- 调用指令的执行过程
- 保护断点
- 获取子程序的入口地址
- 执行子过程
- 恢复断点,返回原程序
- 过程调用
- 段内调用
- 段内直接调用
- 段内间接调用
- 被调用程序与调用程序在同一代码段中
- 段间调用
- 段间直接调用
- 段间间接调用
- 子程序与原调用程序在不同代码段中
- 返回指令
- 中断指令
- 某种异常或随机事件使处理器暂时停止正在运行的程序,转去执行一段特殊处理程序,并在处理结束后返回原程序被中断处继续执行的过程。
- 引起CPU产生一次中断的指令
- INT n
- n*4
- 存放中断服务子程序入口地址的单元的偏移地址
- +0,+1入口偏移地址
- +2,+3入口段地址
- 执行过程
- 将FLAGS压入堆栈
- 将INT指令的下一条指令的CS IP压栈
- 由 n x 4 得到存放中断向量的地址
- 将中断向量(中断服务程序入口地址)送CS IP
- 转入中断服务程序
- 中断返回指令
- 处理器控制指令
- 这类指令用来CPU进行控制,修改标志寄存器,使CPU暂存,使CPU与外部设备同步等
- 处理器控制指令的控制对象是CPU
- 均为零操作数格式指令
- 与外部设备的同步
- 对标志位的操作
汇编语言程序设计
汇编语言源程序与汇编程序
设计与执行过程
半导体存储器
半导体存储器
- 能表示二进制 0,1
- 具有记忆功能的半导体
- 能放一位二进制的半导体器件为一个存储元
- 每个存储器单元由8个存储元构成
- 分类
- 内存储器
- 随机存取存储器RAM
- 静态存储器SRAM
- 双稳态电路
- 稳定 速度快 贵
- SRAM6264
- 8K x 8b = 8KB
- A0-A12
- D0-D7
- #OE
- #WE
- 片选:#CS1,CS2
- 与系统的连接
- 0-8191
- 译码电路的设计
- 全地址译码
- 用全部的高位地址信号作为译码信号,使得存储器芯片的每一个单元都占据一个唯一的内存地址
- 部分地址译码
- 用部分高位地址信号作为译码信号,使得被选中存储器芯片占有几组不同的地址范围
- 浪费地址
- 地址多空间少的时候采用
- 动态存储器DRAM
- 可以随机读写
- 掉电后内容丢失
- 只读存储器ROM
- 掩模ROM
- 一次性可写ROM
- EPROM
- 特点
- 可多次编程写入
- 掉电后内容不丢失
- 内容的擦除需用紫外线擦除器
- 稳定性高,使用时常用做程序存储器,存放响应的控制程序
- EPROM 2764
- 8K x 8bit
- A0-A12
- D0-D7
- #OE
- #CE
- 编程脉冲输入#PGM
- 引脚与6264完全兼容
- 擦除
- EEPROM
- 可在线编程写入
- 掉电内容不丢失
- 可电擦除
- 工作方式
- 98C64A
- 8K x 8bit
- A0-A12
- D0-D7
- #OE
- #WE
- #CE
- READY/#BUSY
- 应用
- Flash
- 通过向内部控制寄存器写入命令的方式来控制芯片的工作方式
- 通过读状态寄存器的值,获取工作状态
- 写入和擦除需要12V编程电压
- 工作方式
- 技术指标
微机中的存储器
- 内存储器
- 外存储器
- 存储器系统
- 使整个系统的存储速度接近最快的那个存储器,容量接近最大的存储器,价格接近最便宜的存储器
- Cache 存储器系统
- 高速缓冲存储器和主内存构成,由硬件系统管理
- CPU–Cache–主内存
- 命中
- 不命中
- 系统存取时间
- 命中率 x Cache存取时间 + 不命中率 x 主存存取时间
- 虚拟存储器系统
- 主内存
- 硬磁盘
- 操作系统管理
- 对应用程序员是透明的
- 主要设计目标:扩大存储容量
- 片内存储部件
存储单元的编址
- 8088总线信号
- A19-A0
- #RD
- #WR
- IO/#M
- #MEMR
- #MEMW
- #IOR
- #IOW
- A15-A0
- 高位地址
- 片选地址
- #CS低电平有效表示选中该芯片
- 译码电路
- 将输入的一组高位地址信号通过变换,产生一个有效的输出信号,用于选中某一个存储器芯片,从而确定了该存储器芯片在内存中的地址范围
- 低位地址
存储器扩展技术
- 单元数 x 每单元的位数
- 用多片存储器芯片构成一个需要的内存空间
- 各存储器芯片在整个内存中占据不同的地址范围
- 扩展方法
- 位扩展
- 每单元字长的扩展
- DRAM 2164A
- 64K x 1bit
- 矩阵地址信号
- 8片构成64KB的存储体
- 地址信号并联
- 字扩展
- 字位扩展
输入输出与中断技术
IO接口的基本功能
- 速度匹配
- 信号驱动能力
- 信号形式与电平的匹配
- 信息格式转换
- 时序匹配
- 总线隔离
IO接口及其编址方式
- 接口电路中用于缓存数据及控制信息的部件
- 先找到端口所在的接口电路芯片、片选
- 再在该芯片上找具体访问的端口、片内寻址
- 端口地址=片选地址(高位地址)+片内地址
- 8088/8086可寻址64K个端口
IO地址译码
- 目的
- #IOR、#IOW
- IO/#M=1
- #RD=0
- #WR=0
- 指令
简单接口芯片
输入输出方法
- 无条件传送
- 查询工作方式
- 轮询
- 仅当条件满足时才能进行数据传送
- 每满足一次条件只能进行一次数据传送
- 适用场合
- 工作条件
- 优点
- 缺点
- 中断控制方式
- 外设在需要时向CPU提出请求,CPU再为它服务,服务结束后在外设不需要时,CPU可以执行自己的程序。
- 优点
- 缺点
- DMA控制方式
- 外设之季节与存储器进行数据交换,CPU不再担当数据传输的中介
- 总线有DMA控制器DMAC进行控制
- CPU放弃总线控制权
- 内存外设的地址和读写控制信号均由DMAC提供
- 工作过程
- 外设向DMAC发出DMA控制请求DRQ
- DMAC收到请求后,向CPU发出总线请求HOLD
- CPU完成当前总线周期后会立即发出HLDA,对HOLD进行响应
- DMAC收到HLDA后就开始控制总线,并向外设发出DMA响应信号DACK
- 工作方式
- 周期窃取
- 每个DMA周期只传送一个字节或一个字就立即释放总线
- 数据块传送
- DMAC在申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效
- 直接存取方式
- DMA的数据传送请求直接发到主存储器,得到相应后,整个工作过程在DMA控制器中由硬件完成
中断技术
- 基本概念
- CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。
- 引入中断
- 中断类型
- 内部中断
- 外部中断
- 可屏蔽中断
- INTR
- 一般过程
- 中断请求
- INTR应该保持到中断被处理为止
- CPU响应中断后,中断请求信号应及时撤销
- 中断源识别
- 中断判优
- 中断响应
- #INTA
- 向中断源发出#INTA中断响应信号
- 关中断
- 保护硬件现场
- 保护断点
- 获得中断服务程序入口地址
- 中断处理(服务)
- 保护软件现场(参数)
- 开中断STI
- 中断处理
- 关中断CLI
- 恢复现场
- 中断返回
- 非可屏蔽中断
- 中断向量表
- 存放各类中断的终端服务程序的入口地址
- 位于内存00000H~003FFFH
- 每个入口占用4Bytes,低字段为段内偏移,高字段为段基址
可编程并行数字接口
可编程芯片
- 可以通过软件命令,控制芯片的工作方式
- 数据传输方向
- 输入输出方式
计数与定时
8253芯片特点
- 可编程的逻辑器件
- 非通道型的接口,具有特定功能
- 可实现计数和定时
- 工作方式
- 减法计数
- 计数值减为0时输出相应控制信号
- 输出控制信号的形式可通过软件设置
- 外部引线及内部接口
- D0-D7
- #CS
- #RD
- #WR
- A0 – A1
- CLK
- GATE
- OUT
- 有三组完全独立的、相同的减法计数器和定时器
- 控制寄存器
- 工作方式
- 方式0
- 方式1
- 硬件启动、不自动重复计数
- 计数开始输出低电平,结束后又变高
- 方式2
- 软硬件启动,自动重复计数
- 计数到最后一个脉冲时输出低电平
- 方式3
- 方式4
- 软件启动,不重复计数
- 计数结束输出一个CLK宽度的低电平
- 方式5
- 硬件启动,不重复计数
- 计数结束输出一个CLK宽度的低电平
- 两次写操作
- 与系统的连接
- 计数启动方式
控制字
可编程并行接口8255
- 通道型接口
- 2个8位接口PAPB
- 一个可拆分为两个4位端口PC
- 各端口均具有数据的控制和锁存能力
- 通过编程,设置各端口工作在某一确定状态
- 工作方式
- 基本输入输出方式0
- 相当于三个独立的8位简单接口
- 各端口既可设置为输入也可以作为输出,但不能同时输入输出
- C端口可以是一个8位简单接口,也可以拆分为两个独立的4位端口
- 常用于连接简单外设,适用于无条件或查询方式
- 选通工作方式1
- 利用一组选通控制信号控制A、B的数据输入输出
- A B 作为输入或输出口,C口的部分位置选通控制信号
- A B 作为输入或输出时选通信号不同
- 双向传送方式2
- 可以作为输入又可以作为输出
- 只有A端口可工作在方式2下
- 方式控制字
- 位控制字
- 仅用于C
- 可设置C某位的初始状态
- 当其工作于方式0下且作为输出口时,一般需要对作为输出的位设置初始状态(即初始化)
本文系作者 @
Jacky 原创发布在 Jacky's Blog。未经许可,禁止转载。
评论 (0)