第7章 可编程接口芯片及应用_第1页
第7章 可编程接口芯片及应用_第2页
第7章 可编程接口芯片及应用_第3页
第7章 可编程接口芯片及应用_第4页
第7章 可编程接口芯片及应用_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

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

文档简介

第七章可编程接口芯片

及通用I/O接口微型计算机原理及应用主编:李继灿清华大学出版社内容提要27.2可编程计数器/定时器8253-57.1接口的分类及功能7.3可编程中断控制器8259A7.4可编程并行接口芯片8255A7.5可编程串行异步通信接口芯片7.6数/模与模/数转换接口芯片7.7新型通用I/O接口3掌握接口的分类与功能。重点掌握8253-5计数方法、电路连接与编程。理解8255A3个端口的特点与差异性。重点掌握方式选择与C口置位/复位两类控制字的设置。重点掌握8255A工作方式0和方式1。重点掌握8259A初始化编程,及内部8个部件功能及其关系。学习要求4第七章可编程接口芯片及应用

可编程接口概述具有输入和输出功能的可编程接口电路,包括输入接口,主要是八位的三态门;输出接口,主要是八位的锁存器;另外还有八位的多路转换开关及控制此开关的寄存器FF。多路转换开关输入接口输出接口寄存器FF总线用户对寄存器FF写入的内容称为命令字或方式控制字。寄存器FF称为命令寄存器,相应的端口称为命令端口或控制端口。对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操作过程.5第七章可编程接口芯片及应用目前常用的可编程芯片有如下几种:8253-5计数器/计时器8259A中断控制器8255A并行I/O接口8250串行I/O接口67.1接口的分类与功能7.1.1接口的分类按接口功能:通用接口和专用接口。通用接口:适用于大部分外设,如行式打印机、电传打字机和键盘等。分为并行接口和串行接口。并行接口:按字节传送的;串行接口:和CPU之间按并行传送,而和外设之间是串行传送的。专用接口:仅适用于某台外设或某种微处理器,用于增强CPU的功能。77.1接口的分类与功能7.1.2接口功能1.缓冲锁存数据通常CPU与外设工作速度不可能完全匹配,在数据传送过程中难免有等待的时候。为此,需要把传输数据暂存在接口的缓冲寄存器或锁存器中,以便缓冲或等待;而且,要为CPU提供有关外设的状态信息。2.地址译码微机系统中,每个外设都被赋予一个相应的地址编码,外设接口电路能进行地址译码,以选择设备。3.传送命令外设与CPU之间有一些联络信号,如外设的中断请求,CPU的响应回答等信号都需要接口来传送。87.1接口的分类与功能7.1.2接口功能4.码制转换

某些通信设备中,信号是以串行方式传输的,而计算机的代码是以并行方式输入输出的,这就需要进行并行码与串行码的互相转换。5.电平转换

一般CPU输入输出的信号都是TTL电平,而外设的信号就不一定是TTL电平。在外设与CPU连接时,要进行电平转换,使CPU与外设的电压(或电流)相匹配。97.2可编程计数器/定时器82537.2.18253-5引脚与功能结构24脚封装的双列直插式芯片。8253124223322421520619718817916101511141213D7CLK0OUT0GATE0GNDOUT1VCCA1CLK2OUT2GATE2CLK1GATE1D6D5D4D3D2D1D0WRRDCSA00#8253D7~D0A0CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2WRRDA1CS1#2#3路定时/计数口;8位数据线;2位片内地址线;3条控制线;2条电源线107.2可编程计数器/定时器82537.2.18253-5引脚与功能结构8253-5引脚的定义如下:D0~D7:数据线。A0、A1:地址线,用于选择3个计数器中的一个及选择控制字寄存器。RD:读控制信号,低电平有效。WR:

写控制信号,低电平有效。CS:

片选端,低电平有效。CLK0~2:计数器0#、1#、2#的时钟输入端。GATE0~2:计数器0#、1#、2#的门控制脉冲输入端,由外部设备送入门控脉冲。OUT0~2:

计数器0#、1#、2#的输出端,由它接至外部设备以控制其启停。117.2可编程计数器/定时器82531.内部结构3个独立结构完全相同的16位计数器和1个8位控制字寄存器。在每个计数器内部包括:计数初值寄存器CR计数执行部件CE输出锁存器OL7.2.28253-5内部结构和寻址方式控制寄存器初始值寄存器计数器计数输出寄存器CLKGATEOUTCSA1A0译码AB时钟由外设来往外设去WRRDDB127.2可编程计数器/定时器82537.2.28253-5内部结构和寻址方式

控制寄存器(写操作)CPU对8253写入控制字,编程改变8253的功能初始值寄存器(读写操作)CPU对8253写入计数初值,使8253获得定时量CPU从初值寄存器中读取初值注:上述两个寄存器可编程注:写控制字时初值寄存器清0137.2可编程计数器/定时器82537.2.28253-5内部结构和寻址方式

计数器为16位计数器,完成减1操作注:解决16位计数器与8位数据线的矛盾计数输出寄存器根据计数状态产生输出波形注:上述2个寄存器不可编程147.2可编程计数器/定时器82532.寻址方式3个计数器和1个控制字寄存器,可通过地址线A0、A1,读写控制线RD、WR与选片CS进行寻址,并实现相应的操作。7.2.28253-5内部结构和寻址方式A1

A0RDWRCS操作00010读计数器0

01010读计数器1

10010读计数器200100写入计数器0

01100写入计数器1

10100写入计数器211100写方式控制字××××1禁止(高阻抗)11010无操作

(高阻抗)××110无操作

(高阻抗)157.2可编程计数器/定时器82537.2.38253-5的6种工作方式D7 D6

D5 D4

D3 D2 D1

D0SC1RL1M1M0M2BCDSC0RL0M2M1M0方式选择000方式0001方式1×10方式2×11方式3100方式4101方式5RL1RL0操作选择00计数器锁存01对低字节读/写10对高字节读/写11先读/写低字节,再读写低字节SC1SC0计数器选择00选计数器001选计数器110选计数器211无效0—二进制计数1—十进制计数167.2可编程计数器/定时器8253例1:

8253工作为计数器0,方式0,初值4,二进制计数,设寄存器地址为40H~43H

控制字

编程MOVAL,10HOUT43H,AL;写计数器0的控制字MOVAL,04HOUT40H,AL;写计数器0的初值0000000110H计数器0读低字节方式0二进制计数177.2可编程计数器/定时器8253例2:

8253工作为计数器1,方式3,初值4020H,十进制计数,设寄存器地址为40H~43H

控制字

编程MOVAL,77HOUT43H,AL;写计数器1的控制字MOVAL,20HOUT41H,AL;写计数器1的低8位初值MOVAL,40HOUT41H,AL;写计数器0的高8位初值0111011177H计数器1读字方式3十进制计数187.2可编程计数器/定时器8253例3:

8253工作为计数器2,方式3,初值4000H,十进制计数,设寄存器地址为40H~43H

控制字

编程MOVAL,0A7HOUT43H,AL;写计数器1的控制字;并清16位初值寄存器MOVAL,40HOUT42H,AL;仅写计数器2的高8位初值11110001A7H197.2可编程计数器/定时器82537.2.38253-5的6种工作方式工作方式的功能

方式0——计数结束产生中断输出(软件控制)方式1——重复触发的单稳态输出(硬件控制)方式2——分频器(软件控制)方式3——方波发生器(软件控制)方式4——选通信号发生器(软件触发)方式5——选通信号发生器(硬件触发)207.2可编程计数器/定时器82537.2.38253-5的6种工作方式工作方式的特点

计数触发特点(CLK)不同工作方式有不同的计数脉冲的触发特点

门控特点(GATE)不同工作方式门控电平方式有所不同

波形输出特点(OUT)不同工作方式会产生不同的输出波形217.2可编程计数器/定时器82537.2.38253-5的6种工作方式1.方式0计数结束,产生中断a、门控制信号GATE必须为1,计数器才能计数;b、计数时通道输出端OUT一直为0;c、通道计数器计数到0后,OUT由0到1,同时计数器停止工作CLKGATE543201OUTCWWRN=5初始低电平22CW=10

n=3

WR

CLK

GATE

OUT

3

2

2

2

1

0

FF

CW=10

WR

CLK

3

2

2

2

1

0

FF

方式0时GATE信号的作用GATE为低电平,暂停计数;当GATE重新为高电平时又恢复计数。7.2可编程计数器/定时器825323方式0时计数过程中改变计数值新的初值立即有效

7.2可编程计数器/定时器8253247.2可编程计数器/定时器82537.2.38253-5的6种工作方式2.方式1可编程单稳触发器a、门控制信号GATE是触发信号,上升沿有效;b、触发后,通道计数器开始计数,输出端OUT由高变低;c、计数器计数到0,OUT再由低变高。12120CLKGATEOUTWRCWN=2初始高电平25方式1时GATE信号的作用LSB=3WRCLK321321CW=120GATEOUT终止原来的计数过程,开始新一轮计数

26图10.5(c)方式1时计数过程中改变计数值LSB=2

WR

CLK

GATE

OUT

4

2

1

0

FF

3

FE

CW=12

LSB=4

LSB=2

WR

CLK

GATE

OUT

4

2

1

0

FF

3

FE

CW=12

LSB=4

新的初值下轮计数有效

277.2可编程计数器/定时器82537.2.38253-5的6种工作方式3.方式2分频器(也称分频脉冲产生器)a、GATE门为1,计数器才能工作,对CLK端上的脉冲进行计数;b、当计数器“减”计数到1时,OUT由高变低,在经过一个CLK周期,即计数器计数到0时,OUT有跳变为高,方式2输出周期性负脉冲信号,其宽度固定为一个CLK周期;c、当计数器的值减为0时,自动重新装入计数初值,实现循环计数。287.2可编程计数器/定时器8253CLKGATEOUTWRCWN=3TOUT=N*TCLK1321233方式2的波形3.方式2分频器(也称分频脉冲产生器)初始高电平29方式2时GATE信号的作用GATE信号为低电平终止计数,而恢复为高电平后的第一个时钟下降沿重新从初值计数。由此可见,GATE一直维持高电平时,计数器方能作为一个N分频器。

7.2可编程计数器/定时器8253304

CW=14

LSB=5WR

CLK

GATE

OUT

3

2

1

4

5

3

4

CW=14

LSB=4LSB=5WR

CLK

GATE

OUT

3

2

1

4

5

3

方式2时计数过程中改变计数值新的初值下次有效7.2可编程计数器/定时器8253317.2可编程计数器/定时器82537.2.38253-5的6种工作方式4.方式3方波频率发生器方式2虽然可以作分频电路,但其输出是窄脉冲,如果是方波,就只有选方式32143342CLKGATEOUTWRCWN=4TOUT=N*TCLK初始低电平方波宽度=n/232方式3计数值为奇数时的波形计数减到(N+1)/2以后,输出端OUT变为低电平

近似方波高电平宽度=(n+1)/2低电平宽度=(n-1)/27.2可编程计数器/定时器825333方式3GATE信号的作用计数器重新装入初值并重新开始计数7.2可编程计数器/定时器825334方式3计数过程中改变计数值若GATE一直维持高电平,在计数结束后的下一计数周期开始新的计数

;若写入新的初值后,遇到门控信号的上升沿,则终止现行计数过程,从下一个时钟下降沿开始按新的初值进行计数。7.2可编程计数器/定时器8253357.2可编程计数器/定时器82537.2.38253-5的6种工作方式5.方式4软件触发选通脉冲a、门控信号GATE为高电平,计数器开始减1计数,OUT维持高电平;b、当计数器减到0,输出端OUT变低,再经过一个CLK输入时钟周期,OUT输出又变高。21034CLKGATEOUTWRCWN=4初始高电平方式4GATE信号的作用GATE=1,允许计数;GATE信号变低,禁止计数,输出维持当时的电平,直到GATE变成高电平后继续计数,从OUT端输出一个负脉冲。7.2可编程计数器/定时器8253方式4计数过程中改变计数值新值是立即有效的387.2可编程计数器/定时器82537.2.38253-5的6种工作方式6.方式5硬件触发选通脉冲同方式4很相似,当控制字写入控制寄存器后,OUT变高.同方式4不同的一点是当计数值写入通道计数器后,通道并未触发,也就是计数器并不立即开始计数,只有当GATE信号为上升沿触发通道后,通道计数器才开始计数04312CLKGATEOUTWRCWN=4方式5时GATE信号的作用门控信号上升沿任何时候到来都会立即触发一个计数过程

7.2可编程计数器/定时器8253方式5时计数过程中改变计数值新的计数初值在下一个门控信号上升沿触发后有效。7.2可编程计数器/定时器8253417.2可编程计数器/定时器82537.2.38253应用举例用8253产生A/D转换器的启动控制信号。

计数器工作模式计数值0#1#2#213MNL

采样时间=L*N/F采样频率=F/MMNLCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2计数值时钟器+5V频率F启动转换427.2可编程计数器/定时器8253

计数器工作模式计数值0#1#2#213MNL

采样时间=L*N/F采样频率=F/M计数器1和2串联工作,门控制信号由开关提供CLK2=FOUT2=F/LCLK1=OUT2=F/LOUT1=F/(L*N)T=(L*N)/F计数器0的门控制信号由OUT1提供,时间是(L*N)/FCLK0=FOUT0=F/M输出负脉冲,经过反相后变成正脉冲,启动A/D转换器如果F=10KHz,要求采样时间5秒,采样频率100HZ,则M=F/100=100N*L=5*10K=50K,选N=50K,L=1000假设端口地址是0C0H~0C3H43程序如下:MOVAL,00010100B;计数器0,写低字节,工作方式2,二进制计数OUT0C3H,AL;控制端口地址C3HMOVAL,100;计数值M=100OUT0C0H,AL;计数器0,地址为C0HMOVAL,01010010B;计数器1,写低字节,工作方式1,二进制计数OUT0C3H,AL;控制端口地址C3HMOVAL,50;计数值N=50OUT0C1H,AL;计数器1,地址为C1HMOVAL,10110111B;计数器2,先写低,后写高,工作方式3,十进制计数OUT0C3H,AL;控制端口地址C3HMOVAL,1000;计数值L=1000OUT0C2H,AL;先写低字节MOVAL,AHOUT0C2H,AL;再写高字节7.2可编程计数器/定时器8253447.3可编程中断控制器8259A

芯片特点

可编写程序控制芯片的多项功能

可提供多中断源的中断类型码

中断源有多种触发方式

可屏蔽/允许输入输出的中断源采用NMOS工艺制造,只需要一组5V电源使用形式

单片方式——可提供8个中断源

级联方式——最多可提供64个中断源(9片)注:中断源数量与芯片数量间的关系458259A的工作方式普通全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断方式中断屏蔽方式普通屏蔽方式特殊屏蔽方式中断触发方式边沿触发方式电平触发方式数据线连接方式缓冲方式非缓冲方式与CPU配合方式与8080/8085CPU配合与8086/8088CPU配合级连方式级连不级连46设置优先权方式普通全嵌套方式——8259A的中断优先权顺序固定不变,从高到低依次为: IR0、IR1、IR2、……IR7中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,直到中断结束(ISR的Di位复位)在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套特殊全嵌套方式——允许同级中断嵌套(用于级连主片)优先权自动循环方式——最高优先权自动转移到相邻的低优先级中断源(P244),如IR3被响应后,IR3最低,IR4最高。优先权特殊循环方式——优先权由OCW2设置哪个IR最低,其他的随之确定。47

结束中断处理方式

在中断请求得到响应时,ISR中相应位置1,中断服务结束时,必须使这个位复位为0以标识中断处理结束。这个中断结束是指8259结束中断,而不是CPU结束执行中断服务程序。⑵非自动中断结束方式

①普通中断结束方式(EOI)

——适用于全嵌套方式

当8259A工作在全嵌套方式时,则当前服务过的中断源就是中断优先权最高的源,可以用非特殊(普通)的EOI使它在ISR中的相应位清0。

这个命令加在中断服务程序的末尾处。⑴自动中断结束方式(AEOI)——只能用于不要求中断嵌套的情况在第二个INTA的后沿,8259A自动把ISR的对应位清0。用于系统中只有一片8259A,多个中断不会嵌套的情形。系统一进入中断处理,就将当前中断服务寄存器ISR的对应位清除。对8259A来说,好像已经结束了当前中断。在命令字ICW4中将AEOI(D1)位置“1”。48

不管是普通、还是特殊的中断结束方式,级联系统中的中断结束必须发送两次EOI:一次给从片,一次给主片。(向从片发EOI后,须检查从片中的所有申请中断的源是否全服务过。只有都服务过了,才能向主8259送另一个EOI命令)。②特殊结束中断方式——非全嵌套方式下

当8259A工作在非全嵌套模式时,8259A可能不能确定刚服务的源的等级,需要用特殊的EOI命令,指出要清除哪个ISR位。49

屏蔽中断源方式

——

通过IMR编程可允许或禁止中断⑴普通屏蔽方式

通过命令字OCW1设置IMR某位或某几位为1,则屏蔽其中断请求。置0则允许该级中断。⑵特殊屏蔽方式——用于开放较低级中断请求

在8259中,当一个中断请求被响应时,ISR对应位置1。在该位未复位时,8259A会禁止所有优先级比它低的中断。

用特殊屏蔽方式可以做到:

①屏蔽当前中断级(IMR对应位为1);

②ISR中相应位复位,则较本级低的中断源申请可以得到响应。50数据线连接方式缓冲方式对8259A的数据线(输出中断向量)加缓冲器予以隔离和驱动SP/EN引脚作为输出端,输出允许信号,用以关闭或开启缓冲器非缓冲方式SP/EN引脚作为输入端在8259A级连时,用它选择该芯片充当主片或从片51CAS0IR0CAS1IR1CAS2IR2

IR3INTAIR4IR5INTIR6IR7SP/EN

CAS0INTA

CAS1

CAS2INT

IR0

IR1SP/ENIR7CAS0IR0CAS1IR1CAS2IR2IR3INTAIR4IR5INTIR6IR7SP/ENINTAINTR+5V8259级联工作示意图8259A的级连输出得到响应的从片编号527.3可编程中断控制器8259A7.3.18259A引脚及功能结构28DIP封装

8个中断源输入

8位数据线1片内地址线3条控制线

4条级联线2条中断请求响应线2条电源线8259AD7~D0A0IRQ0~IRQ7INTCAS0SP/ENWRRDINTACSCAS1CAS2537.3可编程中断控制器8259A7.3.18259A引脚及功能结构

与中断源有关(14个)

IR0~IR7——外部中断源输入引脚。INT——中断请求输出引脚

连至CPU的INTR端INTA——中断响应输入引脚

接CPU的INTA端CAS0~CAS2——3根级联选择线SP/EN——级联控制线547.3可编程中断控制器8259A7.3.18259A引脚及功能结构

与CPU有关(12个)

D0~D7——8位数据传送线。

CPU将控制字经数据线传给8259控制字寄存器外部中断源IR0~IR7状态经数据线传给CPU8259内部寄存器与CPU的数据传送RD、WR——读/写控制线

CS——片选控制线

CS=L时,8259片选有效CS由译码电路产生A0——片内地址线

一线两址,选定8259内部寄存器A0、CS构成8259内部寄存器地址557.3可编程中断控制器8259A7.3.28259A内部结构框图和中断工作过程8259A中断控制器包括8个主要功能部件。D7~D0INTAINT中断请求寄存器中断屏蔽寄存器数据总线缓冲器IR0IR7读/写逻辑级联缓冲器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别器中断服务寄存器控制逻辑567.3可编程中断控制器8259A7.3.2内部结构框图和中断工作过程1.数据总线缓冲器三态双向,通过引脚D0~D7与CPU的数据总线连接。用于传送CPU发至8259的各种命令控制字、8259发至CPU的个种状态信息,以及中断响应期间8259向CPU提供的中断类型号。2.读/写逻辑用于接收来自CPU的读/写控制信号、片选控制信号及内部端口选择信息。577.3可编程中断控制器8259A7.3.2内部结构框图和中断工作过程3.级联缓冲器/比较器为8259A提供级联控制信号CAS0~CAS2与双向功能号SP/EN,以满足8259A在缓冲工作与主从工作方式下的功能需要。4.控制逻辑根据CPU对8259编程设定的工作方式产生内部控制信号,并在适当的时候向CPU发出中断请求信号INT,以及将来自CPU的中断响应信号转换为内部所需的各种控制信号。587.3可编程中断控制器8259A7.3.2内部结构框图和中断工作过程5.8位中断请求寄存器IRR用于接收并保存来自IR0~IR7上的外设中断请求。6.8位中断服务寄存器ISR用于记录当前CPU正在处理的中断请求位。如有中断嵌套,则该寄存器可能有多个位被同时置位。597.3可编程中断控制器8259A7.3.2内部结构框图和中断工作过程7.8位中断屏蔽寄存器IMR用于屏蔽已被锁存在IRR中的任何一个中断请求级,对所有要屏蔽的中断请求线,将相应的位置“1”即可8.优先级判别器PR用于确定IRR中所有未被屏蔽的总断请求位的优先级。在CPU发出第一个负脉冲时,将具有最高优先级的申请位存入服务状态寄存器ISR中相应的位置。若出现多级中断,PR还负责将IRR中优先级和ISR中正在服务的中断的优先级作比较,以确定是否向CPU发出中断请求。607.3可编程中断控制器8259A7.3.2内部结构框图和中断工作过程(1)初始化工作方式8259初始化是由CPU发送2~4个初始化命令字ICW来实现的。(2)接收外设中断请求初始化后8259进入正常工作状态。当外部中断源通过IRn引脚向8259发出有效的中断请求时,8259会自动将其内部中断请求寄存器IRR的相应位置1以记录并保持外设的中断请求。(3)中断屏蔽判断中断请求寄存器IRR中的被置位与中断屏蔽寄存器IMR的相应位比较,如果没有被屏蔽,信号被送入优先级分析器617.3可编程中断控制器8259A7.3.2内部结构框图和中断工作过程(4)中断判优中断请求进入优先权分析器PR后,PR将其中的最高优先权与服务状态寄存器ISR中正在处理的中断优先权比较以确定是否通过INT脚向CPU送出中断请求信号。(5)中断响应CPU在接收到8259的中断请求信号后,如果CPU内的中断允许标志IF=1,则在当前指令执行完后进入中断响应周期。627.3可编程中断控制器8259A7.3.2内部结构框图和中断工作过程CPU在中断响应周期中向8259回送两个负脉冲。8259的控制逻辑在接收到第一个负脉冲后完成下列任务:禁止IRR不再受IR7~IR0信号的再次变化的影响(直到第二个结束);将优先权处理器PR确定的最高优先级的中断请求信号存入服务状态寄存器ISR;将中断请求寄存器IRR相应位复位。8259的控制逻辑在接收到第二个负脉冲后,将寄存器ICW2的当前内容通过数据总线D0~D7送至CPU。637.3可编程中断控制器8259A7.3.2内部结构框图和中断工作过程(6)中断结束如果8259初始化为中断自动结束方式,即ICW4的AEOI=1,在第二个负脉冲结束时,ISR中的被第一个负脉冲置位的位即被复位。如果8259初始化为非自动结束中断方式,即ICW4的AEOI=0,则等到中断结束命令送到OCW2后,才清除ISR中的相应位,表明中断服务程序结束。647.3可编程中断控制器8259A7.3.38259A的控制字格式8259A的强大中断处理功能和各种灵活的工作方式,都是通过编程来设置的,具体地说,是对8259A内部有关寄存器写入控制命令字来实现控制的。①初始化命令字ICW(InitializationCommandWord):ICW1~ICW4,必须在初始化时分别写入4个相应的寄存器。一旦写入,一般在系统运行过程中就不再改变。②操作命令字OCW(OperationCommandWord):也称工作方式命令字OCW1~OCW3,必须在设置初始化命令后方能分别写入3个相应的寄存器。用来对中断处理过程进行动态的操作与控制。一个系统运行过程中,操作命令字可以被多次设置。657.3可编程中断控制器8259A7.3.38259A的控制字格式

若要使用8259必须按规定向其写入初始化命令字ICW1~ICW4使8259进入工作状态注:一般由系统程序完成

若要改变8259的功能可随时向其写入操作命令字OCW1~OCW3使8259按要求工作注:一般由应用程序完成667.3可编程中断控制器8259A7.3.38259A的控制字格式8259A的端口地址讨论

8259实际端口地址

一线二址,址1:A0=0;址2:A0=1;

8259应操作的端口

4个初始化命令字的写操作3个操作命令字的写操作3个寄存器IRR、ISR、IMR的读操作1个中断类型号的读操作注:2个地址怎样完成11个读写操作?677.3可编程中断控制器8259A7.3.38259A的控制字格式8259A的端口地址讨论A0RDWRCS对应的读/写操作0010读IRR、ISR、中断状态查询码1010读IMR0100写OCW2、OCW3、ICW11100写OCW1、ICW2、ICW3、ICW4×110无操作,数据线呈高阻态×××1无操作,数据线呈高阻态687.3可编程中断控制器8259A7.3.38259A的控制字格式8259A的端口地址讨论A0=0读操作—IRR、ISR、中断类型号→CPU注:解决1址3读问题,用位控制定义读入方法A0=1读操作—仅IMR→CPUA0=0写操作—CPU→ICW1、OCW2、OCW3注:解决1址3写问题,用位识别写入法A0=1写操作—CPU→ICW2、ICW3、ICW4、OCW1注:解决1址4写问题,用同址顺序写入法697.3可编程中断控制器8259A7.3.38259A的控制字格式1.8259A初始化命令字写ICW1A0=0,D4=1写ICW2A0=1级联吗?

IC4=1写ICW3A0=1写ICW4A0=1否是是否ICW1、ICW2为必写初始化命令字ICW3、ICW4为选写初始化命令字ICW2、ICW3、ICW4采用同址顺序写入法

注:ICW1的地址不同准备好接收中断707.3可编程中断控制器8259A7.3.38259A的控制字格式1.8259A初始化命令字①ICW1——芯片控制初始化命令字A0D7D6D5D4D3D2D1D00×××1LTIM×SNGLIC41=需要设置ICW40=不需要设置ICW41=单片0=级联1=电平触发0=边沿触发同址识别位717.3可编程中断控制器8259A7.3.38259A的控制字格式1.8259A初始化命令字②ICW2——中断类型号初始化命令字A0D7D6D5D4D3D2D1D01A15A14A13A12A11A10A9A8D2~D0—IR0~IR7的编码注:中断类型号的低3位(IR0为000、IR1为001、……、IR7为111)D7~D3—中断类型号的高5位注:中断类型号的高5位由用户编程定义中断类型号的低3位自动产生,保证IR0~IR7连续727.3可编程中断控制器8259A7.3.38259A的控制字格式1.8259A初始化命令字③ICW3——主/从8259A初始化命令字A0D7D6D5D4D3D2D1D01S7S6S5S4S3S2S1S0若D0~D7为1,则IR0~IR7对应端接有从8259芯片若D0~D7为0,则IR0~IR7对应端未接从8259芯片主8259中的ICW3的位定义737.3可编程中断控制器8259A7.3.38259A的控制字格式1.8259A初始化命令字③ICW3——主/从8259A初始化命令字A0D7D6D5D4D3D2D1D0100000ID2ID1ID0D2~D0从8259A的INT端接主8259的IRn端的编码,D7~D3未用例如:011表示从8259A连到8259A的IR3.从8259中ICW3的位定义747.3可编程中断控制器8259A7.3.38259A的控制字格式1.8259A初始化命令字④ICW4——中断结束方式初始化命令字A0D7D6D5D4D3D2D1D01000SFNMBUFM/SAEOIμPM1=自动复位ISR0=正常中断结束非缓冲方式时:1=主8259A,0=从8259A1=缓冲方式0=非缓冲方式1=8086/8088配置0=8080/8085配置1=特殊的全嵌套方式0=非特殊的全嵌套方式识别码757.3可编程中断控制器8259A7.3.38259A的控制字格式ICW1→ICW2→(ICW3)→(ICW4)ICW2、ICW3、ICW4为同址顺序写入法2.8259A操作命令字

ICW按顺序写入(先写)OCW1、OCW2、OCW3无写入顺序OCW2、OCW3为同址位识别写入法

OCW按需要写入(后写)767.3可编程中断控制器8259A7.3.38259A的控制字格式①OCW1——写IMR寄存器操作命令字A0D7D6D5D4D3D2D1D01M7M6M5M4M3M2M1M0M7~M0对应于IMR各位:Mi=1表示该位中断被屏蔽Mi=0表示该位允许中断2.8259A操作命令字777.3可编程中断控制器8259A7.3.38259A的控制字格式②OCW2——优先级循环方式和中断结束方式操作命令字A0D7D6D5D4D3D2D1D00RSLEOI00L2L1L02.8259A操作命令字1=特殊中断结束,L2~L0有效0=一般中断结束,L2~L0无效1=优先级自动循环方式0=优先级非自动循环方式特殊中断结束命令时,指出具体要清除ISR中哪一位;特殊优先级循环方式命令时,指出循环开始时哪个中断优先级最低1=使当前ISR中的对应位复位787.3可编程中断控制器8259A7.3.38259A的控制字格式③OCW3——多功能操作命令字A0D7D6D5D4D3D2D1D000ESMMSMM01PRRRIS2.8259A操作命令字11,特殊屏蔽方式工作,优先级不起作用10,恢复原优先级工作方式1=8259A设置成中断查询工作方式0=允许读IRR或ISR10:读IRR11:读ISR797.3可编程中断控制器8259A7.3.48259A应用举例在IBMPC/XT机中,只用1片8259A中断控制器,用来提供8级中断请求,其中IR0优先级最高,IR7优先级最低。它们分别用于日历时钟中断、键盘中断、保留、网络通信、异步通信中断、硬盘中断、软盘中断及打印机中断。8259A片选地址为20H、21H。807.3可编程中断控制器8259A7.3.48259A应用举例1.初始化8259A使用步骤如下MOVAL,

00010011B;写ICW1,单片,边沿触发,要ICW4OUT20H,ALMOVAL,00001000B

;写ICW2,中断类型号从8开始OUT21H,ALMOVAL,00001101H;写ICW4,缓冲工作方式,8088/8086配置OUT21H,ALMOVAL,0;写OCW1,允许IR0~IR7全部8级中断请求OUT21H,AL81例如,异步通信中断IR4,其中断向量类型号为8+4=12(0CH),则中断入口地址的偏移量(IP值)与段地址(CS)在入口地址表中的存放地址为12×4=48(30H),49(31H),50(32H),51(33H)。其中30H、31H存放指令指针IP;32H,33H存放指令段码CS。7.3可编程中断控制器8259A7.3.48259A应用举例2.送中断向量入口地址82由于8259A采用中断工作方式,且ICW4中的D1位(即AEOI)为0,这意味着采用正常结束中断,因此,在中断子程序结束前必须发EOI命令和IRET命令。MOVAL,00100000H;写OCW2命令,使ISR相应位复位(即发EOI命令)。OUT20H,ALIRET;开放中断允许,并从中断返回7.3可编程中断控制器8259A7.3.48259A应用举例3.中断子程序结束83为了使中断嵌套,即在中断响应过程中,允许比本中断优先级高的中断进入,只要在进入中断处理程序后,执行开中断指令STI即可达到此目的。7.3可编程中断控制器8259A7.3.48259A应用举例4.中断嵌套847.4可编程并行接口8255A7.4.18255A芯片引脚定义与功能8255A123456789PA3GNDPA4VCCPA1PA0RDCSA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA210111213141516171819202524232221262728293031323334353738394036PA5PA6PA7RESETD0D1D2D3D4D5D6PB7PB6PB5PB4PB3D7WRA组8255AA口A0RESET848C口C口B口PA7~PA0D7~D0PC7~PC4PC3~PC04PB7~PB0B组WRRDA1CS

40DIP封装

8位A、B、C口

8位数据线

2位片内地址线

4条控制线、2条电源线857.4可编程并行接口8255A7.4.18255A芯片引脚定义与功能D0

D7:数据线,三态双向8位缓冲器。A0

A1:地址线,用于选择端口。RD:读控制线,低有效。WR:写控制线,低有效。CS:片选端,低有效。RESET:复位信号,高电平有效。A口:8位数据输入锁存器和8位数据输出锁存器/缓冲器。B口:8位数据输入缓冲器和8位数据输出锁存器/缓冲器。C口:8位数据输入缓冲器和8位数据输出锁存器/缓冲器。867.4可编程并行接口8255A7.4.28255A内部结构框图控制字寄存器B组控制部件内部DB(8)数据总线缓冲器读/写控制逻辑RESETA0A组端口A(8)A组端口C(高4位)B组端口C(低4位)B组端口B(8)A组控制部件PA7~PA0PC7~PC4PC3~PC0PB7~PB0D7~D0CSA1RDWR877.4可编程并行接口8255A7.4.28255A内部结构框图3个8位数据端口A、B、C各有不同特点,可分别作为输入端口或输出端口。A口与B口常常作为独立的输入端口或者输出端口,C口则配合A口和B口工作。C口常常通过控制命令分成为2个4位端口,每个4位端口包含1个4位的输入缓冲器和1个4位的输出锁存器/缓冲器,分别用来为A口和B口输出控制信号和输入状态信号。1.数据端口A、B、C887.4可编程并行接口8255A7.4.28255A内部结构框图两个功能:一是接收来自芯片内部数据总线上的控制字;二是接收来自读写控制逻辑电路的读/写命令,以此来决定两组端口的工作方式和读/写操作。2.A组控制和B组控制部件897.4可编程并行接口8255A7.4.28255A内部结构框图管理8255A的数据传输过程:接收CS及来自地址总线的信号A1、A0和控制总线的信号RESET、WR、RD将它们组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令送给这两个部件,再由它们完成对数据、状态信息和控制信息的传输。3.读/写控制逻辑电路907.4可编程并行接口8255A7.4.28255A内部结构框图双向三态的8位数据缓冲器,8255A正是通过它与系统数据总线相连。输入数据、输出数据、CPU发给8255A的控制字都是通过该部件传递的。4.数据总线缓冲器917.4可编程并行接口8255A7.4.38255A寻址方式8255A内部有3个I/O端口和一个控制字端口,通过地址线A0、A1,读写控制线RD、WR与片选端CS进行寻址并实现相应的操作。A1

A0RDWRCS操作00010读端口A01010读端口B10010读端口C

00100写端口A

01100写端口B10100写端口C11100写控制寄存器××××1无操作

(高阻抗)××110无操作

(高阻抗)11010非法操作927.4可编程并行接口8255A7.4.48255A的3种工作方式方式0——基本输入/输出工作方式;方式1——选通输入/输出工作方式;方式2——双向传送方式。当8255A接收到写控制口的控制字时,对D7位标志位进行测试。937.4可编程并行接口8255A若D7=1,方式选择字。

方式控制字的特征位D7A口工作方式00—方式001—方式11×—方式21D6D5D4D3D2D1D0A口输入/输出1—输入0—输出PC7~PC4输入/输出1—输入0—输出B口工作方式0—方式01—方式1B口输入/输出1—输入0—输出PC3~PC0输入/输出1—输入0—输出947.4可编程并行接口8255A若D7=0,C口的置1/置0控制字。无关D70×××D6D5D4D3D2D1D0C口按位置位/复位控制字的特征位选择位置位/复位1—置位0—复位编码选择位000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7957.4可编程并行接口8255AC端口的位选择编码D3D2D1编码D0

温馨提示

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

评论

0/150

提交评论