1、本章主要内容本章主要内容可编程并行接口可编程并行接口82551可编程串行通信接口可编程串行通信接口82512可编程定时计数器可编程定时计数器82533 定时信号,可以用软件和硬件两种方法获得,使用软件定时信号,可以用软件和硬件两种方法获得,使用软件方法可以省去外围硬件电路,但要用指令执行时间来拼凑方法可以省去外围硬件电路,但要用指令执行时间来拼凑延时时间,降低了延时时间,降低了CPUCPU的效率且精度不高。另外对外界的的效率且精度不高。另外对外界的某些信号进行计数,也是计算机系统的重要应用之一,计某些信号进行计数,也是计算机系统的重要应用之一,计算机既要能控制计数的过程,又能读取计数的结果作为
2、控算机既要能控制计数的过程,又能读取计数的结果作为控制或管理的依据,因此计数电路也成为计算机输入制或管理的依据,因此计数电路也成为计算机输入/输出输出接口中的一种类型。若被计数的信号有准确的固定周期,接口中的一种类型。若被计数的信号有准确的固定周期,这种计数电路也就成为一种定时方式。这种计数电路也就成为一种定时方式。一、概述一、概述7.1 可编程定时计数器可编程定时计数器8253二、定时计数器的工作原理二、定时计数器的工作原理 可编程定时计数器的功能体现在两个方面:定时和计数。可编程定时计数器的功能体现在两个方面:定时和计数。做计数器时,在设置好计数初值后,便开始减做计数器时,在设置好计数初值
3、后,便开始减 1 计数,减计数,减为为“0”时,输出一个计数结束信号。做定时器时,先根据时,输出一个计数结束信号。做定时器时,先根据定时长度设置计数初值,之后开始减定时长度设置计数初值,之后开始减 1 计数,减为计数,减为“0”时,时,自动产生定时输出信号。自动产生定时输出信号。计数初始值计数初始值=时钟频率时钟频率*定时长度定时长度 从定时计数器内部来讲,两种情况下的工作过程没有根从定时计数器内部来讲,两种情况下的工作过程没有根本差别,都是基于计数器的减本差别,都是基于计数器的减 1 计数模式。计数模式。定时长度定时长度=时钟周期时钟周期*计数初始值计数初始值三、定时计数器的原理框图三、定时
4、计数器的原理框图控制寄存器控制寄存器初始值寄存器初始值寄存器计数输出寄存器计数输出寄存器计数器计数器 CLKGATEOUTA0CSRDWR译码译码。数据数据地址地址825312D7D63D54D45D36D27D18D02223RDWRCSA0A1192021241291110CLK0GATE0OUT0151413CLK1GATE1OUT1181617CLK2GATE2OUT2地地VCCCLK02:每个计数器的时:每个计数器的时钟输入端,计数器对此信号钟输入端,计数器对此信号进行计数。进行计数。GATE02:门控信号,用:门控信号,用来控制计数器的工作。有来控制计数器的工作。有电平触发和边沿触
5、发两种电平触发和边沿触发两种方式。方式。OUT02:计数器的输出信:计数器的输出信号,用来产生不同方式工作号,用来产生不同方式工作时的输出波形。时的输出波形。1 1、外部引脚和内部结构、外部引脚和内部结构四、可编程定时计数器四、可编程定时计数器82538253数数 据据总总 线线缓冲器缓冲器RDWRCSA0A1读读/写写控制控制控控 制制寄存器寄存器计数器计数器0CLK0GATE0OUT0计数器计数器1CLK1GATE1OUT1计数器计数器2CLK2GATE2OUT2片内总线片内总线D0D78253内部结构内部结构2 2、82538253的工作方式的工作方式 8253内部三个计数器都可以由控制
6、寄存器决定内部三个计数器都可以由控制寄存器决定有有6种不同的工作方式,不同的工作方式之间,主种不同的工作方式,不同的工作方式之间,主要有以下几点不同:要有以下几点不同:1、计数过程的启动方式;、计数过程的启动方式;2、OUT端的输出波形;端的输出波形;3、更新计数初值的影响;、更新计数初值的影响;4、自动重复功能;、自动重复功能;5、GATE的控制作用。的控制作用。方式方式0 计数结束产生中断计数结束产生中断 此方式下,写入控制字后,输出端此方式下,写入控制字后,输出端OUT以低电平作为初以低电平作为初始电平,并一直保持,在计数值到达始电平,并一直保持,在计数值到达0时变为高电平,直到时变为高
7、电平,直到写入新的计数值。写入新的计数值。(1)GATE:计数过程受:计数过程受GATE控制。当控制。当GATE=1时,允许计数;当时,允许计数;当GATE=0时,禁止计数,此时输出端时,禁止计数,此时输出端OUT保持不变。保持不变。(2)不重复:方式)不重复:方式0,每赋一次初值,只计数一个周期。,每赋一次初值,只计数一个周期。(3)写新值:可随时写入新值,并按新值重新计数。)写新值:可随时写入新值,并按新值重新计数。特点:特点:2 2、82538253的工作方式的工作方式(软件启动)(软件启动)方式方式1 单稳态触发器单稳态触发器(硬件启动)(硬件启动)写入控制字后,写入控制字后,OUT即
8、为高电平作为起始电平,写入计数初值后,即为高电平作为起始电平,写入计数初值后,要等要等GATE上升沿才启动计数,同时上升沿才启动计数,同时OUT变为低电平,直到计数器减变为低电平,直到计数器减到到0后变为高电平,直到下一次后变为高电平,直到下一次GATE上升沿的到来。上升沿的到来。(1)GATE:为计数触发信号,上升沿启动计数,启动后:为计数触发信号,上升沿启动计数,启动后GATE变变为低电平不影响计数。当为低电平不影响计数。当OUT为低电平时,再次产生为低电平时,再次产生GATE上升沿,上升沿,则计数器重新开始计数,则计数器重新开始计数,OUT维持低电平,直到计数值为维持低电平,直到计数值为
9、“0”。(2)写新值:在计数过程中写入新初值,对当前输出无影响。直到)写新值:在计数过程中写入新初值,对当前输出无影响。直到下次下次GATE上升沿到来,则按新初始值计数。上升沿到来,则按新初始值计数。特点:特点:2 2、82538253的工作方式的工作方式方式方式2 2 频率发生器频率发生器 此方式下,当此方式下,当GATE=1,则由写入计数初值来启动;若送初值时,则由写入计数初值来启动;若送初值时GATE=0,则要等,则要等GATE由低变高才启动计数。计数开始后,减到由低变高才启动计数。计数开始后,减到“1”时,时,OUT端输出一个时钟周期宽的负脉冲。并开始一个新的计端输出一个时钟周期宽的负
10、脉冲。并开始一个新的计数过程。数过程。(1)GATE:计数中,:计数中,GATE应保持高电平。若应保持高电平。若GATE=0,则计数中止,则计数中止,在在GATE再变高后,计数器又被置入初值重新计数。再变高后,计数器又被置入初值重新计数。(2)写新值:改变初值不影响本次计数。在下一个输出周期中,将按)写新值:改变初值不影响本次计数。在下一个输出周期中,将按新的计数值进行计数。新的计数值进行计数。特点:特点:(两种启动,能自动重复)(两种启动,能自动重复)2 2、82538253的工作方式的工作方式重复周期重复周期方式方式3 3 方波发生器方波发生器(两种启动,能自动重复)(两种启动,能自动重复
11、)和方式和方式2类似,但输出为方波或基本对称的矩形波,输入控制字后,类似,但输出为方波或基本对称的矩形波,输入控制字后,OUT输出高电平,写入初始值后,开始减输出高电平,写入初始值后,开始减1计数,计数到一半时,计数,计数到一半时,OUT变为低电平,记数完成后又变为高电平。计数脉冲初值变为低电平,记数完成后又变为高电平。计数脉冲初值N为偶数为偶数时,是完全对称的方波;为奇数时,前(时,是完全对称的方波;为奇数时,前(N+1)/2计数过程中,计数过程中,OUT为高电平,后(为高电平,后(N1)/2期间,期间,OUT为低电平。为低电平。(1)GATE:计数过程中,:计数过程中,GATE始终为始终为
12、1;若;若GATE=0,则终止计数且,则终止计数且OUT端马上变高,待恢复端马上变高,待恢复GATE=1时,产生硬件启动,立即启动新值。时,产生硬件启动,立即启动新值。(2)写新值:计数过程中写新值,不影响当前半周期计数,在当前半周)写新值:计数过程中写新值,不影响当前半周期计数,在当前半周期结束时启用新初值。期结束时启用新初值。特点:特点:2 2、82538253的工作方式的工作方式方式方式4 4 软件触发选通软件触发选通(软件启动,不自动重复)(软件启动,不自动重复)写入控制字后,写入控制字后,OUT变高,一旦装入计数初值,立即开始计数。计变高,一旦装入计数初值,立即开始计数。计数结束时,
13、数结束时,OUT端输出宽度为一个时钟周期的负脉冲。此信号一般用端输出宽度为一个时钟周期的负脉冲。此信号一般用作选通信号。作选通信号。(1)GATE:计数开始不受:计数开始不受GATE影响。计数过程中,影响。计数过程中,GATE应始终应始终为为1,若为,若为0,则终止计数。,则终止计数。(2)写新值:若在计数过程中改变初值,则按新值计数。)写新值:若在计数过程中改变初值,则按新值计数。方式方式5 5 硬件触发选通硬件触发选通(硬件启动,不自动重复)(硬件启动,不自动重复)写入控制字后,写入控制字后,OUT变高。变高。由由GATE的上升沿使计数开始。当计数的上升沿使计数开始。当计数结束时,由结束时
14、,由OUT端输出宽度为一个时钟周期的负脉冲。端输出宽度为一个时钟周期的负脉冲。2 2、82538253的工作方式的工作方式2 2、82538253的工作方式的工作方式1、输出波形:、输出波形:方式方式0写入控制字后输出低电平,直到计数写入控制字后输出低电平,直到计数结束。其余方式下,写入控制字后输出高电平。方式结束。其余方式下,写入控制字后输出高电平。方式2、4、5都是输出一个时钟周期宽度的负脉冲。方式都是输出一个时钟周期宽度的负脉冲。方式1输出宽度为输出宽度为N个时钟周期的负脉冲。个时钟周期的负脉冲。2、启动方式:、启动方式:任何一种方式都只能在写入计数初值后才能任何一种方式都只能在写入计数
15、初值后才能开始计数。方式开始计数。方式0、2、3、4在写入计数初值后,立即启动在写入计数初值后,立即启动计数;方式计数;方式1、5需要外部需要外部GATE信号触发启动计数。信号触发启动计数。3、是否重复:、是否重复:方式方式2、3是连续重复计数;其余方式下都是是连续重复计数;其余方式下都是一次计数。一次计数。4、GATE的作用:的作用:方式方式0、4、2、3下为电平控制,高电平下为电平控制,高电平计数,低电平停止计数。其中方式计数,低电平停止计数。其中方式2、3在在GATE上升沿时重上升沿时重新植入计数初值。方式新植入计数初值。方式1、5为上升沿触发计数。为上升沿触发计数。8253工作方式小结
16、工作方式小结3 3、82538253的连接的连接D0D7IOWIORA1A0D0D7RDWRA1A0CBAA2A3A4A5A6A71A8A9A10A11A12A13A14A15G2BG2AGY0CSCLK0GATE0OUT0CLK2GATE2OUT2CLK1GATE1OUT1FF00HFF03HFF00HFF03H4 4、82538253的编程的编程(设置(设置8253的工作方式、写入计数器初值。)的工作方式、写入计数器初值。)(1 1)控制字)控制字SC1SC0RL1RL0M2M1M0BCD1:BCD计数计数0;二进制计数;二进制计数工作方式选择工作方式选择 000:方式:方式0 001:方
17、式:方式1 10:方式:方式2 11:方式:方式3 100:方式:方式4 101:方式:方式5计数长度选择计数长度选择00:锁存计数器中的数据:锁存计数器中的数据01:对计数器的低:对计数器的低8位读位读/写写10:对计数器的高:对计数器的高8位读位读/写写11:先低后高两个字节的读:先低后高两个字节的读/写写计数器选择计数器选择00:计数器:计数器001:计数器:计数器110:计数器:计数器211:非法:非法BCD数:数:0000 9999二进制计数:二进制计数:0000H FFFFH(2 2)编程命令)编程命令两条原则:两条原则:对计数器设置初值前必须先写控制字;对计数器设置初值前必须先写
18、控制字;初始值设置要符合控制字中的格式规定。初始值设置要符合控制字中的格式规定。两类编程命令:两类编程命令:写入命令写入命令 包括设置控制字命令、设置初始值命令、锁存命令包括设置控制字命令、设置初始值命令、锁存命令读出命令读出命令 用来读取计数器当前的值。用来读取计数器当前的值。锁存命令锁存命令 配合读出命令使用。在读计数值时,须先用锁存命配合读出命令使用。在读计数值时,须先用锁存命 令将当前计数值在输出锁存器中锁住。令将当前计数值在输出锁存器中锁住。SC1SC000输入信号与功能对应关系输入信号与功能对应关系CSRDWRA1 A0功功 能能0100 0对计数器对计数器0设置计数初值设置计数初
19、值0100 1对计数器对计数器1设置计数初值设置计数初值0101 0对计数器对计数器2设置计数初值设置计数初值0101 1设置控制字或给锁存命令设置控制字或给锁存命令0010 0从计数器从计数器0读出计数值读出计数值0010 1从计数器从计数器1读出计数值读出计数值0011 0从计数器从计数器2读出计数值读出计数值4 4、82538253的编程的编程5 5、82538253的初始化及应用的初始化及应用写入方式控制字写入方式控制字写入计数值低字节写入计数值低字节写入计数值高字节写入计数值高字节计数器的初始化顺序计数器的初始化顺序写入方式控制字(计数器写入方式控制字(计数器0)写入方式控制字(计数
20、器写入方式控制字(计数器1)写入方式控制字(计数器写入方式控制字(计数器2)写入计数值低字节(计数器写入计数值低字节(计数器0)写入计数值高字节(计数器写入计数值高字节(计数器0)写入计数值低字节(计数器写入计数值低字节(计数器1)写入计数值高字节(计数器写入计数值高字节(计数器1)写入计数值低字节(计数器写入计数值低字节(计数器2)写入计数值高字节(计数器写入计数值高字节(计数器2)注意:注意:先写方先写方式控制式控制字,再字,再写计数写计数值。值。例例1 1 若计数器若计数器0 0工作在方式工作在方式3 3,十进制计数,初,十进制计数,初值为值为50805080,设,设82538253的地
21、址为的地址为0F8H0F8H0FBH0FBH。初始化步骤:初始化步骤:001111113FH3FH(1 1)确定控制字)确定控制字计数器操作工作方式数制5 5、82538253的初始化及应用的初始化及应用MOV ALMOV AL,3FH 3FH ;通道;通道0 0的控制字的控制字OUT 0FBHOUT 0FBH,AL AL;写入控制字寄存器;写入控制字寄存器MOV ALMOV AL,80H 80H ;写入初值低位;写入初值低位OUT 0F8HOUT 0F8H,AL AL;通道;通道0 0MOV ALMOV AL,50H 50H ;写入初值高位;写入初值高位OUT 0F8HOUT 0F8H,AL
22、 AL;通道;通道0 0(2 2)初始化程序:)初始化程序:5 5、82538253的初始化及应用的初始化及应用MOV AL,36HOUT 43H,ALMOV AL,0OUT 40H,ALOUT 40H,ALMOV AL,54HOUT 43H,ALMOV AL,18OUT 41H,ALMOV AL,0B6HOUT 43H,ALMOV AX,533HOUT 42H,ALMOV AL,AHOUT 42H,AL计数器计数器0双字节读双字节读/写,方式写,方式3,二进制,二进制计数,计数初值为计数,计数初值为0计数器计数器1只写低字节,方式只写低字节,方式2,二,二进制计数,初值为进制计数,初值为18
23、计数器计数器2写双字节,方式写双字节,方式3,二进制,二进制计数,初值为计数,初值为533H 例例2:设定时计数器设定时计数器8253端口地址为端口地址为40H43H,分析下,分析下面初始化程序。面初始化程序。5 5、82538253的初始化及应用的初始化及应用例题例题3 将将8253的三个计数器级联,假设时钟输入为的三个计数器级联,假设时钟输入为2MHz,各,各计数器均取最大的计数初值,计算各计数器输出的定时脉宽,若计数器均取最大的计数初值,计算各计数器输出的定时脉宽,若分别要求得到毫秒、秒和时三种定时脉冲,计数初值各为多少?分别要求得到毫秒、秒和时三种定时脉冲,计数初值各为多少?GATE0
24、GATE1GATE2CLK0OUT0CLK1OUT1CLK2OUT2VCC2MHz毫秒毫秒秒秒时时 解:解:2MHz频率时钟周期为频率时钟周期为0.5微秒,计数器最微秒,计数器最大计数初值为大计数初值为65536(0000H)。)。1、计数器、计数器0定时脉宽:定时脉宽:0.5*65536=32768微秒。微秒。计数器计数器1定时脉宽:定时脉宽:32768*65536=2147.5秒。秒。计数器计数器2定时脉宽:定时脉宽:2147.5*65536=39094.0时。时。2、计数器、计数器0的计数初值:的计数初值:1000微秒微秒/0.5=2000。计数器计数器1的计数初值:的计数初值:1000
25、毫秒毫秒/1=1000。计数器计数器0的计数初值:的计数初值:3600秒秒/1=3600。5 5、82538253的初始化及应用的初始化及应用例题例题4 8253的端口地址为的端口地址为264H267H。分析下列程序段,说明该程。分析下列程序段,说明该程序段的作用。序段的作用。MOV DX,267HMOV AL,36HOUT DX,ALMOV DX,264HMOV AL,0OUT DX,ALOUT DX,ALINT 20H;8253控制寄存器端口地址控制寄存器端口地址;控制字:计数器控制字:计数器0、16位计数初值,先写低字节、位计数初值,先写低字节、;工作方式工作方式3、二进制计数、二进制计
26、数;计数器计数器0端口地址端口地址;计数初值计数初值;计数初值写入低字节计数初值写入低字节;计数初值写入高字节计数初值写入高字节;返回调用程序返回调用程序计数器计数器0,工作方式,工作方式3(输出为周期性的方波),计数初值为(输出为周期性的方波),计数初值为65536。5 5、82538253的初始化及应用的初始化及应用 82558255是是Intel 80Intel 80系列微处理机的配套并行接系列微处理机的配套并行接口芯片,可为口芯片,可为8086/8088CPU8086/8088CPU与外设之间提供并与外设之间提供并行输入行输入/输出的通道输出的通道。1、引脚信号和内部结构、引脚信号和内
27、部结构3、8255的工作方式的工作方式2、方式控制字和状态字、方式控制字和状态字4、8255的连接、初始化及应用举例的连接、初始化及应用举例7.2 可编程并行接口可编程并行接口8255一、引脚信号和内部结构一、引脚信号和内部结构15101520PA3PA2PA1PA0CSRD地地A1A0PC7PC6PC5PC4PC0PC1PC2PC3PB2PB1PB0PB5PB3PB4PB6PB72125PA4PA5PA6PA74035WRRESETD0D1D2D3D430D5D6D7VCC8255和外设相连和外设相连和和CPU相连相连PA7PA0:A组数据信号组数据信号PB7PB0:B组数据信号组数据信号P
28、C7PC0:C组数据信号组数据信号数据输入、输出或双向数据输入、输出或双向数据输入、输出数据输入、输出数据输入、输出或控制数据输入、输出或控制信号的输出线和状态信信号的输出线和状态信号的输入线号的输入线D7D0:双向三态数据线双向三态数据线CS:片选信号(低电平)片选信号(低电平)RD、WR:读读/写控制信号写控制信号RESET:复位输入信号复位输入信号 当该信号有效时,清除当该信号有效时,清除8255中所有控制字寄存器中所有控制字寄存器的内容,并将三个数据端的内容,并将三个数据端口自动设为输入口。口自动设为输入口。A1、A0:端口选择信号端口选择信号 四个端口地址分别对应四个端口地址分别对应
29、三个数据端口及一个共用三个数据端口及一个共用的控制端口。的控制端口。8255与与CPU系统总线的连接系统总线的连接DB7DB0D7D0IORRDIOWWERESET高电平有效高电平有效A0A1AB地址地址译码译码CSPA7PA0PC7PC4PC3PC0PB7PB0A1A0RDWRCS操操 作作00010端口端口A CPU01010端口端口B CPU10010端口端口C CPU00100CPU 端口端口A01100CPU 端口端口B10100CPU 端口端口C11100CPU 控制寄存器控制寄存器11010非非 法法110数据总线悬空数据总线悬空1未选该未选该825582558255的读写操作控
30、制的读写操作控制A 组组端端 口口A(8)B 组组端端 口口B(8)A 组组端端 口口C上半部上半部(4)B 组组端端 口口C下半部下半部(4)A 组组控制控制B 组组控制控制PA7PA0I/OPC7PC4I/OPC3PC0I/OPB7PB0I/O数数 据据总总 线线缓冲器缓冲器读读/写写控控 制制逻逻 辑辑内部内部逻辑逻辑外设接口外设接口CPU接口接口8位内部位内部数据总线数据总线DBRDWRCSA0A1RESET二、二、82558255的控制字的控制字1D6D5D4D3D2D1D01、工作方式控制字、工作方式控制字控制控制C口低口低4位位1:输入:输入0:输出:输出控制控制B口口8位位1:
31、输入:输入0:输出:输出B口工作方式口工作方式0:方式:方式01:方式:方式1控制控制C口高口高4位位1:输入:输入0:输出:输出控制控制A口口8位位1:输入:输入0:输出:输出A口工作方式口工作方式00:方式:方式001:方式:方式11:方式:方式2标志位标志位1:方式控:方式控制字制字0:C 端口位端口位操作控制字操作控制字2、C端口位操作控制字端口位操作控制字0D7D6D5D4D3D2D1D0无无 关关置置/复位复位 0:复位:复位1:置位:置位C口的位选择口的位选择000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7MOV D
32、X,0FFE3H设设8255的端口地址为的端口地址为FFE0HFFE3HMOV AL,0FHOUT DX,ALMOV AL,06HOUT DX,AL二、二、82558255的控制字的控制字关于控制字的说明:关于控制字的说明:1、两个控制字寄存器的端口地址相同、两个控制字寄存器的端口地址相同(A1A0=11B),最高位),最高位D7为标志位。控制字为标志位。控制字大于等于大于等于80H为方式控制字,小于为方式控制字,小于80H为为C端端口位操作控制字。口位操作控制字。2、写、写C端口位操作控制字,是专门用于对端口位操作控制字,是专门用于对C端口的任意一位实现置位或复位的操作,主端口的任意一位实现
33、置位或复位的操作,主要用于对外设的控制,它是写控制寄存器而要用于对外设的控制,它是写控制寄存器而不是写不是写C端口(地址为端口(地址为A1A0=10B),这一点),这一点要特别注意。要特别注意。例如:在例如:在PC5引脚上产生一个负跳变信号。引脚上产生一个负跳变信号。MOV DX,1 1B;控制寄存器端口控制寄存器端口MOV AL,0BHOUT DX,AL ;PC5置置1MOV AL,0AHOUT DX,AL ;PC5置置0 若要在若要在PC5上产生一个负脉冲,可再加两条指令,使上产生一个负脉冲,可再加两条指令,使PC5置置1。MOV AL,0BHMOV DX,AL二、二、82558255的控
34、制字的控制字三、三、8255 8255 的工作方式的工作方式1、工作方式、工作方式0 基本输入输出方式基本输入输出方式 在此方式下,只能完成简单的输入在此方式下,只能完成简单的输入/输出操输出操作。可通过写入作。可通过写入方式控制字方式控制字分别将分别将A A口、口、B B口口以及以及C C口的高四位和口的高四位和C C口的低四位分别定义为口的低四位分别定义为输入端口或输出端口。方式输入端口或输出端口。方式0 0一般用于无条件一般用于无条件数据传送。另外,也可以利用对数据传送。另外,也可以利用对C C端口的位操端口的位操作,产生对外设的控制或应答信号,通过读作,产生对外设的控制或应答信号,通过
35、读C C端口,与外设交换信息,即采用查询方式进端口,与外设交换信息,即采用查询方式进行数据传送。行数据传送。D7D6D5D4D3D2D1D01 0 0 0 1 0 0 0 要求要求A、B、C三个口均在方式三个口均在方式0下工作,端口下工作,端口A和端口和端口B均作为输出口用,均作为输出口用,C口高口高4位为输入,位为输入,低低4位为输出。试对位为输出。试对8255进行初始化。进行初始化。设设8255的端口地址为的端口地址为0060H0063HMOV AL,10001000BOUT 63H,AL三、三、8255 8255 的工作方式的工作方式2、工作方式、工作方式1 选通输入输出方式选通输入输出
36、方式 在此种方式下,在此种方式下,A A口和口和B B口作为数据的输入或输出口作为数据的输入或输出端口(由软件编程来指定),由端口(由软件编程来指定),由C C端口提供端口提供A A、B B端口与端口与外设通信的控制和状态信号,外设通信的控制和状态信号,C C端口各数据位的功用是端口各数据位的功用是由硬件规定的,不能通过编程来指定。工作方式由硬件规定的,不能通过编程来指定。工作方式1 1通常通常用于硬件中断方式进行数据传送。用于硬件中断方式进行数据传送。1 1、方式、方式1 1下下A A口、口、B B口均为输出情况;口均为输出情况;2 2、方式、方式1 1下下A A口、口、B B口均为输入情况
37、;口均为输入情况;三、三、8255 8255 的工作方式的工作方式方式方式1 1下下A A口、口、B B口均为输出情况口均为输出情况PA70PC7PC6PC3OBFAACKAINTRAPB70PC1PC2PC0OBFBACKBINTRBPC4、5I/OINTEBINTEA8255向外设发出的输出向外设发出的输出缓冲器满信号,低电平缓冲器满信号,低电平有效,表示有效,表示8255已接收已接收到到CPU送来的数据,锁送来的数据,锁存于输出端口,通知外存于输出端口,通知外设读取。设读取。外设接收到外设接收到8255送来的送来的数据后,发出的响应信数据后,发出的响应信号,低电平有效。通知号,低电平有效
38、。通知接口,外设已接受了数接口,外设已接受了数据,并使据,并使OBF变为高电变为高电平。平。OBF:ACK:方式方式1 1下下A A口口、B B口口均为输出情况均为输出情况PA70PC7PC6PC3OBFAACKAINTRAPB70PC1PC2PC0OBFBACKBINTRBPC4、5I/OINTEBINTEAINTR:中断请求信号,高中断请求信号,高 电平有效。外设收电平有效。外设收 到数据后,由此信到数据后,由此信 号通知号通知CPU可再输可再输 出下一个数据。出下一个数据。INTE:中断允许控制标志。中断允许控制标志。只有当只有当INTE为高电为高电 平时,才能产生有平时,才能产生有 效
39、的效的INTR。INTEA=PC6 INTEB=PC2可通过写控制寄存器的可通过写控制寄存器的C端端口位操作控制字口位操作控制字进行设置。进行设置。方式方式1下数据输出时序下数据输出时序 INTR datadata输出端口输出端口D0D7WROBFACK 方式方式1 1下下A A口口、B B口口均为输出情况均为输出情况PA70PC7PC6PC3OBFAACKAINTRAPB70PC1PC2PC0OBFBACKBINTRBPC4、5I/O端口端口APC7、PC6、PC3端口端口BPC2、PC1、PC0D7D6D5D4D3D2D1D0OBFAINTEAI/OI/OINTRBINTEBOBFBC口此
40、时的状态字:口此时的状态字:INTRA C口的状态字可通过口的状态字可通过“读读C口口”得到,它可以为得到,它可以为CPU提供提供A、B端口通信的状态和控制端口通信的状态和控制信息,如确定中断源或中断屏信息,如确定中断源或中断屏蔽等,它与蔽等,它与C口各引脚上的状口各引脚上的状态并不完全一致。态并不完全一致。设设8255的端口地址为的端口地址为0060H0063H例例 A、B口均在方式口均在方式1下工作,端口下工作,端口A和端口和端口B均作为均作为输出口用,输出口用,C口的口的PC4、PC5作数据输入用。作数据输入用。D7D6D5D4D3D2D1D01 0 1 0 1 1 0 MOV AL,1
41、0101100BOUT 63H,AL三、三、8255 8255 的工作方式的工作方式方式方式1 1下下A A口口、B B口口均为输入情况均为输入情况PA70PC4PC5PC3STBAIBFAINTRAPB70PC2PC1PC0STBBIBFBINTRBPC6、7I/OINTEAINTEB8255给外设的应答信给外设的应答信号,高电平有效,表号,高电平有效,表示收到外设送来的数示收到外设送来的数据,已放入输入缓冲据,已放入输入缓冲器。器。外设给外设给8255发出的选发出的选通信号,低电平有效,通信号,低电平有效,表示数据准备好。可表示数据准备好。可利用该信号将外设数利用该信号将外设数据锁存到据锁
42、存到8255端口的端口的输入锁存器中。输入锁存器中。IBF:STB:方式方式1下数据输入时序下数据输入时序dataINTRIBF data输入端口输入端口D0D7STBRD方式方式1 1下下A A口口、B B口口均为输入情况均为输入情况PA70PC4PC5PC3STBAIBFAINTRAPB70PC2PC1PC0STBBIBFBINTRBPC6、7I/O端口端口APC5、PC4、PC3端口端口BPC2、PC1、PC0D7D6D5D4D3D2D1D0IBFAINTEAI/OI/OINTRBINTEBIBFBC口此时的状态字:口此时的状态字:INTRAD7D6D5D4D3D2D1D0OBFAINT
43、EAI/OI/OINTRBINTEBOBFBA、B端口为输出口时,端口为输出口时,C口的状态字:口的状态字:INTRAD7D6D5D4D3D2D1D0IBFAINTEAI/OI/OINTRBINTEBIBFBINTRAA、B端口为输入口时,端口为输入口时,C口的状态字:口的状态字:C端口的状态字端口的状态字设设8255的端口地址为的端口地址为0060H0063H例例 A、B口均在方式口均在方式1下工作,端口下工作,端口A和端口和端口B均作为输入口用,均作为输入口用,C口的口的PC6、PC7作数据输出作数据输出用。用。D7D6D5D4D3D2D1D01 0 1 1 0 1 1 MOV AL,10
44、110110BOUT 63H,AL三、三、8255 8255 的工作方式的工作方式PA70PC4PC5PC3STBAIBFAINTRAPB70PC2PC1PC0ACKBOBFBINTRBPC6、7I/O8255方式方式1与系统的连接与系统的连接WERDIOWIORD7D0D7D0IRiIRjA1A0CS地址地址译码译码。A15A2A1A082558255方式方式1中断查询流程中断查询流程中断服务程序中断服务程序读方式读方式1下下 C口状态字口状态字通道通道A?通道通道B?非法中断处理非法中断处理通道通道A服务程序服务程序通道通道B服务程序服务程序返回返回返回返回返回返回NNYY8255方式方式
45、1下查询程序流程下查询程序流程开开 始始读方式读方式1下下 C口状态字口状态字通道通道A?通道通道B?读读A口取数据存入指定地址口取数据存入指定地址从指定地址取数据送从指定地址取数据送(写写)B口口继继 续续NNYYD5=1?D1=1?3、工作方式、工作方式2 双向输入输出方式双向输入输出方式8255只允许端口只允许端口A工作于工作方式工作于工作方式2。当端口当端口A A工作于方式工作于方式2 2时,需要的控制信号由端时,需要的控制信号由端口口C C的的PC7PC7PC3PC3提供;允许端口提供;允许端口B B工作于方式工作于方式0 0或方式或方式1 1完成输入完成输入/输出功能。若输出功能。
46、若B B口工作于方式口工作于方式0 0,则,则PC2PC2PC0PC0可用作数据输入可用作数据输入/输出口;若输出口;若B B口工作于方式口工作于方式1 1,则则PC2PC2PC0PC0用作用作B B口的控制信号。口的控制信号。三、三、8255 8255 的工作方式的工作方式PC3INTRAPC7PC6PC4PC5PA70INTE1INTE2OBFAACKASTBAIBFAOBFAINTE1IBFAINTE2INTRAD2D1D0由由B组工作方式决定组工作方式决定8255A口方式口方式2下接口功能和状态字下接口功能和状态字方式方式2下的中断处理下的中断处理 8255 8255的的A A口在方式
47、口在方式2 2 时,只提供了一个中时,只提供了一个中断请求信号断请求信号INTRAINTRA,CPU CPU 在该中断服务程序中在该中断服务程序中需要通过读取需要通过读取C C口状态字来确定是输入中断还口状态字来确定是输入中断还是输出中断。是输出中断。工作方式工作方式2 2 做为双向数据传送方式,一般做为双向数据传送方式,一般用作具有双向并行数据传送功能的外部设备的用作具有双向并行数据传送功能的外部设备的接口部件,如磁盘驱动器等。接口部件,如磁盘驱动器等。三、三、8255 8255 的工作方式的工作方式设设8255的端口地址为的端口地址为0060H0063H例例 A口在方式口在方式2下工作,下
48、工作,B口在方式口在方式0下工作,作为输下工作,作为输出口用,出口用,C口的口的PC20 作数据输入用。作数据输入用。D7D6D5D4D3D2D1D01 1 0 0 1MOV AL,11000001BOUT 63H,AL三、三、8255 8255 的工作方式的工作方式四、四、82558255的连接、初始化及应用的连接、初始化及应用D0D7RESETRESETD0D7RDWRIOWIORA1A1A0A0CSPA0PA7PB0PB7PC0PC3A15A7GA6AEN1G2BG2AA5A4A3A2CBAY00FF80H0FF83HPC4PC7(应用一)利用(应用一)利用8255实现打印机的接口实现打
49、印机的接口PA0PA7PC6PC1D0D7STROBEBUSY8255打印机打印机系统总线系统总线数据数据STROBEBUSYWR 在此,为了与打印机接口,在此,为了与打印机接口,A组、组、B组均工作于方式组均工作于方式0,初始化,初始化A口为输出,口为输出,C口的高四位为输出,低四位为口的高四位为输出,低四位为输入,输入,B口未用(假设为输入)。口未用(假设为输入)。查询方式查询方式初始化程序初始化程序MOV DX,0FF83HMOV AL,10000011BOUT DX,ALMOV AL,00001101BOUT DX,AL;PC6=1;设置工作方式;设置工作方式四、四、82558255的
50、连接、初始化及应用的连接、初始化及应用打印打印CLCL中的内容中的内容LPST:MOV DX,0FF82HIN AL,DX ;读;读C口状态字口状态字 AND AL,02H ;检测;检测PC1(BUSY)是否为零。)是否为零。JNZ LPST ;打印机忙,等待。;打印机忙,等待。MOV DX,0FF80HMOV AL,CL ;打印字符送给;打印字符送给8255OUT DX,ALMOV DX,0FF83HMOV AL,0CH ;PC6清零清零OUT DX,ALINC ALOUT DX,AL ;PC6置位(送置位(送STROBE脉冲)脉冲)JMP LPST四、四、82558255的连接、初始化及应