70 likes | 223 Views
上节复习( 11.28 ). 1 、总线的概念 2 、地址锁存的要点 3 、访问总线地址的软件方法 4 、 I/O 口扩展的要点. 51 单片机两种外设访问方法. 总线方式 —— 采用片外 RAM 指令( MOVX ) I/O 方式 —— 采用片内 RAM 指令( MOV ). 1 、总线的概念. 总线( BUS ) — — 传送同类信息的公共通道. 三总线 —— 地址总线 AB 、数据总线 DB 、控制总线 CB. 51 单片机的外部总线引脚 控制总线 ——P3 口 (/WR 和 /RD)+ 控制引脚 (ALE)
E N D
上节复习(11.28) 1、总线的概念 2、地址锁存的要点 3、访问总线地址的软件方法 4、I/O口扩展的要点
51单片机两种外设访问方法 总线方式——采用片外RAM指令(MOVX) I/O方式——采用片内RAM指令(MOV) 1、总线的概念 • 总线(BUS)——传送同类信息的公共通道 三总线——地址总线AB、数据总线DB、控制总线CB • 51单片机的外部总线引脚 • 控制总线——P3口(/WR和/RD)+控制引脚(ALE) • 地址总线——P0口(低8位地址)+P2口(高8位地址) • 数据总线——P0口(8位数据)
2、地址锁存的要点 • 同时使用低8位地址和8位数据信息时,需要通过地址锁存器将P0口的地址信息与数据信息分开; • 在ALE正脉冲触发下,74LS373先锁存输出P0口送出的低8位地址,然后与P0口信号隔离。
3、访问总线地址的软件方法 ① 汇编语言——4条MOVX指令 读操作: MOVX A,@DPTR MOVX A,@Ri 写操作: MOVX @DPTR,A MOVX @Ri,A 读操作时,/RD引脚 →负脉冲 写操作时,/WR引脚→负脉冲
② C51语言 • 宏定义方法 • #include <absacc.H> • #define 变量名XBYTE [地址常数] • 指针变量方法 数据类型 xdata *变量名 [=地址常数]; • _at_关键词法 数据类型 xdata 变量名 _at_ 地址常数;
4、利用总线扩展I/O端口的要点 • 利用总线指令产生的/WR和/RD脉冲作为外设控制信号 • 利用或门将/WR或/RD信息与地址信息(P2+P0)合成为 外设选通信号( “0”解锁,“1”加锁原理) • 利用74LS273 (8个带清零功能的D触发器)扩展输出端 • 外设地址: P2+P0的16位信息 U2: 01xx xxxx xxxx xxxx U3: 10xx xxxx xxxx xxxx