微机课件Lecture12并行口的扩展
MCS-51并行口的扩展,MCS-51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。 可外扩的并行口芯片很多,分成2类: 不可编程的并行口芯片(74LS373和74LS245) 可编程的并行口芯片(8255A)。 不可编程并行口芯片的扩展,使用一般的锁存器扩展51系统的并行输出口 使用一般的缓冲器扩展51系统的并行输入口,不可编程并行口芯片的扩展,1、 74LS373的结构 2、 74LS373的引脚 3、 74LS373与89C51的连接,利用锁存器74LS373扩展并行输出口,D,CP,Q,D,CP,Q,D,CP,Q,D,CP,Q,D,CP,Q,D,CP,Q,D,CP,Q,D,CP,Q,D0,D1,D2,D3,D4,D5,D6,D7,Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,LE,OE,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,/OE,D0,D7,74LS373,AB15,AB0,AB15,LE,74LS373与89C51的连接图,+,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,思考: 2片74LS373与89C51如何连接?,完成输出操作只需要两条指令: MOV DPTR, #0000H MOVX DPTR, A,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,OE,D0,D7,74LS373片1,AB15,AB0,AB15,LE,思考:2片74LS373与89C51的连接图,+,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,OE,D0,D7,74LS373 片2,LE,+,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,AB14,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,/OE,D0,D7,74LS373片1,AB15,AB0,AB15,LE,思考:2片74LS373与89C51的连接图,+,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,/OE,D0,D7,74LS373 片2,LE,+,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,AB14,片1完成输出操作: MOV DPTR, #4000H MOVX DPTR, A 片2完成输出操作: MOV DPTR, #8000H MOVX DPTR, A,1、 74LS245的结构 2、 74LS245的引脚 3、 74LS245与89C51的连接,利用缓冲器74LS245扩展并行输入口,DIR,B0,B7,74LS245,/E,74LS245与89C51的连接图,+,A7,A6,A5,A4,A3,A2,A1,A0,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,AB15,AB0,AB15,地址码的计算,计算74LS245的地址(8051送出何种地址码时可以将数由A端传到B端),完成输入操作只需要两条指令: MOV DPTR, #0000H MOVX A, DPTR,思考: 2片74LS245与89C51如何连接?,DIR,B0,B7,74LS245,/E,+,A7,A6,A5,A4,A3,A2,A1,A0,DIR,B0,B7,74LS245,/E,+,A7,A6,A5,A4,A3,A2,A1,A0,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,AB15,AB0,AB15,AB14,思考:2片74LS245与89C51的连接图,DIR,B0,B7,74LS245片1,E,+,A7,A6,A5,A4,A3,A2,A1,A0,DIR,B0,B7,74LS245片2,E,+,A7,A6,A5,A4,A3,A2,A1,A0,ALE,RD,WR,PSEN,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,89C51,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,A0,A1,A2,A3,A4,A5,A6,A7,OE,LE,D0,D1,D2,D3,D4,D5,D6,D7,74LS373,DB,AB,CB,AB15,AB0,AB15,AB14,思考:2片74LS245与89C51的连接图,片1完成输入操作: MOV DPTR, #4000H MOVX A, DPTR 片2完成输入操作: MOV DPTR, #8000H MOVX A, DPTR,用锁存器和缓冲器扩展I/O口举例,使用一片74LS373锁存器扩展一个8位的并行输出口,接8个 发光二极管;使用一片74LS244双4路三态缓冲器扩展一个8 位的输入口,接8个开关。写一段程序可以将8个开关的状态 在8个发光二极管上循环显示。,ALE P0.0 P0.7 WR P2.7 P2.6 RD,G D0 D7 OE,Q0 Q7,G D0 D7 OE,Q0 Q7,1Y1 1Y4 2Y1 2Y4 1G 2G,1A1 1A4 2A1 2A4,+,+,Vcc,Vcc,373,244,373,8031,用锁存器和缓冲器扩展I/O口举例,确定端口地址 当P2.7=1时,如果写操作(WR有效),选中输出锁存器74LS373,对外并行输出; 当P2.6=1时,如果读操作(RD有效),选中输入缓冲器74LS244,完成并行输入。 安排端口地址如下: 74LS373 8000H 74LS244 4000H,用锁存器和缓冲器扩展I/O口举例,程序 START: MOV DPTR, #4000H ;读开关状态 MOVX A, DPTR MOV DPTR, #8000H ;显示开关状态 MOVX DPTR , A ACALL DELAY JMP START,用锁存器和缓冲器扩展I/O口举例,改连线如下图,考虑端口地址如何分配。,ALE P0.0 P0.7 WR P2.7 RD,G D0 D7 OE,Q0 Q7,G D0 D7 OE,Q0 Q7,1Y1 1Y4 2Y1 2Y4 1G 2G,1A1 1A4 2A1 2A4,+,+,Vcc,Vcc,373,244,373,8031,