8255芯片是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。
RESET: 复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS: 芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
RD: 读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR: 写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7: 三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA7~PA0: A口输入/输出线
PB7~PB0: B口输入/输出线
PC7~PC0: C口输入/输出线
A0、A1: 地址线,用来选择内部端口
8255A有两个控制字,分别为方式控制字和C口置位/复位控制字,这两个控制字公用一个地址通过最高位来选择使用那个控制字
(1)工作方式选择字
(2)C口置位/清零控制字:
可对8255的C口的每一位进行清零操作,该操作通过设置C口置位/复位来实现
256 x 8 (2K)
IIC接口、施密特触发器、噪声抑制
用于硬件数据保护的写保护引脚
8字节页(1K, 2K)
允许部分页写
写周期(最大5ms)
AT24C02提供2048位的电可擦和可编程只读存储器(EEPROM)
组织为256, 8位字。该装置经过优化,可用于许多工业和商业应用。
SERIAL CLOCK (SCL):
SCL输入用于将正边缘时钟数据输入到每个EEPROM设备,并将负边缘时钟数据输出到每个设备。
SERIAL DATA (SDA):
SDA引脚是双向的,用于串行数据传输。
DEVICE/PAGE ADDRESSES (A2, A1, A0):
A2、A1和AO引脚是硬接线AT24C02的设备地址输入。多达8个1K/2K设备可以在一个总线系统上被寻址。
WRITE PROTECT (WP):
AT24C02有一个写保护引脚,提供硬件数据保护。当连接到地(GND)时,写保护引脚允许正常读/写操作。当引脚连接到Vcc时,就会启用Write protection特性,不允许读写。
AT24C02, 2K SERIAL EEPROM:
内部组织32页,每个8字节2K需要8位数据字地址用于随机字寻址也就是说有32页,每一页8Byte,每1Byte是8位,总共就是2Kbit的存储空间
时钟和数据转换:
SDA引脚通常与外部设备拉高。SDA引脚上的数据只能在SCL低时间段内改变。在SCL高时间段内的数据改变将表明如下定义的启动或停止条件。
SCL高的时候SDA从高到低的过渡是一个启动条件。
SCL高的SDA从低到高的转变是停止条件。在读取序列之后,stop命令将EEPROM置于备用电源模式。
所有地址和数据字都以8位字串行地传送到EEPROM或从它传送出来。EEPROM发送一个0来确认它已经接收到每个字。
AT24C01A/02/04/08A/16A具有低功率待机模式
启用:
(a)上电后
(b)在收到停止位和完成任何内部操作后。
设备需要一个8位的设备地址字,后面跟着一个启动条件,以使芯片能够进行读或写操作
设备地址字由一个强制的1,0序列的前四个最有效的位,如所示。这是所有EEPROM设备的共同特点。
接下来的3位是1K/2K EEPROM的A2、A1和AO设备地址位。这3位必须与相应的硬接线输入引脚相比较。
最后一位为0表示写。最后一位为1表示读!
字节写:
写操作需要在设备地址字和确认之后有一个8位的数据字地址。一旦收到这个地址,EEPROM将再次响应一个零,然后在第一个8位数据字时钟。接收到8位数据字后,EEPROM将输出一个零。主机必须用一个停止条件终止写序列。此时,EEPROM进入一个内部计时的写周期,到非易失性存储器。在这个写周期中,所有输入都被禁用,EEPROM直到写完成才会响应。
1K/2K EEPROM能够进行8字节的页写入,4K、8K和16K设备能够进行16字节的页写入。
页写的初始化过程与字节写的初始化过程相同。但是微控制器在第一个数据字被写入后并没有发送一个停止条件。
相反,在EEPROM承认接收到第一个数据字之后。该微控制器可以传输多达7 (1K/2K)或15 (4K, 8K, 16K)更多的数据字。EEPROM在接收到每个数据字后将以一个零响应。微控制器必须用一个停止条件终止页写序列。
当内部生成的字到达页面边界时,下面的字节被放置在同一页面的开头。
如果有超过8个(1K/2K)或16个(4K, 8K, 16K)数据字传输到EEPROM,数据字地址将“翻转”,先前的数据将被覆盖。
一旦内部计时的写周期已经开始并且EEPROM输入被禁用,确认轮询可以被启动。这包括发送一个起始条件,后面跟着设备地址字。读/写位代表所需的操作。只有当内部写周期已经完成,EEPROM才会以零响应,允许读或写序列继续。
一旦内部计时的写周期已经开始并且EEPROM输入被禁用,确认轮询可以被启动。这包括发送一个起始条件,后面跟着设备地址字。读/写位代表所需的操作。只有当内部写周期已经完成,EEPROM才会以零响应,允许读或写序列继续。
读操作和写操作的初始化方式相同,只是设备地址字的读/写选择位被设置为1。读操作有三种:
读当前地址
任意地址读
连续顺序读
内部数据字地址计数器维护上次读或写操作期间访问的最后一个地址,该地址加1。这个地址在操作之间保持有效,只要芯片电源是保持的。读取期间的地址“翻转”是从最后一个内存页的最后一个字节到第一个页的第一个字节。写过程中的地址“翻转”是从当前页的最后一个字节到同一页的第一个字节一旦具有读/写选择位设置为1的设备地址被打卡并被EEPROM确认。
随机读需要一个“虚拟”字节写序列来加载数据字地址。一旦设备地址字和数据字地址被输入并且被EEPROM确认
微控制器必须产生另一个启动条件,微控制器现在通过发送带读设备地址来启动当前读地址。
EEPROM确认设备地址并报出数据字。微控制器后跟随停止条件结束。
顺序读由当前地址读或任意地址读发起。在微控制器收到一个数据字后,它以一个确认响应。只要EEPROM收到一个确认,它就会继续增加数据字地址,并连续地以时钟的方式中断连续的数据字。当达到内存地址限制时,数据字地址将“翻转”,顺序读取将继续。顺序读操作被终止时,后跟停止条件。