第八章 数据通信.

Slides:



Advertisements
Similar presentations
实验四 利用中规模芯片设计时序电路(二).
Advertisements

5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第六章 MCS-51单片机总线系统与I/O口扩展
第8章 AT89S51单片机 外部存储器的扩展 1.
第四章 指令系统及汇编语言程序设计.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
第9章 串行扩展技术 (课时:6学时).
第7章 单片机系统的串行扩展 西安思源学院 电子信息工程学院 1.
第8章 AT89S52单片机外部 存储器的扩展 1.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
AVR单片机软硬件设计教程-入门篇 ——学单片机就要学AVR!
第七章 MCS-51系统扩展 一、程序存储器扩展
第9章 AT89S52单片机的 I/O扩展 1.
第十一章 复位、时钟和省电方式控制.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
第6章 基本输入输出接口技术 【本章提要】 【学习目标】
第八章 数据通信.
第 14 章 并行通信及其接口电路.
ARDUINO+BLUETOOTH Arduino实现蓝牙数据传输.
第七章 MCS-51并行口的扩展 MCS51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS3734和74LS245)和可编程的并行口芯片(8255)。 7.1 不可编程并行口芯片的扩展 7.2 可编程并行口芯片的扩展.
走进编程 程序的顺序结构(二).
第 9 章 可编程外围接口芯片 8255A 中国科学技术大学 何克东.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
第七章 可编程并行接口8255A §7.1并行接口的概述 §7.2 可编程并行接口8255A § A的0方式及其应用
第2章 单片机的结构原理与 简单应用 (课时:10学时).
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
逆向工程-汇编语言
CPU结构和功能.
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
第11章 基本I/O接口 罗文坚 中国科大 计算机学院
14.2 时序逻辑电路的分析 概述 时序逻辑电路是由存储电路和组合逻辑电路共同组成的,它的输出状态不仅与输入有关,还与电路的过去状态有关,即具有存储功能。 输入信号 输出信号 输出方程 驱动方程 描述时序逻辑电路的三个方程 状态方程 存储电路的输入信号 时序逻辑电路构成框图 存储电路的输出信号.
第四章 指令系统及汇编语言程序设计.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
数字电子技术 Digital Electronics Technology
单片机原理与应用 主讲人:张荣刚 福建师范大学福清分校.
(Random Access Memory)
微机原理与接口技术 第6章 并行输入输出接口(8255A)
微机原理及应用 主讲:郑海春.
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第三章 计算机系统的组成与工作原理.
《数字电子技术基础》(第五版)教学课件 清华大学 阎石 王红
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
2. MCS-51单片机的组成及结构分析 2.1 MCS-51单片机的内部结构及结构特点
第4章 触发器.
概述 一、基本要求 1. 有两个稳定的状态(0、1),以表示存储内容; 2. 能够接收、保存和输出信号。 二、现态和次态
7.1 AT89C51最小应用系统 从本质上讲,单片机本身就是一个最小应用系统。由于晶振、开关等器件无法集成到芯片内部,这些器件又是单片机工作所必需的器件,因此,由单片机与晶振电路及由开关、电阻、电容等构成的复位电路就是单片机的最小应用系统。如图7-1所示,AT89C51片内有Flash程序存储器,由它构成的最小应用系统简单可靠。
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
单片机原理及应用 (C语言版) 第8章 单片机系统扩展
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
信号发生电路 -非正弦波发生电路.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
Presentation transcript:

第八章 数据通信

任课教师:刘忠国 山东大学课程中心网站: http://course.sdu.edu.cn/G2S/stcmcu.cc 宏晶官方网站:http://www.stcmcu.com STC单片机编译(汇编)/编程(烧录)/仿真工具说 明书; stc15系列单片机器件手册等 keil μvision软件下载及指导手册(Help→μvision Help) http://www.keil.com/ Keil Software –Cx51 编译器用户手册: Cx51编译 器--对传统和扩展的8051微处理器的优化的C 编译器和库参考

第八章 数据通信 本章学习目标 了解通信的有关概念 掌握串行通信和并行通信的原理 第八章 数据通信 本章学习目标 了解通信的有关概念 掌握串行通信和并行通信的原理 掌握常见串行接口(RS232/RS485/SPI/I2C)的原 理及应用方法 掌握单片机并行接口的扩展方法

第八章 数据通信 8.1 通信的有关概念 8.1.1 串行通信的相关概念 8.1.2 并行通信的相关概念 8.2 串行接口 8.2.1 单片机的串行接口 8.2.2 RS232串行通信接口 8.2.3 RS485通信接口 8.2.4 SPI通信接口 8.2.5 I2C通信接口 8.3 并行接口的扩展方法 8.3.1 8255A接口及其应用 8.3.2 74HC595接口及其应用 1. 串行口的寄存器 2. 串行口的工作方式 3. 多处理机通信 4. 波特率的设定 5. 串行口通信应用举例

8.2.5 I2C通信接口 1、I2C总线简介 I2C(Inter-Integrated Circuit)总线是由PHILIPS 公司开发的串行总线,用于连接微控制器及其外围 设备。 I2C总线产生于二十世纪80年代,最初为音频和视 频设备开发,如今主要在服务器管理中使用,其中 包括单个组件状态的通信。 例如,管理员可对各个组件进行查询,以管理系统 的配置或掌握组件的功能状态,如电源和系统风扇。 可随时监控内存、硬盘、网络、系统温度等多个参 数,增加了系统的安全性,方便了管理。

8.2.5 I2C通信接口 2、I2C总线特点  I2C总线最主要的优点是其简单性和有效 性。由于接口直接在组件之上,因此I2C总 线占用的空间非常小,减少了电路板的空间 和芯片管脚的数量,降低了互联成本。 总线长度可高达25英尺, 并且能够以10Kbps 的最大传输速率支持40个组件。

2、I2C总线特点 I2C总线的另一个优点是,它支持多个主器件 (Multimastering),主器件也称为主机,其中任 何能够进行发送和接收的设备都可以成为主机。 一个主机能够控制信号的传输和时钟频率。当然, 在任何时间点上只能有一个主机。 I2C总线有3种模式:标准模式(100Kbits/s),快 速模式(400Kbits/s)和高速模式(3.4Mbits/s), 寻址方式有7位和10位方式。

3、I2C术语 表8-7 I2C术语 Transmitter 发送者:向总线发送数据的电路 Receiver 接收者:从总线上接收数据的电路 名称 描述 Transmitter 发送者:向总线发送数据的电路 Receiver 接收者:从总线上接收数据的电路 Master 主机:启动数据传输、产生时钟信号和结束数据传输的电路 Slave 从机:被主机寻址的电路 Multi-master 多主机结构:在不破坏信息的情况下,同一时刻有多个主机试图控制总线 Arbitration 仲裁:在有多个主机试图同时控制总线时,为了不破坏信息,在某一时刻确保只有一个主机控制总线的过程 Synchronization 同步:同步两个或更多电路时钟信号的过程

8.2.5 I2C通信接口 4、I2C总线工作原理  I2C是一种串行总线的外设接口,采用同步方式串 行发送或接收信息,两设备在同一个时钟下工作。 I2C总线只用两根线:串行数据SDA (Serial Data)、 串行时钟SCL (Serial Clock)。 由于I2C只有一根数据线,因此其发送信息和接收 信息不能同时进行。信息的发送和接收只能分时 进行。

4、I2C总线工作原理 I2C总线上的所有器件的SDA线并接在一起,所有 器件的SCL线并接在一起; I2C总线数据传输协议比SPI总线复杂, 因I2C总线器 件没有片选控制线, 所以I2C总线数据传输开始必须 由主器件产生通信的开始条件(START条件); 通信结束时, 由主器件产生通信的停止条件 (STOP 条件)。

4、I2C总线工作原理 当SCL为高时, 使用SDA的变化标识开始条件和停止 条件。 如果SDA由1变到0,则产生START条件; 如果SDA由0变到1,则产生STOP条件。 图8-37 START条件和STOP条件时序

4、I2C总线工作原理 SDA线上的数据在SCL高电平期间必须保持稳定, 否 则会被误认为开始条件或结束条件, 只有在SCL低电 平期间才能改变SDA线上的数据。 …… 图8-38 I2C总线的数据传输波形图

4、I2C总线工作原理 数据传输的时序如图所示。 图8-39 数据传输的时序

4、I2C总线工作原理 I2C的确认位时序如图所示。 图8-40 I2C的确认位时序

4、I2C总线工作原理 目前,有很多半导体集成电路上都集成了I2C接口。 带有I2C接口的单片机有:CYGNAL的C8051F0XX 系列,PHILIPSP87LPC7XX系列,MICROCHIP的 PIC16C6XX系列等。 很多外围器件如存储器、监控芯片等也提供I2C接口。 如ATmel的串行EEPROM AT24CXX系列。

8.2.5 I2C通信接口 5、总线基本操作  I2C规程运用主/从双向通讯。器件发送数据到总线 上,则定义为发送器,器件接收数据则定义为接 收器。主器件和从器件都可以工作于接收和发送 状态。  总线必须由主器件(通常为微控制器)控制,主 器件产生串行时钟(SCL)控制总线的传输方向, 并产生起始和停止条件。

5、总线基本操作 (1)控制字节  在起始条件之后,必须是器件的控制字节,其中高四 位为器件类型识别符(不同的芯片类型有不同的定义, EEPROM一般应为1010),接着三位为片选,最后一 位为读写位,当为1时为读操作,为0时为写操作。如 图所示。 图8-41 控制字节配置

5、总线基本操作 每次只能向芯片中的一个地址写入一个字节的数据。 (2)写操作 (2)写操作  写操作分为字节写和页面写两种操作,对于页面写根 据芯片的一次装载的字节不同有所不同。 字节写指令 首先发送开始位来通知芯片开始进行指令传输; 然后传送设置好的器件地址字节,R/W位应置0; 接着是分开传送十六位地址的高低字节,再传送要 写入的数据; 最后发送停止位表示本次指令结束。 每次只能向芯片中的一个地址写入一个字节的数据。

5、总线基本操作 写入单个字节的时序图如图所示。 图8-42 写入单个字节的时序图

5、总线基本操作 页面写模式 需要发送第一个字节的地址 然后一次性发送多个字节的写入数据后 再发送停止位。 写入过程中其余的地址增量自己由芯片内部完成。 图8-43 页写入的时序图

5、总线基本操作 注意 无论那种写入方式,指令发送完成后,芯片内部开 始写入,这时SDA会被芯片拉高,直到写入完成后 SDA才会重新变的有效,在编写用户程序时可以在 写入的时候不停发送伪指令并查询是否有ACK返回, 如果有ACK返回则可以进行下一步操作 。

5、总线基本操作 (3)读操作 三种基本操作:读当前地址、读任意地址和连续读取。 1)读当前地址 (3)读操作  三种基本操作:读当前地址、读任意地址和连续读取。 1)读当前地址 这种读取模式是读取当前芯片内部的地址指针指向的 数据。 每次读写操作后,芯片会把最后一次操作过的地址作 为当前的地址。 注意:在CPU接收完芯片传送的数据后不必发送低电 平的ACK给芯片,直接拉高SDA等待一个时钟后发送 停止位。

5、总线基本操作 读当前地址时序图如图所示。 图8-44 读当前地址时序图

5、总线基本操作 2)读任意地址 “读当前地址” 可以说是读的基本指令。 读任意地址时是在这个基本指令之前加一“伪操作” , 这个伪操作传送一个写指令,但这个写指令在地址传 送完成后就要结束,这时芯片内部的地址指针指到这 个地址上,再用读当前地址指令就可以读出该地址的 数据。

5、总线基本操作 读任意地址的时序图如图所示。 图8-45 读任意地址的时序图

5、总线基本操作 3)连续读取 连续读取操作时只要在上面二种读取方式中芯片 传送完读取数据后,CPU回应给芯片一个低电平的 ACK应答,那么芯片地址指针自动加一并传送数 据,直到CPU不回应(NOACK)并停止操作。 图8-46 连续读取的时序图

8.2.5 I2C通信接口 6、实例 以单片机对X24C04的操作为例说明I2C接口的应用。 X24C04是XICOR公司的CMOS 4096位串行EEPROM, 内部组织成512×8位, 16字节页面写。与单片机的接 口如图所示。 图8-47 X24C04与单片机的接口

5、总线基本操作 下面通过I2C接口对 X24C04进行单字节 写操作的流程图如图 所示。

6、I2C接口实例: 单片机对X24C04的操作 源程序如下:;子名称:BYTE-WR ;功能描述:写一个字节。;输入参数:累加器A。;输出参数:无 SCL EQU P3.2 SDA EQU P3.3 BYTE-WR: MOV R2, #08H ;1字节8位 SENDA: CLR SCL RLC A ;左移一位 MOV SDA, C ;写一位 SETB SCL DJNZ R2, SENDA ;写完8个字节? CLR SCL ;应答信号 SETB SDA RET

6、I2C接口实例: 单片机对X24C04的操作 使用I2C总线时应注意以下几点: 严格按照时序图的时序要求进行操作; 若与口线上带内部上拉电阻的单片机接口连接,可 以不外加上拉电阻; 为了配合相应的传输速率,在对口线操作的指令后 可用NOP指令加一定的延时; 为了减少意外的干扰信号将EEPROM内的数据改写 可用外部写保护引脚(如果有), 或在EEPROM内部没 有用的空间写入标志字,每次上电时或复位时做一 次检测,判断EEPROM是否被意外改写。

§8.3 并行接口的扩展方法 在需要检测或者控制较多的开关量时,单片机的 I/O口可能无法满足数量上的要求。在这种情况下, 应该考虑I/O接口的扩展。 常见的扩展方法有使用8255进行并行口的扩展, 以及使用串行输入并行输出接口芯片(例如74HC595 接口)扩展输出控制I/O等方法。 下面分别加以介绍。

8.3.1 8255A接口及其应用 1、8255A简介 8255A是Intel公司生产的可编程并行I/O接口芯片, 有3个8位并行I/O接口,用+5V单电源供电,能在 以下三种方式下工作: 方式 0—基本输入/出方式; 方式 1—选通输入/出方式; 方式 2—双向选通工作方式。 8255A 8255A内部结构分为3个部分:与CPU连接 部分、与外设连接部分和控制部分。

8255A的引脚图和内部结构如图所示 8255A的引脚图和内部结构如图所示。 A组控制 B组控制 缓冲器 数据总线 DB o RD WR RESET CS 读/写 控制逻辑 A口 上C口 下C口 B口 PA7~PA0 PC7~PC4 PC3~PC0 PB7~PB0 I/O 外设接口 CPU接口 内部逻辑 内 部 总 线 图8-49 8255A的引脚图和内部结构

8255A的引脚图和内部结构如图所示 8255A的引脚图

1、8255A简介 (1)A口、B口和C口 A口、B口和C口均为8位I/O数据口,但结构上略有 差别。 各个端口用于输入和输出时,均具有锁存功能;用 于输出时,均具有缓冲(暂存或驱动)功能。

1、8255A简介 PA口的各个口线通过编程可以分别设置成单 向输出、单向输入或者分时输入输出(方式2)。 PB口的各个口线通过编程可以分别设置成单 向输出和单向输入。 PC端口可以分为高4位PC7~4和低4位PC3~0 两个独立部分。PC端口可否独立控制取决于 PA端口和PB端口的工作方式。

图8-50 PA口某个口线的 输出锁存和缓冲, 输入锁存结构 图8-51 PB口某个口线的输出锁存和缓冲, 输入缓冲结构

1、8255A简介 (2)I/O口线(24条) PA0~PA7、PB0~PB7、PC0~PC7为24条双向 三态I/O总线,分别与A、B、C口相对应,用 于8255A和外设之间传送数据。 (3)A、B组控制电路 这是两组根据CPU的命令字控制8255A工作方式的电 路。A组控制A口及C口的高4位,B组控制B口及C口 的低4位。

1、8255A简介 (4)数据缓冲器 这是一个双向三态8位的驱动口,用于和单片机的数 据总线相连,传送数据或控制信息(控制字)。 (5)数据线(8条) D0~D7为数据总线, 用于传送CPU和8255A之间的数 据、命令和状态字。 (6)读/写控制逻辑 这部分电路接收单片机送来的读/写命令和选口地 址,用于控制对8255A的读/写。

1、8255A简介 (7)控制线和寻址线(6条) RESET: 复位信号, 输入, 高电平有效。一般和单片机 的复位相连, 复位后, 8255A所有内部寄存器 清0控制寄存器为9Bh, 所有口都为输入方式。 和 :读/写信号线,输入,低电平有效。 : 片选线,输入,低电平有效。 A0, A1: 地址输入线。芯片被选中 ( = 0 )时, 其4种 组合00, 01, 10, 11分别选择A,B,C口和控制寄存器。 (8)电源线(2条) VCC为+5 V,GND为地线。

1、8255A简介 表8-8 对8255A操作的真值表 对8255A操作的真值表如表所示 对8255A而言是输出, 则对CPU是输入

2、8255A控制字 8255A的三个端口具体工作在什么方式下,是通过 CPU对控制口的写入控制字来决定的 用户通过程序把这两个控制字送到8255A的控制寄存 器(A0A1=11)中; 这两个控制字以D7来作为区别标志。

图8-52 8255A方式选择控制字和C口按位置位/复位控制字 复位后为9Bh 方式选择控制字和C口置/复位控制字分别如图a 和b所示。 复位后 1 0 0 1 1 0 1 1 图8-52 8255A方式选择控制字和C口按位置位/复位控制字

2、8255A控制字 C口置/复位控制字 分别如图b所示。 C口具有位操作功能 图8-52 8255A控制字和C口按位置位/复位控制字

2、8255A控制字 注意 C口具有位操作功能,把一个置/复位控制字送入 8255A的控制寄存器,就能将C口的某一位置1或 清0而不影响其它位的状态。 三个端口的数据传送模式 PA端口具有3种传送模式可供选用。 PB端口具有2种传送模式可供选用。 PC端口的传送模式取决于PA端口和PB端口的传送 模式。

(1)传送模式0 —基本输入/出方式 模式0的功能特点: 是直接控制输入或输出传送。不需要查询和中断控制。 PA、PB和PC端口都可以编程设置为模式0传送。 PA、PB、PC7~PC4、PC3~PC0这4个端口最多有 16种输入输出组合。 模式0传送在计算机系统中很多有实际应用的例子。 例如在个人计算机系统中,8255A并行接口电路的PA 端口被设置成模式0输入,接收键盘输入的按键扫描码。 又如,在半导体数码管显示控制电路中,通常设置 8255A并行接口电路的PA和PB端口为模式0输出,分 别进行位控制和段控制。

2、8255A控制字 (2)传送模式1 —选通输入/出方式 模式1的功能特点: 采用查询或者中断的方式控制输入或输出传送。 PA端口编程为模式1传送后,要占用PC端口的部分 资源。 PB端口编程为模式1传送后,也要占用PC端口的部 分资源。 PC端口的剩余资源仍然可以独立操作。

PA端口模式1输入传送的逻辑结构, 如图所示。 中断允许位 由PC4控制置位复位 GO PC口输出、输入缓冲器各自独立 图8-53 PA端口模式1输入传送的逻辑结构

2、8255A控制字 功能说明: ① 是选通输入信号, 来自外设电路, 低有效, 表示数据已经打入PA端口锁存器。 ① 是选通输入信号, 来自外设电路, 低有效, 表示数据已经打入PA端口锁存器。 ②IBF是输入缓冲器满信号, 由8255A输出, 高有效, 表 示PA端口数据尚未被CPU读取, 不能再接收新数据。 当IBF为低电平时, 表示输入缓冲器空, 可以接收新 数据。 IBF信号由 选通信号 激活,随CPU的读控制信 号 的撤消而失效。

2、8255A控制字 端口模式1输入传送的时序图:

2、8255A控制字 ③INTR是中断请求信号,输出到主机电路,要求CPU 读取PA端口数据。INTR信号也可以作为查询信号使 用。 ④INTR信号能否激活,受8255A内部的中断允许触发 器INTE的控制。INTE=1,允许激活INTR信号。 INTE=0,禁止激活INTR信号。 INTEA由PC4控制置位复位, INTEB由PC2控制置位复位。

2、8255A控制字 单片机扩展的I/O口寻址方法与外部数据存储器相同, 所有扩展I/O口, 及通过扩展I/O口连接的外设都与外 部RAM统一编址。 对片外I/O口的输入/输出指令就是访问外部RAM指令。 可用下面代码对中断允许触发器INTE置位(设命令端 口地址为0E003H) : MOV DPTR,#0E003H ;指向8255命令端口 MOV A,#00001001B ;PC4置1,允许激活PA端口的INTRA信号 MOVX @DPTR,A ;写入PC端口操作字 MOV A,#00000101B ;PC2置1,允许激活PB端口的INTRB信号 MOVX @DPTR,A ;写入PC端口操作字

2、8255A控制字 ⑤PB端口设置为模式1输入时,分别占用PC0(INTR)、 PC1(IBF) 和PC2( ) 。 ⑥PC端口剩余的PC7和PC6,可编程为两位输入或输出, 也可单独进行位操作。 由PC2控制置位复位 PA端口模式1输入传送控制字 PB端口模式1输入传送的逻辑结构

2、8255A控制字 PA端口模式1输出传送的逻辑结构如图所示。 中断允许位 由PC6控制置位复位

2、8255A控制字 功能说明: ① 是输出缓冲器满信号, 由8255A输出, 低有效, 表示PA端口数据已经准备就绪, 可供外设电路读取。 信号由 信号激活。当 信号生效后, 信号返回高电平, 撤销输出缓冲器满的状态。 当CPU又把数据写入PA端口后, 随着写控制信号 的撤销, 信号再次自动激活(低电平)。

2、8255A控制字 端口模式1输出传送的时序图:

2、8255A控制字 ③INTR是中断请求信号, 输出到主机, 表示PA口已空闲, CPU可再次写入数据。INTR也可作为查询信号用。 ④INTR信号能否激活,受8255A内部的中断允许触发 器INTE的控制。用PC6来控制是否激活INTR信号。 由PC6控制置位复位 PA端口模式1输出传送的逻辑结构

2、8255A控制字 中断允许触发器INTE的置位控制代码如下 (假设命令 端口地址为0E003H): MOV DPTR,#0E003H ;指向8255命令端口  MOV A,#00001101B ;PC6置1,激活PA端口的INTR信号  MOVX @DPTR,A ;写入PC端口操作字  MOV A,#00000101B ;PC2置1, 激活PB端口的INTR信号  MOVX @DPTR,A ;写入PC端口操作字。

2、8255A控制字 ⑤PB端口设置为模式1输出时,分别占用PC0(INTR) 、 PC1( ) 和PC2( ) 。 ⑥PC端口剩余的PC5和PC4,可以编程为两位输入或 者输出,也可以单独进行位操作。 由PC6控制置位复位

2、8255A控制字 (3)传送模式2 —双向选通工作方式 只有PA端口可编程设置为模式2传送。这是采用中断 或者查询方式控制的分时输入和输出的双向传送方 式。模式2的逻辑结构如图所示。

3、单片机与8255A的接口设计 若STC15F2K60S2单片机系统以总线扩展方式构 成,则P0口用于数据总线D7~D0和地址总线低8位 A7~A0, P2口用作地址总线的高8位A15~A8, 其他口也具有第 二功能,常被使用,真正能提供给用户使用的并行 口并不多。 可以使用8255A进行并行I/O口的扩展。 8255A和单片机连接时,可以为外设提供三个8位的 I/O端口:A口、B口和C口,三个端口的功能完全由 编程来决定。

设8255A的命令口地址为7FF3H, PA口地址为7FCF0H, PB口地址为7FDF1H, PC口地址为7FEFF2H。(非唯一) 8255A与STC15F2K60S2单片机的接口电路。 设8255A的命令口地址为7FF3H, PA口地址为7FCF0H, PB口地址为7FDF1H, PC口地址为7FEFF2H。(非唯一) 153页8255A口地址对应图 P2口是高8位地址 P0口低8位地址任意 设没用到地址线为1 P2.0, P2.1选口(含命令口) 图8-56 8255A与STC15F2K60S2单片机的接口电路

4、8255A并行接口的编程操作 8255A并行接口的编程操作分为: 写入8255A命令字, 设置8255A工作模式与传送方向。 写入PC端口操作字, 设置PC端口位输入或输出状 态。 8255A接口电路编程操作示例代码如下: MOV DPTR, #7FF3H ;指向8255命令端口   MOV A, #80H ;命令字:PA、PB和PC端口直接输出   MOVX @DPTR, A ;写命令到命令口   MOV DPTR, #7CF0H ;指向PA端口   MOVX @DPTR, A ;数据写入PA端口   MOV DPTR, #7FF3H ;指向8255命令端口   MOV A, #9H ;PC端口操作字: 0 000 100 1   MOVX @DPTR, A ;PC4输出高电平 (C口) (PC4) (置位)

8.3.2 74HC595接口及其应用 74HC595是为Motorola的SPI总线开发的一款串行- 并行转换芯片(8位3态移位寄存器/输出锁存器)。 由于74HC595的输入输出电平兼容TTL、NMOS和 CMOS电平,且具有较强的输出负载能力,因此被 广泛地运用于MCU(微控制器)和MPU(微处理器) 的I/O口扩展。

8.3.2 74HC595接口及其应用 74HC595在5V供电的时候能够达到30MHz的时钟 速度,每个并行输出端口均能承受20mA的灌电流 和拉电流。这个特点保证了不用增加额外的扩流 电路即可轻松的驱动LED。 它的输入端允许500nS的上升(下降)时间,对严 重畸形的时钟脉冲仍能检测。 这样就可以容纳较大的传输线对地电容,使系统 的抗干扰能力增强。

8.3.2 74HC595接口及其应用 74HC595的逻辑电路图: 74HC595的逻辑电路图

8.3.2 74HC595接口及其应用 74HC595管脚功能描述如下: QA~QH:锁存器数据输出,三态 GND:电源地 VCC:电源正,一般接5VDC。 /G: 输出使能控制端。低电平 有效, 将锁存器的输出映射到 输出并行口(QA-QH)上。当输 入高电平时,高阻态,同时本 芯片的串行输出无效。 图8-57 74HC595的逻辑图

8.3.2 74HC595接口及其应用 RCK:存储寄存器时钟输入,上升沿时,移位寄存 器的数据进入数据存储寄存器,下降沿时存储寄存器 数据不变,通常将RCK置为低电平。 当移位结束后, 在RCK端产生一个正脉冲(5V供电时, 大于几十纳秒即可), 更新输出数据。 SI:串行数据输入,数据从这 个管脚移进内部的8位串行移位 寄存器。

8.3.2 74HC595接口及其应用 SCK: 移位寄存器时钟输入。上升沿时, 将数据寄存器 的数据移位: QA→QB →QC→... →QH; 下降沿移位寄 存器数据不变。 (脉冲宽度: 5V时, 大于几十纳秒即可。) /SCLR:移位寄存器清零输入。 低电平有效, 当此管脚上出现低电 平时, 将复位内部的移位寄存器 (清0), 但不影响8位锁存器的值。 通常可接Vcc。

74HC595真值表如表8-9所示。 表8-9 74HC595真值表 输入 输出管脚 SI SCK /SCLR RCK /G × H QA-QH输出高阻态 L QA-QH输出有效值 × L 移位寄存器清0 L ↑ H × 移位寄存器第一级(位)存储L 移位寄存器第一级(位)存储H × ↓ H 移位寄存器状态保持 × ↑ 输出存储器锁存移位寄存器中的状态值 × ↓ 输出存储器状态保持

8.3.2 74HC595接口及其应用 74HC595与STC15F2K60S2单片机的接口电路如图所示。

8.3.2 74HC595接口及其应用——应用演示程序: ;==========输出锁存器输出数据子程序 ============= SDATA_595 EQU P1.0 ;串行数据输入 SCLK_595 EQU P1.1 ;移位时钟脉冲 RCK_595 EQU P1.2 ;输出锁存器控制脉冲 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SP, #60H MOV R0, #0FEH ; R0存显示的数据, 位值0使灯亮 MAIN1: LCALL OUT_595 LCALL DELAY MOV A, R0 RL A ; R0显示数据循环左移 MOV R0, A LJMP MAIN1

8.3.2 74HC595接口及其应用 ;---------------- 输出锁存器输出数据子程序 ---------------- OUT_595:LCALL WR_595 CLR RCK_595 NOP SETB RCK_595 ;上升沿将数据送到输出锁存器 RET

8.3.2 74HC595接口及其应用 ;----------------- 移位寄存器接收数据子程序 ------------------ WR_595: MOV R4, #08H ;移位位数(一个字节)→R4 MOV A, R0 ; R0存显示的数据, 位值0使灯 WR_LOOP:RLC A ; 显示数据带进位C循环左移 MOV SDATA_595, C ; 数据经进位C串行输出 SETB SCLK_595 ;上升沿发生移位 NOP CLR SCLK_595 DJNZ R4, WR_LOOP RET ; 循环8次, 依次将8位数据串行输出

8.3.2 74HC595接口及其应用 ;------------------------ 延时子程序--------------------- DELAY:MOV R5, #03H DEL0:MOV R6, #0FFH DEL1:MOV R7, #0FFH DJNZ R7, $ DJNZ R6, DEL1 DJNZ R5, DEL0 RET ;================================== END

对应的C语言程序如下: /*******74HC595 走马灯演示程序 *********/ #include “reg51.h” //51芯片管脚定义头文件 #include “intrins.h” //内部包含延时函数 _nop_() #define uchar unsigned char #define uint unsigned int uchar code DAT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; sbit SDATA_595=P1^0; //串行数据输入 sbit SCLK_595 =P1^1; //移位时钟脉冲 sbit RCK_595 =P1^2; //输出锁存器控制脉冲 uchar bdata temp; sbit mybit=temp^7;

8.3.2 74HC595接口及其应用 /***********延时子程序**************/ void delay(int ms) { int k; while(ms--) { for(k=0; k<250; k++) _nop_(); }

8.3.2 74HC595接口及其应用 /***将显示数据送入74HC595内部移位寄存器***/ void WR_595(void) { uchar j; for(j=0; j<8; j++) { temp=temp<<1; SDATA_595=mybit; SCLK_595=1; //上升沿发生移位 _nop_(); SCLK_595=0; }

8.3.2 74HC595接口及其应用 /**将移位寄存器内的数据锁存到输出寄存器并显示**/ void OUT_595(void) { RCK_595=0; _nop_(); RCK_595=1; //上升沿将数据送到输出锁存器 RCK_595=0; }