第9章89C51扩展IO接口的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 G 1A1 2Y4 1A2 2Y3 1A3 2Y2 1A4 2Y1 GND
1 2 3 4 5 6 7 8 9 10 74LS244
20 19 18 17 16 15 14 13 12 11
VCC
G 2 1Y1
2A4 1Y2 2A3 1Y3 2A3 1Y4 2A1
74LS273各引脚定义如下: D0~D7:输入线。 Q0~Q7:输出线。 CLR:清除控制端, 低电平有效。 CLK:时钟输入端, 上升沿有效。 VCC:工作电源, 接+5V电压。 GND:接地。
三、利用串行口扩展并行口
串行口的工作方式0为同步移位寄存器输入/输出方式, 常用于外接移位寄存器,以扩展并行I/O口。 波特率:fosc/12 发送、接收的数据是8位 不占用片外RAM地址,节省了硬件开销
用74LS165扩展并行输入口
74LS165:并行输入,串行输出移位寄存器
例 从16位扩展口读入5组数据(每组二个字节),并 把它们转存到内部RAM 20H开始的单元中。
练习:用8个开关分别控制8个LED(其中 开关信息通过串行口输入)
用74LS164扩展并行输出口. 74LS164:8位串入并出移位寄存器。
74LS164:串行输入,并行输出移位寄存器
例 编写将内部RAM单元30H、31H的内容经串行口 由74LS164并行输出子程序。
START: MOV R7,#02H ;设臵要发送的字节个数 MOV R0,#30H ;设臵地址指针 MOV SCON,#00H ;设臵串行口为方式0 SEND: MOV A,@R0 MOV SBUF,A ;启动串行口发送过程 WAIT: JNB TI,WAIT ;1帧数据未发完,循环等待 CLR TI INC R0 ;取下一个数 DJNZ R7,SEND ;未完,发完从子程序返回 RET
注:MCS-51使用统一编址的方式
4、常用的扩展方法
简单的I/O口扩展
可编程I/O口芯片

常用I/O口芯片有:82C55、81C55
利用串行口扩展并行口
二、简单I/O口扩展
用并行口扩展I/O口
选择TTL电路或MOS电路即能组成简单的扩展I/O口。 如:用8位三态缓冲器74LS244可扩展输入口; 用8D锁存器74LS273、74LS373、74LS377等可组 成输出口。
I/O的地 址是多 少?
只要 P2.0=0即 可,其它 为0为1都 行。
当P2.0=0;RD=0;WR=1时,选中74LS244,其 输出状态通过P0口被读入89C51
输入程序段: MOV DPTR,#0FEFFH MOVX A,@DPTR 输出程序段: MOV A,#data MOV DPTR,#0FEFFH MOVX @DPTR,A
练习:通过串行口实现流水灯。
Q & A? Thanks!
74LS244各引脚定义如下: 1A1~1A4:第1组4条输入线 1Y1~1Y4:第1组4条输出线 2A1~2A4:第2组4条输入线 2Y1~2Y4:第2组4条输出线 1G:第1组三态门使能端, 低电平有效 2G:第2组三态门使能端, 低电平有效 VCC:工作电源,接+5V电压 GND:接地
MOV R7,#05H ;设臵读入组数 MOV R0,#20H ;设臵内部RAM数据区首址 START: CLR P1.0 ;并行臵入数据,S/L*=0 SETB P1.0 ;允许串行移位,S/L*=1 MOV R1,#02H ;设臵每组字节数,即外扩74LS165的个数 RXDAT: MOV SCON,#10H ;设串口方式0,允许接收,启动 WAIT: JNB RI,WAIT ;未接收完一帧,循环等待 MOV A,SBUF ;读入数据 CLR RI ;清RI标志,准备下次接收 MOV @R0,A ;送至RAM缓冲区 INC R0 ;指向下一个地址 DJNZ R1,RXDATA ;未读完一组数据,继续 DJNZ R7,START ;5组数据未读完重新并行臵入 …… ;对数据进行处理
;I/O地址→DPTR ;RD为低,74LS244口 ;数据读入内部RAM ;数据→A ;I/O地址→DPTR ;WR为低,数据经74LS273口输出
?若想将开关 的状态用发光 二极管显示出 来,如何编程
输入程序段: MOV DPTR,#0FEFFH ;I/O地址→DPTR LOOP:MOVX A,@DPTR ;RD为低,74LS244口数据读入内部RAM MOVX @DPTR,A ;WR为低,数据经74LS273口输出 SJMP LOOP
扩展I/O接口设计
一、概述
51单片机有4组并口P0-P3, 为什么还要扩展I/O口?
MCS-51真正用作 I/O口线的只有P1 口的8位I/O线和 P3口的某些位线。
1、I/O接口的功能:
(1)对单片机输出的数据锁存
锁存数据线上瞬间出现的数据,以解决单片机与I/O设备的速度协调 问题。
(2)对输入设备的三态缓冲
2、 单片机与I/O设备的数据传送方式
(1)无条件传送
适用于对简单的I/O设备(如开关、LED显示器、继电器 等)的操作,或者I/O设备的定时固定或已知的场合。
(2)查询状态传送
查询外设“准备好”后,再进行数据传送。通用性好, 硬件连线和查询程序十分简单效率低。
(3)中断传送方式
外设准备好后,发中断请求,单片机进入与外设数据传 送的中断服务程序,进行数据的传送。中断服务完成后又返 回主程序继续执行。效率大大提高。
外设传送数据时要占用总线,不传送数据时必须对总线呈高阻状态。 利用I/O接口的三态缓冲功能,可以实现I/O设备与数据总线的隔离,便于 其它设备的总线挂接。
(3)信号转换
信号类型(数字与模拟、电流与电压)、信号电平(高与低、正与 负)、信号格式(并行与串行)等的转换。
(4)时序协调
不同的I/O设备定时与控制逻辑是不同的,并与CPU的时序往往是不一 致的,这就需要I/O接口进行时序的协调。
CLR Q0 D0 D1 Q1 Q2 D2 D3 Q3 GND
1 2 3 4 5 6 7 8 9 10 74LS273
20 19 18 17 16 15 14 13 12 11
VCC Q7 D7 D6 Q6 Q5 D5 D4 Q4 CLK
当P2.0=0;RD=0;WR=1时,选中74LS244,其 输出状态通过P0口被读入89C51
(4)直接存储器存取(DMA)方式
适于高速外设以及成组交换数据的场合 。
3、I/O端口编址
(1)独立编址方式
I/O寄存器地址空间和存储器地址空间分开编址,但 需专门读写I/O的指令和控制信号。
(2)统一编址方式
I/O寄存器与数据存储器单元同等对待,统一编址。 不需要专门的I/O指令,直接使用访问数据存储器 的指令进行I/O操作,简单、方便且功能强。
相关文档
最新文档