《单片机应用技术C语言版王静霞电子教案ch8》由会员分享,可在线阅读,更多相关《单片机应用技术C语言版王静霞电子教案ch8(22页珍藏版)》请在金锄头文库上搜索。
1、 本章内容本章内容p存储器的扩展存储器的扩展 p串行口的串行口的I/O口扩展口扩展第第8 8章章 单片机系统扩展单片机系统扩展程序存储器扩展程序存储器扩展 当系统软件较大、片内ROM容量不够时,用户可以选择以下解决方案:p改用片内带较大容量ROM的单片机型号,如深圳宏晶科技的STC 89C51 系列单片机,其程序存储空间由4K64K可选。虽然单片机价格随程序存储器容量增大而有所增加,但由于系统集成度高,电路简单,可靠性高,这一方案是性价比较高的首选方案。p在单片机外部扩展程序存储器,可扩展以下程序存储器常用芯片: 紫外线擦除电可编程EPROM型(Erasable Programmable Re
2、ad Only Memory), 如2716(2K8)、2732(4K8)、2764(8K8)、27128(16K8)、27256(32K8)、27512(64K8)等; 电可擦除可编程EEPROM型,如2816(2K8)、2864(8K8)等; Flash ROM型如AT29*系列、AT49*系列并行Flash等。程序存储器扩展程序存储器扩展 EPROM 2732引脚及说明程序存储器扩展程序存储器扩展 EPROM 2732引脚及说明程序存储器与单片机的连线分为以下三类:(1) 数据线:通常有8位数据线,由P0口提供;(2) 地址线:地址线的条数决定了程序存储器的容量,低8位地址线由P0口提供
3、,高8位由P2口提供,具体使用多少条地址线视扩展容量而定;(3) 控制线:存储器的读允许信号与单片机的取指信号相连;存储器片选线的接法决定了程序存储器的地址范围,当只采用一片程序存储器芯片时,可以直接接地,当采用多片时要使用译码器来选中。数据存储器扩展数据存储器扩展 6116引脚图数据存储器扩展数据存储器扩展 单片机扩展2KB RAM电路数据存储器扩展数据存储器扩展 单片机中用于控制存储器的引脚有以下3个: :控制程序存储器的读操作,在执行指令的取指阶段和从程序存储器中取数据时有效; :控制数据存储器的读操作,从外部数据存储器中读取数据时有效; :控制数据存储器的写操作,向外部数据存储器中写数
4、据时有效。串行串行EEPROMEEPROM的扩展的扩展 AT24Cxx系列引脚图引脚名功能A0地址输入A1地址输入A2地址输入GND地线SDA串行数据(输入/输出)SCL串行时钟(输入)WP写保护Vcc工作电压器件寻址器件寻址 R/WA0A1A2 0 101AT24C01/02(1K/2K)R/WP0A1A2 0 101AT24C04(4K)R/WP0P1A2 0 101AT24C08(8K)R/WP0P1P2 0 101AT24C16(16K)MSBLSB AT24系列EEPROM在紧接着开始状态后均需一个8字节器件地址(Device Address),以使器件能够进行读/写操作。 器件地址
5、高4位为1010,这对所有AT24系列的器件都是相同的。器件地址的低4位中,最低位为读写控制R/W位,该位为高电平时启动读操作,处于低电平时启动写操作。其余 3位寻址码将因芯片容量的不同而有不同的定义。器件寻址器件寻址 R/WA0A1A2 0 101AT24C01/02(1K/2K)R/WP0A1A2 0 101AT24C04(4K)R/WP0P1A2 0 101AT24C08(8K)R/WP0P1P2 0 101AT24C16(16K)MSBLSB(1)对于AT24C01/02(1K/2K)来说,3位器件寻址码是A2、A1、A0引脚。(2)对于AT24C04(4K)来说,仅用A2和A1器件寻
6、址,第三位是存储器页面寻址位。(3)对于AT24C08(8K),仅用A2器件寻址位,下面两位是存储器页面寻址。(4)对于AT24C16(16K)无器件寻址位,这三位均用于存储器页面寻址。时钟和数据转换时钟和数据转换 SDA和SCL通常各自通过一个电阻上拉为高电平。SDA总线上的数据仅在SCL为低电平期间可能改变。如果在SCL高电平期间数据发生改变,表示定义“开始”或“停止”两种状态。AT24Cxx数据的有效性时序图输出数据输出数据当数据(包括地址和数据)由接口设备送往AT24Cxx时,称为输出数据(写数据)。数据总是按字节(8位)逐位串行输出,每个时钟脉冲输出一位。SDA总线上的数据应在SCL
7、低电平期间改变(输出),在SCL高电平期间稳定。输入数据输入数据 当单片机从AT24Cxx的数据线上读取数据时,称为输入数据(读数据)。数据总是按字节(8位)逐位串行输入,每个时钟脉冲输入一位。AT24Cxx在SCL低电平期间将数据送往SDA总线,在SCL高电平期间SDA总线上的数据稳定,可供接口设备读取。开始状态开始状态 AT24Cxx开始/停止定义时序图停止状态停止状态 SCL处于高电平时,SDA由低电平转向高电平,表示一个“停止”状态。该状态表示一种操作的结束并将终止所有通讯。在一个读序列之后,停止命令置EEPROM于待机模式。确认应答确认应答 AT24Cxx确认应答时序图写字节写字节
8、AT24Cxx写字节时序图AT24Cxx写周期时序图读字节操作读字节操作 现行地址读时序图随机地址读随机地址读随机地址读时序图串行口的串行口的I/OI/O口扩展口扩展 利用串行口扩展输入口串行口的串行口的I/OI/O口扩展口扩展 #include reg51.hunsigned char buffer=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; /定义数据缓冲区sbit P1_0=P10;main()unsigned char i;P1_0=0;/并行置入数据P1_0=1;/允许串行移位SCON=0x10;/设串行口方式0并允许接收while(1)for (i=0;i8;i+) while(RI=0); /查询接收标志RI=0; /RI清0bufferi=SBUF; /接收数据串行口的串行口的I/OI/O口扩展口扩展 利用串行口实现LED静态显示