第8章单片机小系统及片外扩展 单片机,教程ppt
合集下载
单片机第8章 单片机小系统及片外扩展.

第8章 单片机系统扩展
目录
8.1 扩展并行三总线 8.2 扩展简单并行输入/输出口 8.3 扩展并行数据存储器 8.4 串行扩展总线接口技术
本章主要介绍了MCS-51单片机系统扩 展的方法。通过扩展并行三总线来进行并行 总线接口扩展;通过UART或I/O口模拟几种 串行通信的特点来进行串行总线接口扩展。
8.3.1 扩展存储器概述
存储器扩展的核心问题是存储器的编址问 题。所谓编址就是给存储单元分配地址。
由于存储器通常由多个芯片组成,为此存 储器的编址分为两个层次:
即存储器芯片的选择和存储器芯片内部存 储单元的选择。
一、地址线的译码
存储器芯片的选择有两种方法:线选法和 译码法。
1、线选法。所谓线选法,就是直接以系
2)部分译码。地址译码器仅使用了部分地址 线,地址与存储单元不是一一对应,而是1 个存储单元占用了几个地址。
8.3.1 扩展存储器概述
芯片译码地址:在设计地址译码器电路时, 常采用地址译码关系图。所谓地址译码关系 图,就是一种用简单的符号来表示全部地址 译码关系的示意图,如图8-5所示。
在对TTL负载驱动时,只需考虑驱动电流的大 小。
在对MOS负载驱动时,MOS负载的输入电流 很小,更多地要考虑对分布电容的电流驱动。
系统总线中地址总线是单向的,因此驱动 器可以选用单向的,如74LS244,还带有三 态控制,能实现总线缓冲和隔离。
数据总线是双向的,其驱动器也要选用双 向的,如74LS245。74LS245也是三态的,有 一个方向控制端DIR。DIR=1时输出 (An→Bn),DIR=0时输入(An←Bn)。
8.3 扩展并行数据存储器
主要内容
8.3.1 扩展存储器概述 8.3.2 数据存储器的扩展
目录
8.1 扩展并行三总线 8.2 扩展简单并行输入/输出口 8.3 扩展并行数据存储器 8.4 串行扩展总线接口技术
本章主要介绍了MCS-51单片机系统扩 展的方法。通过扩展并行三总线来进行并行 总线接口扩展;通过UART或I/O口模拟几种 串行通信的特点来进行串行总线接口扩展。
8.3.1 扩展存储器概述
存储器扩展的核心问题是存储器的编址问 题。所谓编址就是给存储单元分配地址。
由于存储器通常由多个芯片组成,为此存 储器的编址分为两个层次:
即存储器芯片的选择和存储器芯片内部存 储单元的选择。
一、地址线的译码
存储器芯片的选择有两种方法:线选法和 译码法。
1、线选法。所谓线选法,就是直接以系
2)部分译码。地址译码器仅使用了部分地址 线,地址与存储单元不是一一对应,而是1 个存储单元占用了几个地址。
8.3.1 扩展存储器概述
芯片译码地址:在设计地址译码器电路时, 常采用地址译码关系图。所谓地址译码关系 图,就是一种用简单的符号来表示全部地址 译码关系的示意图,如图8-5所示。
在对TTL负载驱动时,只需考虑驱动电流的大 小。
在对MOS负载驱动时,MOS负载的输入电流 很小,更多地要考虑对分布电容的电流驱动。
系统总线中地址总线是单向的,因此驱动 器可以选用单向的,如74LS244,还带有三 态控制,能实现总线缓冲和隔离。
数据总线是双向的,其驱动器也要选用双 向的,如74LS245。74LS245也是三态的,有 一个方向控制端DIR。DIR=1时输出 (An→Bn),DIR=0时输入(An←Bn)。
8.3 扩展并行数据存储器
主要内容
8.3.1 扩展存储器概述 8.3.2 数据存储器的扩展
最新课件-单片机原理及应用电子教案第8章单片机小系统及片外扩展 推荐

2020/10/19 13
• 图8-3为89C51(MCU)与MCM2814(E2PROM) 的硬件连接图。
图8-3 SPI总线接口原理图
2020/10/19 14
• 图8-3中,P1.0模拟MCU的数据输出端(MOSI), P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选 择端,P1.3模拟SPI的数据输入端(MISO)。
•图8-2 SPI串行总线典型时序图
2020/10/19
11
2. 89C51单片机串行扩展SPI外设接口的方法
1) 用一般I/O口线模拟SPI操作 • 对于没有SPI接口的89C51来说,可使用软件来模
拟SPI的操作,包括串行时钟、数据输入和输出。 • 对于不同的串行接口外围芯片,它们的时钟时序
是不同的。 • 对于在SCK的上升沿输入(接收)数据和在下降
• 从器件只能在主机发命令时,才能接收或向 主机传送数据。
• 其数据的传输格式是高位(MSB)在前, 低位(LSB)在后。
2020/10/19
9
• 当SPI工作时,在移位寄存器中的数据逐位 从输出引脚(MOSI)输出(高位在前), 同时从输入引脚(MISO)接收的数据逐位 移到移位寄存器(高位在前)。
• 当SPI接口上有多个SPI接口的单片机时,应 区别其主从地位,在某一时刻只能由一个单片 机为主器件。
• 图8-1中MCU(主)为主器件,MCU(从)为 从器件。
2020/10/19
8
• SPI有较高的数据传送速度,主机方式最高 速率可达1.05 Mb/s,目前不少外围器件都 带有SPI接口。
• 在大多数应用场合中,使用1个MCU作为主 机,控制数据向1个或多个从外围器件的传 送。
沿输出(发送)数据的器件,一般应取图8-3中的 串行时钟输出P1.1的初始状态为1;在允许接口芯 片后,置P1.1为0。
• 图8-3为89C51(MCU)与MCM2814(E2PROM) 的硬件连接图。
图8-3 SPI总线接口原理图
2020/10/19 14
• 图8-3中,P1.0模拟MCU的数据输出端(MOSI), P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选 择端,P1.3模拟SPI的数据输入端(MISO)。
•图8-2 SPI串行总线典型时序图
2020/10/19
11
2. 89C51单片机串行扩展SPI外设接口的方法
1) 用一般I/O口线模拟SPI操作 • 对于没有SPI接口的89C51来说,可使用软件来模
拟SPI的操作,包括串行时钟、数据输入和输出。 • 对于不同的串行接口外围芯片,它们的时钟时序
是不同的。 • 对于在SCK的上升沿输入(接收)数据和在下降
• 从器件只能在主机发命令时,才能接收或向 主机传送数据。
• 其数据的传输格式是高位(MSB)在前, 低位(LSB)在后。
2020/10/19
9
• 当SPI工作时,在移位寄存器中的数据逐位 从输出引脚(MOSI)输出(高位在前), 同时从输入引脚(MISO)接收的数据逐位 移到移位寄存器(高位在前)。
• 当SPI接口上有多个SPI接口的单片机时,应 区别其主从地位,在某一时刻只能由一个单片 机为主器件。
• 图8-1中MCU(主)为主器件,MCU(从)为 从器件。
2020/10/19
8
• SPI有较高的数据传送速度,主机方式最高 速率可达1.05 Mb/s,目前不少外围器件都 带有SPI接口。
• 在大多数应用场合中,使用1个MCU作为主 机,控制数据向1个或多个从外围器件的传 送。
沿输出(发送)数据的器件,一般应取图8-3中的 串行时钟输出P1.1的初始状态为1;在允许接口芯 片后,置P1.1为0。
单片机课件8 单片机的存储器的扩展

P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A15 A14 A13 A12 A11 A10 A9 A8 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 A7 A6 A5 A4 A3 A2 A1 A0
MCS-51单片机的地址总线为16位,它的存储器最大的 扩展容量为216,即64K个单元。
2013-6-27
单片机原理及其应用
20
8.3 程序存储器扩展
8.3.2 外部程序存储器扩展原理及时序
(一) 外部程序存储器扩展使用的控制信号
(1)EA——用于片内、片外程序存储器配置, 输入信号。当EA=0时,单片机的程序存储器全部为扩 展的片外程序存储器;当EA=1 时,单片机的程序存 储器可由片内程序存储器和片外程序存储器构成,当 访问的空间超过片内程序存储器的地址范围时,单片 机的CPU自动从片外程序存储器取指令。 (2)ALE——用于锁存P0口输出的低8位地址。 (3)PSEN ——单片机的输出信号,低电平时, 单片机从片外程序存储器取指令;在单片机访问片内 2013-6-27 单片机原理及其应用 程序存储器时,该引脚输出高电平。
2013-6-27 单片机原理及其应用 11
8.2 半导体存储器
8.2.2 只读存储器 只读存储器(Read Only Memory,ROM),ROM 一般用来存储程序和常数。ROM是采用特殊方式写入 的,一旦写入,在使用过程中不能随机地修改,只能从 其中读出信息。与RAM不同,当电源掉电时,ROM 仍 能保持内容不变。在读取该存储单元内容方面,ROM 和RAM相似。只读存储器有掩膜ROM、PROM、EPROM、 E2PROM(也称EEPROM)、Flash ROM等。它们的区 别在于写入信息和擦除存储信息的方式不同。
MCS-51单片机的地址总线为16位,它的存储器最大的 扩展容量为216,即64K个单元。
2013-6-27
单片机原理及其应用
20
8.3 程序存储器扩展
8.3.2 外部程序存储器扩展原理及时序
(一) 外部程序存储器扩展使用的控制信号
(1)EA——用于片内、片外程序存储器配置, 输入信号。当EA=0时,单片机的程序存储器全部为扩 展的片外程序存储器;当EA=1 时,单片机的程序存 储器可由片内程序存储器和片外程序存储器构成,当 访问的空间超过片内程序存储器的地址范围时,单片 机的CPU自动从片外程序存储器取指令。 (2)ALE——用于锁存P0口输出的低8位地址。 (3)PSEN ——单片机的输出信号,低电平时, 单片机从片外程序存储器取指令;在单片机访问片内 2013-6-27 单片机原理及其应用 程序存储器时,该引脚输出高电平。
2013-6-27 单片机原理及其应用 11
8.2 半导体存储器
8.2.2 只读存储器 只读存储器(Read Only Memory,ROM),ROM 一般用来存储程序和常数。ROM是采用特殊方式写入 的,一旦写入,在使用过程中不能随机地修改,只能从 其中读出信息。与RAM不同,当电源掉电时,ROM 仍 能保持内容不变。在读取该存储单元内容方面,ROM 和RAM相似。只读存储器有掩膜ROM、PROM、EPROM、 E2PROM(也称EEPROM)、Flash ROM等。它们的区 别在于写入信息和擦除存储信息的方式不同。
单片机第8章 单片机小系统及片外扩展

系统总线中地址总线是单向的,因此驱动 器可以选用单向的,如74LS244,还带有三 态控制,能实现总线缓冲和隔离。 数据总线是双向的,其驱动器也要选用双 向的,如74LS245。74LS245也是三态的,有 一个方向控制端DIR。DIR=1时输出 (An→Bn),DIR=0时输入(An←Bn)。
8.3 扩展并行数据存储器
8.1.3 总线驱动
在单片机应用系统中,扩展的三总线上挂接很多 负载,如存储器、并行接口、A/D接口、显示接口 等,但总线接口的负载能力有限,因此常常需要通 过连接总线驱动器进行总线驱动。 总线驱动器对于单片机的I/O口只相当于增加 了一个TTL负载,因此驱动器除了对后级电路驱动 外,还能对负载的波动变化起隔离作用。 在对TTL负载驱动时,只需考虑驱动电流的大 小。 在对MOS负载驱动时,MOS负载的输入电流 很小,更多地要考虑对分布电容的电流驱动。
8.1.1 片外三总线结构
A8~A15
P2 ALE P0 89C52 PSEN 地址总线 A0~A7 D0~D7 数据总线 控制总线
地址 锁存器
WR RD
图8-1 89C52扩展的三总线
地址锁存器74HC573与单片机P0口连接,扩 展地址总线,如图8-2所示。
ALE 89C52 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
1、线选法。所谓线选法,就是直接以系
2、译码法。所谓译码法,就是使用地址
8.3.1 扩展存储器概述
1)完全译码。地址译码器使用了全部地址线, 地址与存储单元一一对应,也就是1个存储 单元只占用1个唯一的地址。 2)部分译码。地址译码器仅使用了部分地址 线,地址与存储单元不是一一对应,而是1 个存储单元占用了几个地址。
单片机应用和原理课件 AT89S51单片机外部存储器的扩展 演示文稿

2.译码法 使用译码器对AT89S51单片机的高位地址进行译码,译码 输出作为存储器芯片的片选信号。此方法能有效地利用存储 器空间,适于多芯片的存储器扩展。常用译码器芯片有 74LS138(3-8译码器)、74LS139(双2-4译码器)和 74LS154(4-16译码器)。
12
若全部高位地址线都参加译码,称为全译码;若仅部分高 位地址线参加译码,称为部分译码。部分译码存在着部分存 储器地址空间相重叠的情况。
1.线选法 是直接利用系统的某一高位地址线作为存储器芯片(或I/O
接口芯片)的“片选”控制信号。为此,只需要把用到的 高位地址线与存储器芯片的“片选”端直接连接即可。
1. 线选法 优点:电路简单,不需另外增加地址译码器硬件电路,体 积小,成本低。
缺点:可寻址的芯片数目受限制。另外,地址空间不连续, 每个存储单元的地址不唯一,这会给程序设计带来不便,适 用于外扩芯片数目不多的系统。
2
8.1 系统扩展结构 AT89S51采用总线结构,使扩展易于实现,系统并行扩 展结构如图8-1所示。
图8-1 AT89S51单片机的系统并行扩展结构
3
由图8-1可看出,系统扩展主要包括存储器扩展和I/O接口 部件扩展。
AT89S51存储器扩展即包括程序存储器扩展又包括数据 存储器扩展。AT89S51采用程序存储器空间和数据存储器空 间截然分开的哈佛结构。扩展后,形成了两个并行的外部存 储器空间。
15
(2)74LS139 双2-4译码器。这两个译码器完全独立,分别有各自的数 据输入端、译码状态输出端以及数据输入允许端,引脚如图 8-4,真值表如表8-2(只给出其中的一组)。
图8-4 74LS139引脚
16
以74LS138为例,如何地址分配。 例如,要扩8片8KB的RAM 6264,如何通过74LS138把 64KB空间分配给各个芯片? 由74LS138真值表可知,把G1接到+5V,G2A* 、 G2B* 接地,P2.7、P2.6、P2.5(高3位地址线)分别接74LS138 的C、B、A端,对高3位地址译码,译码器8个输出Y7* ~ Y0* ,分别接到8片6264的各 “片选”端,实现8选1的片选。 低13位地址(P2.4~P2.0,P0.7~P0.0)完成对选中的 6264芯片中的各个存储单元的“单元选择”。这样就把 64KB存储器空间分成8个8KB空间了。
12
若全部高位地址线都参加译码,称为全译码;若仅部分高 位地址线参加译码,称为部分译码。部分译码存在着部分存 储器地址空间相重叠的情况。
1.线选法 是直接利用系统的某一高位地址线作为存储器芯片(或I/O
接口芯片)的“片选”控制信号。为此,只需要把用到的 高位地址线与存储器芯片的“片选”端直接连接即可。
1. 线选法 优点:电路简单,不需另外增加地址译码器硬件电路,体 积小,成本低。
缺点:可寻址的芯片数目受限制。另外,地址空间不连续, 每个存储单元的地址不唯一,这会给程序设计带来不便,适 用于外扩芯片数目不多的系统。
2
8.1 系统扩展结构 AT89S51采用总线结构,使扩展易于实现,系统并行扩 展结构如图8-1所示。
图8-1 AT89S51单片机的系统并行扩展结构
3
由图8-1可看出,系统扩展主要包括存储器扩展和I/O接口 部件扩展。
AT89S51存储器扩展即包括程序存储器扩展又包括数据 存储器扩展。AT89S51采用程序存储器空间和数据存储器空 间截然分开的哈佛结构。扩展后,形成了两个并行的外部存 储器空间。
15
(2)74LS139 双2-4译码器。这两个译码器完全独立,分别有各自的数 据输入端、译码状态输出端以及数据输入允许端,引脚如图 8-4,真值表如表8-2(只给出其中的一组)。
图8-4 74LS139引脚
16
以74LS138为例,如何地址分配。 例如,要扩8片8KB的RAM 6264,如何通过74LS138把 64KB空间分配给各个芯片? 由74LS138真值表可知,把G1接到+5V,G2A* 、 G2B* 接地,P2.7、P2.6、P2.5(高3位地址线)分别接74LS138 的C、B、A端,对高3位地址译码,译码器8个输出Y7* ~ Y0* ,分别接到8片6264的各 “片选”端,实现8选1的片选。 低13位地址(P2.4~P2.0,P0.7~P0.0)完成对选中的 6264芯片中的各个存储单元的“单元选择”。这样就把 64KB存储器空间分成8个8KB空间了。
第八章单片机最小系统及外扩展课件

§8-1 串行扩展概述
一、串行扩展特点
⑴ 最大程度发挥最小系统的资源功能。 原来由并行扩展占用的P0口、P2口资源,直
接用于I/O口。 ⑵ 简化连接线路,缩小印板面积。 ⑶ 扩展性好,可简化系统的设计。 ⑷ 串行扩展的缺点: 数据吞吐容量较小,信号传输速度较慢,但
随着CPU芯片工作频率的提高,以及串行扩展芯片 功能的增强,这些缺点将逐步淡化。
解:
WORK: LOOP:
PIOX1 MOV CLR LCALL LCALL RR SJMP
BIT P1.0 A,#10000000B PIOX1 UART0 DLY1s A LOOP
;定义PIOX1 ;置D7灯亮,其余暗 ;74LS164输出全0,灯全暗 ;调用单字节串行输出子程序 ;调用延时1秒子程序(略) ;右移 ;
§8-3 I2C总线串行扩展技术
一、I2C总线串行扩展概述
1、扩展连接方式
具有I2C总线结构的器件,不论SRAM、E2PROM、 ADC/DAC、I/O口或MCU,均可通过SDA、SCL连接 (同名端相连)。
无I2C总线结构的器件,如LED/LCD显示器、键 盘、码盘、打印机等也可通过具有I2C总线结构的 I/O接口电路成为串行扩展器件。
第8章 89C51总线扩展技术
本章要点
串行扩展特点 串行扩展方式分类 虚拟串行扩展慨念 移位寄存器串行扩展方式 80C51 I/O虚拟串行接口 I2C总线串行扩展技术 I2C总线扩展I/O口通用器件PCF8574 虚拟I2C总线扩展AT24CXX系列E2PROM
并行扩展总线组成(地址、数据、控制总线) 并行扩展寻址方式(线选法、译码法)
二、串行方式0归一化子程序
所谓归一化子程序,即通用或标准化操作子程序, 将80C51串行方式0所有应用操作归纳成几个基本的输入 输出子程序,并使这些标准子程序具有规范的入口条件 和出口状态。应用时,只要设置相应的入口和出口,调 用归一化子程序,就能达到串行输入输出的目的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图8-3 SPI总线接口原理图
• 图8-3中,P1.0模拟MCU的数据输出端(MOSI), P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选 择端,P1.3模拟SPI的数据输入端(MISO)。
• 下面介绍用89C51汇编语言模拟SPI串行输入、串行 输出和串行输入/输出3个子程序。
• 这些子程序也适用于在串行时钟的上升沿输入和下 降沿输出的各种串行外围接口芯片,如8位或10位 A/D芯片,74LS系列输出芯片等。 • 对于下降沿输入、上升沿输出的各种串行外围接口 芯片,只须改变P1.1的输出顺序,即输出0,再输入 1;再输出0……则这些子程序也同样适用。
1. SPI总线系统的组成
• 图8-1是SPI总线系统典型结构示意图。
图8-1 SPI外围扩展示意图
• 单片机与外围扩展器件在时钟线SCK、数据线 MOSI和MISO上都是同名端相连。带SPI接口 的外围器件都有片选端CS。 • 在扩展多个SPI外围器件(如图8-1所示)时, 单片机应分别通过I/O口线来分时选通外围器 件。 • 当SPI接口上有多个SPI接口的单片机时,应 区别其主从地位,在某一时刻只能由一个单片 机为主器件。 • 图8-1中MCU(主)为主器件,MCU(从)为 从器件。
第8章 单片机小系统及片外扩展
89C51单片机芯片内集成了计算机的基本功能 部件,已具备了很强的功能。一块芯片就是一个 完整的最小微机系统,但片内存储器的容量、并 行I/O端口、定时器等内部资源都还是有限的。根 据实际需要,89C51单片机可以很方便地进行功能 扩展。 扩展应尽量采用串行扩展方案。通过SPI或 I2C总线扩展E2PROM、A/D、D/A、显示器、看 门狗、时钟等芯片,占用MCU的I/O口线少,编程 也方便。
NOP;延时
C,P1.3;从机输出SPISO送进位C A;左移至累加器ACC R1,SPIN1;判断是否循环8次(1字节数据) R0,A;1字节数据送R0
SETB P1.0;使P1.0(时钟)输出为1
RET;返回
(2) MCU串行输出子程序SPIOUT
• 将89C51中R0寄存器的内容传送到MCM2814的SPISI线上。 SPIOUN: SETB P1.1;使P1.1(时钟)输出为1 CLR P1.2;选择从机 MOV R1,#08H;置循环次数 MOV A,R0;1字节数据送累加器ACC SPIOT1: CLR P1.1;使P1.1(时钟)输出为0 NOP;延时 NOP RLC A;左移至累加器ACC最高位至C MOV P1.0,C;进位C送从机输入SPISI线上 SETB P1.1;使P1.1(时钟)输出为1 DJNZ R1,SPIOT1;判断是否循环8次(1字节数据) RET;返回
• HT1380是一个8脚的日历时钟ห้องสมุดไป่ตู้片,它可以通过串行口与
单片机交换信息,如图8-4所示。
• 在该芯片中,X1、X2接晶振,SCLK作为时钟输入端,
I/O端为串行数据输入、输出端口,RST是复位引脚。由 于该芯片只有当RST为高时才能对时钟芯片进行读/写操 作,因此可以利用单片机的I/O口线对它进行控制(类似 于芯片选择信号)。当RST为低时,I/O引脚对外是高阻 状态,因此它允许多个串行芯片同时挂靠在串行端口上。 CPU对它的输入/输出操作可以按串行的方式0(即扩展
8.1 串行扩展总线接口技术
• 89C51除芯片自身具有UART可用于串行扩 展I/O口线以外,还可利用89C51的3~4根 I/O口线进行SPI或I2C的外设芯片扩展,以 及单总线的扩展。
8.1.1 SPI串行外设接口总线
• SPI(Serial Peripheral Interface——串行外 设接口)总线是Motorola公司推出的一种同 步串行外设接口,它用于MCU与各种外围 设备以串行方式进行通信(8位数据同时同 步地被发送和接收),系统可配置为主或 从操作模式。外围设备包括简单的TTL移位 寄存器(用作并行输入或输出口)至复杂 的LCD显示驱动器或A/D转换器等。
2) 利用89C51串行口实现SPI操作
• 单片机应用系统中,最常用的功能无非是 开关量I/O、A/D、D/A、时钟、显示及打印 功能等等。下面分析利用单片机串口与多 个串行I/O接口芯片进行接口的可行性。
(1) 串行时钟芯片
• 在有些需要绝对时间的场合,例如打印记录、电 话计费、监控系统中的运行及故障时间统计等, 都需要以年、月、日、时、分、秒等表示的绝对 时间。虽然单片机内部的定时器可以通过软件进 位计数产生绝对时钟,但由于掉电之后数据丢失, 修改麻烦等原因,这样产生的绝对时钟总使设计 者感到不满意。因此我们提倡对绝对时钟要求较 高的场合使用外部时钟芯片,串行时钟芯片 HT1380就是一个典型的器件。
(1) MCU串行输入子程序SPIIN
• 从MCM2814的SPISO线上接收1字节数据并放入寄存器R0中。 SPIIN: SETB P1.1;使P1.1(时钟)输出为1
CLR
MOV SPIN1: CLR NOP MOV RLC DJNZ MOV
P1.2;选择从机
R1,#08H;置循环次数 P1.1;使P1.1(时钟)输出为0
• 除上面3种芯片之外,单片机还可以通过串行接口芯 片与E2PROM、D/A转换芯片等连接。它们与CPU的 串行接口方式与以上几种芯片类似,即: • 都需要通过单片机的开关量I/O口线进行芯片选择; • 当芯片未选中时,数据端口均处于高阻状态; • 与单片机交换信息时均要求单片机串行口以方式0进 行; • 传输数据时的帧格式均要求先传送命令/地址,再传 送数据; • 大都具有图8-7所示的时序波形。
I/O方式)进行。
图8-4 HT1380与单片机接口电路
(2) 串行LED显示接口MAX7219
• 该芯片可驱动8个LED显示器,这在智能仪表中已经足够 了。89C51单片机与它的接口如图8-5所示。 • 同样,单片机可以通过串行口以方式0与MAX7219交换信 息,TXD作为移位时钟、RXD作为串行数据I/O端、Load 为芯片选择端。当Load位于低电平时,对它进行读/写操
• SPI系统可直接与各个厂家生产的多种标准 外围器件直接接口,它只需4条线: 串行时 钟线(SCK)、主机输入/从机输出数据线 MISO、主机输出/从机输入数据线MOSI和 低电平有效的从机选择线CS(SS)。 • 在SPI接口中,数据的传输只需要1个时钟 信号和2条数据线。
• 由于SPI系统总线只需3~4位数据线和控制 线即可扩展具有SPI的各种I/O器件,而并行 总线扩展方法需8根数据线、8~16位地址 线、2~3位控制线,因而SPI总线的使用可 以简化电路设计,省掉了很多常规电路中 的接口器件,提高了设计的可靠性。
•图8-7 串行接口信号的一般时序图
(5) 扩展多个串行接口芯片的典型控制器的结构 • 在图8-8所示的控制器电路中,数据采集均由串行 接口芯片完成。 • 由于无总线扩展,单片机节余出来的其他资源可 以作为打印机输出控制、功能键、中断逻辑等电 路。在扩展了系统功能的同时,极大地利用了系 统资源,且使接口简单,控制器体积减小,可靠 性提高。
• 系统的软件设计与常规的单片机扩展系统类似, 只是在芯片选择方面不是通过地址线完成,而是 通过I/O口线来实现。
图8-8 基于串行接口控制器的电路结构图
8.1.2 I2C总线
• I2C总线是PHILIPS公司推出的串行总线。 I2C总线的应用非常广泛,在很多器件上都 配备有I2C总线接口,使用这些器件时一般 都需要通过I2C总线进行控制。这里简要介 绍I2C总线的工作原理,介绍如何用51单片 机进行控制以及相应的汇编语言控制程序 的编写。I2C
(3) MCU串行输入/输出子程序SPIIO
• 将89C51中R0寄存器的内容传送到MCM2814的SPISI中,同时从 MCM2814的SPISO接收1字节数据存入R0中。 SPIIO: SETB P1.1;使P1.1(时钟)输出为1 CLR P1,2;选择从机 MOV R1,#08H;置循环次数 MOV A,R0;1字节数据送累加器ACC SPIO1: CLR P1.1;使P1.1(时钟)输出为0 NOP;延时 NOP MOV C,P1.3;从机输出SPISO送进位C RLC A;左移至累加器ACC最高位至C MOV P1.0,C;进位C送从机输入 SETB P1.1;使P1.1(时钟)输出为1 DJNZ R1,SPIO1;判断是否循环8次(1字节数据) MOV R0,A RET;返回
图8-6串行A/D芯片与单片机接口电路
• 它既可把转换好的数据通过串口送到CPU,同时 也可将转换前的模拟信号输出到显示仪表。 • 当CS为高电平时,可对MAX1458进行读/写,单 片机对它的读/写也是以串口方式0进行的; • 当CS为低电平时,DIO对外处于高阻状态。
(4) 串行接口芯片的一般接口规律
• SPI有较高的数据传送速度,主机方式最高 速率可达1.05 Mb/s,目前不少外围器件都 带有SPI接口。 • 在大多数应用场合中,使用1个MCU作为主 机,控制数据向1个或多个从外围器件的传 送。 • 从器件只能在主机发命令时,才能接收或向 主机传送数据。 • 其数据的传输格式是高位(MSB)在前, 低位(LSB)在后。
作;当Load为高电平时,DIN处于高阻状态。它同样允许
多个串行接口芯片共同使用89C51的串行口。
图8-5MAX7219与单片机接口电路
(3) 串行模拟量输入芯片MAX1458
• MAX1458是一个可对差分输入信号(如电桥)进行程控 放大(放大倍数可以由软件设定),并进行12位A/D转换 的芯片。它将放大与转换电路集成在一个芯片上,图8-6 给出了它与单片机的串行接口电路。
•图8-2 SPI串行总线典型时序图
2. 89C51单片机串行扩展SPI外设接口的方法
1) 用一般I/O口线模拟SPI操作
• 对于没有SPI接口的89C51来说,可使用软件来模 拟SPI的操作,包括串行时钟、数据输入和输出。