单片机原理及应用北京化工大学信息科学与技术学院主讲教师:林伟国E-mail:linwg@mail.buct.edu,cn对于简单的应用场合,MCS-51的最小系统就能满足要求;对于复杂的应用场合,就需要利用单片机的扩展功能,构成功能强,规模较大的系统。系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围芯片以满足应用系统要求。外部程序存储器ROM/EPROM的扩展外部数据存储器RAM的扩展I/O接口的扩展中断系统扩展其它特殊功能扩展扩展内容第六章单片机系统的扩展一、MCS-51的总线结构当单片机进行外部并行扩展时,其外部连线就成为一般微型机的三总线结构形式第一节概述扩展方法并行扩展串行扩展利用三总线结构利用SPI三线总线和I2C双总线MCS51总线结构ALE:当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入地址锁存器PSEN:在访问外部程序存储器读取指令码时,每个机器周期产生两次PSEN信号,与地址信号配合,选通相应的外部程序存储单元,读取指令码,指令码从P0口输入WR、RD:外部数据存储器读、写选通,低电平有效。由MOVX指令产生EA:访问内部或外部程序存储器选择信号。EA=1,访问内部程序存储器,当PC超过片内存储器空间,自动转向外部;EA=0,访问外部程序存储器。二、外部串行扩展性能(略)控制总线作用简述一、外部程序存储器的扩展单片微机的内外程序存储器最大可扩展至64KB扩展芯片可采用EPROM1、扩展的基本方法地址线、数据线对应相连单片机的PSEN线与扩展芯片的MEMR(OE)线相连扩展芯片的片选线可接地或与线性选择线或译码输出线相连ALE与地址锁存器选通相连EA接地或接+5V第二节单片机的外部并行扩展程序存储器扩展框图2、锁存器74HC373:锁存缓冲器单片机外部程序存储器取指操作时序s1s2s3s4s5s6s1s2s3s4s5s6机器周期1机器周期2XTAL1ALEPSENPCHPCHP2PCHPCL指令P0PCL指令PCL指令1、扩展概述最大可扩展64K字节,连接方法与程序存储器连接方法大致相同地址线、数据线对应相连存储器读输入RD与单片机读输出RD(P3·7)相连存储器写输入WR与单片机写输出WR(P3·6)相连ALE连接方法同程序存储器外部数据存储器扩展MOVXA,@DPTR和MOVX@DPTR,A操作时序s1s2s3s4s5s6s1s2s3s4s5s6PCHDPHPCL指令DPL数据输入数据输出机器周期1机器周期2XTAL1ALEPSENP2P0RDP0WRPCL指令DPLMOVXA,@Ri和MOVX@Ri,A操作时序s1s2s3s4s5s6s1s2s3s4s5s6PCHDPHPCL指令DPL数据输入PCL指令DPL数据输入机器周期1机器周期2XTAL1ALEPSENP2P0RDP0WR静态数据存储器(6116)常用的静态数据存储器:6116(2K*8);6264(8K*8)静态数据存储器的特点:1)无需考虑保持数据而设置的刷新电路,扩展电路简单2)通过有源电路来保持存储器中的数据,消耗较多功率3)价格高6116,采用CMOS工艺制作,单一+5V电源,额定功耗160mw,典型存取时间为200ns,24线双列直插式封装。操作方式操作方式CEOEWEIO0--IO7写LHLDin读LLHDout未选中H任意任意高阻写LLLDin6116引脚及逻辑符号A7A6A5A4A3A2A1A0IO0IO1IO2GNDACCA8A9WEOEA10CEIO7IO6IO5IO4IO31241213A10A011IO7IO08CEOEWEVCCGND5V扩展2K*8位片外数据存储器静态数据存储器62646264,采用CMOS工艺制作,单一+5V电源,额定功耗200mw,典型存取时间为200ns,增加了两根地址线,28线双列直插式封装。操作方式CE1CE2OEWEIO0--IO7写LHHLDin写LHLLDin读LHLHDout未选中H任意任意任意高阻未选中任意L任意任意高阻输出禁止LHHH高阻6264引脚A7A6A5A4A3A2A1A0IO0IO1IO2GNDACCA8A9WEOEA10CEIO7IO6IO5IO4IO3A12A013IO7IO08CEOEWEVCCGND5VEEPROM:电擦写可编程只读存储器,特点是能在线+5V改写,掉电时原存信息不丢失。以2817A为例介绍单片机扩展EEPROM为通用存储器的方法1、外特性容量为2KB外部EEPROM存储器扩展工作方式CEOEWERDY/BUSY输入/输出读001高阻Dout写0100Din维持1XX高阻高阻字节擦除字节写入前自动擦除2、接口电路地址线、数据线及片选线的连接与RAM和EPEOM相同因为EEPROM即可随机读写,又不会因掉电而丢失信息,所以即可作为程序存储器又可作为数据存储器使用下图为8031单片机扩展2817AEEPROM作为通用存储器的电路图RDY/BUSY:写入1字节时间为16ms左右,在写入期间为低电平,P1·0输入低电平;写入结束,RDY/BUSY呈高阻状态,P1·0由3K电阻及+5V电压上拉至高电平。3、程序举例将2817A的0700H~07FFH(256个)单元依次写入数据00H~FFH的子程序段ORG0100HMOVDPL,#00HMOVDPH,#07HMOVA,#00HMOVX@DPTR,AJNBP1.0,$INCDPTRINCAJNZLOOPRETSTART:LOOP:;置首地址;P1·0为1,表示已写完;为0,正在写,等待;写入最大值为FFH,加1为00H,传送结束二、通过并行总线扩展I/O口完成输入/输出口功能的扩展,可以利用简单的TTL电路或CMOS电路,也可以使用可编程接口芯片。如:可编程并行接口(8155、8255)可编程通用同步/异步通信接口(8251)可编程定时/计数器(8253)等使用接口芯片优点:与80C51信号体制一致,利用扩展片外数据存储器的并行总线进行访问,使用MOVX指令,接口非常方便。P0.0~P0.774HC373ALED7~D0A1A02P2.7CS80C518255ARDWRRDWR8255A各口地址:A:8000HB:8001HC:8002H控制字寄存器:8003H设未用地址线为01、80C51与8255接口电路初始化程序举例A组设置成方式2,B组为方式1,B口作为输出口,控制字为C4HMOVDPTR,#8003HMOVA,#0C4HMOVX@DPTR,A2、扩展简单的输入/输出口扩展8个输出口的电路如P163图6-22所示使用MOVX@Ri,A时,口地址为00H~07H使用MOVX@DPTR,A时,口地址为0000H~0007H第三节单片机的外部串行扩展80C51系列单片机的串行总线包括:SPI三线总线和I2C公用双总线一、I2C公用双总线结构在器件之间使用两根信号线(SDA和SCL)以串行的方法进行信息传送,并允许若干兼容器件共享的双线总线,称为I2C总线I2C总线系统示意图有I2C接口的主机有I2C接口的从机有I2C接口的从机I2C总线SCLSDASDA称为串行数据线,用于传输双向数据SCL称为串行时钟线,用于传输时钟信号,来同步串行数据线上的数据Vcc挂接在I2C总线上的器件,根据其功能可以分为两种:主控器件和从控器件主控器件:控制总线存取,产生串行时钟(SCL)信号,并产生启动传送及结束传送的条件,总线必须由一个主控器件控制。主控器件一般称为主器件。从控器件:在总线上被主控器件寻址的器件,它们根据主控器件的命令来接收和发送数据。一般称为从器件。数据传输协议:只有当总线不忙时,数据传输才能开始;数据传送期间,无论何时串行时钟线为高,串行数据线必须保持稳定;当串行时钟线为高时,串行数据线的改变将被认为是传送的开始或停止。定义如下总线条件1、总线不忙串行时钟线(SCL)和串行数据线(SDA)保持高电平2、开始数据传送在SCL=1时,SDA上发生一个由高电平到低电平的变化决定起始条件,或称起始信号(START)。总线上所有命令都在起始条件后进行。3、停止数据传送在SCL=1情况下,SDA上发生一个由低电平到高电平的过程,称为停止条件,或称停止信号(STOP)。总线上所有操作必须在停止条件以前结束。4、数据有效在开始条件后,在SCL=1的周期期间,当SDA稳定时,串行数据线的状态表示数据线是有效的在SCL保持低电平(SCL=0)的周期期间,SDA上的数据应该改变。每位数据需要一个时钟脉冲。每次数据传送在起始信号下启动,在停止信号下结束。重复的起始信号将结束前一个传送过程,但不释放I2C总线,可接着进行下一个传送过程。I2C总线上数据传送有两种方式,它们由START后的第一个字节的最低位(即方向位)决定WR/●主发送到从接收●从发送到主接收