1 / 27

6.4 输入/输出接口的扩展

6.4 输入/输出接口的扩展. 本节主要内容: 1.I/O 口扩展技术概述 2. 用 74LSTTL 电路扩展并行 I/O 口(重点) 3. 用 8155 扩展 I/O 口(重点 / 难点). 参考书: . 张毅刚 . 单片机原理及应用 . 北京:高等教育出版社 ,2005. 6 . 4. 1 I/O口扩展概述 一、I/O接口的功能 1.设备选择,以便使CPU能和指定的外设进行通讯 2.缓冲锁存数据,协调传输速度 3.实现串行、并行代码的转换。 4.进行电平的转换。. 二、 I/O 口的编址.

Download Presentation

6.4 输入/输出接口的扩展

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 6.4 输入/输出接口的扩展 本节主要内容:1.I/O口扩展技术概述2.用74LSTTL电路扩展并行I/O口(重点)3.用8155扩展I/O口(重点/难点) 参考书:.张毅刚.单片机原理及应用.北京:高等教育出版社,2005

  2. 6.4.1 I/O口扩展概述 一、I/O接口的功能 1.设备选择,以便使CPU能和指定的外设进行通讯 2.缓冲锁存数据,协调传输速度 3.实现串行、并行代码的转换。 4.进行电平的转换。

  3. 二、I/O口的编址 统一编址方式:将外设端口和存储单元一同对待,每个端口将占用一个存储器地址。

  4. 三、常用的I/O接口电路 2.TTL电路(不可编程芯片74LS244、245、373、377等)需要扩展的的I/O口数量少且功能单一,宜采用锁存器、三态门构成简单价廉的I/O口 1.8255A、8155A芯片(可编程芯片) 3.串口扩展并行口 74LS164、74LS165扩展并行输出、输入口

  5. 6.4.2 简单接口芯片的扩展 输出口----利用锁存器扩展 输入口----利用三态门扩展

  6. 1.用缓冲器扩展输入口 74LS244三态门 无锁存功能,常作并行输入口和总线驱动器,8个三态门分为两组,分别有1G、2G控制,低电平时三态门通路,否则输出高阻态

  7. 74LS244的地址:7FFFH(P2.7=0)

  8. 74LS244的地址:7FFFH(P2.7=0) #include<reg51.h> #include<absacc.h> #define io XBYTE[0x7FFF] main( ) {char idata i; i=io; while(1); }

  9. 思考: 如果要扩展2片74LS244,怎样实现?

  10. 74LS245是三态双向缓冲器,可作数据总线驱动器和扩展输入口用。74LS245是三态双向缓冲器,可作数据总线驱动器和扩展输入口用。 /G:使能端 DIR:为“1”时数据从A至B,为“0”时从B至A

  11. 2.用锁存器扩展输出口 • 74LS273锁存器    功能表 • 74LS377锁存器    功能表

  12. 74LS244的地址:0000H 74LS273的地址:0000H

  13. 编写程序把按纽开关的状态通过发光二极管显示出来。编写程序把按纽开关的状态通过发光二极管显示出来。 #include<reg51.h> #include<absacc.h> #define io XBYTE[0x0000] main( ) {char idata i; while(1) {i=io; io=i; } }

  14. PA口,8位 PB口,8位 PC口,6位 6.4.3 可编程并行接口芯片8155的扩展 一、8155的结构及引脚 8155的结构 256字节RAM 8155 三个可编程并行口 14位二进制减法计数器

  15. 8155芯片的内部结构 IO/ M 口A 256B 静态 RAM A 接外设 PA0~PA7 AD0~AD7 接单片机 接外设 CE ALE RD WR RESET B 口B PB0~PB7 口C 接外设 C 定时器 定时器输入 PC0~PC5 定时器输出

  16. TIMER OUT TIMER IN IO/M CE RD WR PC0-PC5 AD0-AD7 三态地址/数据线 端口/存储器选择 读 ALE C口端口线 写 定时器输入 定时器输出 PA0-PA7 A口端口线 PB0-PB7 B口端口线 地址锁存允许 选片 8155 8155引脚功能 PC3 PC4 PC5 IO/ M CE RD WR ALE AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 Vss Vcc PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 TIMER IN RESET TIMER OUT

  17. 二、8155的工作原理 1. 8155的RAM和I/O口地址 RAM地址----当IO/ M 加低电平时 地址范围是 0000 0000--1111 1111 分别指向8155 RAM 的256个存储单元。 I/O口地址----当IO/ M 加高电平时 8155内部有6个寄存器,具体端口地址分配是:

  18. AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 I/O端口 ╳ ╳ ╳ ╳ ╳ 0 0 0 命令/状态口 ╳ ╳ ╳ ╳ ╳ 0 0 1 A口 ╳ ╳ ╳ ╳ ╳ 0 1 0 B口 ╳ ╳ ╳ ╳ ╳ 0 1 1 C口 ╳ ╳ ╳ ╳ ╳ 1 0 0 计数器低8位 ╳ ╳ ╳ ╳ ╳ 1 0 1 计数器高6位 8155的RAM和I/O口地址分配

  19. 命令/状态口:7E00H A口: 7E01H B口:? 计数器低8位:? 计数器高8位:?

  20. 0—输入 0—禁止 PB、PA—A口、B口数据传送方向 IEA、IEB — A、B口中断允许控制 1—输出 1—允许 2.8155命令字含义 (重要) TM2 TM1 IEB IEA PC2 PC1 PB PA PC2、PC1—C口数据传送方向及AB口工作方式 00—C口输入,A、B口基本I/O方式 11—C口输出,A、B口基本I/O方式 01—PC3-PC5输出,A口选通方式,B口基本I/O方式 10—A、B口选通方式 TM1、TM2—定时器/计数器控制 10 记满回零停止计数 11 启动 00 空操作 01 停止定时器

  21. 3. 8155的工作方式 • (1)存储器方式 • IO/M=0、CE=0,CPU可以对RAM中的任一单元读写。 • (2)I/O方式 • 基本I/O方式 • A、B口的输入/输出由命令字的D0、D1决定,C口由D3、D2的状态决定。 • 选通I/O方式(自行拓展)

  22. .编程实现PB口8个指示灯按PA口的开关状态变化。 #include<reg51.h> #include<absacc.h> #define S8155 XBYTE[0x7E00] #define A8155 XBYTE[0x7E01] #define B8155 XBYTE[0x7E02] #define C8155 XBYTE[0x7E03] main( ) {char i; S8155=0x02;//控制字送控制口 i=A8155; //读A口 B8155=i; //写B口 }

  23. 8155定时器/计数器 8155内部有一个14位减法计数器,计数脉冲来自其引脚“TIMER IN”,使用定时器前要先装入“时间常数”----14位二进制数。其格式为: 高6位计数值 低8位计数值 定时器方式 00 单方波 01 连续方波 单脉冲 连续脉冲 M2 M1

  24. 例:对8155的TIMERIN引脚输入的脉冲信号进行24分频,由TIMEROUT引脚输出,则初始化程序:例:对8155的TIMERIN引脚输入的脉冲信号进行24分频,由TIMEROUT引脚输出,则初始化程序:

  25. #include<reg51.h> #include<absacc.h> #define S8155 XBYTE[0x7E00] #define TL8155 XBYTE[0x7E04] #define TH8155 XBYTE[0x7E05] main( ) { S8155=0xc2; //控制字送控制口 TL8155=0X18; //24分频 TH8155=0X40; //输出连续方波 }

  26. 小结: 1.用缓冲器、锁存器扩展I/O接口电路,常用的芯片有74LS244、 74LS245(输入口扩展)、 74LS373、 74LS273、 74LS277(输出口扩展)。 2.8155A的内部结构、编址方法、与单片机的连接、用作基本IO口的编程方法。

More Related