图9-4 合并输入输出口
• 正如前面所提到的,扩展I/O口和扩展外部RAM一样,因此访 问外部I/O口就像访问外部 RAM一样,用的是 MOVX类指令。
• 对于图9-4,如果需要实现的功能是按下任意一个按键,对应的 LED发光,则程序如下:
• LOOP: MOV DPTR,#0FEFFH ;数据指针指向扩展I/O 地址
个输出端口、1个时钟输入端 CLK(上升沿有效)和1个允许控制 端OE,其功能见表9-1。(见教材P190页) • 如图9-1所示,OE与P2.7相连,74LS377的地址为7FFFH; • 若与P2.0相连,则地址相应为0EFFH。
图9-1 MCS-51扩展输出口74LS377
• 【例9.1】 若以图9-1为接口电路,将片内RAM地址为50H单元 的数据通过该电路输出。程序清单如下:
• 输入控制信号由P2.0和RD合成,当二者同时为低电平时,或门
• 与74HC244相连的按键开关没有按下时,输入全为1;若按下某 键则所在的线输入为0。
• 可见,输入输出都是在P2.0为0时有效,因此它们的口地址为 0FEFFH,即占用相同的地址空间。但是由于分别用RD和WR信号 控制,因此不会发FFFH ;数据指针指向74LS377
•
MOV A,50H
;输出的50H单元数据送累加器A
•
MOVX @DPTR,A
;P0口将数据通过74LS377输出
• (2)用74LS374扩展并行输出口
• 74LS374是具有三态输出的8D边沿触发器,其功能与 74LS377相似,见表9-2。(见教材P190页)
用相同的指令。
• (2)扩展多片I/O芯片或多个I/O设备时,注意总线的驱动能 力问题;
• (3)扩展I/O口的目的是为了单片机与外部设备进行信息交换 而设置的一个输入输出通道,I/O口最终与外设相连。