微处理器系统结构与嵌入式系统设计(第2版) chap6.ppt
文本预览下载声明
DMA传送过程 可在I/O设备和存储器之间直接传送数据。 一般用于高速批量数据的传输 传送时,源和目的均直接由硬件指定。 传输的数据块长度需要指定,计数由硬件自动进行。 在一批数据传输完成后,一般通过中断方式通知CPU进行后续处理。 CPU和I/O设备能在一定程度上并行工作,效率高。 * I/O DMA请求 DMAC 总线请求 CPU 总线响应 DMA响应 * 无握手并行接口-按键接口 * 线性键盘 每一个按键需要占用I/O端口的一根口线 矩阵键盘 所有按键按行、列排列,较节约I/O口线 非编码键盘:主CPU处理按键的操作,降低了主CPU的效率 编码键盘: 使用专用的CPU(单片机)处理按键操作, 缓减主CPU的负担 并行端口 VCC * 采用扫描法的8×8矩阵键盘 8 位 并行 输入 端口 8 位 并行 输出 端口 +5V 10k Ω 10k Ω 10k Ω 10k Ω 第 0 行 第 1 行 第 2 行 …… 第 7 行 第 0 列 第 1 列 第 2 列 第 3 列 …… 第 7 列 第一步:判断是否有键按下 输出端口的各位都为低电平,即各列都为0 读取输入端口数据,如果输入不等于FFH,则有键被按下 第二步:确定按键号 确定按键的列数:输出扫描值,使某一列为低电平,其它为高电平;读取行值,看是否有行线处于低电平 确定按键的行数:循环右移行值,直到为0 * 行扫描法程序流程 是否有一行接地? 键盘 命令 处理 是 进位位为 0 ? 否 扫描值循环左移一位, 使下一列为低电平 键号 +8 ,计数值 - 1 否 读进行值 行值循环右移一位 是 结束 是 全部扫描完? 否 设键号 =0 ,计数器 = 列数 列扫描初值 输出扫描值,使某一行为低电平 键值+1 采用行反转法的8×8矩阵键盘 8位并口B +5V 10k Ω 10k Ω 10k Ω 10k Ω …… 1. A口输出全0(“00H”)。 2. B口输入如为全1(“0FFH”)则表明无键按下,退出;否则继续向下,B口读入值包含按键所在列信息(如“0FEH”表示按键在第7列) 。 3. B口输出(2)中读入的数据(如“0FEH”)。 4 . A口输入按键所在行信息(如“0EFH”表示按键在第4行)。 5.根据(2)及(4)中读入的信息计算按键编码。 …… 8位并口A * 无握手并行接口-数码显示屏接口 共阴结构:输入控制端为高电平时,对应的LED亮 共阳结构:输入控制端为低电平时,对应的LED亮 多位数码管组成的数码显示屏可以有动态和静态两种显示方式 * 6×8数码显示屏静态显示接口 * 6×8数码显示屏动态显示接口 带锁存功能的并行输出端口 D 0 ~D 7 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 D 5 D 4 D 3 D 2 D 1 D 0 位 0 位 1 位 2 位 3 位 4 位 5 D 0 ~D 5 段选有效 位选有效 带锁存功能的并行输出端口 * 数码屏显示方式 静态显示:显示位数少时使用 各位(8段)输入控制端分别与接口电路的输出端相连,占用I/O端口资源多; 各段(LED)恒定地导通或截止; 动态显示:显示位数多时使用 各位共享输入控制端,占用I/O端口资源少; 需同时进行位选(选中被点亮的位)和段选(输入控制端确定各LED的发光情况) 各位轮流显示一遍的总时间不能过长(不大于20ms); 带握手信号的并行接口 * 并行打印机接口 * 模/数转换接口 * 可编程输入/输出引脚 * I/O引脚 上拉控制位 三态输出控制位 I/O数据输出 复用信号输出 多功能复用选择位 毛刺滤除 毛刺滤除控制位 边沿检测 中断允许位 其他I/O中断请求信号 PIO中断请求信号 I/O数据输入 I/O中断状态 电源 可编程并行接口 * 可编程并行端口的联络信号 * 双向端口 单向端口 * 工作方式控制字 1 D7 D6 D5 D4 D3 D2 D1 D0 0 输出 1 输入 PC3~PC0 B口 0 输出 1 输入 0 方式0 1 方式1 B口工作方式 PC7~PC4 0 输出 1 输入 A口 0 输出 1 输入 特征位,D7=1表示是方式控制字 A口工作方式 00 方式0 01 方式1 1x 方式2 * 0 D7 D6 D5 D4 D3 D2 D1 D0 0 复位 1 置位 设置内容 特征位,D7=0 表示是C口按位 置位/复位控制字 无意义 选择操作位 C口置/复位控制字 D3 D2 D1 C端口位 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1
显示全部