第7章-微型机接口技术_第1页
第7章-微型机接口技术_第2页
第7章-微型机接口技术_第3页
第7章-微型机接口技术_第4页
第7章-微型机接口技术_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章 微型机接口技术 可编程定时/计数器可编程并行接口串行接口与串行通信(概念) DMA控制器接口(不做要求)模拟量输入/输出接口 第7章 微型机接口技术 南京航空航天大学 电子信息工程学院端口I/O接口的构成实现对CPU数据总线驱动能力的匹配实现各端口寻址操作实现对各端口的读/写操作和时序控制7.1 概论第7章 微型机接口技术 南京航空航天大学 电子信息工程学院3I/O接口一般功能1. 地址译码和I/O设备选择CPU对外设输入/输出的控制, 是通过对接口中各I/O端口的读/写操作来完成的。I/O端口的地址译码方法: 高位地址线(或 组合CPU的控制信号),产生I/O接口 电路的片选信号CS

2、,实现系统中的接口电路(芯片)寻址 。 低位地址线直接接到I/O接口电路(芯片)的地址引脚, 进行I/O接口电路(芯片)的片内端口寻址。 地址信号选择:由地址范围决定。2. 信息的输入与输出当主机选中I/O接口中的某个端口,则可在它们之间传送相应信息(数据、状态、控制)。每一时刻只允许被选中的I/O接口与CPU交换数据。 第7章 微型机接口技术3. 数据的缓冲及锁存4. 信息的转换缓冲器:加强驱动能力; 锁存器:信息暂存串/并、并/串;数字量/模拟量;电平转换;码制转换 等。复杂I/O 接口原理图第7章 微型机接口技术 南京航空航天大学 电子信息工程学院5定时/计数器(Intel 8253/8

3、254,三个通道 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第7章 微型机接口

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

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

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

7、LS138配合74LS30和74LS04译码选中8253。 8253的三个通道输入时钟由系统PCLK分频得到,频率为: 2.38636/2=1.1931816MHz. 在PC/XT微机中,通道0的OUT0接8259的IR0,通道1刷新动态存储器,通道2控制扬声器发声。第7章 微型机接口技术3. 工作方式(6种,可编程)(1)控制字( Control Word,CW ,写入控制寄存器) 初始化/设置/控制三个通道(计数器): 初始化/控制00 01 000 0B=10H ?01 11 011 1B=77H CH1, 16位, 方式3, BCDCH0, 低8位, 方式0, BIN第7章 微型机接口

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

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

10、当计数器到0时,OUT输出高电平并保持,直至写入新的控制字或初值。 计数初值写入后在下一个CLK下降沿才送入计数器,因此计数值为N+1。 GATE=0,暂停计数。 若计数过程中重新送入初值,则按新值重新计数。 计数为0(归0)后,不能自动恢复计数初值。再次写入计数初值,才又开始计数。计数归0后仍继续计数,但OUT不再变化。第7章 微型机接口技术方式1:可重复触发的单稳态触发器 写入CW后OUT输出高电平;写完初值后,计数器要等到GATE端的上升沿(触发沿)后,在下一个CLK脉冲的下降沿才开始计数,OUT变低,直到计数到0后OUT变高。 GATE再次上升沿触发使OUT变低,计数器以初值重新计数。

11、 计数过程中,再次给通道写入时间常数,不影响当前操作过程,GATE再次触发后才按新的时间常数操作。 计数过程中GATE触发沿提前到来,在下一个CLK的下降沿,计数器开始重新计数,使输出单稳脉冲比原先设定的计数值加宽。计数归0后不用再送计数值,只需触发脉冲即可输出一同样宽度的单稳脉冲。第7章 微型机接口技术方式2:频率发生器(n分频器) 写入CW后OUT变高;写入初值后,下一CLK开始计数,减到1时OUT变低,经一个CLK周期OUT恢复为高,计数器自动重新开始计数。有硬件(门控)和软件(写初值) 两种触发计数的方式。GATE=1计数;GATE=0计数暂停且OUT立即为高 ,在GATE变高后的下一

12、个CLK下降沿计数器重新从初值开始计数 。(为硬件同步)计数期间送入新值,本周期继续进行,下一个周期按新值计数。不用重复置数。计数器能够连续工作,输出OUT是输入CLK的n(初值)分频。硬件同步:门控信号实现计数器的同步,称为。软件同步:写入控制字和计数初值后,如GATE一直处于高电平,则在下一个脉冲开始计数器计数。通过写入初值使计数器同步,称为。 写入CW后OUT变高;写入初值后,下一个CLK开始计数,输出为先高后低的方波;一个方波结束后,自动重新装入计数初值,开始下一次计数过程。 若N为偶数,高低电平持续时间相等;若为奇数,则高电平持续时间为(N+1)/2,低电平持续时间为(N-1)/2。

13、 兼有两种触发计数的方式。 其余如 当GATE=0、以及计数期间送入新值的处理同方式2。第7章 微型机接口技术方式3:方波发生器计数器自动重新开始计数第7章 微型机接口技术 写入CW后OUT为高;写入计数初值后的下一个CLK开始计数(软件触发) ;计数器到0时,输出一个CLK周期宽度的负脉冲,然后输出变为高电平并保持。 计数器不能自动恢复计数初值。再次写入计数初值,才又开始计数。 GATE=0禁止计数。 计数期间送入新的计数值,则下一个时钟按新值重新计数。方式4:软件触发的选通信号发生器第7章 微型机接口技术19 南京航空航天大学 电子信息工程学院 方式5:硬件触发的选通信号发生器 写入CW后

14、OUT为高;写入计数初值后,由GATE上升沿启动计数(硬件触发);计数到0时,输出一个CLK周期宽度的负脉冲,然后输出变高并保持。 需等到下一次GATE脉冲触发,才会开始新的计数过程。 计数过程中,若GATE又来一个上升沿,则下一个CLK计数器重新赋值计数。 计数期间写入新的计数值,当前周期不受影响,在下一个 GATE上升沿启动新值计数。第7章 微型机接口技术启动计数中止计数自动重复更新初值OUT波形方式0软 件GATE=0无立即有效N 0方式1硬 件无下一轮有效N 0方式2软/硬件GATE=0有下一轮有效N.2 1 0方式3软/硬件GATE=0有下半轮有效方式4软 件GATE=0无立即有效

15、N 1 0方式5硬 件无下一轮有效 N 1 0N/2N/28253工作方式总结方式0 :写入CW后输出变低,计数结束输出为高,常用该输出信号作为 中断源。余5种方式写入CW后输出均变高,OUT均可作为中断源。方式0:可用来实现定时或对外部事件进行计数。方式1:用来产生单脉冲。方式2:用来产生序列负脉冲,每个负脉冲的宽度与CLK的周期相同。方式3:用于产生连续方波。方式2和方式3都实现对CLK的n分频。方式4/方式5:输出波形相同,都是宽度为1个CLK的负脉冲。第7章 微型机接口技术4. 8253芯片应用举例例1:在PC/AT微机中通道0(CNT0),地址40H, 方式3,用于日时钟定时。(CL

16、K=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。第7章 微型机接口技术(2)计数器1的初始化MOV AL,54H ; CWOUT 46H,ALMOV AL,18 ; 18分频OUT 42H,AL 输出OUT1频率为66.288KHZ。(3)计数器2的初始

17、化和接通喇叭MOV AL,0B6H ; CWOUT 46H,ALMOV AX,533H ; 分频值OUT 44H,ALMOV AL,AHOUT 44H,ALIN AL,62H ; 读入8255的PB口MOV AH,AL ; 保护原值OR AL,03H ; 置1 PB1和PB0OUT 62H,AL ; 输出ROM BIOS对8253初始化(1)计数器0的初始化 MOV AL,36H ; CW OUT 46H,AL MOV AL,00H ; 初值 OUT 40H,AL OUT 40H,AL 计数器0工作于方波发生器方式,对CLK(1.1931816MHz)进行65536(216)分频。 输出端OU

18、T0接8259的IR0,每次归0产生一次中断请求,中断号由BIOS设置为8。 中断时间间隔为54.925ms,每秒钟18.2次中断。 通道0的时间间隔是计算机系统时标基础。第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/5s=1000。(2)确定控制字按题意选计数器1,按BCD码计数

19、,选方式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)外部事件计数脉冲接入

20、通道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次

21、经8259的IR1向CPU发出中断信号,如上图所示。 通道2地址为42H,控制端口地址为43H。编写8253的初始化程序。第7章 微型机接口技术例4:P280 电机数字控制系统测速子系统实例 转速传感器输出的转速信号送到8253进行计数测量。脉冲计数CLK1D被测转子转速n为011156转/分,发动机每转对应传感器输出300个脉冲。基本测量原理: 测量D个(D值根据实际转速范围选择)传感器输出脉冲CLK1所占时间 为多少个(设为X个,待测)标准时钟周期PCLK(设为Tr,单位us)。3个计数器工作在: 方式0、1、0通道1计数D个CLK1时,通道2计数X个PCLK。实际转速: 脉冲计数CLK1

22、D第7章 微型机接口技术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中的计数值,算出被测信号的转速。 南京航空航天大学 电子信息工程学院第7章 微型机接口技术 设8253端口地址为280H、282H、284H和286

23、H,主要程序片段: ;主程序中对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,读/写低字节. OUT DX,ALINIT_D: MOV DX,282H ;计数器1地址 MOV AL,20 OUT DX,AL ;写入计数初值20到计数器1 INC DX INC DX ;计数器2地址 MOV AL,0 OUT D

24、X,AL ;写入低8位计数值到计数器2 OUT DX,AL ;写入高8位计数值到计数器2 MOV DX,280H ;计数器0地址 MOV AL,01H OUT DX,AL ;写入1到计数器0、启动测量过程第7章 微型机接口技术;中断服务程序中,读取计数器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

25、 AX;AX=X ;计算转速n 通道1计数D个脉冲后,OUT1的上升沿申请中断。 当中断到来时,进入中断服务子程序。 可以用CPU暂停来模拟主程序,只有中断到来时才脱离暂停。 AA:HLT MOV AH,4CH INT 21H 第7章 微型机接口技术7.3 可编程并行接口 南京航空航天大学 电子信息工程学院297.3.1 可编程并行接口芯片8255A并行通信:n位数据用n条线同时传输的机制。特点:速度快,效率高。 适于短距离、高速通信。74LS244,273都是简单的并行接口。并行接口连接CPU与并行外设,实现并行通信,起到输出锁存/输入缓冲的作用。Intel系列的8位并行接口芯片8255A:

26、与Intel系列CPU完全兼容; 24条功能可编程的I/O引脚;能直接按位清0或置1,简化了控制应用接口。8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3第7章 微型机接口技术resetD7D0A9A2A1A0IORIOW片选译码数据缓冲器读写控制片内译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口D端口A端口C端口B +5VGNDD7D0外设8255A总线三个8位数据端口A,B,C;一个

27、控制端口。 C口还可分为两个4位数据使用,或用作与A口或B口配合的 控制或状态口,依具体工作方式而定。第7章 微型机接口技术1. 8255A芯片的内部结构(1)端口端口A(PA7PA0): (A1A0=00) 内有8位数据输出锁存/缓冲器和8位数据输入锁存器。 端口B (PB7PB0) : (A1A0=01) 内有8位数据输入/输出、锁存/缓冲器和8位数据输入缓冲器(输入可以不锁存)。端口C (PC7PC0): (A1A0=10)内有8位数据输出锁存/缓冲器和8位数据输入缓冲器(输入无锁存)。在与不需要控制联络的外设连接时,A、B、C口均可做输入输出,且C口可分为高/低两个 4位,可同为输入或

28、输出,也可不同。 在与需要控制联络的外设连接时,C口的主要部分是A、B口的联络控制信号。控制端口(A1A0=11):接收控制字,决定8255工作方式。第7章 微型机接口技术 南京航空航天大学 电子信息工程学院32(2)A组控制和B组控制 两组控制电路决定A/B组的工作方式。 A组控制A端口和C端口的上半部;B组控制B端口和C端口下半部。(3)读写控制逻辑接收CPU的地址及读写控制等信号,控制完成信息的传送。RESET高电平时使8255复位,所有内部Reg清0,A/B/C三个端口都置为输入方式。(4)数据总线缓冲器 直接与数据总线相连2. 8255A的PIN40P,DIP,+5VPA/PB/PC

29、 = I/O口引脚D7D0:双向数据总线/CS:片选,/RD:读,/WR:写A1A0 :端口选择,寻址3个数据/1个控制端口第7章 微型机接口技术 南京航空航天大学 电子信息工程学院33CSRDWRA1A0端口选择及其操作01000数据送端口A01001数据送端口B01010数据送端口C01011控制字送控制寄存器00100端口A数据送数据总线00101端口B数据送数据总线00110端口C数据送数据总线00111无操作(D7D0三态)1禁止(D7D0三态)011无操作(D7D0三态)i8255A芯片端口选择操作第7章 微型机接口技术 南京航空航天大学 电子信息工程学院34 8255A与8086

30、系统连接说明:(1)8255的数据线D7D0接8086系统数据线的低8位。(2)8255的A0接8086的A1,8255的A1接8086的A2,使用偶地址传递信息。(3)端口地址书上错!第7章 微型机接口技术3. 8255A芯片的控制字和工作方式 控制字分为两类:方式选择控制字 / 端口C置位-复位控制字 共用一个地址,D7=1 方式 / D7=0 C口位控字方式0(基本输入/输出):不用联络信号/中断, 用于无条件/查询方式传送方式1(选通输入/输出):C口提供固定联络信号,用于中断或查询方式方式2(双向传输):既可入,又可出。是方式1的组合。 方式选择控制字 (送控制寄存器 A1A0=11

31、。 格式以此为准。)以适应各种数据传送方式的要求。未被用的其它位仍可工作在方式 0。共三种工作方式: A组有三种, B组有两种。人为定义C口信号第7章 微型机接口技术 端口C置位/复位控制字 说明:使8255作为位控接口,实现对外设的按位控制。 该控制字仅对8255的端口输出锁存器操作。例:利用位复位/置位可使端口C某位产生方波。 MOV CX,0FHLOP:OUT PORT-CL,0AH ;送0 CALL DELAY OUT PORT-CL,0BH ;送1 CALL DELAY LOOP LOP RET 向PC5送0电平 延时向PC5送1电平方波个数到? 延时第7章 微型机接口技术(2) 8

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

33、输入不锁存,输出锁存。第7章 微型机接口技术例:8255A与系统的连线如下, 片选译码地址为F0F3h 1) 确定端口地址译码电路; 2) 编程设置8255A :A组方式 0,A口 输入,PC7PC4输出 B组方式 0 ,B口输出,PC3PC0输入resetD7D0A9A2A1A0IORIOW片选译码数据缓冲器读写控制片内译码RESETA1A0PC7PC0PB7PB0控制口D端口A端口C端口B +5VGNDD7D0外设RDWRCSPA7PA0F0F3h第7章 微型机接口技术1) 确定端口地址译码电路 A9A8 A7 A6 A5 A4 A3 A2 A1 A0 F0H 1 1 1 1 1 1 0

34、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口 CSA1 A0 8255A总线2) 确定方式控制字10010001D7D6D5D4D3D2D1D0特征位A组方式 0A口输入PC7PC4输出B组方式 0B口输出PC3PC0输入控制字1001 0001B,91H MOV AL, 91H OUT 0F3H, AL要求: A口方式0输入,PC7PC4输出 B口方式0输出,PC3PC0输入 第7章 微型机接口技术i8255A方式0总线时序 南京航空航天大学 电子信息工程学院40有

35、效读取数据条件:AB、RD、外设数据有效保持;读时序( IN AL,PORT ): CPU发地址RD 读数据; 外设 读周期内保持数据;I/O口第7章 微型机接口技术 南京航空航天大学 电子信息工程学院41有效输出数据条件:AB选中8255、WR、数据正确输出到 DB;写时序(OUT PORT,AL):CPU发地址 数据WR,8255锁存 ;数据锁存到寄存器((外设可随时读取数据)I/O口i8255A方式0总线时序第7章 微型机接口技术 方式1(选通的输入/输出)方式1中,端口A和端口B输入/输出数据时,必须利用端口C提供联络信号(选通、应答信号)。这时:A组:8位数据端口(A口),3位控制位

36、(C口)。B组:8位数据端口(B口),3位控制位(C口) 。 这种配合(C口PIN的分配)固定,不可以用程序修改。 余下2 位可用作基本I/O。一般,用中断方式传送数据(也可用查询方式,很少)。特点: 端口A、B既可做输入又可做输出,数据输入输出都被锁存。 端口C引脚分别作为控制、状态和中断申请信号等。 若只有一个端口工作在方式1,则另一端口可工作在方式0,这时 C口未用位可用作基本I/O。端口A、B工作于方式1的输入或输出时,端口C联络信号的引脚和意义都不同,故以下分开讨论。1011A口方式1输入控制字111B口方式1输入控制字PA7PA0PC4PC5PC3INTEAPC4与门IBFASTB

37、AINTRARDD7D0A口方式1输入时相应的联络信号PB7PB0PC2PC1PC0INTEBPC2与门RDD7D0IBFBSTBBINTRBB口方式1输入时相应的联络信号选通输入第7章 微型机接口技术对应的控制信号 a. STB 选通输入:外设提供,有效时,把外设数据写入8255 。 b. IBF 输入缓冲区满: 8255A输出到外设,通知外设输入缓冲区 满,不要送新数据,由CPU读数据时(RD的上升沿)清除。 c. INTR 中断请求信号:8255的输出,可向CPU申请中断, 在 STB、IBF、INTE 均为1时 置1(有效)。第7章 微型机接口技术1011A口方式1输入控制字111B口

38、方式1输入控制字PA7PA0PC4PC5PC3INTEAPC4与门IBFASTBAINTRARDD7D0A口方式1输入时相应的联络信号PB7PB0PC2PC1PC0INTEBPC2与门RDD7D0IBFBSTBBINTRBB口方式1输入时相应的联络信号INTR 中断请求信号在 STB、IBF、INTE 均为时,置1(有效)。 d. INTE 中断允许:INTEA是C口输出锁存器的PC4,INTEB是C口输出锁存器的PC2,它们分别控制A口和B口的中断申请。 INTE=1 中断允许, INTE=0 禁止中断。(由C口置 /复位控制字设置)INTR 由8255A发出第7章 微型机接口技术PB7PB

39、0PA7PA0STBIBFINTRRD外设送来数据当INTE=1时 方式1的输入时序: 从工作在方式1下的输入端口输入数据时, 有关信号的变化关系。RDD7D0PA7PA0PC4PC5PC3INTEAPC4与门IBFSTBINTR第7章 微型机接口技术PA7PA0PB7PB0STBIBFINTRRD外设送来数据当INTE=1时 RDD7D0PA7PA0PC4PC5PC3INTEAPC4与门IBFSTBINTR 当外设数据准备好,将数据送至端口线PA7PA0或PB7PB0 外设发出选通信号STB: (1) 将数据锁存在输入端口内。 (2) 使IBF变高,表示输入端口满,可用于阻止外设输入新数据。

40、 (3) 如果INTE=1, STB的上升沿使INTR变高,发出中断请求。 中断处理程序中CPU 读取数据,发出RD信号: (1) RD 的下降沿清除INTR (2) RD 的上升沿清除IBF (3) 端口内的数据进入CPU以中断方式输入数据:第7章 微型机接口技术1011A口方式1输入控制字111B口方式1输入控制字PA7PA0PC4PC5PC3INTEAPC4与门IBFASTBAINTRARDD7D0A口方式1输入时相应的联络信号PB7PB0PC2PC1PC0INTEBPC2与门RDD7D0IBFBSTBBINTRBB口方式1输入时相应的联络信号注意: 在方式1下,作为联络信号的外部引脚P

41、C4、PC2,不受C口 按位置位/复位控制字控制,即对这些位的置位/复位不影响 这些引脚信号的输入/输出,而只在8255A内部对INTE信号 起作用。第7章 微型机接口技术PA7PA0PB7PB0STBIBFINTRRD外设送来数据当INTE=1时 RDD7D0PA7PA0PC4PC5PC3INTEAPC4与门IBFSTBINTR 当外设数据准备好,将数据送至端口线PA7PA0或PB7PB0 外设发出选通信号STB: (1) 将数据锁存在输入端口内。 (2) 使IBF变高,表示输入端口满,可用于阻止外设输入新数据 在主程序中CPU 查询IBF,若其为高电平,读取数据,发出RD 信号: (1)

42、RD 的上升沿清除IBF (2) 端口内的数据进入CPU以查询方式输入数据(不作要求):第7章 微型机接口技术PA7PA0PB7PB0STBIBFINTRRD外设送来数据当INTE=1时 RDD7D0PA7PA0PC4PC5PC3INTEAPC4与门IBFSTBINTR 查询方法从8255的A口向CPU输入数据: 方式1的状态信号可通过读取端口C得到 INPUT:IN AL,PortC;读方式1状态信号TEST AL,20H ;查A口的IBFJE INPUT ;IBF=0,数据未准备好。IN AL,PortA ;IBF0,CPU读入数据。注意:方式1输入时共用到C口6个引脚,剩余2个引脚PC6

43、、PC7可做 I/O位,或由C口置 /复位控制字决定其输出。第7章 微型机接口技术A口方式1输出时相应的联络信号1010A口方式1输出控制字110B口方式1输出控制字PA7PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7D0PB7PB0PC2PC1PC0INTEBPC2与门WRD7D0OBFBACKBINTRBB口方式1输出时相应的联络信号选通输出对应的控制信号 a. OBF 输出缓冲区满: 8255A输出到外设,通知外设有可用数据。 b. ACK 外设应答信号。有效时,表示外设已从8255输出端口取走 数据,由其清除OBF,并将INTR置“1” 。 c. INT

44、R 中断请求信号:8255的输出,可向CPU申请中断, 在 OBF、ACK、INTE 均为1时 置1(有效)。第7章 微型机接口技术A口方式1输出时相应的联络信号1010A口方式1输出控制字110B口方式1输出控制字PA7PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7D0PB7PB0PC2PC1PC0INTEBPC2与门WRD7D0OBFBACKBINTRBB口方式1输出时相应的联络信号INTR 中断请求信号在 OBF、ACK、INTE 均为时,置1(有效)。 d. INTE 中断允许:INTEA是C口输出锁存器的PC6,INTEB是C口输出锁存器的PC2,它们

45、分别控制A口和B口的中断申请。 INTE=1 中断允许, INTE=0 禁止中断。(由C口置 /复位控制字设置)INTR 由8255A发出第7章 微型机接口技术方式1的输出时序: 向工作在方式1下的输出端口输出数据时, 有关信号的变化关系。PA7PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7D0D7D0送往外设数据数据写入端口WROBFINTRACK当INTE=1时 第7章 微型机接口技术以中断方式输出数据: CPU输出数据 CPU发出WR: (1) 数据写到 8255A的端口 (2) 使OBF有效,表示输出端口满, 可作为外设的选通信号,通知外设取数据。 (3

46、)清除中断请求信号INTR 外设接收到数据后,发出ACK信号: (1) ACK的下降沿使OBF变高, (2) 当INTE=1, ACK的上升沿使INTR变高, 发出中断请求,请求CPU输出新的数据。PA7PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7D0WROBFACK当INTE=1时 送往外设数据数据写入端口INTR第7章 微型机接口技术A口方式1输出时相应的联络信号1010A口方式1输出控制字110B口方式1输出控制字PA7PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7D0PB7PB0PC2PC1PC0INTEBPC2与门WR

47、D7D0OBFBACKBINTRBB口方式1输出时相应的联络信号注意: 在方式1下,作为联络信号的外部引脚PC6、PC2,不受C口 按位置位/复位控制字控制,即对这些位的置位/复位不影响 这些引脚信号的输入/输出,而只在8255A内部对INTE信号 起作用。第7章 微型机接口技术PA7PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7D0WROBFACK当INTE=1时 送往外设数据数据写入端口INTR CPU输出数据 CPU发出WR: (1)数据写到 8255A的端口 (2) 使OBF有效,表示输出端口满, 可作为外设的选通信号,通知外设取数据。 外设接受到数据后

48、,发出ACK信号: (1) ACK的下降沿使OBF变高, (2)在主程序中CPU 查询OBF,若其为高电平,数据已取走, 端口可接受新的数据。以查询方式输出数据(不作要求):PA7PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7D0WROBFACK当INTE=1时 送往外设数据数据写入端口INTR注意:方式1输出时共用到C口6个引脚,剩余2个引脚PC4、PC5可做 I/O位,或由C口置 /复位控制字决定其输出。 查询方法向8255的A口输出数据: 方式1的状态信号可通过读取端口C得到 OUTPUT:IN AL,PortC;读方式1状态信号TEST AL,80H ;

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

50、方式2(双向传输) 仅A口有此方式与方式 0/方式 1的单向传送不同,工作在方式 2下的端口,具有双 向传送功能。外设接口总线为双向。端口工作在方式 2时,C口的5根引脚作为端口的联络信号; 是方式1下A口输入、输出联络信号的组合(见下图)。C口未做联络信号的3个引脚,可作为B口在方式1下的联络线, 也可和B口一样工作在方式0。由方式控制字决定其输入/输出。方式2下的时序为方式1输入/输出两者的组合(略)。第7章 微型机接口技术8255中断允许/禁止的设置: 例:A口 INTE=1 PC4=1 (方式1,2)输入 or B口 INTE=1 PC2=1 (方式1) 输入 MOV AL,09H ;

51、PC4=1 OUT 63H,AL ;写入控制口 MOV AL,05H ;PC2=1 OUT 63H,AL ;写入控制口 这时的位操作只影响INTE的状态,而不影响PC4引脚的状态。1001000010100000方式2时端口C状态可通过读端口C得到:由工作方式可以有各种组态第7章 微型机接口技术4. 8255A应用举例例:由8255A的A口输出控制一位共阳极数码管,由C口的PC7PC4输入 四位DIP开关的状态,根据开关的状态值,在数码管上显示字型。 (1)数码管 LED数码管由8个发光二极管组成七段数码和小数点,结构如图。 (2)硬件连接第7章 微型机接口技术(3) 程序8255初始化控制字

52、:88H 8255方式0的应用十六进制到字型码采用软件译码方式。主要程序部分PORTA EQU 60HPORTB EQU 62HPORTC EQU 64HPCTRL EQU 66HSH_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 ; 显示输出 RETDIS ENDP 南京航空航天大学 电子信息工程学院10001000;方便程序中使用第7章

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

54、子程序如下:BUFDB HELLO!DB 0DH,0AH ;回车,换行符的ASCII码NUMEQU $-BUFPRINT PROC FARMOV DX,283H ;8255初始化:均为方式0MOV AL,10001000B ;A口输出,C上半输入/下半输出OUT DX,ALMOV AL,00000001B ;初始PC0即STB=1,使用位控制。OUT DX,ALMOV SI,OFFSET BUFMOV CX,NUMNEXT:MOV DX,282H ;从C口读入数据,查PC7 IN AL,DX ;ALTEST AL,80H ;BUSY=1(忙)?JNZ NEXT 南京航空航天大学 电子信息工程学

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

56、INTE=1时 送往外设数据数据写入端口INTRSTB :数据选通触发脉冲(输入),打印机在其上升沿读入数据。 ACK :应答脉冲(输出),“低”表示数据已被接受、且打印机准备好接收下一数据。常用作打印机的中断申请信号。8255方式1时序与打印机时序并不完全吻合(OBF上升沿需要收到ACK后才有效)!第7章 微型机接口技术PA7PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRD7D0接口电路:端口A作为数据通道,工作在方式1、输出;PC6 自动作为ACK信号输入端;PC3自动作为INTR信号输出端,连接至8259的IRQ2 (中断类型 码0AH,中断向量放在0000:

57、0028H0000:002BH的4个单元中);打印机需要的数据选通信号STB由CPU控制PC0来产生。这时PC7未用,将其悬空。 南京航空航天大学 电子信息工程学院第7章 微型机接口技术 工作过程为: (1)设数据放在输出缓冲区,输出字符时,CPU通过对PC0置1/置0 命令使其输出选通脉冲,在主程序中将数据通过端口A送打印机。 (2)打印机接收并打印字符后,发出ACK应答信号,此信号清除 8255的OBF信号(此处未用),并使8255A产生新的中断请求。 (3)如果CPU的中断是开放的,则响应中断,进入中断服务程序, 再输出一个新的字符。 设8255A端口地址仍为280H283H。程序如下:

58、 IRQ EQU 0AH ; IRQ2 的中断类型码IMR1 EQU 0FBH; IRQ2开中断(与)屏蔽字11111011BIMR2 EQU 04H; IRQ2关中断(或)屏蔽字00000100BBUF DB HELLO! DB 0DH,0AH;回车,换行NUM EQU $BUFBUFPT DW ?;保存打印缓冲区当前指针BUF_N DB NUM;打印字符计数器 : 南京航空航天大学 电子信息工程学院第7章 微型机接口技术PRI_INI PROC FAR ;初始化程序 CLI MOV DX,283H ;8255初始化:A口方式1、输出, MOV AL,10100000B ;B口方式0,C口下

59、半部输出(输出PC0) OUT DX,AL MOV AL,00001101B ;设置PC6=1,允许8255A中断 OUT DX,AL 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 M

60、OV AL,SI;取第一个字符 INC SI;缓冲区指针指向第二个字符 MOV BUFPT,SI;保存缓冲区指针 MOV BUF_N,NUM1;在主程序中打印一个,中断 MOV DX,280H 子程序中打印( NUM1)个。 OUT DX,AL; 送出第一个数据,启动中断服务。 MOV DX,283H MOV AL,00000000B;STB=0 OUT DX,AL NOP MOV AL,00000001B;STB=1 OUT DX,AL RETPRI_INI ENDP HH:HLTJMPHH第7章 微型机接口技术PRI_INT PROC FAR;中断服务子程序 PUSH AX PUSH DX

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论