第八章++并行接口技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、片内并行I/O口的应用编程(1) 片内并行I/O口的应用编程
1、数据的无条件传送: 、数据的无条件传送: 应用编程实例: 应用编程实例: 硬件描述: 口低4位 ~ 硬件描述 : MCS-51P1口低 位 P0~ 口低 P3接 4位板动开关 , 高4位 P4~ P7通过 位板动开关, 通过4 接 位板动开关 位 ~ 通过 只同相放大器驱动4只 发光二极管。 只同相放大器驱动 只LED发光二极管。 发光二极管 编程要求: 位板动开关的状态通过 编程要求:4位板动开关的状态通过 LED发光二极管指示出来 , 接通时点亮。 发光二极管指示出来, 接通时点亮 。 发光二极管指示出来
一、片内并行I/O口 片内并行I/O口
(1)
1、 P0口: 、 口 结构: ⑴结构: 如图 图例 作用: 地址、数据分时复用( ⑵作用: 地址、数据分时复用(外扩存储 口时) 器、I/O口时) 口时 通用I/O接口 片外不扩展时) 接口( 通用 接口(片外不扩展时) 驱动能力: ⑶驱动能力:800A 输入时: 输入时:由集电极开路或漏极开路电路驱 应外加提升电阻; 动,应外加提升电阻; 输出时: 负载为MOS电路时 , 应外加提 电路时, 输出时 : 负载为 电路时 升电阻; 升电阻; 口地址: 区的80H ⑷口地址: SFR区的 区的
二、可用于片内并行 I/O口的指令(2) I/O口的指令
3、片内I/O口的位操作指令: 、片内 口的位操作指令 口的位操作指令: MOV Px.y,C ;X=0、1、2、3,Y=0~7 , 、 、 、 , ~ CLR Px.y SETB Px.y CPL Px.y 4、片内 口的位测试转移指令: 口的位测试转移指令: 、片内I/O口的位测试转移指令 JB Px.y,rel , JNB Px.y,rel , JBC Px.y,rel ,
一、片内并行I/O口 片内并行I/O口
(4)
4、 P3口: 、 口 结构: ⑴结构: 如图 图例 作用: 通用I/O口 性能同P1口 ⑵作用: 通用 口(性能同 口) 每位均有第二功能如下表, 每位均有第二功能如下表,作第二功能引脚前必须如作准双 向口时一样先作输出高电平处理。 向口时一样先作输出高电平处理。 引脚 功能
第八章
并行I/O接口 并行I/O接口
的片内并行I/O接口 : 接口: §8-1 MCS-51的片内并行 的片内并行 接口 简单并行I/O接口扩展 接口扩展: §8-2 简单并行 接口扩展: : §8-3 可编程并行接口8255: 可编程并行接口
§8-1 MCS-51的片内并行I/O接口 MCS-51的片内并行 接口 的片内并行I/O 一、片内并行I/O接口 片内并行 接口 二、 可用于片内并行 口的指令 可用于片内并行I/O口的指令 三、片内并行I/O口的应用编程 片内并行 口的应用编程
三、片内并行I/O口的应用编程(4) 片内并行I/O口的应用编程
解:主程序 ORG AJMP ORG AJMP ORG MAIN: MOV : MOV SETB SETB SETB HERE: AJMP : 0000H MAIN 0003H 外部中断0中断入口 ;外部中断 中断入口 EINT0 0030H SP,#5FH ;堆栈指针设置 堆栈指针设置60H单元开始 , 单元开始 R0,#2AH , ;R0指向源数据的首地址 指向源数据的首地址 IT0 设置外部中断0脉冲方式工作 ;设置外部中断 脉冲方式工作 EX0 外部中断0允许 ;外部中断 允许 EA ;CPU中断开放 中断开放 HERE ;踏步等待中断
三、片内并行I/O口的应用编程(3) 片内并行I/O口的应用编程
2、中断方式的数据传送: 、中断方式的数据传送: 应用编程实例: 应用编程实例: 硬件描述: 按键开关K连接在 连接在MCS-51的 硬件描述 : 按键开关 连接在 的 外部中断INT0(引脚 开关K已有硬 外部中断 ( 引脚P3.2)上, 开关 已有硬 ) 件开关消抖动电路处理。 口为并行数据输出 件开关消抖动电路处理。P1口为并行数据输出 口。 编程要求:按动一次开关K, 编程要求 : 按动一次开关 , 产生一次外 部中断, 输出一个字节的数据, 部中断 , 输出一个字节的数据 , 轮流将片内 RAM的 2AH~ 2FH单元中的数据从 口输出 。 单元中的数据从P1口输出 的 ~ 单元中的数据从 口输出。
三、片内并行I/O口的应用编程(7) 片内并行I/O口的应用编程
解: PXMAIN: : ORG MOV MOV MOV JB LCALL MOVX MOV INC CJNE SJMP CJNE SJMP SETB SJMP CLR SJMP 0120H DPTR,#0E000H , R7,#10H , R0,#50H , P1.0,PXLP3 , D20MS A, A,@DPTR @R0,A , R0 R0,#60H,PXLP1 , , PXLP3 A,#20H,PXLP2 , , PXLP3 P1.7 PXLP0 P1.7 PXMAIN ;数据指针指向外设的数据端口 输入最多为16次 ;输入最多为 次 数据指针R0指向目标地址 ;数据指针 指向目标地址 ;S未按下转移 未按下转移 ;已按下则调延时子程序去抖动 ;读入一字节数据 ;存入目标地址 ;修正目标地址指针 ;未超出数据存放地址时转移 ;已超出则转出口 ;不是空格符则转移 ;是空格符转出口 点亮LED ;点亮 ;转重新输入数据 熄灭LED ;熄灭 重新等待按S键 ;重新等待按 键
+5V
R R R R
P1.0
K0 K1 K2 K3
A R LED0 A R LED1 A R LED2 A R LED3
硬 件 连 接 图 8051
P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
三、片内并行I/O口的应用编程(2) 片内并行I/O口的应用编程
解: ORG LJMP ORG P1MAIN: MOV : MOV 0000H P1MAIN 0100H A,#0FH , P1,A ;P1口读入前先熄灭发光二极管 口读入前先熄灭发光二极管, , 口读入前先熄灭发光二极管 ; 并使输出驱动 并使输出驱动FET截止 截止 MOV A,P1 , ;读入开关状态 ANL A,#0FH 屏蔽A的高 的高4位 , ;屏蔽 的高 位 SWAP A 累加器A中高低 中高低4位交换 ;累加器 中高低 位交换 CPL A ;状态取反 MOV P1,A ;开关状态输出指示 , NOP ;程序结束
二、可用于片内并行 I/O口的指令(3) I/O口的指令
5、片内I/O口的逻辑操作指令: 、片内 口的逻辑操作指令 口的逻辑操作指令: ANL Px,A , ORL Px,A , XRL Px,A , ANL Px,#data , ORL Px,#data , XRL Px,#data , 6、片内 口的增减量操作指令: 口的增减量操作指令: 、片内I/O口的增减量操作指令 INC Px DEC Px 7、片内 口的控制操作指令: 口的控制操作指令: 、片内I/O口的控制操作指令 DJNZ Px,rel , CJNE A, Px,rel , ,
三、片内并行I/O口的应用编程(6) 片内并行I/O口的应用编程
3、端口的其它操作: 、端口的其它操作: 硬件描述:地址为E000H的外部输入设备 硬件描述 : 地址为 的外部输入设备 的数据总线连接在MCS-51的 P0口上 , P1口的 口上, 口的 的数据总线连接在 的 口上 最低位P1.0接的是按键开关 , P1口的最高位 接的是按键开关S, 口的最高位 最低位 接的是按键开关 P1.7接的是经同相反大器后驱动的 接的是经同相反大器后驱动的LED发光二 接的是经同相反大器后驱动的 发光二 极管。 极管。 编程要求: 当按一下S后 编程要求 : 当按一下 后 , 开始从外部输 入设备读取数据并存放在片内RAM首地址为 入设备读取数据并存放在片内 首地址为 50H的单元中, 若数据为非空格标志时点亮发 的单元中, 的单元中 光二极管并继续读取数据直至读满16个字节 个字节, 光二极管并继续读取数据直至读满 个字节, 否则熄灭发光二极管并停止读入数据。 否则熄灭发光二极管并停止读入数据。
三、片内并行I/O口的应用编程(5) 片内并行I/O口的应用编程
中断服务子程序: 中断服务子程序: EINT0: MOV A,@R0 : , ;取源数据 MOV P1,A ;从P1口输出一个字节 , 口输出一个字节 INC R0 ;修正源数据指针 CJNE R0,#30H,ELP0 , , ;未超出数据存放地址时转移 MOV R0,#2AH ;超出时则重 , ;设数据指针 ELP0: RETI : ;从中断返回
P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0
RD WR T1 T0 INT1 INT0 TXD RXD
⑶驱动能力:与P1口相同 驱动能力: 口相同 口地址: 区的B0H ⑷口地址: SFR区的 区的
二、可用于片内并行 I/O口的指令(1) I/O口的指令
1、向片内I/O口输出数据的指令: 、向片内 口输出数据的指令 口输出数据的指令: MOV Px,A , ;X=0、1、2、3 、 、 、 MOV Px,Rn , MOV Px,@Ri , MOV Px,direct , MOV Px,#data , 2、从片内 口输入数据的指令: 口输入数据的指令: 、从片内I/O口输入数据的指令 MOV A, Px , MOV Rn, Px , MOV @Ri, Px , MOV direct, Px ,
2、 P1口: 、 口 结构: ⑴结构: 如图 图例 作用: 通用I/O口 可以有输入、输出、 ⑵作用: 通用 口(可以有输入、输出、端口 操作三种工作方式) 操作三种工作方式) 是准双向口: 用作输入端口之前, 是准双向口 : 用作输入端口之前 , 必须先用输出 指令送出高电平使得输出管截止的I/O口 指令送出高电平使得输出管截止的I/O口。 对于52子系列 子系列, 还可用作T2的计数脉冲输入 对于 子系列 , P1.0还可用作 的计数脉冲输入 还可用作 端 ( T2 ) 、 P1.1 用 作 定 时 器 T2 外 部 控 制 输 入 (T2EX)。 ) 端口操作时, 实际上执行的是分“读入→修改 修改→ 端口操作时 , 实际上执行的是分 “ 读入 修改 输出”三步进行。 输出”三步进行。 驱动能力: ⑶驱动能力:400A 由于内部接有上拉电阻,因此无须外接。 由于内部接有上拉电阻,因此无须外接。 口地址: 区的90H ⑷口地址: SFR区的 区的
一、片内并行I/O口 片内并行I/O口
(2)
一、片内并行I/O口 片内并行I/O口
(3)
3、 P2口: 、 口 结构: ⑴结构: 如图 图例 作用: 地址高8位输出 位输出( ⑵作用: 地址高 位输出(当外接 存储器、 口超过 口超过256单元时 单元时) 存储器、I/O口超过 单元时) 通用I/O口 性能同P1口 通用 口(性能同 口) 驱动能力: ⑶驱动能力:与P1口相同 口相同 口地址: 区的A0H ⑷口地址: SFR区的 区的
PXLP: : PXLP0: PXLP0:
PXLP1: : PXLP2: : PXLP3: :
§8-2 简单并行I/O接口扩展 简单并行I/O接口扩展
一、简单并行输入口扩展 二、简单并行输出口扩展
一、简单并行输入口扩展
(1)
1、 用于简单并行输入接口扩展的典型电 、 路芯片: 路芯片:74LS244 74LS244的引脚图 、 逻辑图 、 真值表如下 的引脚图、 的引脚图 逻辑图、 图所示: 芯片内部为2个四位的三态缓冲器 个四位的三态缓冲器, 图所示 : 芯片内部为 2 个四位的三态缓冲器 , CE为选通信号, D为输入 , Q为输出。 CE1用 为选通信号, 为输入 为输入, 为输出 为输出。 为选通信号 用 以选通1D1~1D4,CE2用于选通 用于选通2D1~2D4。 以选通 ~ , 用于选通 ~ 。 微机系统中经常使用74LS244进行简单并 微机系统中经常使用 进行简单并 行输入接口扩展。 行输入接口扩展。