收藏 分享(赏)

单片机原理与应用(第八章).doc

上传人:j35w19 文档编号:5913396 上传时间:2019-03-21 格式:DOC 页数:5 大小:112.50KB
下载 相关 举报
单片机原理与应用(第八章).doc_第1页
第1页 / 共5页
单片机原理与应用(第八章).doc_第2页
第2页 / 共5页
单片机原理与应用(第八章).doc_第3页
第3页 / 共5页
单片机原理与应用(第八章).doc_第4页
第4页 / 共5页
单片机原理与应用(第八章).doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、第八章 MCS51 单片机的 I/O 口扩展设计8.1 I/O 口概述1. 串行 I/O 口一次传送一位信号,字节就要逐位传送,只需一条数据线。2. 并行 I/O 口一次可同时传送多位信号,但需同样多的数据线。P1.0+5V例:用开关来控制指示灯(单点 LED)的亮和灭。 8051程序 1: ORG 0000HLJMP Main P1.1ORG 100HMain: SETB P1.1 ;P 口作为输入的位,在测试前必须先置为“1” 。JB P1.1,L1 ;测试开关的电平,为“1”则转移到 L1。SETB P1.0 ;输出高电平,点亮LCALL Delay ;延时CLR P1.0 ;输出低电平

2、,熄灭LCALL Delay ; 延时LJMP Main ;循环测试开关L1: CLR P1.0 ;输出低电平,熄灭SJMP Main ;循环测试开关Delay: MOV R3, #10 ; 延时 10msDe1: MOV R4, #250 ; De2: DJNZ R4, De2 ; 250*4us=1ms,设 f = 6MHzDJNZ R3, De1RETEND当单片机的 I/O 口位不够用时,就需进行 I/O 口的扩展。MCS-51 单片机的 外部数据存储器地址可以作为扩展 I/O 口的地址使用。8.2 用可编程芯片 8155/8156 扩展并行 I/O 口(待)8.3 用 TTL 芯片扩

3、展并行 I/O 口8.3.1 用 74LS377( 373、374 )扩展一个 8 位并行输出口1. 利用口位直接扩展的电路图:对应的控制程序:8051 E MOV P0,#5AH ;输出的数据。P0.0 D0 Q0 MOV P2,#7FH ;对 CLK 输出一个负电平P0.1 D1 Q1 NOP ;脉冲锁存信号P0.2 D2 Q2 MOV P2,#0FFHP0.3 D3 Q3 或:P0.4 D4 Q4 MOV P0,#5AHP0.5 D5 Q5 CLR P2.7P0.6 D6 Q6 NOPP0.7 D7 Q7 SETB P2.7ALE 在这里数据口可以和 P0P3 的任一个连接,P2.7 C

4、LK CLK 也可以和任一个口位连接。WR 74LS377当 E=0 时,CLK 从0到 1的正跳变,D 输入的数据被锁存到 Q 输出。应用:8051 CLK Q0Q7 E CLK Q0Q7 E CLK Q0Q7 E 74LS377P1P3.0P3.1P3.22. 利用数据存储器地址扩展的电路图见 P204 页的图 8-11。对应的控制程序:8051 E MOV DPTR,#7FFFHP0.0 D0 Q0 MOV A,#5AH ;输出的数据。P0.1 D1 Q1 MOVX DPTR,AP0.2 D2 Q2 执行: P0.3 D3 Q3 DPL 的值送到 P0,P0=D=FFH ;P0.4 D4

5、 Q4 DPH 的值送到 P2,P2.7=E=0; P0.5 D5 Q5 ALE 发出锁存的电平信号 (没用到);P0.6 D6 Q6 A 的值送到 P0,P0=D=5AH; P0.7 D7 Q7 WR 发出 “写”的电平信号( 脉冲),ALE D 的数据被锁存到 Q。 P2.7 CLK WR 74LS377 这种方法必须把 P0 口作为数据口,P2 口作为选择位。当 E=0 时,CLK 从0到 1的正跳变,D 输入的数据被锁存到 Q 输出。8.3.2 1.用 74LS244 扩展一个 8 位并行输入口利用数据存储器地址扩展的电路图见 P204 页的图 8-11。对应的控制程序:8051 MO

6、V DPTR,#7FFFHP0.0 1Y1 1A1 MOVX A,DPTRP0.1 1Y2 1A2 P0.2 1Y3 1A3 执行: P0.3 1Y4 1A4 DPL 的值送到 P0,P0=D=FFH ; P0.4 2Y1 2A1 DPH 的值送到 P2,P2.7=0 ; P0.5 2Y2 2A2 (这时的 RD=1;)P0.6 2Y3 2A3 ALE 发出锁存的电平信号(没用到);P0.7 2Y4 2A4 RD 发出 “读”的电平信号,ALE 1EN RD=0,(P2.7) OR (RD)=0,P2.7 2EN 1EN=2EN=0,打开 A1Y1 和 A2Y2 的通道,RD 74LS244

7、外部输入的数据传送到 P0Yi, OR P0 口的值送给累加器 A=P0=Yi。当 iEN=0 时,打开 AiYi 的通道。2. 用 74LS245 扩展一个 8 位并行输入输出口利用数据存储器地址扩展的电路图:对应的控制程序8051 输入:当 DIR= 1P0.0 A0 B0 MOV DPTR,#FFFFHP0.1 A1 B1 MOVX A,DPTRP0.2 A2 B2P0.3 A3 B3 输出:当 DIR= 0P0.4 A4 B4 MOV DPTR,#7FFFHP0.5 A5 B5 MOV A,#58H ;输出的数据。P0.6 A6 B6 MOVX DPTR,AP0.7 A7 B7ALE

8、P2.7 DIR 从这里可看出:利用数据存储器地址扩展,比直接RD 用 P 口位扩展要节省口位。WR GAND 74LS245当 DIR= 1且 G=0时,打开 BiAi 的输入通道; 当 DIR= 0且 G=0时,打开 AiBi 的输出通道。8.4 用 MSC-51 单片机的串行口扩展 I/O 口8.4.1 扩展并行输入口用 CD4014 扩展一个 16 位并行输入口:P/S PI1 D0 1 CD4014 芯片工作原理:8051 PI2 D1 2 当 P/S=1 时, P3.0 Q8 PI3 D2 3 Di 存入内部寄存器 PIi; (RXD) PI4 D3 4 当 P/S=0 时,CLK

9、 PI5 D4 5 (R3) CLK 从0到1的正跳变,P1.0 PI6 D5 6 内部寄存器 PIi 左移一位,SI PI7 D6 7 即:Q8PI8PI7, P3.1 VSS PI8 D7 8 PI7PI6, ,PI3PI2, (TXD) CD4014(1) PI2PI1,PI1SIQ8(2); P/S PI1 D0 9 Q8(2)PI8(2) PI7(2), PI2 D1 10 Q8 PI3 D2 11 PI4 D3 12 (R4)CLK PI5 D4 13 PI6 D5 14SI PI7 D6 15 VSS PI8 D7 16 CD4014(2) 对应的控制程序,读入 16 位数据存入

10、 R3、R4 中:RD16:SETB P1.0 ; 置 CD4014 为并行输入方式CLR P3.1SETB P3.1 ; 产生一个脉冲,读入外部并行输入数据CLR P1.0 ; 允许 CD4014 串行移位MOV SCON,#10H ; 设置串行口为方式 0,并启动串行接收KT1: JNB RI,KT1 ; 等待接收 CLR RI ;清除 RIMOV A,SBUF ; 从串行缓冲区中读数MOV R3,A ; 第一个数存入 R3 中MOV SCON,#10H ; 设置串行口为方式 0,并启动串行接收KT2: JNB RI,KT2 ; 等待接收CLR RI ; 清除 RIMOV A,SBUF ;

11、 从串行缓冲区中读数MOV R4,A ; 第二个数存入 R4 中RET ;用 74LS165 扩展一个 16 位并行输入口:S/L d0 D0 1 74LS165 芯片工作原理:8051 d1 D1 2 当 S/L=0 时, P3.0 QH d2 D2 3 Di 存入内部寄存器 di; (RXD) d3 D3 4 当 S/L=1 时,CP1 d4 D4 5 (R3) CP1 从0到1的正跳变,P1.0 d5 D5 6 内部寄存器 di 左移一位,SI d6 D6 7 即:QH d7d6, P3.1 CP2 d7 D7 8 d6d5, ,d2d1, (TXD) 74LS165(1) d1d0,d

12、0SIQH(2); S/L d0 D0 9 QH(2)d7(2)D6(2), d1 D1 10 QH d2 D2 11 d3 D3 12 (R4)CP1 d4 D4 13 d5 D5 14SI d6 D6 15 CP2 d7 D7 16 74LS165(2) 对应的控制程序,读入 16 位数据存入 R3、R4 中:RD16:CLR P1.0 ; 读入外部并行输入数据 SETB P1.0 ; 允许 74LS165 串行移位MOV SCON,#10H ; 设置串行口为方式 0,并启动串行接收KT1: JNB RI,KT1 ; 等待接收 CLR RI ; 清除接收标志MOV A,SBUF ; 从串行

13、缓冲区中读数MOV R3,A ; 第一个数存入 R3 中MOV SCON,#10H ; 设置串行口为方式 0,并启动串行接收KT2: JNB RI,KT2 ; 等待接收CLR RI ; 清除接收标志MOV A,SBUF ; 从串行缓冲区中读数MOV R4,A ; 第二个数存入 R4 中RET ;8.4.2 扩展并行输出口用 74LS164 扩展两个 8 位并行输出口:74LS164(1)QA D0 1 A QB 2 B QC 3 QD 4 8051 QE 5 R3CLR QF 6P1.0 CLK QG 7 QH D7 8 P3.1 (TXD) QA D0 9 A QB 10P3.0 B QC

14、11 (RXD) QD 12 R4QE 13 CLR QF 14CLK QG 15 QH D7 16 74LS164(2) 对应的控制程序,R3、R4 的数据经串行口输出:WR16:CLR P1.0 ; 清除 74LS164 中的数据 SETB P1.0 ; 允许 74LS164 串行移位MOV SCON,#00H ; 设置串行口为方式 0MOV A,R3 ; MOV SBUF,A ; 启动串行口发送WT1: JNB TI,WT1 ; 等待发送完毕 CLR TI MOV A,R4 ;MOV SBUF,A ; 启动串行口发送WT2: JNB TI,WT2 ; 等待发送完毕CLR TI RET ;

15、作业: (一) P210 页的 二、填空题 1. 3. 4. 题。(二) 请简述 74LS374、244、 245 芯片的工作原理。(三) 使用 8051 的串行口和利用一块 74LS165 扩展一个 8 位并行输入口,请画出扩展芯片与 CPU 的连接示意图,并写出相应的输入程序段。(四) 使用 8051 的串行口和利用一块 74LS164 扩展一个 8 位并行输出口,请画出扩展芯片与 CPU 的连接示意图,并写出相应的输出程序段。(五) 用 74LS245 芯片扩展一个 8 位并行输入输出口,要求利用 P1 和 P3 口位直接扩展。请画出扩展芯片与 CPU 的连接示意图,并写出相应的输入和输出程序段。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报