第7章 微型机接口技术 可编程定时/计数器 可编程并行接口 串行接口与串行通信(概念) DMA控制器接口(不做要求) 模拟量输入/输出接口.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

微型计算机原理及应用.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
微型计算机技术 教 学 指 导(七) 太原广播电视大学 郭建勇.
第10章 DOS功能调用与BIOS中断调用.
第5章 输入输出与接口技术.
第五章 总线 及其形成 本节课之前,大家学习了:
输入/输出及接口 输入/输出的传送方式 中断技术 80x86/Pentium中断系统 8259A可编程中断控制器 中断程序设计
本周实验安排 实验内容:(P231)人名排序的例子。
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
第7章 常用数字接口电路.
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
3.3.5 程序控制指令 控制转移指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第7章 中断与异常.
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月05日.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
微型机系统与接口技术复习.
第5章 输入输出与接口技术.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第十章 D/A、A/D转换接口(6学时) 现代计算机接口技术  知 识 概 述  第一节 D/A转换(2学时)
第二部分 PC 微机异步通信适配器的分析和使用 一、PC中的UART 1.INS PC16450/PC16550
第七章 MCS-51并行口的扩展 MCS51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS3734和74LS245)和可编程的并行口芯片(8255)。 7.1 不可编程并行口芯片的扩展 7.2 可编程并行口芯片的扩展.
微机原理及应用 主讲:郑海春.
第15章 串行通信及接口电路.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
微机原理与接口技术 第9章 计时/计数接口.
第8章 PCH中的常规接口.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
微型计算机原理及应用.
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
1.3 微型计算机的结构和工作原理.
第 13 章 中断系统.
第二章 模拟量输出通道 本章要点 1.模拟量输出通道的结构组成与模板通用性; 2.8位D/A转换器DAC0832的原理组成及其接口电路
第九章 高级宏汇编语言 9.1 结构 结构就是将逻辑上有一定关系的一组数据,以某种方式组合在一起所形成的数据形式。
第5章 循环与分支程序设计 学习目标: 了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
可编程定时计数器.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
键盘 LCD显示器 触摸屏技术 串行总线数据通信 PTR2000无线数据传输
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
第八章 中断系统.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
第6章 子程序结构 在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列。解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用。在汇编语言中,子程序又称过程。 调用子程序的程序称为主调程序或主程序。 2019/7/20 ch6.
第二章 8086系统结构 /8086的存储器组织 的系统配置及引脚功能 CPU时序
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
Presentation transcript:

第7章 微型机接口技术 可编程定时/计数器 可编程并行接口 串行接口与串行通信(概念) DMA控制器接口(不做要求) 模拟量输入/输出接口

7.1 概论 I/O接口的构成 南京航空航天大学 电子信息工程学院 第7章 微型机接口技术 实现对CPU数据总线驱动能力的匹配 端口 第7章 微型机接口技术 7.1 概论 I/O接口的构成 实现对CPU数据总线驱动能力的匹配 端口 实现各端口寻址操作 实现对各端口的读/写操作和时序控制 南京航空航天大学 电子信息工程学院 2

是通过对接口中各I/O端口的读/写操作来完成的。 第7章 微型机接口技术 I/O接口一般功能 每一时刻只允许被选中的I/O接口与CPU交换数据。 1. 地址译码和I/O设备选择 CPU对外设输入/输出的控制, 是通过对接口中各I/O端口的读/写操作来完成的。 I/O端口的地址译码方法: ①高位地址线(或 组合CPU的控制信号),产生I/O接口 电路的片选信号CS,实现系统中的接口电路(芯片)寻址 。 ②低位地址线直接接到I/O接口电路(芯片)的地址引脚, 进行I/O接口电路(芯片)的片内端口寻址。 ③地址信号选择:由地址范围决定。 2. 信息的输入与输出 当主机选中I/O接口中的某个端口,则可在它们之间传送相应信息(数据、状态、控制)。 南京航空航天大学 电子信息工程学院

3. 数据的缓冲及锁存 缓冲器:加强驱动能力; 锁存器:信息暂存 4. 信息的转换 复杂I/O 接口原理图 串/并、并/串; 第7章 微型机接口技术 3. 数据的缓冲及锁存 缓冲器:加强驱动能力; 锁存器:信息暂存 4. 信息的转换 串/并、并/串; 数字量/模拟量; 电平转换; 码制转换 等。 复杂I/O 接口原理图 4

定时/计数器(Intel 8253/8254,三个通道 16位定时/计数器) 第7章 微型机接口技术 专门接口芯片: 定时/计数器(Intel 8253/8254,三个通道 16位定时/计数器) 并行接口(Intel 8255/8155 ,三个8位端口A, B, C 等) 串行通信接口(Intel 8251/INS 8250,同步异步/异步串行接口) DMA控制器(Intel 8237) 模拟量输入接口(ADC0809) 模拟量输出接口(DAC0832) 可编程接口芯片(软件修改参数(内部寄存器) ): 可以通过程序指令修改接口芯片和I/O引脚的工作方式 i8253/8254; i8255; i8251/INS8250; i8237;芯片组(ChipSet)等 本章重点: i8253;i8255;DAC0832; ADC0809 南京航空航天大学 电子信息工程学院 5 5

7.2 可编程定时/计数器(Timer/Counter) 第7章 微型机接口技术 7.2 可编程定时/计数器(Timer/Counter) 7.2.1 概述 计数/时间相关的事件和信息输入/输出 硬件实现手段: 模拟T/C, 数字T/C  可编程数字T/C: 以均匀分布的时间间隔请求中断构成分时操作系统,切换任务程序(时间片,输出脉冲事件) 输出精确的定时信号,信号的周期可由程序改变 可编程波特率或速率发生器(可变速率),产生均匀脉冲信号(基准信号) 测量外部事件发生的频率或周期 统计外部变化过程中某一事件发生的次数 在定时或计数达到编程规定的值以后,产生输出信号,包括向CPU申请中断服务(定时事件) 南京航空航天大学 电子信息工程学院

7.2.2 可编程定时/计数器8253 三个独立16位计数器 1. 内部结构与功能 工作方式可编程控制 Vcc=+5V, DIP24 第7章 微型机接口技术 7.2.2 可编程定时/计数器8253 三个独立16位计数器 工作方式可编程控制 1. 内部结构与功能 Vcc=+5V, DIP24 计数脉冲频率0~2.6MHz,二进制或BCD码减法计数

三个独立16位计数器 工作方式可编程控制 器只能写不能读。 计数器计数值可写入或读 出,归0时由OUT引脚输 出信号。 第7章 微型机接口技术 三个独立16位计数器 工作方式可编程控制 每个通道对外输入CLK进行 2#或BCD减1计数,是否计数 由外引脚GATE控制。 CLK 已知频率的脉冲信号 或 外部事件发生源 16位减法计数器,计数初值: 2# 最大216(0000H) 最小1 (0001H) 10# 最大104(0000) 每个通道有6种工作方式,由 控制寄存器选择。控制寄存 器只能写不能读。 计数器计数值可写入或读 出,归0时由OUT引脚输 出信号。 8

2. 引脚功能(24PIN) D7~D0:数据总线,双向,三态, 直接接计算机数据总线。 CLKx:计数时钟输入, 下降沿使通道计数减1。 第7章 微型机接口技术 2. 引脚功能(24PIN) D7~D0:数据总线,双向,三态, 直接接计算机数据总线。 CLKx:计数时钟输入, 下降沿使通道计数减1。 GATEx:门控信号,输入, 高电平或上升沿有效, 有效时允许计数器对CLK计数。 OUTx: 计数器归0时通道输出信号, 输出波形形式取决于工作方式。 A1、A0:寻址3个通道的计数器 和控制寄存器 (3个通道的控制 寄存器共用一个端口地址)。 RD、WR和CS:读/写/片选

8253与8086系统连接 A1和A0分别接8086地址总线的A2和A1,端口使用偶地址。 第7章 微型机接口技术 8253与8086系统连接 数据线D7~D0接8086数据总线的低8位。 A1和A0分别接8086地址总线的A2和A1,端口使用偶地址。 由74LS138配合74LS30和74LS04译码选中8253。 8253的三个通道输入时钟由系统PCLK分频得到,频率为: 2.38636/2=1.1931816MHz. 在PC/XT微机中,通道0的OUT0接8259的IR0,通道1刷新动态存储器,通道2控制扬声器发声。

(1)控制字( Control Word,CW ,写入控制寄存器) —— 初始化/设置/控制 第7章 微型机接口技术 3. 工作方式(6种,可编程) (1)控制字( Control Word,CW ,写入控制寄存器) —— 初始化/设置/控制 三个通道 (计数器): 初始化/控制 01 11 011 1B=77H  CH1, 16位, 方式3, BCD 00 01 000 0B=10H ? CH0, 低8位, 方式0, BIN

对欲使用的每个通道 先写入控制字(至控制寄存器) 再写入计数初值(时间常数,至计数通道) 第7章 微型机接口技术 8253初始化包括两个步骤: 对欲使用的每个通道 先写入控制字(至控制寄存器) 再写入计数初值(时间常数,至计数通道) 注意: 写入控制字后,所有控制逻辑电路复位, 输出端OUT进入初始状态。 CPU向8253写入的计数初值,要在CLK端输入1个正脉冲( ) 后才真正装入指定通道。 之后再次输入1个CLK才开始计数,且每次在脉冲的下降沿 减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计数。 实际计数值要比初值多1。 随时可读取8253的计数值。 南京航空航天大学 电子信息工程学院

Mode0 软件触发,归0输出高电平,不自动重复; Mode4 软件触发,输出负脉冲选通信号,不自动重复; 第7章 微型机接口技术 (2)工作方式 6种工作方式 Mode0 软件触发,归0输出高电平,不自动重复; Mode4 软件触发,输出负脉冲选通信号,不自动重复; Mode1 硬件(GATE)触发单稳,不自动重复启动; Mode5 硬件触发,输出负脉冲选通信号,不自动重复; Mode2、3 软/硬件触发,自动重装(分频/方波)。 Gate控制 控制字 CW 计数初值 CLK输入 OUT输出 Counter 对每种工作方式要求掌握: 计数期间,GATE与计数初值没有新变化的时序(绿色图)。 南京航空航天大学 电子信息工程学院

①方式0:计数结束输出信号 南京航空航天大学 电子信息工程学院 计数归0后仍继续计数, 但OUT不再变化。 第7章 微型机接口技术 ①方式0:计数结束输出信号 控制字(CW)写入控制寄存器后,OUT立即输出低电平;写入初值后,OUT保持低电平,计数器计数;当计数器到0时,OUT输出高电平并保持,直至写入新的控制字或初值。 计数初值写入后在下一个CLK下降沿才送入计数器,因此计数值为N+1。 GATE=0,暂停计数。 若计数过程中重新送入初值,则按新值重新计数。 计数为0(归0)后,不能自动恢复计数初值。再次写入计数初值,才又开始计数。 计数归0后仍继续计数, 但OUT不再变化。 南京航空航天大学 电子信息工程学院

第7章 微型机接口技术 计数归0后不用再送计数值,只需触发脉冲即可输出一同样宽度的单稳脉冲。 ②方式1:可重复触发的单稳态触发器 写入CW后OUT输出高电平;写完初值后,计数器要等到GATE端的上升沿(触发沿)后,在下一个CLK脉冲的下降沿才开始计数,OUT变低,直到计数到0后OUT变高。 GATE再次上升沿触发使OUT变低,计数器以初值重新计数。 计数过程中,再次给通道写入时间常数,不影响当前操作过程,GATE再次触发后才按新的时间常数操作。 计数过程中GATE触发沿提前到来,在下一个CLK的下降沿,计数器开始重新计数,使输出单稳脉冲比原先设定的计数值加宽。

第7章 微型机接口技术 不用重复置数。计数器能够连续工作,输出OUT是输入CLK的n(初值)分频。 ③方式2:频率发生器(n分频器) 写入CW后OUT变高;写入初值后,下一CLK开始计数,减到1时OUT变低,经一个CLK周期OUT恢复为高,计数器自动重新开始计数。 有硬件(门控)和软件(写初值) 两种触发计数的方式。 GATE=1计数;GATE=0计数暂停且OUT立即为高 ,在GATE变高后的下一个CLK下降沿计数器重新从初值开始计数 。(为硬件同步) 计数期间送入新值,本周期继续进行,下一个周期按新值计数。

④方式3:方波发生器 计数器自动重新开始计数 硬件同步:门控信号实现计数器的同步,称为~。 第7章 微型机接口技术 硬件同步:门控信号实现计数器的同步,称为~。 软件同步:写入控制字和计数初值后,如GATE一直处于高电平,则在下一个脉冲开始计数器计数。通过写入初值使计数器同步,称为~。 ④方式3:方波发生器 写入CW后OUT变高;写入初值后,下一个CLK开始计数,输出为先高后低的方波;一个方波结束后,自动重新装入计数初值,开始下一次计数过程。 若N为偶数,高低电平持续时间相等;若为奇数,则高电平持续时间为(N+1)/2,低电平持续时间为(N-1)/2。 兼有两种触发计数的方式。 其余如 当GATE=0、以及计数期间送入新值的处理同方式2。 计数器自动重新开始计数

第7章 微型机接口技术 ⑤方式4:软件触发的选通信号发生器 写入CW后OUT为高;写入计数初值后的下一个CLK开始计数(软件触发) ;计数器到0时,输出一个CLK周期宽度的负脉冲,然后输出变为高电平并保持。 计数器不能自动恢复计数初值。再次写入计数初值,才又开始计数。 GATE=0禁止计数。 计数期间送入新的计数值,则下一个时钟按新值重新计数。

写入CW后OUT为高;写入计数初值后,由GATE上升沿启动计数(硬件触发);计数到0时,输出一个CLK周期宽度的负脉冲,然后输出变高并保持。 第7章 微型机接口技术 ⑥ 方式5:硬件触发的选通信号发生器 写入CW后OUT为高;写入计数初值后,由GATE上升沿启动计数(硬件触发);计数到0时,输出一个CLK周期宽度的负脉冲,然后输出变高并保持。 需等到下一次GATE脉冲触发,才会开始新的计数过程。 计数过程中,若GATE又来一个上升沿,则下一个CLK计数器重新赋值计数。 计数期间写入新的计数值,当前周期不受影响,在下一个 GATE上升沿启动新值计数。 南京航空航天大学 电子信息工程学院

8253工作方式总结 启动计数 中止计数 自动重复 更新初值 OUT波形 方式0 软 件 GATE=0 无 立即有效 N… 0 方式1 第7章 微型机接口技术 8253工作方式总结 启动计数 中止计数 自动重复 更新初值 OUT波形 方式0 软 件 GATE=0 无 立即有效 N… 0 方式1 硬 件 下一轮有效 N … 0 方式2 软/硬件 有 N..2 1 0 方式3 下半轮有效 方式4 N… 1 0 方式5 N/2 N/2 方式0 :写入CW后输出变低,计数结束输出为高,常用该输出信号作为 中断源。余5种方式写入CW后输出均变高,OUT均可作为中断源。 方式0:可用来实现定时或对外部事件进行计数。 方式1:用来产生单脉冲。 方式2:用来产生序列负脉冲,每个负脉冲的宽度与CLK的周期相同。 方式3:用于产生连续方波。方式2和方式3都实现对CLK的n分频。 方式4/方式5:输出波形相同,都是宽度为1个CLK的负脉冲。

4. 8253芯片应用举例 例1:在PC/AT微机中 通道0(CNT0),地址40H, 方式3,用于日时钟定时。 第7章 微型机接口技术 4. 8253芯片应用举例 例1:在PC/AT微机中 通道0(CNT0),地址40H, 方式3,用于日时钟定时。 (CLK=1.19MHZ,初值=0000, 18.158HZ,OUT0接IRQ0) 通道1(CNT1),地址42H, 方式2,DRAM刷新。 (CLK=1.19MHZ,初值=0018, OUT1输出信号66.288KHZ) 通道2(CNT2),地址44H, 方式3,控制扬声器发声。 (CLK=1.19MHZ,初值=1331, 896HZ,OUT2 与8255 PB1 相与后输出)。 控制寄存器,地址46H。

ROM BIOS对8253初始化 (1)计数器0的初始化 MOV AL,36H ; CW OUT 46H,AL 第7章 微型机接口技术 ROM BIOS对8253初始化 (1)计数器0的初始化 MOV AL,36H ; CW OUT 46H,AL MOV AL,00H ; 初值 OUT 40H,AL 计数器0工作于方波发生器方式,对CLK(1.1931816MHz)进行65536(216)分频。 输出端OUT0接8259的IR0,每次归0产生一次中断请求,中断号由BIOS设置为8。 中断时间间隔为54.925ms,每秒钟18.2次中断。 通道0的时间间隔是计算机系统时标基础。 (2)计数器1的初始化 MOV AL,54H ; CW OUT 46H,AL MOV AL,18 ; 18分频 OUT 42H,AL 输出OUT1频率为66.288KHZ。 (3)计数器2的初始化和接通喇叭 MOV AL,0B6H ; CW OUT 46H,AL MOV AX,533H ; 分频值 OUT 44H,AL MOV AL,AH IN AL,62H ; 读入8255的PB口 MOV AH,AL ; 保护原值 OR AL,03H ; 置1 PB1和PB0 OUT 62H,AL ; 输出

例2:8253的定时功能及应用 8253的控制字为: 计数器2输出896Hz的方波,驱动扬声器发声。 01110001B=71H 第7章 微型机接口技术 计数器2输出896Hz的方波,驱动扬声器发声。 发声受8255 PB0和PB1控制。 例2:8253的定时功能及应用 将8253的通道1作为5ms定时器,设输入时钟频率为200kHz,编写8253的初始化程序。 (1)计数初值N计算 已知CLK频率为200kHz,则周期为T=1/200kHZ=5us, 于是计数初值N为: N=5ms/T=5ms/5μs=1000。 (2)确定控制字 按题意选计数器1,按BCD码计数,选方式0,由于计数初值N=1000,控制字D5D4应为11, 8253的控制字为: 01110001B=71H (3)选择8253各端口地址 设计数器1的端口地址为3F82H, 控制口地址为3F86H。 (4)初始化程序 MOV AL,71H ;控制字 MOV DX,3F86H ;控制端口地址 OUT DX,AL ;送控制端口 MOV DX,3F82H ;计数器1地址 MOV AL,00 ;计数初值 N=1000的低8位写入计数器1 OUT DX,AL MOV AL,10H ;N的高8位写 入计数器1 OUT DX,AL

第7章 微型机接口技术 例3:8253的计数功能及应用 (1)外部事件计数脉冲接入通道2的CLK2,选方式0,计数初值360D。当计满360次时,OUT2输出一个正跳变信号,作为中断申请信号送入8259A的IR1,由此向CPU发出中断申请。 (2)初始化编程 通道2方式0,初值360D=168H, 2#计数,控制字: 10110000B=B0H。 (3)通道2初始化程序 MOV AL,0B0H ;控制字 OUT 43H,AL ;写入控制端口 MOV AL,68H ;初值的低8位 OUT 42H,AL ;写入通道2 MOV AL,01H ;初值的高8位 OUT 42H,AL ;写入通道2 8088系统中有一片8253(注意其A1A0的连接):利用通道2对外部事件计数,计满360次经8259的IR1向CPU发出中断信号,如上图所示。 通道2地址为42H,控制端口地址为43H。编写8253的初始化程序。

例4:P280 电机数字控制系统测速子系统实例 转速传感器输出的转速信号送到8253进行计数测量。 实际转速: 第7章 微型机接口技术 第7章 微型机接口技术 例4:P280 电机数字控制系统测速子系统实例 转速传感器输出的转速信号送到8253进行计数测量。 脉冲计数 CLK1 D 实际转速: 3个计数器工作在: 方式0、1、0 通道1计数D个CLK1时, 通道2计数X个PCLK。 被测转子转速n为0~11156转/分,发动机每转对应传感器输出300个脉冲。 基本测量原理: 测量D个(D值根据实际转速范围选择)传感器输出脉冲CLK1所占时间 为多少个(设为X个,待测)标准时钟周期PCLK(设为Tr,单位us)。 25

南京航空航天大学 电子信息工程学院 测量过程时序: 置通道0计数初值为1,通道1计数初值为D,通道2的为0000H(216)。 第7章 微型机接口技术 脉冲计数 CLK1 D 测量过程时序: 3个计数器工作在: 方式0、1、0 通道1计数D个CLK1时, 通道2计数X个PCLK。 置通道0计数初值为1,通道1计数初值为D,通道2的为0000H(216)。 用OUT0的下降沿(OUT0上升沿)做GATE1触发,通道1开始对CLK1计数; OUT1反相后使GATE2为高电平,允许通道2对PCLK(周期Tr)计数。 通道1计满D个脉冲后,OUT1反相后输出低电平,使计数器2停止计数。 此时CPU可以读出计数器2中的计数值,算出被测信号的转速。 南京航空航天大学 电子信息工程学院 26

设8253端口地址为280H、282H、284H和286H,主要程序片段: 第7章 微型机接口技术 设8253端口地址为280H、282H、284H和286H,主要程序片段: ;主程序中对8253初始化 INIT_C: MOV DX,286H ;控制端口地址为286H MOV AL,01010010B ;计数器1:方式1,读/写低字节. OUT DX,AL ;送控制字到控制端口 MOV AL,10110000B ;计数器2:方式0,读/写双字节. OUT DX,AL MOV AL,00010000B ;计数器0:方式0,读/写低字节. INIT_D: MOV DX,282H ;计数器1地址 MOV AL,20 OUT DX,AL ;写入计数初值20到计数器1 INC DX INC DX ;计数器2地址 MOV AL,0 OUT DX,AL ;写入低8位计数值到计数器2 OUT DX,AL ;写入高8位计数值到计数器2 MOV DX,280H ;计数器0地址 MOV AL,01H OUT DX,AL ;写入1到计数器0、启动测量过程

;中断服务程序中,读取计数器2的数据,计算转速 第7章 微型机接口技术 通道1计数D个脉冲后,OUT1的上升沿申请中断。 当中断到来时,进入中断服务子程序。 可以用CPU暂停来模拟主程序,只有中断到来时才脱离暂停。 … AA:HLT MOV AH,4CH INT 21H ;中断服务程序中,读取计数器2的数据,计算转速 IN_DATA: MOV AL,10000000B ;锁存计数器2的CW MOV DX,286H OUT DX,AL ;锁存计数器2 MOV DX,284H ;读计数器2的内容:10000H-X IN AL,DX ;先读低8位 MOV AH,AL IN AL,DX ;再读高8位 XCHG AL,AH ;高、低8位在AH、AL中 NEG AX ;AX=X …… ;计算转速n

7.3 可编程并行接口 8255A 7.3.1 可编程并行接口芯片8255A 特点:速度快,效率高。 第7章 微型机接口技术 7.3 可编程并行接口 8255A PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB0 PB1 PB2 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 并行通信:n位数据用n条线同时传输的机制。 特点:速度快,效率高。 适于短距离、高速通信。 74LS244,273都是简单的并行接口。 并行接口连接CPU与并行外设,实现 并行通信,起到输出锁存/输入缓冲的作用。 7.3.1 可编程并行接口芯片8255A Intel系列的8位并行接口芯片8255A: 与Intel系列CPU完全兼容; 24条功能可编程的I/O引脚; 能直接按位清0或置1,简化了控制应用接口。 南京航空航天大学 电子信息工程学院

外 设 8255A 总线 端口A 端口C 端口B 控制口 D 三个8位数据端口A,B,C;一个控制端口。 第7章 微型机接口技术 reset D7 ~ D0 A9 A2 A1 A0 IOR IOW 片选 译码 数据 缓冲器 读写 控制 片内 CS RESET RD WR PC7 PC0 PB7 PB0 PA7 PA0 控制口 D 端口A 端口C 端口B +5V GND 外 设 8255A 总线 三个8位数据端口A,B,C;一个控制端口。 C口还可分为两个4位数据使用,或用作与A口或B口配合的 控制或状态口,依具体工作方式而定。 30

内有8位数据输出锁存/缓冲器和8位数据输入锁存器。 第7章 微型机接口技术 1. 8255A芯片的内部结构 (1)端口 端口A(PA7~PA0): (A1A0=00) 内有8位数据输出锁存/缓冲器和8位数据输入锁存器。 端口B (PB7~PB0) : (A1A0=01) 内有8位数据输入/输出、锁存/缓冲器和8位数据输入缓冲器(输入可以不锁存)。 端口C (PC7~PC0): (A1A0=10) 内有8位数据输出锁存/缓冲器和8位数据输入缓冲器(输入无锁存)。 在与不需要控制联络的外设连接时, A、B、C口均可做输入输出,且C口可分为高/低两个 4位,可同为输入或输出,也可不同。 在与需要控制联络的外设连接时,C口的主要部分是A、B口的联络控制信号。 控制端口(A1A0=11):接收控制字,决定8255工作方式。 31

2. 8255A的PIN 南京航空航天大学 电子信息工程学院 40P,DIP,+5V PA/PB/PC = I/O口引脚 第7章 微型机接口技术 (2)A组控制和B组控制 两组控制电路决定A/B组的工作方式。 A组控制A端口和C端口的上半部;B组控制B端口和C端口下半部。 (3)读写控制逻辑 接收CPU的地址及读写控制等信号,控制完成信息的传送。 RESET高电平时使8255复位,所有内部Reg清0,A/B/C三个端口都置为输入方式。 (4)数据总线缓冲器 直接与数据总线相连 2. 8255A的PIN 40P,DIP,+5V PA/PB/PC = I/O口引脚 D7~D0:双向数据总线 /CS:片选,/RD:读,/WR:写 A1A0 :端口选择,寻址3个数据/1个控制端口 南京航空航天大学 电子信息工程学院 32 32

i8255A芯片端口选择操作 南京航空航天大学 电子信息工程学院 CS RD WR A1 A0 端口选择及其操作 1 数据送端口A 第7章 微型机接口技术 i8255A芯片端口选择操作 CS RD WR A1 A0 端口选择及其操作 1 数据送端口A 数据送端口B 数据送端口C 控制字送控制寄存器 端口A数据送数据总线 端口B数据送数据总线 端口C数据送数据总线 无操作(D7~D0三态) × 禁止(D7~D0三态) 南京航空航天大学 电子信息工程学院 33 33

(2)8255的A0接8086的A1,8255的A1接8086的A2,使用偶地址传递信息。 第7章 微型机接口技术 8255A与8086系统连接 说明: (1)8255的数据线D7~D0接8086系统数据线的低8位。 (2)8255的A0接8086的A1,8255的A1接8086的A2,使用偶地址传递信息。 (3)端口地址 南京航空航天大学 电子信息工程学院 34 34

① 方式选择控制字 (送控制寄存器 A1A0=11。 格式以此为准。) 第7章 微型机接口技术 3. 8255A芯片的控制字和工作方式 控制字分为两类:方式选择控制字 / 端口C置位-复位控制字 共用一个地址,D7=1 方式 / D7=0 C口位控字 ① 方式选择控制字 (送控制寄存器 A1A0=11。 格式以此为准。) 书上错! 共三种工作方式: A组有三种, B组有两种。 人为定义C口信号 方式0(基本输入/输出):不用联络信号/中断, 用于无条件/查询方式传送 方式1(选通输入/输出):C口提供固定联络信号,用于中断或查询方式 方式2(双向传输):既可入,又可出。是方式1的组合。 以适应各种数据传送方式的要求。未被用的其它位仍可工作在方式 0。 35

② 端口C置位/复位控制字 说明: 使8255作为位控接口,实现对外设的按位控制。 该控制字仅对8255的端口输出锁存器操作。 第7章 微型机接口技术 ② 端口C置位/复位控制字 说明: 使8255作为位控接口,实现对外设的按位控制。 该控制字仅对8255的端口输出锁存器操作。 向PC5送0电平 延时 向PC5送1电平 方波个数到? 例:利用位复位/置位可使端口C某位产生方波。 MOV CX,0FH LOP: OUT PORT-CL,0AH ;送0 CALL DELAY OUT PORT-CL,0BH ;送1 LOOP LOP RET

(2) 8255A的工作方式 ① 方式0(基本输入/输出) 三个数据端口A、B、C ,由方式选择控制字选择为输入或输出口。 第7章 微型机接口技术 (2) 8255A的工作方式 ① 方式0(基本输入/输出) 三个数据端口A、B、C ,由方式选择控制字选择为输入或输出口。 C口(PC7~PC4及PC3~PC0)高低4位可相同(同为输入或输出)也可不同。但对端口8位的读写是在一条指令中作为整体来操作: CPU 高4 低4 IN 入 出 需屏蔽低四位 IN 出 入 需屏蔽高四位 IN 入 入 读入的8位均有用 OUT 入 出 输出数据只设在低4位 OUT 出 入 输出数据只设在高4位 OUT 出 出 输出8位数据 三个端口无必然联系,各端口输入输出组合共有16种。 CPU与外设采用无条件入/出,不用联络线,也不需要查询。 方式0也可用于查询传送。可令A/B口为数据口,C口做联络信号。 方式0下输入不锁存,输出锁存。

外 设 例:8255A与系统的连线如下, 片选译码地址为F0~F3h 1) 确定端口地址译码电路; 第7章 微型机接口技术 例:8255A与系统的连线如下, 片选译码地址为F0~F3h 1) 确定端口地址译码电路; 2) 编程设置8255A :A组方式 0,A口 输入,PC7~PC4输出 B组方式 0 ,B口输出,PC3~PC0输入 reset D7 ~ D0 A9 A2 A1 A0 IOR IOW 片选 译码 数据 缓冲器 读写 控制 片内 RESET PC7 PC0 PB7 PB0 控制口 D 端口A 端口C 端口B +5V GND 外 设 RD WR CS PA7 PA0 F0~F3h

1) 确定端口地址译码电路 总线 2) 确定方式控制字 要求: A口方式0输入,PC7~PC4输出 B口方式0输出,PC3~PC0输入 第7章 微型机接口技术 A9A8 A7 A6 A5 A4 A3 A2 A1 A0 F0H 1 1 1 1 1 1 0 0 0 0 A口 F1H 1 1 1 1 1 1 0 0 0 1 B口 F2H 1 1 1 1 1 1 0 0 1 0 C口 F3H 1 1 1 1 1 1 0 0 1 1 D口 CS A1 A0 8255A 总线 1) 确定端口地址译码电路 2) 确定方式控制字 1 D7 D6 D5 D4 D3 D2 D1 D0 特征位 A组 方式 0 A口 输入 PC7~PC4 输出 B组 B口 PC3~PC0 控制字1001 0001B,91H MOV AL, 91H OUT 0F3H, AL 要求: A口方式0输入,PC7~PC4输出 B口方式0输出,PC3~PC0输入

i8255A方式0总线时序 读时序( IN AL,PORT ): CPU发地址—RD —读数据; 外设 读周期内保持数据; I/O口 第7章 微型机接口技术 i8255A方式0总线时序 读时序( IN AL,PORT ): CPU发地址—RD —读数据; 外设 读周期内保持数据; I/O口 有效读取数据条件:AB、RD、外设数据有效保持; 南京航空航天大学 电子信息工程学院

i8255A方式0总线时序 写时序(OUT PORT,AL): CPU发地址— 数据—WR,8255锁存 ; 第7章 微型机接口技术 i8255A方式0总线时序 写时序(OUT PORT,AL): CPU发地址— 数据—WR,8255锁存 ; 数据锁存到寄存器((外设可随时读取数据) I/O口 有效输出数据条件:AB选中8255、WR、数据正确输出到 DB; 南京航空航天大学 电子信息工程学院

端口A、B工作于方式1的输入或输出时,端口C联络信号的引脚和意义都不同,故以下分开讨论。 第7章 微型机接口技术 ② 方式1(选通的输入/输出) 方式1中,端口A和端口B输入/输出数据时,必须利用端口C提供联络信号(选通、应答信号)。这时: A组:8位数据端口(A口),3位控制位(C口)。 B组:8位数据端口(B口),3位控制位(C口) 。 这种配合(C口PIN的分配)固定,不可以用程序修改。 余下2 位可用作基本I/O。 一般,用中断方式传送数据(也可用查询方式,很少)。 特点: 端口A、B既可做输入又可做输出,数据输入输出都被锁存。 端口C引脚分别作为控制、状态和中断申请信号等。 若只有一个端口工作在方式1,则另一端口可工作在方式0,这时 C口未用位可用作基本I/O。 端口A、B工作于方式1的输入或输出时,端口C联络信号的引脚和意义都不同,故以下分开讨论。

选通输入 对应的控制信号 a. STB 选通输入:外设提供,有效时,把外设数据写入8255 。 第7章 微型机接口技术 选通输入 对应的控制信号 a. STB 选通输入:外设提供,有效时,把外设数据写入8255 。 b. IBF 输入缓冲区满: 8255A输出到外设,通知外设输入缓冲区 满,不要送新数据,由CPU读数据时(RD的上升沿)清除。 c. INTR 中断请求信号:8255的输出,可向CPU申请中断, 在 STB、IBF、INTE 均为1时 置1(有效)。 1 A口方式1输入控制字 B口方式1输入控制字 PA7~PA0 PC4 PC5 PC3 INTEA 与门 IBFA STBA INTRA RD D7~D0 A口方式1输入时相应的联络信号 PB7~PB0 PC2 PC1 PC0 INTEB IBFB STBB INTRB B口方式1输入时相应的联络信号

INTR 中断请求信号在 STB、IBF、INTE 均为1时,置1(有效)。 第7章 微型机接口技术 INTR 中断请求信号在 STB、IBF、INTE 均为1时,置1(有效)。 d. INTE 中断允许:INTEA是C口输出锁存器的PC4,INTEB是C口输出锁存器的PC2,它们分别控制A口和B口的中断申请。 INTE=1 中断允许, INTE=0 禁止中断。(由C口置 /复位控制字设置) INTR 由8255A发出 1 A口方式1输入控制字 B口方式1输入控制字 PA7~PA0 PC4 PC5 PC3 INTEA 与门 IBFA STBA INTRA RD D7~D0 A口方式1输入时相应的联络信号 PB7~PB0 PC2 PC1 PC0 INTEB IBFB STBB INTRB B口方式1输入时相应的联络信号

方式1的输入时序: 从工作在方式1下的输入端口输入数据时, 有关信号的变化关系。 外设送来数据 当INTE=1时 RD D7~D0 第7章 微型机接口技术 方式1的输入时序: 从工作在方式1下的输入端口输入数据时, 有关信号的变化关系。 RD D7~D0 PA7~PA0 PC4 PC5 PC3 INTEA 与门 IBF STB INTR PB7~PB0 PA7~PA0 STB IBF INTR RD 外设送来数据 ② ③ 当INTE=1时 ①

① 当外设数据准备好,将数据送至端口线PA7~PA0或PB7~PB0 ② 外设发出选通信号STB: (1) 将数据锁存在输入端口内。 第7章 微型机接口技术 PA7~PA0 PB7~PB0 STB IBF INTR RD 外设送来数据 ② 当INTE=1时 ③ ① RD D7~D0 PA7~PA0 PC4 PC5 PC3 INTEA 与门 IBF STB INTR ① 当外设数据准备好,将数据送至端口线PA7~PA0或PB7~PB0 ② 外设发出选通信号STB: (1) 将数据锁存在输入端口内。 (2) 使IBF变高,表示输入端口满,可用于阻止外设输入新数据。 (3) 如果INTE=1, STB的上升沿使INTR变高,发出中断请求。 ③ 中断处理程序中CPU 读取数据,发出RD信号: (1) RD 的下降沿清除INTR (2) RD 的上升沿清除IBF (3) 端口内的数据进入CPU 以中断方式输入数据:

在方式1下,作为联络信号的外部引脚PC4、PC2,不受C口 按位置位/复位控制字控制,即对这些位的置位/复位不影响 第7章 微型机接口技术 注意: 在方式1下,作为联络信号的外部引脚PC4、PC2,不受C口 按位置位/复位控制字控制,即对这些位的置位/复位不影响 这些引脚信号的输入/输出,而只在8255A内部对INTE信号 起作用。 1 A口方式1输入控制字 B口方式1输入控制字 PA7~PA0 PC4 PC5 PC3 INTEA 与门 IBFA STBA INTRA RD D7~D0 A口方式1输入时相应的联络信号 PB7~PB0 PC2 PC1 PC0 INTEB IBFB STBB INTRB B口方式1输入时相应的联络信号

① 当外设数据准备好,将数据送至端口线PA7~PA0或PB7~PB0 ② 外设发出选通信号STB: (1) 将数据锁存在输入端口内。 第7章 微型机接口技术 PA7~PA0 PB7~PB0 STB IBF INTR RD 外设送来数据 ② 当INTE=1时 ③ ① RD D7~D0 PA7~PA0 PC4 PC5 PC3 INTEA 与门 IBF STB INTR ① 当外设数据准备好,将数据送至端口线PA7~PA0或PB7~PB0 ② 外设发出选通信号STB: (1) 将数据锁存在输入端口内。 (2) 使IBF变高,表示输入端口满,可用于阻止外设输入新数据 ③ 在主程序中CPU 查询IBF,若其为高电平,读取数据,发出RD 信号: (1) RD 的上升沿清除IBF (2) 端口内的数据进入CPU 以查询方式输入数据(不作要求):

注意:方式1输入时共用到C口6个引脚,剩余2个引脚PC6、PC7可做 第7章 微型机接口技术 PA7~PA0 PB7~PB0 STB IBF INTR RD 外设送来数据 ② 当INTE=1时 ③ ① RD D7~D0 PA7~PA0 PC4 PC5 PC3 INTEA 与门 IBF STB INTR 查询方法从8255的A口向CPU输入数据: 方式1的状态信号可通过读取端口C得到 INPUT: IN AL,PortC ;读方式1状态信号 TEST AL,20H ;查A口的IBF JE INPUT ;IBF=0,数据未准备好。 IN AL,PortA ;IBF≠0,CPU读入数据。 注意:方式1输入时共用到C口6个引脚,剩余2个引脚PC6、PC7可做 I/O位,或由C口置 /复位控制字决定其输出。

选通输出 对应的控制信号 a. OBF 输出缓冲区满: 8255A输出到外设,通知外设有可用数据。 第7章 微型机接口技术 选通输出 对应的控制信号 a. OBF 输出缓冲区满: 8255A输出到外设,通知外设有可用数据。 b. ACK 外设应答信号。有效时,表示外设已从8255输出端口取走 数据,由其清除OBF,并将INTR置“1” 。 c. INTR 中断请求信号:8255的输出,可向CPU申请中断, 在 OBF、ACK、INTE 均为1时 置1(有效)。 A口方式1输出时相应的联络信号 1 A口方式1输出控制字 B口方式1输出控制字 PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 PB7~PB0 PC2 PC1 PC0 INTEB OBFB ACKB INTRB B口方式1输出时相应的联络信号

INTR 中断请求信号在 OBF、ACK、INTE 均为1时,置1(有效)。 第7章 微型机接口技术 INTR 中断请求信号在 OBF、ACK、INTE 均为1时,置1(有效)。 d. INTE 中断允许:INTEA是C口输出锁存器的PC6,INTEB是C口输出锁存器的PC2,它们分别控制A口和B口的中断申请。 INTE=1 中断允许, INTE=0 禁止中断。(由C口置 /复位控制字设置) INTR 由8255A发出 A口方式1输出时相应的联络信号 1 A口方式1输出控制字 B口方式1输出控制字 PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 PB7~PB0 PC2 PC1 PC0 INTEB OBFB ACKB INTRB B口方式1输出时相应的联络信号

方式1的输出时序: 向工作在方式1下的输出端口输出数据时, 有关信号的变化关系。 ① ② ③ PA7~PA0 PC6 PC7 PC3 第7章 微型机接口技术 PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 方式1的输出时序: 向工作在方式1下的输出端口输出数据时, 有关信号的变化关系。 ① D7~D0 送往外设数据 数据写入端口 WR OBF INTR ACK ② ③ 当INTE=1时

① ② ③ PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 WR OBF ACK 第7章 微型机接口技术 PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 WR OBF ACK 当INTE=1时 送往外设数据 数据写入端口 ② ③ ① INTR 以中 断方 式输 出数 据: ① CPU输出数据 ② CPU发出WR: (1) 数据写到 8255A的端口 (2) 使OBF有效,表示输出端口满, 可作为外设的选通信号,通知外设取数据。 (3)清除中断请求信号INTR ③ 外设接收到数据后,发出ACK信号: (1) ACK的下降沿使OBF变高, (2) 当INTE=1, ACK的上升沿使INTR变高, 发出中断请求,请求CPU输出新的数据。

在方式1下,作为联络信号的外部引脚PC6、PC2,不受C口 按位置位/复位控制字控制,即对这些位的置位/复位不影响 第7章 微型机接口技术 注意: 在方式1下,作为联络信号的外部引脚PC6、PC2,不受C口 按位置位/复位控制字控制,即对这些位的置位/复位不影响 这些引脚信号的输入/输出,而只在8255A内部对INTE信号 起作用。 A口方式1输出时相应的联络信号 1 A口方式1输出控制字 B口方式1输出控制字 PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 PB7~PB0 PC2 PC1 PC0 INTEB OBFB ACKB INTRB B口方式1输出时相应的联络信号

① ② ③ PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 WR OBF ACK 第7章 微型机接口技术 PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 WR OBF ACK 当INTE=1时 送往外设数据 数据写入端口 ② ③ ① INTR ① CPU输出数据 ② CPU发出WR: (1)数据写到 8255A的端口 (2) 使OBF有效,表示输出端口满, 可作为外设的选通信号,通知外设取数据。 ③ 外设接受到数据后,发出ACK信号: (1) ACK的下降沿使OBF变高, (2)在主程序中CPU 查询OBF,若其为高电平,数据已取走, 端口可接受新的数据。 以查询方式输出数据(不作要求):

注意:方式1输出时共用到C口6个引脚,剩余2个引脚PC4、PC5可做 第7章 微型机接口技术 PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 WR OBF ACK 当INTE=1时 送往外设数据 数据写入端口 ② ③ ① INTR 查询方法向8255的A口输出数据: 方式1的状态信号可通过读取端口C得到 OUTPUT: IN AL,PortC ;读方式1状态信号 TEST AL,80H ;查A口的OBF,设备空闲? JE OUTPUT ;OBF=0,不空,等待。 MOV AL,DATAS OUT PortA , AL ;OBF≠0,CPU输出数据。 注意:方式1输出时共用到C口6个引脚,剩余2个引脚PC4、PC5可做 I/O位,或由C口置 /复位控制字决定其输出。

总结:选通的输入/输出方式—中断与查询处理 第7章 微型机接口技术 总结:选通的输入/输出方式—中断与查询处理 中断控制方式工作时 8255A的输入/输出过程在中断服务程序中完成,CPU通过IN/OUT指令输入/输出数据和I/O读/写信号。 信号一方面清除INTR,另一方面使接口握手线有效,通知外设写入/接收数据。发出新的中断请求,形成一个新的输入/输出过程。 查询方式工作时 方式1的状态信号可通过读取端口C得到。 南京航空航天大学 电子信息工程学院

③ 方式2(双向传输) 仅A口有此方式 与方式 0/方式 1的单向传送不同,工作在方式 2下的端口,具有双 向传送功能。外设接口总线为双向。 第7章 微型机接口技术 ③ 方式2(双向传输) 仅A口有此方式 与方式 0/方式 1的单向传送不同,工作在方式 2下的端口,具有双 向传送功能。外设接口总线为双向。 端口工作在方式 2时,C口的5根引脚作为端口的联络信号; 是方式1下A口输入、输出联络信号的组合(见下图)。 C口未做联络信号的3个引脚,可作为B口在方式1下的联络线, 也可和B口一样工作在方式0。由方式控制字决定其输入/输出。 方式2下的时序为方式1输入/输出两者的组合(略)。 58

例:A口 INTE=1 → PC4=1 (方式1,2)输入 or B口 INTE=1 → PC2=1 (方式1) 输入 第7章 微型机接口技术 方式2时端口C状态可通过读端口C得到: 由工作方式可以有各种组态 8255中断允许/禁止的设置: 例:A口 INTE=1 → PC4=1 (方式1,2)输入 or B口 INTE=1 → PC2=1 (方式1) 输入 MOV AL,09H ;PC4=1 OUT 63H,AL ;写入控制口 MOV AL,05H ;PC2=1 这时的位操作只影响INTE的状态,而不影响PC4引脚的状态。 1

4. 8255A应用举例 四位DIP开关的状态,根据开关的状态值,在数码管上显示字型。 (1)数码管 第7章 微型机接口技术 4. 8255A应用举例 例:由8255A的A口输出控制一位共阳极数码管,由C口的PC7~PC4输入 四位DIP开关的状态,根据开关的状态值,在数码管上显示字型。 (1)数码管 LED数码管由8个发光二极管组成七段数码和小数点,结构如图。 (2)硬件连接

南京航空航天大学 电子信息工程学院 (3) 程序 8255初始化控制字:88H 8255方式0的应用 十六进制到字型码采用软件译码方式。 第7章 微型机接口技术 (3) 程序 8255初始化控制字:88H 8255方式0的应用 十六进制到字型码采用软件译码方式。 主要程序部分 PORTA EQU 60H PORTB EQU 62H PORTC EQU 64H PCTRL EQU 66H SH_TAB DB 0C0H,… ; 字型表 DIS PROC MOV AL,88H OUT PCTRL,AL ;初始化8255 IN AL,PORTC ; 读开关状态 MOV CL,4 SHR AL,CL ; 转成低4位 LEA BX,SH_TAB XLAT SH_TAB ; 查表 OUT PORTA,AL ; 显示输出 RET DIS ENDP 1 ;方便程序中使用 南京航空航天大学 电子信息工程学院

7.3.2 并行打印机接口应用 1. 打印机的主要接口信号与时序 2. 查询方式打印字符串(以8255作为接口) 第7章 微型机接口技术 7.3.2 并行打印机接口应用 1. 打印机的主要接口信号与时序 D7~D0:数据总线,双向、三态。 STB:数据选通触发脉冲(输入),打印机在其上升沿读入数据。 ACK:应答脉冲(输出),“低”表示数据已接受,并准备接收下 一数据。常用作打印机的中断申请信号。 BUSY:“高”表示打印机正“忙”(输出),常用作状态信号供查询。 2. 查询方式打印字符串(以8255作为接口) 端口A作为数据通道,方式0、输出; 由PC7读入BUSY状态、PC0输出STB脉冲,端口C工作在方式0(上半部输入、下半部输出);

南京航空航天大学 电子信息工程学院 设8255端口地址为280H、281H、282H和283H。打印子程序如下: 第7章 微型机接口技术 设8255端口地址为280H、281H、282H和283H。打印子程序如下: BUF DB ‘HELLO!’ DB 0DH,0AH ;回车,换行符的ASCII码 NUM EQU $-BUF … PRINT PROC FAR MOV DX,283H ;8255初始化:均为方式0 MOV AL,10001000B ;A口输出,C上半输入/下半输出 OUT DX,AL MOV AL,00000001B ;初始PC0即STB=1,使用位控制。 OUT DX,AL MOV SI,OFFSET BUF MOV CX,NUM NEXT:MOV DX,282H ;从C口读入数据,查PC7 IN AL,DX ;AL TEST AL,80H ;BUSY=1(忙)? JNZ NEXT 南京航空航天大学 电子信息工程学院

3. 中断方式打印字符串 南京航空航天大学 电子信息工程学院 注意:使用位控字产生PC0负脉冲时,送控制端口而不是数据端口. INC SI 第7章 微型机接口技术 MOV AL,[SI] ;PC7=0,不忙 INC SI MOV DX,280H OUT DX,AL ;送出数据 MOV DX,283H MOV AL,00000000B ;使STB=0 OUT DX,AL NOP MOV AL,00000001B OUT DX,AL ;恢复STB=1,形成触发脉冲 LOOP NEXT RET PRINT ENDP 注意:使用位控字产生PC0负脉冲时,送控制端口而不是数据端口. 3. 中断方式打印字符串 南京航空航天大学 电子信息工程学院

① ② ③ PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 WR OBF ACK 第7章 微型机接口技术 PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 WR OBF ACK 当INTE=1时 送往外设数据 数据写入端口 ② ③ ① INTR STB :数据选通触发脉冲(输入),打印机在其上升沿读入数据。 ACK :应答脉冲(输出),“低”表示数据已被接受、且打印机准备好接收下一数据。常用作打印机的中断申请信号。 8255方式1时序与打印机时序并不完全吻合(OBF上升沿需要收到ACK后才有效)!

南京航空航天大学 电子信息工程学院 接口电路: 端口A作为数据通道,工作在方式1、输出; PC6 自动作为ACK信号输入端; 第7章 微型机接口技术 接口电路: PA7~PA0 PC6 PC7 PC3 INTEA 与门 OBFA ACKA INTRA WR D7~D0 端口A作为数据通道,工作在方式1、输出; PC6 自动作为ACK信号输入端; PC3自动作为INTR信号输出端,连接至8259的IRQ2 (中断类型 码0AH,中断向量放在0000:0028H~0000:002BH的4个单元中); 打印机需要的数据选通信号STB由CPU控制PC0来产生。 这时PC7未用,将其悬空。 南京航空航天大学 电子信息工程学院

工作过程为: 设8255A端口地址仍为280H~283H。程序如下: 南京航空航天大学 电子信息工程学院 第7章 微型机接口技术 工作过程为: (1)设数据放在输出缓冲区,输出字符时,CPU通过对PC0置1/置0 命令使其输出选通脉冲,在主程序中将数据通过端口A送打印机。 (2)打印机接收并打印字符后,发出ACK应答信号,此信号清除 8255的OBF信号(此处未用),并使8255A产生新的中断请求。 (3)如果CPU的中断是开放的,则响应中断,进入中断服务程序, 再输出一个新的字符。 设8255A端口地址仍为280H~283H。程序如下: IRQ EQU 0AH ; IRQ2 的中断类型码 IMR1 EQU 0FBH ; IRQ2开中断(与)屏蔽字11111011B IMR2 EQU 04H ; IRQ2关中断(或)屏蔽字00000100B BUF DB ‘HELLO!’ DB 0DH,0AH ;回车,换行 NUM EQU $-BUF BUFPT DW ? ;保存打印缓冲区当前指针 BUF_N DB NUM ;打印字符计数器 : 南京航空航天大学 电子信息工程学院

第7章 微型机接口技术 PRI_INI PROC FAR ;初始化程序 CLI MOV DX,283H ;8255初始化:A口方式1、输出, MOV AL,10100000B ;B口方式0,C口下半部输出(输出PC0) OUT DX,AL MOV AL,00001101B ;设置PC6=1,允许8255A中断 PUSH DS MOV AX,CS MOV DS,AX LEA DX,PRI_INT ;设置中断向量 MOV AH,25H MOV AL,IRQ INT 21H IN AL,21H ;设置8259的中断屏蔽寄存器 AND AL,IMR1 ;IRQ2开中断 OUT 21H,AL POP DS STI ;开中断

第7章 微型机接口技术 MOV DX,283H MOV AL,00000001B ;初始STB=1 OUT DX,AL MOV SI,OFFSET BUF MOV AL,[SI] ;取第一个字符 INC SI ;缓冲区指针指向第二个字符 MOV BUFPT,SI ;保存缓冲区指针 MOV BUF_N,NUM-1 ;在主程序中打印一个,中断 MOV DX,280H 子程序中打印( NUM-1)个。 OUT DX,AL ; 送出第一个数据,启动中断服务。 MOV AL,00000000B ;STB=0 OUT DX,AL NOP MOV AL,00000001B ;STB=1 RET PRI_INI ENDP HH: HLT JMP HH

第7章 微型机接口技术 PRI_INT PROC FAR ;中断服务子程序 PUSH AX PUSH DX PUSH SI MOV SI,BUFPT ;取缓冲区指针 MOV AL,[SI] ;又送一个数据 INC BUFPT MOV DX,280H OUT DX,AL MOV DX,283H MOV AL,00000000B ;STB=0 NOP MOV AL,00000001B ;STB=1 DEC BUF_N ;字符串打印完毕? JNZ NEXT IN AL,21H ;打印完毕 OR AL,IMR2 ;IRQ2关中断 OUT 21H,AL NEXT:POP SI POP DX ;通知8259中断结束(EOI) MOV AL,20H OUT 20H,AL POP AX IRET PRI_INT ENDP

7.3.3 键盘和显示器接口 1. 非编码键盘 (1)键盘的分类 第7章 微型机接口技术 7.3.3 键盘和显示器接口 键盘和显示器是计算机系统中基本外设,多为并口连接。 主要介绍其中的非编码键盘和LED数码显示器的应用。 1. 非编码键盘 (1)键盘的分类 键盘结构的关键是如何把键盘上的按键动作转换为相应的编码,供CPU接收。按键码识别方式不同,键盘可分为两大类: 编码键盘 :对每一个按键,由编码电路产生与其对应的唯一编码。 是一种用硬件电路来识别按键代码的键盘。 非编码键盘:利用简单的硬件和一套专用键盘程序来识别按键的 位置,再通过查表程序转换成相应的编码。 (2)非编码键盘的键码识别方法 为了识别键盘上的闭合键,常用的键码识别方法: 行扫描法、行反转法。 为了减少引线,键盘一般为矩阵式。配合的接口电路是 并行接口芯片。 南京航空航天大学 电子信息工程学院

设有m×n个键,采用8255接口芯片: m行——由输出口控制 n列——由输入口读入 当某行输出为低电平时: 有键按下——某列输入低电平 第7章 微型机接口技术 设有m×n个键,采用8255接口芯片: m行——由输出口控制 n列——由输入口读入 当某行输出为低电平时: 有键按下——某列输入低电平 无键按下——某列输入高电平 置所有的行线为0 逐行输出0 有键按下 读列线的值 识别键值 转键处理 Y N 列线某位为0 某键闭合的识别法: 行扫描法

结论:当一个键被按下时,必定可以读得一对唯一的 行值和列值。 第7章 微型机接口技术 行反转法 ① 令行线接口工作在输出方式,列线接口工作在输入方式。 CPU通过输出端口向各行线上全部送低电平(0),然后读入列线值。 如果此时有某键被按下,则必定会使某列线值为0。 ② 再使列线接口工作在输出方式,行线接口工作在输入方式。 CPU通过输出端口向各列线上全部送低电平(0),然后读入 行线值。则,闭合键所在的行线值必定为0。 结论:当一个键被按下时,必定可以读得一对唯一的 行值和列值。 南京航空航天大学 电子信息工程学院

当LED的8段发光管按如下所示与数据端口连接时,将数字0~F的编码顺序排列,定义为一个数据表(段选码表,7段代码表): 第7章 微型机接口技术 2. LED显示器 两种结构: 共阴极 共阳极 称公共端为位控端 当LED的8段发光管按如下所示与数据端口连接时,将数字0~F的编码顺序排列,定义为一个数据表(段选码表,7段代码表): D7 D6 D5 D4 D3 D2 D1 D0 dp g f e d c b a ;共阴极LED,同相输出,字符0~F 的7段代码表 TAB DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H ;共阳极LED,同相输出,字符0~F 的7段代码表 TAB DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H DB 0F8H, 80H, 90H, 88H, 83H, 0C6H, 0A1H, 86H, 8EH

设8255A的端口A输出显示字符,端口B控制LED的位控端。 第7章 微型机接口技术 设8255A的端口A输出显示字符,端口B控制LED的位控端。 PA7 . . . . . PB1 PA1 PA0 5 6 7 PB7 PB0 : .. 采用动态刷新的LED显示过程为: (1)将7段代码存入内存起址TAB,要显示的数字为TAB + 数字值。 利用XLAT指令可取至AL中,送PA口进行显示。 (2)位控端口(PB口)逐位送出0(共阴极)。 (3)PA口依次输出字符代码,PB口通过扫描法依次选中一位LED。 利用视觉惯性,当以一定的频率循环这个过程时,可实现8位 LED的稳定显示。 刷新一遍的显示子程序(现场保护略)如下:

TAB DB 3FH,06H,…,71H ;0~F段选码表,共阴极LED BUF DB 8 DUP(?) ;显示缓冲区 : DISPLAY PROC FAR MOV SI,OFFSET BUF ;指向显示缓冲区首地址 MOV CL,7FH ;使最左边LED亮 DISI: MOV AL,[SI] ;AL中为要显示的字符 MOV BX,OFFSET TAB ;段选码表首址送BX XLAT ;段选码送AL MOV DX,PORTA ;段选码送段控端口PORTA OUT DX,AL MOV AL,CL ;位扫描码送位控端口PORTB MOV DX,PORTB OUT DX,AL ;显示一位 CALL DELAY ;延时1ms ,停留显示 CMP CL,0FEH ;扫描到最右边LED? JZ QUIT ;是,则已显示一遍,退出 INC SI ;否,则指向下一位LED ROR CL,1 ;位扫描码指向下一位 JMP DISI ;显示下一位LED QUIT: RET DISPLAY ENDP 考虑到显示效果,最好在修改位码前先清除段码(使各段全暗),避免出现前一数字的“影子”

有键按下时产生中断请求信号,CPU在中断服务程序中执行键盘扫描及分析处理。 第7章 微型机接口技术 8255作键盘和显示器的接口 扫描: 中断/定时扫描或例行扫描 中断扫描方式: 有键按下时产生中断请求信号,CPU在中断服务程序中执行键盘扫描及分析处理。 定时扫描或例行扫描: 一般利用定时器产生定时(如每隔20ms)中断、CPU响应中断后对键盘进行扫描;或例行软件反复扫描。并在有键按下时转入键分析处理程序。 完整的键盘管理程序包括: 键扫描(下面以行扫描法为例)、 消除抖动、 键译码等内容。 南京航空航天大学 电子信息工程学院

;等待释放;否则认为是干扰信号 南京航空航天大学 电子信息工程学院 ;过程KEY功能:用行扫描法实现键盘管理,退出:KEY_V存放输入键值。 第7章 微型机接口技术 ;过程KEY功能:用行扫描法实现键盘管理,退出:KEY_V存放输入键值。 KEY_V DB ? ;键值暂存单元 : KEY PROC FAR START: MOV DX,CTRL_PORT ;8255A方式控制字送控制口 MOV AL,10000001B ;基本I/O方式,C上出、C下入 OUT DX,AL CALL KEYSCAN ;键扫描。有键按下时:BL=键值(0~15), 无键按下时:BL=0FFH。 CMP BL,0FFH JNZ WAIT RET ;无键按下,返回 WAIT: MOV KEY_V,BL ;键值送内存保存 CALL DELAY ;延时约20ms,消除抖动 CALL KEYSCAN ;再次键扫描 CMP BL,KEY_V ;与上次的键值进行比较 JZ RELEASE ;两次键值相同,确认该键按下, ;等待释放;否则认为是干扰信号 RET 南京航空航天大学 电子信息工程学院

第7章 微型机接口技术 RELEASE:MOV AL,0FH ;向所有行线(PC7~PC4)输出0 MOV DX,PORTC ;PORTC为8255A端口C OUT DX,AL IN AL,DX ;读所有列线(PC3~PC0)电平状态 AND AL,0FH ;比较,是否有列线处于高电平 CMP AL,0FH ;全部高电平=键释放 JNZ RELEASE ;未释放,继续等待 MOV AL,KEY_V ;取键值 MOV AH,0 ADD AL,AL ;键值×2 (键译码) MOV BX,OFFSET PROCE ;散转表首地址 ADD BX,AX MOV AX,CS:[BX] JMP AX ;键功能处理入口地址表 PROCE DW KEY0 DW KEY1 … DW KEY15 KEY0: … ;Key0~Key15功能处理 RET KEY1: … KEY15:… KEY ENDP 或 CALL AX(如果处理分支为过程)

第7章 微型机接口技术 ; KEYSCAN键盘扫描,退出:有键按下BL=键值(0~15);无键按下BL=0FFH。 KEYSCAN PROC KEYSCAN:MOV AL,0FH ;向所有行线(PC7~PC4)输出0。 MOV DX,PORTC;PORTC为8255A端口C OUT DX,AL IN AL,DX ;读所有列线(PC3~PC0)电平状态 AND AL,0FH ;比较,是否有列线处于低电平 CMP AL,0FH JNZ DONE ;有键按下,转DONE分析 MOV BL,0FFH ; BL <= 0FFH RET ;无键按下,返回,BL=0FFH DONE: MOV BL,0 ;键号初值为0 MOV CL,0EFH ;送扫描初值11101111B(D3~D0无效) MOV CH,4 ;计数值为行数(共4行) FROW: MOV AL,CL ;扫描初值送C口,扫描一行 MOV DX,PORTC OUT DX,AL RCL AL,1 ;修改行扫描值,依次为1101,1011,0111

南京航空航天大学 电子信息工程学院 在此程序中,没有考虑重键(即多个键同时按下)等问题。 第7章 微型机接口技术 第7章 微型机接口技术 MOV CL,AL ;保存行扫描值 IN AL,DX ;读列线(D7~D4无效),判别是否有列线为低电平 AND AL,0FH CMP AL,0FH JNZ FCOL ;有列线(D3~D0)为低电平,则转FCOL ADD BL,4 ;没有,则键号寄存器BL的值=BL+列数(4) DEC CH ;行扫描未完,则转FROW JNZ FROW RET ;已扫描完,返回 FCOL:RCR AL,1 ;此列为低电平,已找到,返回(BL=键号) JNC FCOL1 INC BL ;未找到低电平列线,使键号BL+1并继续寻找 JMP FCOL FCOL1:RET KEYSCAN ENDP 在此程序中,没有考虑重键(即多个键同时按下)等问题。 键盘和显示器接口还可以有其它多种形式,如利用不可编程的并行接口芯片,或专用的可编程键盘/显示控制芯片8279等。 南京航空航天大学 电子信息工程学院

7.4 串行接口与串行通信 7.4.1 串行通信的基本概念 串行通信:数据逐位按时间顺序依次在一根传输线上传输。 第7章 微型机接口技术 7.4 串行接口与串行通信 约定先低后高 串行通信:数据逐位按时间顺序依次在一根传输线上传输。 0 1 0 0 1 0 1 1 (4BH?) RD 目 的 TD GND 接收 0D2H t 源 移位发送 7.4.1 串行通信的基本概念 特点:数据线少→远程, 费用低 逐位发送→ 慢 适于长距离、中低速通信 1. 全双工、半双工和单工 (1)全双工通信 分别用独立的接口和传输线来发送和接收信号,发送和接收可同时进行。

(2)半双工通信 数据可分时双向传送。 (3)单工通信 数据单向传送。 2. 异步通信与同步通信 ——是串行通信中的两种基本通信方式 第7章 微型机接口技术 (2)半双工通信 数据可分时双向传送。 (3)单工通信 数据单向传送。 2. 异步通信与同步通信 ——是串行通信中的两种基本通信方式 (1)异步数据通信 收发双方没有共同的时间基准。以字符为传送单位(信号帧),用起始位和停止位标识每个字符的开始和结束。 特征:相邻两帧数据的时间间隔是不固定的,一帧数据各位的 时间间隔是固定的(字符传送时同步)。 南京航空航天大学 电子信息工程学院

一帧数据位数的规定:数据位,校验位,起始位和停止位。 第7章 微型机接口技术 一帧数据位数的规定:数据位,校验位,起始位和停止位。 数字或字符 异步通信的双方需要约定: ① 字符格式 字符帧的编码形式、奇偶校验和停止位的个数。 ②波特率(bit/秒) 对传送速率的规定 例:要求每秒传送120个字符,每帧为10位。 解:传送的波特率为: 120×10=1200(位/秒)=1200波特 每位的宽度0.83ms 数据位传输率=120×8=960位/秒 波特率:50~9600波特之间,高速的可达19200波特。 允许发送端和接收端有4%~5%的时钟误差或波特率误差。 南京航空航天大学 电子信息工程学院

以一串字符为一个传送单位,字符间不加标识位,在一串字 第7章 微型机接口技术 (2)同步数据通信 以一串字符为一个传送单位,字符间不加标识位,在一串字 符开始用同步字符标识,硬件要求高,通信双方须严格同步。 同步通信速度高于异步,可工作在几十~几百千波特。但同步 通信要求用精确的同步时钟来控制发送端和接收端之间的同步。 3. 数据编码 为减少数据信号在远距离传输中的损耗和干扰,需要对数据进行编码。 单/双极性不归零(NRZ)码、 单/双极性归零码、 差分编码、 单极性相位编码(曼彻斯特码) 交替反转码 等。 常用编码类型: 南京航空航天大学 电子信息工程学院

为解决长距离通信时,对数字信号要求频带宽的问题,常采用调制/解调器来保证信号品质 。 第7章 微型机接口技术 4. 信号的调制和解调 为解决长距离通信时,对数字信号要求频带宽的问题,常采用调制/解调器来保证信号品质 。 用调制器(Modulator) :数字信号 → 模拟信号 用解调器(Demodulator) :模拟信号 → 数字信号 常用方法: FSK(Frequency Shift Keying)移频键控; 幅移键控法(ASK); 相移键控法(PSK); 相移幅度调制(PAM) 等。 例:电话传输线 FSK将数字信号“1” 和“0”调制成不同频 率的模拟信号,再分 别由电子开关控制, 在运算放大器的输入 端相加。 电子开关由要传输的数字信号控制。

(1)RS-232C接口标准 —— 异步通信中应用最广泛的总线标准 第7章 微型机接口技术 5. RS-232C与RS-422/485 总线接口 (1)RS-232C接口标准 —— 异步通信中应用最广泛的总线标准 ①引脚定义 每个引脚信号及其电气特性都有标准规定! 25芯或9芯D型连接器时常用信号规定: 常用PIN及其连接: (25芯标准) 南京航空航天大学 电子信息工程学院

实现TTL与RS-232C电平转换的典型芯片MAX232(MAXIM公司产品,右图,内部有电源电压变换器),工作电源为单一+5V。 第7章 微型机接口技术 EIA:美国电子工业协会 ②信号电平标准(计算机系统) RS-232C用负逻辑规定逻辑电平 典型值:-3V~-15V 逻辑“1”; +3V~+15V 逻辑“0”。 EIA标准:MIN -25V,MAX +25V 实现TTL与RS-232C电平转换的典型芯片MAX232(MAXIM公司产品,右图,内部有电源电压变换器),工作电源为单一+5V。 C1/C2/C3/C4 取1.0uf/16v C5去耦电容 取0.1uf 只能实现点对点(P-P)通信。 传输最高的波特率19.2k bps, 传输最佳距离≤15m。

(2)RS-422/485接口标准(平衡驱动/差分接收) ① RS-422—— 4线传输,全双工,可实现P-mP通信,1发10收。 第7章 微型机接口技术 (2)RS-422/485接口标准(平衡驱动/差分接收) ① RS-422—— 4线传输,全双工,可实现P-mP通信,1发10收。 用2根信号线(A、B,极性相反、平衡对称电位)作为一个通道, 传送差分信号,有效地抗共模干扰,提高通信距离,最远可以传送1200m。传输率最大为10Mbps,此时传输距离允许120m。 电平标准 当差分信号的值 +2~+6V:1, -2~-6V: 0 接收器输入电平灵敏度 为±0.2V。 RS-422与TTL的电平转换 常用芯片有: SN75174 长线驱动器(发) MC3487 SN75175 长线接收器(收) MC3486

② RS-485——是RS-422的加强型,可以连成网络。 RS-485在RS-422的基础上发展而来,电气标准完全相同。 第7章 微型机接口技术 ② RS-485——是RS-422的加强型,可以连成网络。 RS-485在RS-422的基础上发展而来,电气标准完全相同。 2线制485为半双工(接收与发送使用同一线路,通过控制线切换) 可多点对多点(mP-mP,32发32收) 。 4线制485为全双工 可点对多点(P-mP,1发32收)。 6. 串行通信的实现 (主要解决串 并转换) 常用 硬件UART (通用异步接收器/发送器) 接收时,由RxD来的串行数据先进入移位Reg ,再并行输入至缓冲器,由CPU从数据总线读取;发送时,CPU→缓冲器,再→移位Reg, 由TxD一位一位输出。

UART工作时,通过外接时钟Tc来和接收数据同步。 设外部时钟周期为Tc,数据位的周期为Td,则有: Tc= Td/K K=16 或 64 第7章 微型机接口技术 UART工作时,通过外接时钟Tc来和接收数据同步。 设外部时钟周期为Tc,数据位的周期为Td,则有: Tc= Td/K K=16 或 64 例: 若K=16,在每个时钟脉冲的上升沿采样接收数据线RxD; 在RxD线上字符开始的前沿(“0”)被测到后,若连续采样到8个“0”,则确定它为起始位(不是干扰信号); 以后每隔16个时钟脉冲采样一次数据线作为输入数据。 其工作过程如下: 三种错误: Parity, Frame, OverRun 常用可编程接口芯片:Intel 8251A/Intersil INS 8250(NSC NS16450)等。

7.4.3 通用串行总线USB 早期PC标准串行接口配置,目前为通用串行总线USB所替代。 物理接口 A类 B类 性能与结构框架 第7章 微型机接口技术 早期PC标准串行接口配置,目前为通用串行总线USB所替代。 7.4.3 通用串行总线USB 物理接口 引脚编号 A类 连接 引脚 信号 名称 注 释 1 Vbus 电源 2 D- 信号线- 3 D+ 信号线+ 4 GND 地 B类 性能与结构框架 真正的“即插即用”(Plug and Play,PnP)特性,树形连接。 三类通信速率:高速信令位传输速率480Mb/s、 全速率12Mb/s、低速率 1.5Mb/s 南京航空航天大学 电子信息工程学院

三种传送模式:同步、中断、大批等,对应多类装置。 第7章 微型机接口技术 三种传送模式:同步、中断、大批等,对应多类装置。 USB系统的拓扑结构 同步:采用NRZI编码方式使数据获得同步。 电源:装置和Hub可从总线直接获得电源。 系统组成:USB主机、设备、Hub和USB互连。 南京航空航天大学 电子信息工程学院

第7章 微型机接口技术 7.6 模拟量输入/输出接口 7.6.1 概述 模拟量输入/输出通道是计算机与应用对象之间的一类重要接口,也是计算机测控与实时处理系统重要的组成部分。 计算机作为测控系统的一个环节,输入/输出都是数字信号。外部受控对象往往是一个模拟部件,其输入/输出是模拟信号。 这两种不同形式的信号在同一环路中进行传递时必须经过信号变换。→A/D和D/A转换器。

7.6.2 并行和串行D/A转换器 1. D/A转换的工作原理 D/A转换器DAC的形式较多,最常见的是T形电阻网络形式。 Vout 第7章 微型机接口技术 7.6.2 并行和串行D/A转换器 1. D/A转换的工作原理 D/A转换器DAC的形式较多,最常见的是T形电阻网络形式。 无论哪种技术,DAC的组成有4个部分: (1)基准电压源 (2)2#系数位转换开关 (3)产生2#电流(电压)的精密电阻网络(权电阻网络) (4)求和的运算放大器 - + 权电阻网络 位转换开关 基准电压 Vref 数字量 Iout Vout A Rf 南京航空航天大学 电子信息工程学院

D/V … Vout D/I … Iout D/I … Vout 第7章 微型机接口技术 常见DAC输出形式: D/V … Vout D/I … Iout 电流输出型转换成电压输出型(单极性): - + A D/I … Vout R 南京航空航天大学 电子信息工程学院

2. D/A转换器的主要性能指标 转换精度 模拟输出实际值与理论值之间的偏差。 绝对精度 输入端加给定数字量,在输出端实测的模拟量与理论值 第7章 微型机接口技术 2. D/A转换器的主要性能指标 转换精度 模拟输出实际值与理论值之间的偏差。 绝对精度 输入端加给定数字量,在输出端实测的模拟量与理论值 之间的偏差。 相对精度 当满量程值校准后,输入的任何数字量所对应的模拟输 出值与理论值的误差。 分辨率 D/A转换器所能分辨最小的量化信号的能力。 对n位DAC,分辨率为 1/2n。 即,最低位上变化一位时,模拟量的最小变化。 例:对10位DAC,若满量程输出为10V, 则分辨率近似为:10V× 1/210 = 10mV 一般,用转换器位数来表示:如分辨率有8、10、12、16位等。 建立时间 指DAC的数字输入有满刻度值的变化(全0→全1)时, 其输出模拟量达到(满刻度值 ± 1/2 LSB)时所需要的时间。 一般,DAC的建立时间为几个ns至几个us。 其倒数为转换速度,是DAC转换速度快慢的一个重要参数。

由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成。 第7章 微型机接口技术 3. D/A转换器与CPU的接口 (1)根据CPU与DAC芯片的特点,正确设计控制信号。 (2)DAC芯片本身带或不带锁存器,不带的须在CPU与DAC 间加锁存器(273、373)。 (3)合理设计和调整DAC的输出电路。 4. 典型8位DAC芯片(DAC0832) (1)主要性能指标 分辨率:8位 建立时间:1us,电流型输出 单电源:+5V~+15V, 低功耗:200mW 基准电压范围:-15V~+15V 转换 (2)内部结构和引脚 由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成。 低电平锁存,高电平直通

控制逻辑 —— 当控制信号有效时,选中DAC,并有直通数据; 控制信号无效时,数据锁存。 第7章 微型机接口技术 8位输入锁存器—— 可直接与CPU连接 8位DAC寄存器—— 作为CPU向DAC输出数 据的第二级缓冲 8位DAC—— 将数字量转换为模拟 量(电流) 控制逻辑 —— 当控制信号有效时,选中DAC,并有直通数据; 控制信号无效时,数据锁存。 (低电平锁存,高电平直通) 转换 (3)DAC 0832的工作方式 根据对0832的输入锁存器和DAC寄存器的不同控制方法, 0832有三种工作方式:单缓冲方式、双缓冲方式、直通方式。 南京航空航天大学 电子信息工程学院

—— 适用于一路模拟量输出或几路模拟量非同步输出的情形 方法:控制输入寄存器和DAC寄存器同时跟随或锁存数据, 第7章 微型机接口技术 ① 单缓冲方式 —— 适用于一路模拟量输出或几路模拟量非同步输出的情形 方法:控制输入寄存器和DAC寄存器同时跟随或锁存数据, 或 只控制这两个寄存器之一,而另一个接成直通方式。 转换 有关程序段: MOV DX ,200H ;DAC0832的地址为200H OUT DX ,AL ;AL中数据送DAC转换 南京航空航天大学 电子信息工程学院

② 双缓冲方式 —— 适用于多路D/A同时输出的情形 第7章 微型机接口技术 ② 双缓冲方式 —— 适用于多路D/A同时输出的情形 方法:分别控制输入寄存器和DAC寄存器。 使各路数据分别锁存于各自输入寄存器,然后由相同的 写控制信号把数据写入DAC寄存器,实现同步转换。 转换 程序片段: MOV DX,200H ;0832输入锁存器的地址为200H(A0=0) OUT DX,AL ;AL中的数据送输入锁存器 MOV DX,201H ;DAC锁存器的地址为201H(A0=1) OUT DX,AL ;数据写入DAC锁存器并转换,此时AL中的值任意

方法:输入寄存器和DAC寄存器都接成直通方式。 第7章 微型机接口技术 ③直通方式 方法:输入寄存器和DAC寄存器都接成直通方式。 此时提供给DAC的数据,须来自外部锁存电路,如下图, 来自8255的A口。 程序片段: MOV DX,PA8255 ;设8255A口地址为PA8255 OUT DX,AL ;AL中数据送A口锁存并转换 ;8255A口方式0,输出 (4)DAC 0832的输出方式 0832的输出是电流型。在微机系统中,通常需要电压信号。 可用运算放大器将其转换为单极性或双极性的输出电压。 南京航空航天大学 电子信息工程学院

双极性 Vout = 2Vref /2n×D -Vref 第7章 微型机接口技术 ①单极性输出 对应数字量 00~FFH 的模拟电压Vo,输出 范围是0 ~ -Vref 。 ② 双极性输出 如图,单极性输出电压VO1经运 放OP2电平偏移、放大后,对应 数字量00~FFH的模拟电压VO2, 输出范围是-Vref~ +Vref。 单极性 Vout = -Vref /2n×D 双极性 Vout = 2Vref /2n×D -Vref VO1:-5V(FFH)~0 V(00H) VO2:-5V(00H)~+5V(FFH)

用DAC产生锯齿波形,单缓冲方式(硬件电路参考P325(a))。 Lop1: MOV AL,00H 第7章 微型机接口技术 5. 应用 用DAC产生锯齿波形,单缓冲方式(硬件电路参考P325(a))。 Lop1: MOV AL,00H Lop2: OUT 20H,AL ;设端口地址为20H CALL DELAY INC AL CMP AL,0FFH ;峰值 JZ Lop1 JMP Lop2 周期调整:①加NOP指令 或 ②调整DELAY子程序的延时时间 幅值调整:用DAC的输出公式 单极性 Vout = -Vref /2n×D 双极性 Vout = 2Vref /2n×D -Vref 单极性 Vout = -Vmax/2n×D 双极性 Vout = 2Vmax/2n×D -Vmax

7.6.3 并行和串行A/D转换器 1. A/D转换的基本方法和特点 (1)逐次逼近式ADC 特点 :转换速度快、转换精度高、抗干扰能力差。 第7章 微型机接口技术 7.6.3 并行和串行A/D转换器 1. A/D转换的基本方法和特点 (1)逐次逼近式ADC 特点 :转换速度快、转换精度高、抗干扰能力差。 (2)双积分式ADC 特点 :转换速度慢、转换精度高、对干扰的抑制性强。 (3)电压频率转换法(V/F)ADC 特点:转换速度慢、抗干扰性能好、易实现远距离或隔离传输。 2. A/D转换器的主要性能指标 分辨率 A/D转换器能分辨的最小模拟输入量。 通常用能转换成的数字量的位数来表示:1/2n 或 n位 位数越高,分辨率越高。 以8位ADC为例,分辨率8位,数字量变换范围 0~255。 当输入电压满刻度为5V时,对输入模拟电压的分辨能力: 5V/256≈19.5mV 南京航空航天大学 电子信息工程学院

3. A/D转换器与CPU的连接方法 (1)模拟输入电压的连接 输入端常有: VIN(+), VIN(-) 单端输入时 差分输入时 第7章 微型机接口技术 转换时间 完成一次A/D转换所需要的时间。 如:25us,则转换率为1/25us=40KHz 转换精度 任一数字量所对应的模拟量输入实际值与理论值 之间的差,通常用数字量的最低有效位(LSB)来 表示,为±1/2LSB。 由于模拟量是连续的,而数字量是离散的。 所以,在某个范围内的模拟量对应于某个数字量。 3. A/D转换器与CPU的连接方法 (1)模拟输入电压的连接 输入端常有: VIN(+), VIN(-) 若信号为+:将VIN(-)接地, VIN(+)接输入 单端输入时 若信号为-:将VIN(+)接地, VIN(-)接输入 差分输入时 将信号接在VIN(-)、 VIN(+)两端 南京航空航天大学 电子信息工程学院

若A/D输出有可控的三态门,输出直接与总线相连; 若A/D输出无可控的三态门,需外接三态门。 第7章 微型机接口技术 (2)数据输出线与CPU总线的连接 若A/D输出有可控的三态门,输出直接与总线相连; 若A/D输出无可控的三态门,需外接三态门。 (3)启动信号的提供 电平启动(转换过程中,该信号始终为高或某一电平): 通过D触发器等提供有效电平信号 脉冲启动(一定宽度的正负脉冲): 通过OUT指令产生一个选通脉冲信号 (4)转换结束信号及数据读取 ADC在转换结束时,产生一结束信号(EOC),可将 此信号提供给CPU,供CPU启动读取已转换好的数据。 转换结束信号通常为电平: 未转换时 转换时 转换结束 EOC 南京航空航天大学 电子信息工程学院

—— ADC 0809是CMOS逐次比较型A/D转换器 主要技术指标: 分辨率8位,模拟电压输入范围:0~5V; 第7章 微型机接口技术 直接读取: 延时一定时间(﹥A/D转换时间)后, 直接读取转换结果,无需利用EOC信号。 查询:将EOC经缓冲器接入DB,查询它即可。 中断:用EOC做中断请求信号,CPU在中断服务 程序中读取转换结果。 CPU通常用3种 方式读取数据 4. 典型8位A/D转换器(ADC0809) (1)ADC 0809的性能和结构 —— ADC 0809是CMOS逐次比较型A/D转换器 主要技术指标: 分辨率8位,模拟电压输入范围:0~5V; 8个模拟输入通道,可在程序控制下对任意通道进行转换; 时钟频率10KHz~1280KHz, 在标准时钟频率(640KHz)下的转换时间为100μs; 电源电压+5V, 功耗15mW。 南京航空航天大学 电子信息工程学院

② 通道号由地址信号A、B、C译码后选定; 第7章 微型机接口技术 ADC0809的内部结构框图如图。 ① IN0~IN7可输入8路模拟电压; ② 通道号由地址信号A、B、C译码后选定; IN7 : IN0 AddrC AddrB AddrA ALE EOC Start Clock D7 D0 ③ 片内有地址锁存和译码器; ④ 转换结果送入三态输出锁存器,当输出允许信号OE有效时,才输出到数据总线上。

(2)ADC0809的转换控制 ADC0809的转换时序 ① 首先给出ADC通道地址A、B和C,它们在ALE的上升沿被锁存; 第7章 微型机接口技术 (2)ADC0809的转换控制 ADC0809的转换时序 ① 首先给出ADC通道地址A、B和C,它们在ALE的上升沿被锁存; ② 然后在ST(start conversion)的下降沿开始转换、且EOC变低; ③ EOC变高时表示转换结束,这时令OE有效,CPU即可读到转换结果。 IN7 : IN0 AddrC AddrB AddrA ALE EOC Start Clock D7 D0

依时序,使ST和ALE由同一正脉冲信号控制,其上升沿锁存地址、下降沿启动转换。 第7章 微型机接口技术 ADC0809的转换控制 有2个步骤: ①选择通道并启动转换; ②读取转换结果 ① 选择通道并启动转换   依时序,使ST和ALE由同一正脉冲信号控制,其上升沿锁存地址、下降沿启动转换。 通道地址可由数据总线给出,如图。 对IN3启动转换: MOV AL, ×××××011B ;D2D1D0=通道号 MOV DX,200H ;200H~203均可 OUT DX,AL ; (1) 1

MOV AL, ××××× 011B 通道地址由数据总线给出,如图。 对IN3启动转换: ;D2D1D0=通道号 MOV DX,200H 第7章 微型机接口技术 通道地址由数据总线给出,如图。 对IN3启动转换: MOV AL, ××××× 011B ;D2D1D0=通道号 MOV DX,200H ;200H~203均可 OUT DX,AL  (1) 1 通道地址也可由地址总线给出,如图。 ADC的A,B,C分别连接地址总线的A0,A1,A2。 启动对IN3转换: MOV DX,203H ;200H~207H对应 ;通道IN0~IN7 OUT DX,AL ; AL值任意

②读取转换结果 读取方式 中断服务程序 查询式流程图: 中断式 主程序 启动A/D转换 启动A/D转换 读取转换结果 EOC=1? 第7章 微型机接口技术 ②读取转换结果 读取方式 直接读取(不利用EOC信号,延时一定时间后直接读取) 查询式(查询EOC是否由低变高, EOC应经缓冲器读入CPU) 中断式(转换结束时由EOC的上升沿申请中断,CPU在中断 服务程序中读取转换结果) 中断式 主程序 启动A/D转换 模拟主程序 中断? 所有转换结束 N Y 中断服务程序 … 读取转换结果 无条件转移 屏蔽中断 查询式流程图: 启动A/D转换 EOC=1? 读取转换结果 所有转换结束 N Y

②读取转换结果 读取方式 查询式流程图: 中断式 主程序 中断服务程序 启动A/D转换 模拟主程序 中断? 读取转换结果 启动A/D转换 第7章 微型机接口技术 ②读取转换结果 读取方式 直接读取(不利用EOC信号,延时一定时间后直接读取) 查询式(查询EOC是否由低变高, EOC应经缓冲器读入CPU) 中断式(转换结束时由EOC的上升沿申请中断,CPU在中断 服务程序中读取转换结果) 查询式流程图: 中断式 主程序 启动A/D转换 模拟主程序 中断? 所有转换结束 N Y 中断服务程序 读取转换结果 屏蔽中断 … 启动A/D转换 查EOC=1 读取转换结果 所有转换结束 N Y

例:通道地址由数据总线给出,查询方式读入数据。对IN3 : MOV AL, ××××× 011B 第7章 微型机接口技术 例:通道地址由数据总线给出,查询方式读入数据。对IN3 : MOV AL, ××××× 011B ;D2D1D0=通道号 MOV DX,200H ;200H~203均可 OUT DX,AL  ;启动IN3转换 (1) 1 MOV DX,202H WAIT:IN AL,DX ;查询 ;AL的D0=EOC TEST AL,01H JZ WAIT MOV DX,201H IN AL,DX ;读取转换结果 AL 南京航空航天大学 电子信息工程学院

例:通道地址由地址总线输入,中断方式读入数据。 第7章 微型机接口技术 例:通道地址由地址总线输入,中断方式读入数据。 对IN3: MOV DX,203H ;200H~207H对应 ;通道IN0~IN7 OUT DX,AL ; 启动转换 ;AL值任意 AA:HLT ;模拟主程序 JMP AA INTPROC PROC ;中断服务 : MOV DX,201H IN AL,DX ;读取转换结果 将以中断方式进行A/D采样的程序完整化: ①如果连续采样,除了启动第一个数据采集在主程序外,其余都在中断程序中。 ② 启动一次,A/D完成一次数据采集。 南京航空航天大学 电子信息工程学院

第7章 微型机接口技术 习 题 课 7-1 要使用可编程定时/计数器8253的0通道周期性地发出脉冲,周期为1ms,试编写初始化程序(地址自定,输入脉冲频率= 2MHz)。若要求8253的端口地址为80H~83H,试用3-8译码器实现地址译码,并完成8253芯片与PC总线之间其他信号的连接。 计数初值:2# 1ms÷(1/2M)=2×103=07D0H 方式2或方式3 这个电路不唯一! 南京航空航天大学 电子信息工程学院

第7章 微型机接口技术 7-2 用8253组成一个实时时钟系统。0通道做为秒的计时器,1和2通道做为计数器,分别用作分和时的计时,试画出硬件电路并编出主程序和中断服务程序。 硬件连接图: 译码 1/50K 5V CLOCK0 GATE0 OUT0 CLOCK1 GATE1 OUT1 CLOCK2 GATE2 OUT2 IR0 IR1 8259 IR2 D7-D0 WR 8088 RD A0 A1 INTR A2 : M/IO A7 8253 A0 1 CS 2

硬件连接图: 0、1、2通道皆工作在方式2 计数初值分别为: 控制字分别为: 0通道:1/(1/50K)=50×103 第7章 微型机接口技术 硬件连接图: 译码 1/50K 5V CLOCK0 GATE0 OUT0 CLOCK1 GATE1 OUT1 CLOCK2 GATE2 OUT2 IR0 IR1 8259 IR2 D7-D0 WR 8088 RD A0 A1 INTR A2 : M/IO A7 8253 A0 1 CS 2 0、1、2通道皆工作在方式2 控制字分别为: 0通道:00110100 34H 1通道:01010100 54H 2通道:10010100 94H 计数初值分别为: 0通道:1/(1/50K)=50×103 = 50000D = C350H 1通道:60 ——计数到1分 2通道:60 ——计数到1小时

方法一:CLI CW MOV DX,02C0H MOV AL, 50H OUT DX, AL MOV AL, 0C3H 时间常数0 第7章 微型机接口技术 设8253端口地址02C0H~02C3H,在主程序中初始化: 方法一:CLI MOV DX,02C3H MOV AL, 34H OUT DX, AL MOV AL, 54H OUT DX, AL MOV AL, 94H 关中断 8253初始化 8259初始化 设置中断向量 暂停 开中断 CW MOV DX,02C0H MOV AL, 50H OUT DX, AL MOV AL, 0C3H MOV DX,02C1H MOV AL, 60 时间常数0 (1)可秒、分、时各中断程序独立,分别实现秒、分、时的计时; 或 (2)可仅用秒中断,在秒中断程序中,实现对分、时的软件计时。 时间常数1

MOV DX,02C2H MOV AL,60 秒中断服务程序: OUT DX,AL 分中断服务程序:同秒 时中断服务程序: 第7章 微型机接口技术 MOV DX,02C2H MOV AL,60 OUT DX,AL 时间常数2 秒中断服务程序: INT_SECOND PROC INC BL CMP BL,60 JNZ BB SUB BL,60 BB: MOV AL,20H OUT 8259-Ctr,AL IRET 8259初始化 设置秒中断程序中断向量 设置分中断程序中断向量 设置时中断程序中断向量 MOV BL,0 ;秒计数器 MOV BH,0 ;分计数器 MOV CX,0 ;时计数器 分中断服务程序:同秒 时中断服务程序: 对24小时计时,其余同分/秒的中断服务。 STI AA: HLT JMP AA

这时硬件中无通道1、2;主程序仅对8253 0通道、8259等初始化。 第7章 微型机接口技术 方法二: 仅用通道0实现秒计时,且产生中断。 在中断程序中,对分、时计时, 这时硬件中无通道1、2;主程序仅对8253 0通道、8259等初始化。 秒中断服务程序: INT_SECOND PROC INC BL CMP BL,60 JNZ BB SUB BL,60 INC BH CMP BH,60 ◆ SUB BH,60 INC CX CMP CX,24 JNZ BB SUB CX,24 BB: MOV AL,20H OUT 8259-Ctr,AL IRET

第7章 微型机接口技术 7-5 试利用8253设计一脉冲波群发生器,周期地输出500KHz、200KHz、100KHz、50KHz、20KHz、10KHz、5KHz、2KHz、 1KHz的方波,每种频率的信号都持续10ms。假定可提供给8253的时钟频率为2MHz,8253的端口地址为2C0H~2C3H。试完成硬件和软件设计。 用两个通道, CLK皆为2MHz时钟 0通道:方式2,做10ms计时 10ms/(1/2MHz)=2×104=4E20H 1通道:方式3,输出波形, 频率分别为 500KHz, 200KHz, …1KHz 8259 1 2MHz 5V 输出波形 INTR 8253 当0通道 10ms 计时时间到,申请中断,在中断程序中修改1通道的计 数初值,改变它的输出波形频率。 (1/500K)÷(1/2M)=4,(1/200K)÷(1/2M)=10,2M/100K=20 …… 计数初值分别为:4,10,20,40,100,200,400,1000,2000。

程序如下: DATA SEGMENT 代码段 程序主要部分: … LEA SI,COUNT ;SI为计数初值表指针 MOV DX,02C3H 第7章 微型机接口技术 程序主要部分: … LEA SI,COUNT ;SI为计数初值表指针 MOV DX,02C3H MOV AL,34H OUT DX,AL ;0通道方式2 MOV AL,76H OUT DX,AL ;1通道方式3 MOV DX,02C0H MOV AL,20H OUT DX,AL MOV AL,4EH ;计数值写入0通道 MOV DX,02C1H MOV AL,BYTE PTR [SI] MOV AL, BYTE PTR [SI+1];计数值写 OUT DX,AL ;入1通道 程序如下: DATA SEGMENT COUNT DW 4,10…2000 DATA ENDS 代码段 关中断 8253初始化 8259初始化 设置中断向量 暂停 开中断

ADD SI,2 STI AA: HLT JMP AA 中断服务程序: MOV AL,BYTE PTR [SI] OUT DX,AL 第7章 微型机接口技术 ADD SI,2 STI AA: HLT JMP AA 中断服务程序: MOV AL,BYTE PTR [SI] OUT DX,AL MOV AL,BYTE PTR [SI+1] MOV AX,[SI] CMP AX,2000 ;SI是否已到表的末尾? JNZ BB LEA SI,COUNT ;是,重新指向表的起始处 JMP CC BB: ADD SI,2 CC: MOV AL,20H ;8259结束中断 OUT 20H,AL IRET

7-7(1)方式字 1001 1001(99H) MOV AL, 99H or MOV AL,99H 第7章 微型机接口技术 7-7(1)方式字 1001 1001(99H) MOV AL, 99H or MOV AL,99H OUT 63H, AL MOV DX,0063H OUT DX,AL (2)方式字 1100 0100(C4H) (3)方式字 10110110(B6H) MOV AL, 0C4H MOV AL,0B6H OUT 63H,AL OUT 63H,AL 7-9 方法一 8255方式0, 8253定时中断, 在中断服务程序中查P7= 8255方式字 10001000(88H) 8253控制字 00110100(34H,0通道、方式2、2#计数) 设8253工作时钟CLK0=1MHz,20ms定时, 则: 计数初值 20ms÷(1/106)= 20000 = 4E20H 1,PC0发脉冲 0,退出中断 南京航空航天大学 电子信息工程学院

8253的0通道工作在方式2,OUT0接8259的中断申请端IR2 第7章 微型机接口技术 8253的0通道工作在方式2,OUT0接8259的中断申请端IR2 8088 INTR PC7 8255 PC0 驱动电路 5V 音频: 200HZ-4000HZ 取2000HZ 8259 IR2 INT 8253 CLK0 GATE0 OUT0 1MHZ 8255端口地址:60H~63H 8253端口地址:02C0H~ 02C3H 8259端口地址:20H、21H (103/2000)= 0.5ms 在20ms中断中,最多可响 20ms/0.5ms=40,40/2=20次。 让它响15次,正常退出,若故障未排除,又会响。 南京航空航天大学 电子信息工程学院

第7章 微型机接口技术 流程: 关中断 设置中断向量 8255初始化 8259初始化 暂停 模拟主程 开中断 8253初始化 CLI MOV AL,88H ;8255初始化 OUT 63H,AL MOV AL,34H ;8253初始化 MOV DX,02C3H OUT DX,AL MOV DX,02C0H ;送初值4E20H MOV AL,20H MOV AL,4EH MOV AL,13H ;8259初始化 OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,0DH 8259 A0 ICW1 0 00010011 13H ICW2 1 00001000 08H ICW4 1 00001101 0DH

方法二 8255方式0,PC7入、PC0出, 且PC7接8259的IR2,无需8253定时。 南京航空航天大学 电子信息工程学院 第7章 微型机接口技术 MOV AX,0 ;设置中断向量 MOV ES,AX MOV BX,0AH×4 ;中断类型码0AH MOV AX,OFFSET INTPROC MOV ES:[BX],AX MOV AX,SEG INTPROC MOV ES:[BX+2],AX STI AA: HLT JMP AA INTPROC: IN AL,62H AND AL,80H JZ BB MOV CL,15 CC: MOV AL,00H OUT 62H,AL CALL 500us MOV AL,01H DEC CL JNZ CC BB: MOV AL,20H OUT 20H,AL IRET 方法二 8255方式0,PC7入、PC0出, 且PC7接8259的IR2,无需8253定时。 南京航空航天大学 电子信息工程学院

当PB口有1时,开关接通,PA口应输出0(继电器有电流) 第7章 微型机接口技术 7-11 PA口方式0 输出,PB口方式0 输入。 当PB口有1时,开关接通,PA口应输出0(继电器有电流) 流程: 8255 A口方式0输出,B口方式0输入 MOV DX,03C3H MOV AL,10000010B OUT DX,AL 在中断程序中:读入PB口数据; 将PB口数据反相后送PA口。 INTPROC: … MOV DX,03C1H IN AL,DX MOV DX,03C0H NOT AL 关中断 设置中断向量 8255初始化 8259初始化 暂停 模拟主程 开中断 8253初始化 南京航空航天大学 电子信息工程学院

7-18 已知模拟量输入信号为0~+5V,试设计利用ADC0809芯片进行查询式A/D转换的PC接口卡,并编写实现一次采集的程序段。 第7章 微型机接口技术 7-18 已知模拟量输入信号为0~+5V,试设计利用ADC0809芯片进行查询式A/D转换的PC接口卡,并编写实现一次采集的程序段。 MOV BX,OFFSET BUF LP2: MOV CX,08H ;共8路 MOV AH,00H ; IN0 LP1: MOV AL,AH MOV DX,200H OUT DX,AL ;启动 MOV DX,202H WAIT:IN AL,DX ;查D0 TEST AL,01H JZ WAIT MOV DX,201H ;读入 IN AL,DX MOV [BX],AL ;保存 INC BX INC AH ;轮询INi LOOP LP1 JMP LP2 ;再次从IN0~IN7 方法一: 数据线选择通道IN0~IN7 (1) 1

南京航空航天大学 电子信息工程学院 第7章 微型机接口技术 MOV BX,OFFSET BUF LP2: MOV CX,08H ;共8路 第7章 微型机接口技术 MOV BX,OFFSET BUF LP2: MOV CX,08H ;共8路 MOV SI,200H ; IN0 LP1: MOV DX,SI OUT DX,AL ;启动 MOV DX,202H WAIT:IN AL,DX ;查D0 TEST AL,01H JZ WAIT MOV DX,201H ;读入 IN AL,DX MOV [BX],AL INC BX INC SI ;轮询INi LOOP LP1 JMP LP2 ;再次从IN0~IN7 方法二: 地址线选择通道IN0~IN7 南京航空航天大学 电子信息工程学院

将其改成中断方式读取A/D结果 南京航空航天大学 电子信息工程学院 INTPROC FAR … … MOV BX,OFFSET BUF 第7章 微型机接口技术 将其改成中断方式读取A/D结果 INTPROC FAR … MOV DX,200H ;读入 IN AL,DX MOV [BX],AL ;保存 INC BX INC AH ;轮询INi CMP AH,08H JB LP1 MOV AH,00H LP1: MOV AL,AH MOV DX,200H OUT DX,AL ;再启动 MOV AL,20H ;EOI OUT 20H,AL IRET INTPROC ENDP 方法一 … MOV BX,OFFSET BUF MOV AH,00H ;IN0 MOV AL,AH MOV DX,200H OUT DX,AL ;启动 AA: HLT JMP AA 南京航空航天大学 电子信息工程学院

将其改成中断方式读取A/D结果 南京航空航天大学 电子信息工程学院 INTPROC FAR … … MOV BX,OFFSET BUF 第7章 微型机接口技术 将其改成中断方式读取A/D结果 INTPROC FAR … MOV DX,200H ;读入 IN AL,DX MOV [BX],AL ;保存 INC BX INC SI ;轮询INi CMP SI,208H JB LP1 MOV SI,200H LP1: MOV DX,SI OUT DX,AL ;再启动 MOV AL,20H ;EOI OUT 20H,AL IRET INTPROC ENDP 方法二 … MOV BX,OFFSET BUF MOV SI,200H ;IN0 MOV DX,SI OUT DX,AL ;启动 AA: HLT JMP AA 南京航空航天大学 电子信息工程学院

Vref = -5V 南京航空航天大学 电子信息工程学院 7-19 在PC总线上扩充DAC0832芯片,并完成三角波信号输出。要求: 第7章 微型机接口技术 7-19 在PC总线上扩充DAC0832芯片,并完成三角波信号输出。要求: (1)三角波的电压范围为0~+2.5V。 (2)画出硬件接线图,DAC0832可用地址有4个:280H~283H。 (3)编写D/A转换程序。 MOV DX,280H MOV AL,00H LP1:OUT DX,AL INC AL CMP AL,80H JNZ LP1 LP2:OUT DX,AL DEC AL CMP AL,00H JNZ LP2 JMP LP1 ;一个周期结束 图参考7-67 满量程:0~5V(00H~FFH) 2.5V(80H) 0(00H) 南京航空航天大学 电子信息工程学院 Vref = -5V

双极性 Vout=2VREF/2n×D-VREF D =-Vout×2n/Vmax 第7章 微型机接口技术 满量程:0~5V(00H~FFH) 2.5V(80H) 0(00H) Vref = -5V 还可使0832产生正向锯齿波(起始值00H)、负向锯齿波(起始 值FFH)、方波等。 ① 波形周期的调整:改变每次DAC的间隔 如:在 OUT DX,AL 的后面加入一些NOP指令, 或调用延时子程序. ② 波形峰值调整: 单极性 Vout=-VREF/2n×D 双极性 Vout=2VREF/2n×D-VREF D =-Vout×2n/Vmax 单极性 Vout=-Vmax/2n×D 双极性 Vout=2Vmax/2n×D-Vmax D = (Vout+Vmax)×2n/2Vmax 南京航空航天大学 电子信息工程学院