




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、( (微机原理与接口技术微机原理与接口技术)chapter11)chapter11根根本本IOIO接口接口78独立编址独立编址I/O设备的地址称为端口设备的地址称为端口,与存储器是隔离的与存储器是隔离的独立编址独立编址I/O的一个缺点是的一个缺点是,在在 I/O与微处理器的累加器与微处理器的累加器或存储器之间传送的数据必须由或存储器之间传送的数据必须由IN, INS, OUT及及 OUTS 指令存取指令存取I/O空间独立的控制信号由空间独立的控制信号由M/IO和和W/R产生产生,它们指示它们指示一次一次I/O读读(/IORC) 或一次或一次I/O写写(/IOWC)操作操作独立编址独立编址 I/
2、O9存储器映像存储器映像 I/O与独立编址与独立编址I/O不同不同,存储器映像存储器映像I/O不使用不使用IN, INS, OUT或或OUTS指令指令相反相反,它使用任一在微处理器与存储器间传送数据的指它使用任一在微处理器与存储器间传送数据的指令令存储器映像存储器映像I/O设备被视为存储器映像中的一个存储单设备被视为存储器映像中的一个存储单元元10PC的的 I/O映像映像在端口在端口0000H03FFH的的I/O空间通常留给计算机系统空间通常留给计算机系统和和ISA总线总线位于位于0400H-FFFFH的的I/O端口一般用于用户应用、主端口一般用于用户应用、主板功能及板功能及PCI 总线总线1
3、112根本输入接口与根本输出接口根本输入接口与根本输出接口根本输入设备是一组三态缓冲器根本输入设备是一组三态缓冲器根本输出设备是一组数据锁存器根本输出设备是一组数据锁存器1314外部外部TTL数据数据(切换开关切换开关) 被连接到缓冲器的输入上被连接到缓冲器的输入上缓冲器输出与数据总线相连缓冲器输出与数据总线相连选择信号选择信号/SEL变为逻辑变为逻辑0时时,微处理器读取微处理器读取8个开关的内个开关的内容容一旦执行一旦执行IN指令指令,开关的内容就被复制到开关的内容就被复制到AL存放器中存放器中根本输入接口根本输入接口15当微处理器执行当微处理器执行IN指令时指令时,I/O端口地址被译码端口
4、地址被译码,在在/SEL上产生逻辑上产生逻辑074LS244缓冲器的输出控制引脚缓冲器的输出控制引脚(/1G和和/2G)被置为被置为0,使使得数据输入线得数据输入线(A)与数据输出线与数据输出线(Y)相连相连74LS244缓冲器的输出控制引脚缓冲器的输出控制引脚/1G和和/2G置为置为1,那么器那么器件进入三态高阻抗模式件进入三态高阻抗模式,从而有效地将开关与数据总线从而有效地将开关与数据总线断开断开16根本输出接口根本输出接口当输出指令执行时当输出指令执行时,来自来自AL,AX或或EAX的数据通过数据的数据通过数据总线传送给锁存器总线传送给锁存器每次每次OUT指令执行时指令执行时,锁存器的锁
5、存器的/SEL信号被激活信号被激活,捕获捕获从任意从任意8位数据总线上输出给锁存器的数据位数据总线上输出给锁存器的数据数据一直保持到下一条数据一直保持到下一条OUT指令执行指令执行1718信号交换信号交换 或或 查询查询许多许多I/O设备接收或发送信息的速度比微处理器慢得多设备接收或发送信息的速度比微处理器慢得多I/O控制的另一种方法被称为信号交换或查询控制的另一种方法被称为信号交换或查询,可使可使I/O设备与微处理器同步设备与微处理器同步一个需要信号交换的设备一个需要信号交换的设备,如并行打印机如并行打印机,每秒可打印每秒可打印 100个字符个字符(Character Per Second,
6、简称简称CPS)显然微处理器可以超过显然微处理器可以超过100 CPS的速度给打印机发送数的速度给打印机发送数据据19数据通过一组数据线数据通过一组数据线(D7-D0)传送传送BUSY 指示打印机指示打印机“忙状态忙状态/STB 是一个时钟脉冲是一个时钟脉冲,用于给打印机发送数据用于给打印机发送数据,进行打进行打印印一旦打印机接收到数据一旦打印机接收到数据,它就将它就将BUSY引脚置引脚置1,说明打印说明打印机正忙于打印数据机正忙于打印数据微处理器软件查询或测试微处理器软件查询或测试BUSY引脚引脚,以决定打印机是以决定打印机是否否“忙忙202122关于接口电路的注释关于接口电路的注释TTL:
7、 0 (0-0.8V), 1 (2.0-5.0V)23输入设备输入设备24输出设备输出设备252627I/O端口地址译码端口地址译码存储器译码的是存储器译码的是A31-A0, A23-A0或或A19-A0;而独立编而独立编址址I/O译码的是译码的是A15-A0如果如果I/O设备只使用固定设备只使用固定I/O寻址寻址,那么只译码那么只译码A7-A0使用使用/IORC和和/IOWC激活激活I/O设备执行一次读或写操设备执行一次读或写操作作在早期微处理器中在早期微处理器中,使用使用IO/M= 1与与/RD或或/WR激活激活I/O 设备设备而在最新的微处理器中而在最新的微处理器中,使用使用M/IO=0
8、与与W/R激活激活I/O设设备备28译码译码8位位 I/O地址地址固定固定I/O指令使用出现在指令使用出现在A15-A0上的上的8位位I/O端口地址端口地址,地址为地址为0000H-00FFH如果一个系统包含肯定不超过如果一个系统包含肯定不超过256个的个的I/O设备设备,那么常那么常常只译码地址引脚常只译码地址引脚A7-A0作为作为8位端口地址位端口地址,因此可以因此可以忽略地址引脚忽略地址引脚A15-A8DX存放器也可寻址存放器也可寻址I/O端口的端口的00H-FFH293031AUTHORBarry B. BreyCOMPANY BreyCoDATE7/1/99CHIPDECODER8
9、PAL16L8Pins1 2 3 4 5 6 7 8 9 10 A0 A1 A2 A3 A4 A5 A6 A7 NC GNDPins11 12 13 14 15 16 17 18 19 20 NC F7 F6 F5 F4 F3 F2 F1 F0 VCCEQUATIONS/F0= A7*A6*A5*A4*/A3*/A2*/A1*/A0/F1= A7*A6*A5*A4*/A3*/A2*/A1*A0/F2= A7*A6*A5*A4*/A3*/A2*A1*/A0/F3= A7*A6*A5*A4*/A3*/A2*A1*A0/F4= A7*A6*A5*A4*/A3*A2*/A1*/A0/F5= A7*A6
10、*A5*A4*/A3*A2*/A1*A0/F6= A7*A6*A5*A4*/A3*A2*A1*/A0/F7= A7*A6*A5*A4*/A3*A2*A1*A032译码译码16位位 I/O地址地址33AUTHORBarry B. BreyCOMPANY BreyCoDATE7/2/99CHIPDECODER9 PAL16L8Pins1 2 3 4 5 6 7 8 9 10 A0 A1 A2 A3 A4 A5 A6 A7 NAND GNDPins 11 12 13 14 15 16 17 18 19 20 NC EFFFH EFFEH EFFDH EFFCH EEEBH EFFAH EFF9H E
11、FF8H VCCEQUATIONS/EFF8H= A7*A6*A5*A4*A3*/A2*/A1*/A0*/NAND/EFF9H= A7*A6*A5*A4*A3*/A2*/A1*A0*/NAND/EFFAH= A7*A6*A5*A4*A3*/A2*A1*/A0*/NAND/EFFBH= A7*A6*A5*A4*A3*/A2*A1*A0*/NAND/EFFCH= A7*A6*A5*A4*A3*A2*/A1*/A0*/NAND/EFFDH= A7*A6*A5*A4*A3*A2*/A1*A0*/NAND/EFFEH= A7*A6*A5*A4*A3*A2*A1*/A0*/NAND/EFFFH= A7*A
12、6*A5*A4*A3*A2*A1*A0*/NAND348位与位与16位位 I/O端口端口由于存在两个由于存在两个I/O存储体存储体,所以任意所以任意8位位I/O写操作需要写操作需要一个独立的写选通才能正确操作一个独立的写选通才能正确操作图图11-14给出了一个系统给出了一个系统,它包含两个不同的它包含两个不同的8位输出设位输出设备备,分别位于分别位于8位位I/O地址地址40H和和41H处处端口端口40H和和41H每个可作为独立的每个可作为独立的8位端口被寻址位端口被寻址,或者或者一起作为一个一起作为一个16位端口被寻址位端口被寻址353637AUTHORBarry B. BreyCOMPANY
13、 BreyCoDATE7/1/99CHIPDECODER8 PAL16L8Pins1 2 3 4 5 6 7 8 9 10 BHE IOWC A0 A1 A2 A3 A4 A5 A6 GNDPins11 12 13 14 15 16 17 18 19 20 A7 NC NC NC NC NC NC 40 41 VCCEQUATIONS/40= /A0*/IOWC*/A7*A6*/A5*/A4*/A3*/A2*/A1/41= /BHE*/IOWC*/A7*A6*/A5*/A4*/A3*/A2*/A138中选择中选择16位宽的位宽的I/O设备时设备时,/BLE (A0)与与/BHE引脚不引脚不起作
14、用起作用,因此两个因此两个I/O存储体被一起选中存储体被一起选中图图11-15给出了一个给出了一个16位输入设备位输入设备,其其8位位I/O地址为地址为64H 和和65HPAL16L8译码器没有地址位译码器没有地址位/BLE (A0)和和/BHE引脚引脚,因因为这些信号在为这些信号在16位位I/O设备上不同设备上不同3940AUTHORBarry B. BreyCOMPANY BreyCoDATE7/5/99CHIPDECODER8 PAL16L8Pins1 2 3 4 5 6 7 8 9 10 IORC A1 A2 A3 A4 A5 A6 A7 NC GNDPins11 12 13 14 1
15、5 16 17 18 19 20 NC NC NC NC NC NC NC NC 06X VCCEQUATIONS/6X= /IORC*/A7*A6*A5*/A4*/A3*A2*/A14132位位 I/O端口端口图图11-16给出了给出了80386DX或或80486微处理器的一个微处理器的一个32位位输入端口输入端口此电路译码的此电路译码的I/O端口为端口为8位端口位端口70H-73H这里只译码这里只译码8位位I/O端口地址端口地址42可编程外围设备接口可编程外围设备接口82C55有有24个引脚可用于个引脚可用于I/O,每组每组12个引脚可进行编程个引脚可进行编程以以3种不同的操作方式工作种不
16、同的操作方式工作可将任一可将任一TTL兼容的兼容的I/O设备与微处理器相连接设备与微处理器相连接被用做键盘和并行打印机端口的接口被用做键盘和并行打印机端口的接口它还可以为每个输出提供至少的吸收它还可以为每个输出提供至少的吸收(逻辑逻辑0)电流电流,最大最大为为43第四次实验:根本第四次实验:根本I/O和地址译码实验和地址译码实验1、8/32位位I/O接口设计实验接口设计实验2、地址译码电路设计实验、地址译码电路设计实验 4482C55根本描述根本描述82C55有有3个个I/O端口端口(标识为标识为A, B和和C)按两组进行编程按两组进行编程A组由端口组由端口A(PA7-PA0)和端口和端口C的
17、高半局部的高半局部(PC7-PC4)组成组成, B组由端口组由端口B(PB7-PB0) 和端口和端口C的低半局部的低半局部 (PC3-PC0)组成组成82C55由由/CS引脚选中引脚选中,进行端口编程、读或写进行端口编程、读或写存放器选择是通过存放器选择是通过A1和和A0输入引脚实现的输入引脚实现的, A1和和A0选选择一个内部存放器进行编程或择一个内部存放器进行编程或I/O操作操作454647图图11-18给出了与给出了与80386SX相连的一个相连的一个82C55,其其8位位I/O端口地址为端口地址为C0H (端口端口A), C2H (端口端口B), C4H (端口端口C) 和和C6H (
18、命令存放器命令存放器)一旦微处理器复位一旦微处理器复位,输入到输入到82C55的的RESET信号就使器信号就使器件初始化件初始化输入到输入到82C55的的RESET信号使得所有端口设置成为用信号使得所有端口设置成为用方式方式0操作的简单输入端口操作的简单输入端口484982C55编程编程82C55是通过两个内部命令存放器进行编程是通过两个内部命令存放器进行编程 位位7 选择命令字节选择命令字节A或命令字节或命令字节BB组的引脚组的引脚(端口端口B及端口及端口C的低位局部的低位局部)可编程为输入可编程为输入或输出引脚或输出引脚 B组可工作在方式组可工作在方式0或方式或方式1下下 方式方式0是根本
19、输入是根本输入/输出方式输出方式,它允许它允许B组的引脚被编程组的引脚被编程为简单输入和锁存的输出引脚为简单输入和锁存的输出引脚方式方式1操作是操作是B组的选通操作方式组的选通操作方式,数据通过端口数据通过端口B传送传送,信号交换信号由端口信号交换信号由端口C提供提供50A组的引脚组的引脚(端口端口A及端口及端口C的高位局部的高位局部)可编程为输入可编程为输入或输出引脚或输出引脚A组可工作在方式组可工作在方式0、方式、方式1和方式和方式2下下方式方式2操作是端口操作是端口A的双向操作方式的双向操作方式如果命令字节的第如果命令字节的第7位被置位被置0,那么选中命令字节那么选中命令字节B当当82C
20、55工作在方式工作在方式1或方式或方式2时时,此命令允许端口此命令允许端口C的的任意一位被置位任意一位被置位1或复位或复位0515253方式方式0操作操作方式方式0操作使操作使82C55或者作为一个经过缓冲的输入设备或者作为一个经过缓冲的输入设备,或者作为一个经过锁存的输出设备工作或者作为一个经过锁存的输出设备工作 图图11-20给出了给出了82C55与一组与一组8个个7段的段的LED显示器相连显示器相连的电路的电路 此电路中此电路中,端口端口A和和B均被编程为均被编程为(方式方式0)简单的锁存输简单的锁存输出端口出端口 端口端口A提供段数据输入给显示器提供段数据输入给显示器 端口端口B给多路
21、复用显示器提供一次选择显示位置的机给多路复用显示器提供一次选择显示位置的机制制82C55通过通过PAL16L8与与8088微处理器相连接微处理器相连接,其其I/O端端口号为口号为0700H-0703H54图11-21中译码器的 VHDL 描述library ieeeentity DECODER_10-19 isport(IOM,A15,A14,A13,A12,A11,A10,A9,A8,A7,A6,A 5,A4,A3,A2: in STD_LOGIC;D0: out STD_LOGIC;);end;architecture V1 of DECODER_11_21 isbeginD0 8000H
22、,那么电机按右手方向旋转那么电机按右手方向旋转;假设假设CX 8000H, 那么电机按左手方向旋转那么电机按左手方向旋转 去掉去掉CX最左边一位最左边一位,其余其余15位是步进数位是步进数ROR(右步进右步进)或或ROL(左步进左步进) 指令使二进制位模式旋指令使二进制位模式旋转为下一步转为下一步步进电机也可以按半步模式运转步进电机也可以按半步模式运转,这样每个序列需要这样每个序列需要8步步636465键盘矩阵接口键盘矩阵接口图图11-24给出了包含给出了包含16个开关的一个个开关的一个44小键盘矩阵小键盘矩阵,它它与与82C55的端口的端口A和端口和端口B相连接相连接 键盘是由键盘是由4行行
23、(ROW0-ROW3)和和4列列(COL0-COL3)组成组成每行通过一个每行通过一个10K上拉电阻与上拉电阻与相连相连,以确保在没有按以确保在没有按钮开关闭合时该行被拉到高电平钮开关闭合时该行被拉到高电平对于对于8088微处理器微处理器,82C55的的I/O端口地址为端口地址为50H-53H (这里没有给出这里没有给出PAL程序程序)端口端口A被编程为输入端口以读取行被编程为输入端口以读取行,端口端口B被编程为输出被编程为输出端口以选择一列端口以选择一列66例如例如,如果如果1110被输出给端口被输出给端口B的引脚的引脚PB3-PB0,那么第那么第0列为逻辑列为逻辑0,因此第因此第0列中的列
24、中的4个键被选中个键被选中注意注意,PB0为逻辑为逻辑0时时,能置端口能置端口A为逻辑为逻辑0的开关只有的开关只有0-36768A 4*4 keyboard matrix connected to anA 4*4 keyboard matrix connected to an8088 microprocessor through the 82C558088 microprocessor through the 82C55PA0383940123437D0U1D1D2D3D4D5D6D7PA7PB6PB7PA1PA2PA4PA3PA5PA6PB0PB1PB3PB2PB4PB5/RD/WRA1A0
25、RESET/CS2423222120191825303132333435893652728296D0D1D4D3D2D5D6D7/WR/RDRESETA0A182C55oVCC10K * 4Row0Row1Row2Row3Col1Col2Col3Col00123456789ABCDEF69从键盘矩阵读一个键并去除键抖动的软件流程图如图从键盘矩阵读一个键并去除键抖动的软件流程图如图 11-26键必须去抖动键必须去抖动,一般需要一般需要10-20ms的短时间延迟的短时间延迟该流程图包括该流程图包括3个主要局部个主要局部:等待键的释放等待键的释放,等待一次键等待一次键击击,计算键的位置计算键的位置该
26、软件使用了一个称为该软件使用了一个称为SCAN的过程来扫描键盘的过程来扫描键盘,还使还使用了另一个用了另一个DELAY的过程的过程,以便延迟以便延迟10ms用于去抖动用于去抖动 主要的键盘过程称为主要的键盘过程称为KEY需要给出初始化需要给出初始化82C55,使端口使端口A为输入端口为输入端口,端口端口B为输为输出端口出端口70例11-17a;汇编语言版本;KEY 扫描键盘并且将键盘代码从AL中返回COLS EQU 4ROWS EQU 4PORTA EQU 50HPORTB EQU 51HKEY PROC NEAR USES CX BXMOV BL , 0FFHSHL BL , ROWSMOV
27、 AL , 0OUT PORTB , AL.REPEAT ;等待健释放.REPEATCALL SCAN.UNTIL ZERO?CALL DELAY10CALL SCAN.UNTIL ZERO?.REPEAT ;等待按键.REPEATCALL SCAN.UNTIL !ZERO?CALL DELAY1071CALL SCAN.UNTIL !ZERO?MOV CX , 00FEH.WHILE 1 ;找到所在列MOV AL , CLOUT PORTB , ALCALL SHORTDELAYCALL SCAN.BREAK !ZERO?ADD CH , COLSROL CL , 1.ENDW.WHILE
28、1 ;找到所在行SHR AL , 1.BREAK .IF !CARRY?INC CH.ENDWMOV AL , CH ;获取健值RETKEY ENDPSCAN PROC NEARIN AL , PROTAOR AL , BLCMP AL , 0FFH ;测试是否有按键RETSCAN ENDP72方式方式 1选通输入选通输入方式方式1操作使端口操作使端口A或端口或端口B作为锁存输入设备工作。作为锁存输入设备工作。这就允许外部数据被存储在端口中这就允许外部数据被存储在端口中,直到微处理器想要直到微处理器想要存取它存取它端口端口C也可按方式也可按方式1操作使用操作使用但不传送数据但不传送数据,而是操
29、作而是操作控制信号或握手信号,辅助端口控制信号或握手信号,辅助端口A或端口或端口B实现选通输实现选通输入入选通输入端口在选通信号选通输入端口在选通信号/STB被激活时从端口引脚上被激活时从端口引脚上捕获数据捕获数据/STB信号使数据捕获到端口中信号使数据捕获到端口中,它还激活它还激活IBF(输入缓冲输入缓冲器满器满)和和INTR (中断请求中断请求)信号信号73一旦微处理器通过软件一旦微处理器通过软件(IBF)或硬件或硬件(INTR), 注意到数注意到数据已被选通进入端口据已被选通进入端口,它就执行一条它就执行一条IN指令读取该端口指令读取该端口 (/RD)读端口的操作将读端口的操作将IBF和
30、和INTR恢复到无效状态恢复到无效状态,直到下一直到下一个数据被选通进入端口个数据被选通进入端口74方式方式 1选通输入的信号定义选通输入的信号定义/STB: 选通输入将数据装入端口锁存器选通输入将数据装入端口锁存器,该信息保持到该信息保持到由由IN指令输入给微处理器指令输入给微处理器IBF: 输入缓冲器满是一个输出信号输入缓冲器满是一个输出信号,说明输入缓冲器已说明输入缓冲器已装入信息装入信息INTR : 中断请求是一个输出信号中断请求是一个输出信号,它请求一次中断。它请求一次中断。 INTR引脚在引脚在/STB输入回到逻辑输入回到逻辑1时变为逻辑时变为逻辑1;在微处在微处理器从端口输入数据
31、时理器从端口输入数据时 被清零被清零 INTE: 中断允许信号既不是输入也不是输出中断允许信号既不是输入也不是输出,它是通过它是通过端口端口PC4 (端口端口A)或或PC2 (端口端口B)的位置进行编程的内的位置进行编程的内部位部位PC7, PC6: 端口端口C的引脚的引脚7和引脚和引脚6是通用是通用I/O引脚引脚75Mode 1 Port AThe internal structure of strobed inputThe internal structure of strobed inputoperation (mode 1) of the 82C55operation (mode 1)
32、 of the 82C55PC4PC5PC3PC6, PC7INTEAPort AMode 1 Port BPC2PC1PC0INTEBPort B/STBIBFINTRI/O123456INTRIBF/STB76/STBIBFINTR/RDPortData strobed into portData read by microprocessorBuffer full(Interrupt requested)The timing diagram of strobed inputThe timing diagram of strobed inputoperation (mode 1) of th
33、e 82C55operation (mode 1) of the 82C5577选通输入实例选通输入实例选通输入设备的一个很好的例子是键盘选通输入设备的一个很好的例子是键盘键盘编码器去除键开关的抖动键盘编码器去除键开关的抖动, 并在一键被压下时提供并在一键被压下时提供一个选通信号一个选通信号,这时数据输出包含这时数据输出包含ASCII 编码形式的键编码形式的键码码 每次在键盘上按下一个键时每次在键盘上按下一个键时,/DAV(数据有效数据有效)被激活并被激活并维持。由于维持。由于/DAV与端口与端口A的的/STB输入相连输入相连,所以数据被所以数据被选通进入端口选通进入端口A 每次按下一个键每次
34、按下一个键,它就被选通进入它就被选通进入82C55的端口的端口A中中/STB输入还激活输入还激活IBF信号信号,说明数据是在端口说明数据是在端口A中中787980方式方式 1选通输出选通输出在方式在方式1下工作时下工作时,一旦数据被写入选通输出端口一旦数据被写入选通输出端口A或或B,/OBF(输出缓冲器满输出缓冲器满)信号就信号就 变为逻辑变为逻辑0,说明数据已说明数据已出现在端口锁存器中出现在端口锁存器中/OBF信号说明信号说明,对于一个外部对于一个外部I/O设备设备,数据是有效的。数据是有效的。外部外部I/O设备是通过端口设备是通过端口/ACK(响应响应) 输入信号来移走输入信号来移走数据
35、的数据的/ACK信号使信号使/OBF信号回到逻辑信号回到逻辑1,说明缓冲器未满说明缓冲器未满81方式方式 1选通输出的信号定义选通输出的信号定义/OBF: 输出缓冲器满是一个输出信号输出缓冲器满是一个输出信号,一旦数据输出一旦数据输出 (OUT)给端口给端口A或端口或端口B的锁存器的锁存器,它就变为低电平。它就变为低电平。一旦外部设备返回一旦外部设备返回/ACK脉冲脉冲,它就被设置为逻辑它就被设置为逻辑1。/ACK: 响应信号使响应信号使/OBF引脚回到逻辑引脚回到逻辑1电平。电平。/ACK是来自外部设备的一个响应信号是来自外部设备的一个响应信号,说明它已接收到来说明它已接收到来自自82C55
36、端口的数据。端口的数据。INTR :中断请求信号常常在外部设备通过中断请求信号常常在外部设备通过/ACK信号信号接收数据时中断微处理器接收数据时中断微处理器,该引脚受内部该引脚受内部INTE(中断允中断允许许) 位的限制。位的限制。82INTE: 中断允许中断允许既不是输入也不是输出既不是输入也不是输出,它是被编程为它是被编程为允许或禁止允许或禁止INTR引脚的一个内部位。引脚的一个内部位。 INTR A位被编位被编程为程为PC6 , INTR B位被编程为位被编程为PC2。PC5, PC4: 端口端口C的引脚的引脚5和引脚和引脚4为通用为通用I/O引脚引脚83Mode 1 Port AThe
37、 internal structure of strobed outputThe internal structure of strobed outputoperation (mode 1) of the 82C55operation (mode 1) of the 82C55PC6PC7PC3PC4, PC5INTEAMode 1 Port BPC2PC1PC0INTEBPort B/ACK/OBFINTRI/O123456INTR/OBF/ACKPort A8485选通输出实例选通输出实例图图11-30描述了如何在打印机和描述了如何在打印机和82C55之间到达选通输之间到达选通输出同步出同
38、步端口端口B与一个并行打印机相连与一个并行打印机相连,该打印机有该打印机有8个数据输入个数据输入用于接收用于接收ASCII编码的数据编码的数据 /DS (数据选通数据选通)输入用于选通数据进入打印机输入用于选通数据进入打印机/ACK输出用于响应接收到输出用于响应接收到ASCII字符字符软件用软件用PC4产生产生/DS信号信号8687例例11-17列出了将列出了将AH中的中的ASCII编码字符发送给打印机编码字符发送给打印机的软件的软件该过程首先测试该过程首先测试/OBF以确定打印机是否已从端口以确定打印机是否已从端口B移移走数据。如果没有走数据。如果没有,该过程就等待从打印机返回的该过程就等待
39、从打印机返回的/ACK 信号信号假设假设/OBF= 1,那么该过程通过端口那么该过程通过端口B将将AH中的内容发中的内容发送给打印机送给打印机,同时还发送同时还发送/DS信号信号8889方式方式 2双向操作双向操作方式方式2只允许只允许A组采用组采用,此时端口此时端口A变为双向变为双向,允许数据在允许数据在同一组同一组8条线上发送和接受。条线上发送和接受。9091双向方式双向方式 2的信号定义的信号定义INTR : 中断请求是一个输出信号中断请求是一个输出信号,用于在输入和输出用于在输入和输出情况下中断微处理器情况下中断微处理器/OBF: 输出缓冲器满是一个输出信号输出缓冲器满是一个输出信号,
40、说明输出缓冲器说明输出缓冲器包含给双向总线的数据包含给双向总线的数据/ACK: 响应输入信号允许三态缓冲器响应输入信号允许三态缓冲器,使数据可以出使数据可以出现在端口现在端口A。如果。如果/ACK为逻辑为逻辑1,那么端口那么端口A的输出缓的输出缓冲器处于高阻抗状态冲器处于高阻抗状态92/STB: 选通输入将来自双向端口选通输入将来自双向端口A总线上的外部数据装总线上的外部数据装入端口入端口A的输入锁存器的输入锁存器IBF: 输入缓冲器满是一个输出信号输入缓冲器满是一个输出信号,说明输入缓冲器已说明输入缓冲器已包含外部双向总线的数据包含外部双向总线的数据INTE: 中断允许是允许中断允许是允许I
41、NTR引脚的内部位引脚的内部位(INTE1和和INTE2),INTR引脚的状态通过端口引脚的状态通过端口C的的PC6(INTE1) 和和PC4(INTE2)控制控制PC2, PC1和和 PC0: 这些引脚在方式这些引脚在方式2下为通用下为通用I/O引脚引脚,由位设置于复位命令控制由位设置于复位命令控制9394在实际传输过程中,输入和输出的顺序以及各自操作在实际传输过程中,输入和输出的顺序以及各自操作的次数是任意的,只要的次数是任意的,只要/WR在在/ACK之前发出,之前发出,/STB在在/RD之前发出就可以了之前发出就可以了在输出时,在输出时,CPU发出写脉冲发出写脉冲/WR,向,向A口写入数
42、据。口写入数据。/WR信号使信号使INTR变为低电平,同时使变为低电平,同时使/OBF有效。外有效。外设接到设接到/OBF信号后发出信号后发出/ACK信号,从信号,从A口读出数据。口读出数据。/ACK信号使信号使/OBF无效,并使无效,并使INTR变为高电平,产生变为高电平,产生中断请求,准备输出下一个数据中断请求,准备输出下一个数据输入时,外设向输入时,外设向82C55送来数据,同时发送来数据,同时发/STB信号给信号给82C55,该信号将数据锁存到,该信号将数据锁存到82C55的的A口,从而使口,从而使IBF有效。有效。/STB信号结束使信号结束使INTR有效,向有效,向CPU请求中请求中
43、断。断。CPU响应中断后,发出读信号响应中断后,发出读信号/RD,从,从A口中将数口中将数据读走。据读走。/RD信号会使信号会使INTR和和IBF信号无效,从而开信号无效,从而开始下一个数据的读入过程始下一个数据的读入过程95双向总线双向总线用用IN和和OUT指令访问端口指令访问端口A时使用双向总线时使用双向总线为通过双向总线发送数据为通过双向总线发送数据,程序首先测试程序首先测试/OBF信号以确信号以确定输出缓冲器是否为空。假设为空定输出缓冲器是否为空。假设为空,那么数据由那么数据由OUT指指令发送给输出缓冲器。外部电路也监视令发送给输出缓冲器。外部电路也监视/OBF信号信号,以决以决定微处
44、理器是否已将数据发送给总线。一旦输出电路定微处理器是否已将数据发送给总线。一旦输出电路检测到检测到/OBF为逻辑为逻辑0,它就从输出缓冲器移走数据并返它就从输出缓冲器移走数据并返回回/ACK信号。信号。/ACK信号置位信号置位/OBF并允许三态输出缓并允许三态输出缓冲器冲器,从而可以读出数据从而可以读出数据9697为通过双向端口为通过双向端口A的总线接受数据的总线接受数据,软件测试软件测试IBF位以确位以确定数据是否已被选通进入端口。如果定数据是否已被选通进入端口。如果IBF= 1,那么用那么用IN指令输入数据。外部接口通过使用指令输入数据。外部接口通过使用/STB信号将数据送信号将数据送入端
45、口入端口,当当/STB被激活时被激活时,IBF信号变为逻辑信号变为逻辑1,端口端口A的的数据被保持在端口内部的锁存器中。当执行数据被保持在端口内部的锁存器中。当执行IN指令时指令时, IBF位被清零位被清零,端口中的数据被移入端口中的数据被移入AL9899INTR (中断请求中断请求)引脚可被通过总线来自两个方向的数引脚可被通过总线来自两个方向的数据流激活。如果两个据流激活。如果两个INTR位都允许位都允许INTE,那么输出缓那么输出缓冲器空和输入缓冲器满都产生中断请求。这种情况出冲器空和输入缓冲器满都产生中断请求。这种情况出现在使用现在使用/STB将数据选通进入缓冲器的时候将数据选通进入缓冲
46、器的时候,或是使用或是使用 OUT指令写数据的时候指令写数据的时候1008254可编程间隔定时器可编程间隔定时器8254可编程间隔定时器由可编程间隔定时器由3个独立的个独立的16位可编程计数器位可编程计数器 (定时器定时器)组成。每个计数器可按二进制或二进制编码的组成。每个计数器可按二进制或二进制编码的十进制十进制(BCD)计数计数该定时器还出现在该定时器还出现在PC中中,完成以下工作完成以下工作: 产生一个大约产生一个大约以频率发生的根本定时器中断以频率发生的根本定时器中断;刷新刷新DRAM存储器系统存储器系统;为内部扬声器和其他设备提供定时源为内部扬声器和其他设备提供定时源10110210
47、3每个定时器包含了一个每个定时器包含了一个 CLK输入输入,一个门控输入以及一一个门控输入以及一个输出个输出(OUT)引脚引脚CLK输入为定时器提供了根本的操作频率输入为定时器提供了根本的操作频率门控引脚控制工作在某些方式下的定时器门控引脚控制工作在某些方式下的定时器从从OUT引脚可获得定时器的输出引脚可获得定时器的输出与微处理器相连的信号有数据总线引脚与微处理器相连的信号有数据总线引脚(D7-D0), /RD, /WR, /CS以及地址输入以及地址输入A1和和A0地址输入用于选择地址输入用于选择4个内部存放器中的任何一个个内部存放器中的任何一个,这些这些存放器用来对定时器进行编程、读或写存放
48、器用来对定时器进行编程、读或写104105A1, A0: 地址输入选择地址输入选择8254中中4个内部存放器中的一个个内部存放器中的一个CLK: 时钟输入是每个内部定时器的定时源。该输入时钟输入是每个内部定时器的定时源。该输入常与来自微处理器系统总线控制器的常与来自微处理器系统总线控制器的PCLK信号相连信号相连/CS: 片选允许片选允许8254对计数器进行编程,读或写对计数器进行编程,读或写 G: 门控输入控制计数器在某些操作方式下的操作门控输入控制计数器在某些操作方式下的操作OUT: 在计数器输出引脚上可得到定时器产生的波形在计数器输出引脚上可得到定时器产生的波形/WR: 写引脚使数据写入
49、写引脚使数据写入82545,它常与写选通它常与写选通/IOWC信信号相连号相连引脚定义引脚定义106/RD: 读读引脚使数据从引脚使数据从8254中读出中读出,它常与它常与/IORC 信号相信号相连连Vcc: 电源电源与电源相连与电源相连GND: 接地接地引脚与系统地总线相连引脚与系统地总线相连107编程编程 8254每个计数器通过写一个控制字和计数初值被单独编程每个计数器通过写一个控制字和计数初值被单独编程控制字允许编程人员选择计数器、操作方式以及操作控制字允许编程人员选择计数器、操作方式以及操作类型类型(读读/写写)控制字还可用于选择是二进制计数还是控制字还可用于选择是二进制计数还是BCD
50、计数计数 M2, M1和和M0位选择计数器的位选择计数器的6种操作方式种操作方式(000-101)中中的一种的一种RW1和和RW0位确定数据如何从计数器中读出或写入计位确定数据如何从计数器中读出或写入计数器数器 SC1和和SC位选择一个计数器或特殊的读回操作方式位选择一个计数器或特殊的读回操作方式108109Mode 0 计数结束中断计数结束中断: 方式方式0为软件启动,不自动为软件启动,不自动重复计数的方式重复计数的方式第一个写信号第一个写信号/WR有效时向计数器写入控制字有效时向计数器写入控制字CW,之后其输出端之后其输出端OUT就变低电平就变低电平第二个第二个/WR有效时装入计数初值,然
51、后经过一个有效时装入计数初值,然后经过一个CLK信号的上升沿和下降沿,初值进入计数器信号的上升沿和下降沿,初值进入计数器当计数减到零当计数减到零计数结束后,计数结束后,OUT 输出变为高电平输出变为高电平在整个计数过程中,在整个计数过程中,GATE端应始终保持高电平端应始终保持高电平OUT输出信号可以作为中断请求信号使用输出信号可以作为中断请求信号使用1108254方式0的波形8254方式0的波形CWN= 4/WRCLKGATE= 1OUT43210111Mode 1 可重触发的单稳态触发器可重触发的单稳态触发器: 方式方式1是一种软是一种软件启动,不自动重复的工作方式件启动,不自动重复的工作
52、方式当写入控制字后,当写入控制字后,OUT端输出高电平端输出高电平在在CPU写入计数初值后,计数器并不开始计数,而是写入计数初值后,计数器并不开始计数,而是要等要等GATE出现由低到高的跳变触发后,在下一出现由低到高的跳变触发后,在下一个个CLK脉冲的下降沿才开始计数,此时脉冲的下降沿才开始计数,此时OUT端立刻变端立刻变为低电平为低电平当计数结束后,当计数结束后,OUT 端输出高电平,这样就可以从端输出高电平,这样就可以从OUT端得到一个负脉冲,负脉冲宽度为计数初值端得到一个负脉冲,负脉冲宽度为计数初值N乘乘以以CLK的周期的周期TCLK当计数到当计数到0时,不用再写入计数初值,只要用时,不
53、用再写入计数初值,只要用GATE的的上升沿重新触发一次计数器,即可产生一个同样宽度上升沿重新触发一次计数器,即可产生一个同样宽度的负脉冲的负脉冲假设在形成单个负脉冲的计数的过程中,外部的假设在形成单个负脉冲的计数的过程中,外部的GATE上升沿提前到来,那么下一个上升沿提前到来,那么下一个CLK脉冲的上升脉冲的上升沿使计数器重新装入计数初值,并紧接着在沿使计数器重新装入计数初值,并紧接着在CLK的下的下降沿重新开始计数。这时负脉冲宽度将会加宽,宽度降沿重新开始计数。这时负脉冲宽度将会加宽,宽度为重新触发前的已有宽度与新一轮计数过程的宽度之为重新触发前的已有宽度与新一轮计数过程的宽度之和和1128
54、254方式1的波形8254方式1的波形CWN= 2/WRCLKGATEOUT210OUTGATE21210210提前触发,则输出脉冲加宽113Mode 2 频率发生器频率发生器: 在这种方式下,计数器既可在这种方式下,计数器既可以用软件启动,也可以用硬件启动以用软件启动,也可以用硬件启动假设写入控制字和计数初值期间假设写入控制字和计数初值期间GATE一直为高电平,一直为高电平,那么在写入计数初值后的下一个那么在写入计数初值后的下一个CLK开始计数软件开始计数软件启动启动假设送计数器初值时,假设送计数器初值时,GATE为低电平,那么要等到为低电平,那么要等到GATE信号由低变高时才启动硬件启动信
55、号由低变高时才启动硬件启动一旦计数器启动,可以自动重复工作一旦计数器启动,可以自动重复工作在写入方式在写入方式2控制字后,控制字后,OUT端变为高电平,假设此时端变为高电平,假设此时GATE= 1,那么装入计数初值后计数器从下一个,那么装入计数初值后计数器从下一个CLK的下降沿开始计数,经过的下降沿开始计数,经过N-1个个CLK周期后,周期后,OUT端端变为低电平,再经过一个变为低电平,再经过一个CLK周期,计数值减到零后,周期,计数值减到零后,OUT又恢复为高电平又恢复为高电平1148254方式2的波形8254方式2的波形CWN= 3/WRCLKGATE= 1OUT3213213115Mod
56、e 3 方波发生器方波发生器: 与方式与方式2类似,也有两种启动类似,也有两种启动方式,也能够自动重复计数方式,也能够自动重复计数只是计数到只是计数到N/2时,时,OUT 变为低,再接着计数到变为低,再接着计数到0时,时,OUT 又变为高,并开始新一轮计数又变为高,并开始新一轮计数此时此时OUT端输出的波形不是负脉冲,而是方波端输出的波形不是负脉冲,而是方波假设假设N为奇数,那么输出波形不对称,其中为奇数,那么输出波形不对称,其中(N+1)/2个个时钟周期,时钟周期,OUT为高电平,而另外为高电平,而另外(N-1)/2个时钟周期,个时钟周期,OUT为低电平为低电平1168254方式3的波形82
57、54方式3的波形CWN= 4/WRCLKGATE= 1OUT43224131117Mode 4 软件触发选通软件触发选通: 不自动重复计数不自动重复计数写入方式写入方式4控制字后,输出控制字后,输出OUT立即变为高电平立即变为高电平假设假设GATE= 1,那么装入计数初值后计数立即开始,那么装入计数初值后计数立即开始当计数结束时,当计数结束时,OUT输出一个宽度为输出一个宽度为TCLK的负脉冲的负脉冲1188254方式4的波形8254方式4的波形CWN= 4/WRCLKGATE= 1OUT43021119Mode 5 硬件触发选通硬件触发选通: 不自动重复计数不自动重复计数写入方式写入方式5控
58、制字后,输出控制字后,输出OUT立即变为高电平,但此立即变为高电平,但此时即使时即使GATE原来为高,也不能启动计数,而必须出原来为高,也不能启动计数,而必须出现一个现一个GATE上升沿跳变,计数才会开始上升沿跳变,计数才会开始计数结束时,计数结束时,OUT输出一个宽度为输出一个宽度为TCLK的负脉冲的负脉冲1208254方式5的波形8254方式5的波形CWN= 4/WRCLKGATEOUT43021121每个计数器有一个内部锁存器每个计数器有一个内部锁存器,它由读计数器端口操作它由读计数器端口操作进行读取进行读取这些锁存器通常跟着计数器值变化这些锁存器通常跟着计数器值变化如果需要计数器的内容
59、如果需要计数器的内容,那么锁存器可以通过编程计数那么锁存器可以通过编程计数器锁存控制字来记住计数值器锁存控制字来记住计数值,这个控制字使得计数器的这个控制字使得计数器的内容被保持在锁存器中直到它被读出内容被保持在锁存器中直到它被读出当编程读锁存器或计数器时当编程读锁存器或计数器时,锁存器就跟踪计数器的内锁存器就跟踪计数器的内容读回时,先读状态值,再读数据值,假设是容读回时,先读状态值,再读数据值,假设是16为为数据,那么先读低字节,再度高字节数据,那么先读低字节,再度高字节122D7D6D5D4D3D2D1D0OUTPUTNULL COUNTRW1RW0M2M1M0BCD1=本计数器本计数器O
60、UT引脚引脚为为10=本计数器本计数器OUT引脚引脚为为01=无效计数无效计数0=计数值有效计数值有效由控制字设定的计数器工作方式由控制字设定的计数器工作方式8254 状态存放器状态存放器11D5D4D3D2D10标标志志0 = 锁 存锁 存计数值计数值0=锁存锁存状态状态1 = 选 中选 中计数器计数器21 = 选 中选 中计数器计数器11 = 选 中选 中计数器计数器0 8254 读回控制字读回控制字123图图11-41给出了给出了8254与与80386SX微处理器的连接图微处理器的连接图,其其 I/O端口地址为端口地址为0700H, 0702H, 0704H和和0706H 使用使用PAL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Focusky课件样例教学课件
- face-课件教学课件
- Unit 2 Section B (2a-2e) 说课稿 2025-2026学年人教版英语八年级下册
- Excel筛选课件教学课件
- eskimos课件教学课件
- 信号截获课件
- 2024-2025学年高中生物 第4章 种群和群落 第3节 群落的结构说课稿 新人教版必修3
- 2025年历年护理综合题库及答案
- 2025-2026学年二年级上册数学第二单元(1~6的表内除法)过关试卷(苏教版)及答案
- 高中信息技术 视频信息的简单加工说课稿 教科版选修2
- 青岛 二年级 数学 上册 第4单元《8的乘法口诀》教学课件
- 大学化学第04章-能源化学基础课件
- 广东省东莞市五校2024-2025学年高一上学期第一次联考数学试题(无答案)
- PVC-地面中水泥基自流平找平层的施工作业指导书
- 国家公务员行测数量关系(数字推理)模拟试卷1(共253题)
- 道路施工分包合同范例
- 北师大版四年级数学上册第五单元《方向与位置》(大单元教学设计)
- 《民航客舱设备操作与管理》课件-项目二 客舱服务设备
- GB 32032-2024金矿开采、选冶和金精炼单位产品能源消耗限额
- 2024年四川省自然资源投资集团有限责任公司招聘笔试参考题库附带答案详解
- 2024年社工考试题库大全(含答案)
评论
0/150
提交评论