欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片机中级教程6.ppt

    • 资源ID:5811700       资源大小:2.42MB        全文页数:102页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机中级教程6.ppt

    1,(6),主讲:王成义,办公室:文理大楼411、406,EMAIL:CYWANGSDAU.EDU.CN,单片机中级教程原理与应用,2,第六章 80C51单片机的系统扩展,6.1概述,6.1.1 外部并行扩展性能,6.1.2 外部串行扩展性能,6.2单片机的外部并行扩展,6.2.1 程序存储器的扩展,6.2.2 片外数据存储器的扩展,6.2.3 扩展片外程序存储器和片外数据存储器,3,6.2.4 通过并行总线扩展I/O口,6.3 单片机的外部串行扩展,6.3.1 串行扩展E2PROM,6.3.2 串行扩展I/O接口,6.4 外部中断源的扩展,4,思考,通常情况下,采用80C51/87C51的最小应用系统最能发挥单片机体积小、成本低的优点。但在许多情况下,构成一个工业测控系统时,考虑到传感器接口、伺服控制接口以及人机对话接口等的需要,最小应用系统常常不能满足要求,因此,系统扩展是单片机应用系统硬件设计中最常遇到的问题。,5,系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围芯片以满足应用系统要求。80C5l系列单片机有很强的外部扩展能力,外围扩展电路芯片大多是一些常规芯片,扩展电路及扩展方法较典型、规范。用户很容易通过标准扩展电路来构成较大规模的应用系统。,80C51系列单片机的系统扩展有程序存储器(ROM)扩展、数据存储器(RAM)扩展、I/O口扩展、中断系统扩展以及其它特殊功能扩展。,6,6.1 概述,对于单片机系统扩展的方法有并行扩展法和串行扩展法两种。并行扩展法是指利用单片机的三组总线(AB、DB、CB)进行的系统扩展;串行扩展法是指利用SPI三线总线和I2C双总线的串行系统扩展。,由于集成度和结构的发展,在原来只能使用并行扩展法的场合,现在使用串行扩展法了。串行扩展法具有显著的优点。一般地说,串行接口器件体积小,因而,所占用电路板的空间小,仅为并行接口器件的10%,明显地减小了电路板空间和成本;串行接口器件,7,与单片机接口时需用的I/O口线很少(仅需34根),不仅减少了控制器的资源开销,而且极大地简化了连接,进而提高了可靠性。,但是,一般串行接口器件速度较慢,在需用高速应用的场合,还是并行扩展法占主导地位。在进行系统扩展时,应对单片机的系统扩展能力、扩展总线结构及扩展应用特点有所了解,这样才能顺利地完成系统扩展任务。,8,6.1.1 外部并行扩展性能,1、80C51系列单片机的片外总线结构,单片机都是通过芯片的引脚进行系统扩展的。为了满足系统扩展要求,80C51系列单片机芯片引脚可以构成右图所示的三总线结构,即地址总线(AB)、数据总线(DB)和控制总线(CB)。所有的外部芯片都通过这三组总线进行扩展。,80C51系列单片机的三总线引脚结构,9,(1)地址总线(AB),地址总线由P0口提供低8位A0A7,P2口提供高8位A8A15。,由于P0还要作数据总线口,只能分时用做地址线,故P0口输出的低8位地址数据必须用锁存器锁存。锁存器的锁存控制信号为引脚ALE输出的控制信号。在ALE的下降沿将P0口输出的地址数据锁存。,P2口具有输出锁存功能,故不需外加锁存器。P0、P2口扩展为地址线后便不能作为一般I/O口使用。,地址总线宽度为16位,故可寻址范围为216=64KB。,10,(2)数据总线(DB),数据总线由P0口提供,其宽度为8位。,P0口为三态双向口,是应用系统中使用最为频繁的通道。所有单片机与外部交换的数据、指令、信息,除少数可直接通过P1口外,全部通过P0口传送。,数据总线要连到多个连接的外围芯片上,而在同一时间里只能够有一个是有效的数据传送通道。哪个芯片的数据通道有效,则由地址线控制各个芯片的片选线来选择。,11,(3)控制总线(CB),控制总线包括片外系统扩展用控制线和片外信号对单片机的控制线。,ALE:输出,P0口上地址与数据隔离信号,用于锁存P0口输出的低8位地址数据的控制线。通常,ALE在P0口输出地址期间出现低电平,用这个低电平信号控制锁存器来锁存地址数据。,系统扩展用控制线有ALE、PSEN、EA、WR、RD。,12,PSEN:输出,用于片外程序存储器(EPROM)的“读”数控制。“读”取EPROM中数据(指令)时,不用“RD”信号,而用PSEN。,EA:输入,用于选择片内或片外程序存储器。当EA=0时,只访问外部程序存储器,不论片内有无程序存储器。因此,在扩展并使用片外程序存储器时,必须使EA接地。,WR、RD:输出,用于片外数据存储器(RAM)的读/写控制。当执行片外数据存储器操作指令MOVX时,这两个控制信号自动生成。,13,2、80C51系列单片机的系统并行扩展能力,由于地址总线宽度为16位,在片外可扩展的存储器最大容量为64KB,地址为0000HFFFFH。片外数据存储器与程序存储器的操作使用不同的指令和控制信号,允许两者的地址重复,故片外可扩展的数据存储器与程序存储器分别为64KB。,片外数据存储器与片内数据存储器的操作指令不同(片外RAM只能用MOVX指令),允许两者地址重复,亦即外部扩展数据存储器地址可从0000H开始。,14,为了配置外围设备而需要扩展的I/O口,可与片外数据存储器统一编址,不再另外提供地址线。因此,在应用系统要大量配置外围设备以及扩展较多I/O口时,要占去大量的RAM地址。片外程序存储器与片内程序存储器采用相同的操作指令,片内与片外程序存储器的选择靠硬件结构实现。,当EA=0时,不论片内有无程序存储器,此时只使用片外程序存储器,片外程序存储器的地址应从0000H开始设置;当EA=1时,前4KB地址0000H0FFFH为片内程序存储器所有,片外扩展的程序存储器的地址只能从1000H开始设置。,15,当应用系统扩展的存储器容量超过地址总线范围时,可用换体的办法解决,如下图所示。图中用4个32KB容量的数据存储器62256来组成两个存储器体,存储器体、分别为64KB。4个62256的使能端通过由P2.7和P1.0控制的2-4译码器来选通。可以看出每增加一条I/O口线,可以再扩大地址容量一倍。,用I/O线来控制片外存储器换体,当复位后,由于P1.0为高电平,64地址指向体;当给P1.0置低电平后,则64KB地址指向体。,16,6.1.2 外部串行扩展性能,1、80C51系列单片机的串行总线结构,80C51系列单片机的串行总线包括:SPI(Serial Peripheral Interface)三线总线和I2C公用双总线两种。,SPI三线总线结构是一个同步外围接口,允许MCU与各种外围设备以串行方式进行通信。一个完整的SPI系统有如下的特性:,(1)SPI三线总线结构,全双工、三线同步传送;,17,主、从机工作方式;,可程控的主机位传送频率、时钟极性和相位;,在大多数场合,使用一个MCU作为主机,控制数据向一个或多个从机(外围器件)的传送。一般SPI系统使用四个I/O引脚:,发送完成中断标志;,写冲突保护标志。,1)串行数据线(MISO、MOSI),18,主机输入/从机输出数据线(MISO)和主机输出/从机输入数据线(MOSI),用于串行数据的发送和接收。数据发送时,先传送MSB(高位),后传送LSB(低位)。,在SPI设置为主机方式时,MISO线是主机数据输入线,MOSI是主机数据输出线;在SPI设置为从机方式时,MISO线是从机数据输出线,MOSI是从机数据输入线。,19,2)串行时钟线(SCLK),串行时钟线(SCLK)用于同步从MISO和MOSI引脚输入和输出数据的传送。在SPI设置为主机方式时,SCLK为输出;在SPI设置为从机方式时,SCLK为输入。,在SPI设置为主机方式时,主机启动一次传送时,自动在SCLK脚产生8个时钟周期。在主机和从机SPI器件中,在SCLK信号的一个跳变时进行数据移位,数据稳定后的另一个跳变时进行采样。,20,对于一个完整的SPI系统,串行数据和串行时钟之间有四种极性和相位关系,如下图所示,以适应不同的外围器件特性。主机和从机器件之间的传送定时关系必须相同。,SPI系统时钟的极性和相位关系,CPOL,CPHA,polarity,phase,CPOL=0 时钟的空闲状态为低电平,CPOL=1 时钟的空闲状态为高电平,CPHA=0,CPHA=0,CPHA=1,CPHA=1,CPOL=0,CPOL=0,CPOL=1,CPOL=1,CPHA=0 第一个边沿采样,CPHA=1 第一个边沿改变数值,21,3)从机选择(SS),在从机方式时,SS脚是输入端,用于使能SPI从机进行数据传送;在主机方式时,SS一般由外部置为高电平。,通过SPI可以扩展各种I/O功能,包括:A/D、D/A、实时时钟、RAM、E2PROM及并行输入/输出接口等。在把SPI与一片或几片串行扩展芯片相连时,只需按要求连接SPI的SCLK、MOSI及MISO三根线即可。对于有些I/O扩展芯片,它们有CS端。这时,这些片选输入端一般有同步串行通信的功能:无效时,为复位,22,芯片的串行接口;有效时,初始化串行传送。有些芯片的CS端,将其上从低到高的跳变当做把移位数据打入并行寄存器或操作启动的脉冲信号。因此,对于这些芯片,应该用一根I/O口线来控制它们的片选端CS。,在80C51系列中,串行口的方式0提供了简化的SPI同步串行通信功能。其特点是:,串行时钟(SCLK)极性和相位之间的关系是固定的,串行传送速率也是固定的,不能编程改变;,无从机选择输入(SS)端;,23,串行数据输入、输出线不是隔离的,而是同一根线,用软件设置数据传输方向;,串行数据线上传送数据位的顺序为先LSB,后MSB。,因此,在80C51系列中,SPI只有两个引脚:,RXD(P3.1)MOSI/MISO;TXD(P3.0)SCLK。,在某些应用系统中,由于80C51的串行通信口已经占用或者感到串行口方式0使用不方便,则可以用软件来模拟仿真SPI操作。,24,在器件(IC)之间,使用两根信号线(SDA和SCL)串行的方法进行信息传送的并允许若干兼容器件共享的二线总线,称为I2C总线。,A、I2C 总线的概念,(2)I2C公用二总线结构,1)I2C总线规范简介,I2C:Inter Integrated Circuit,SDA(Serial DAta)线称为串行数据线,其上传输双向的数据;SCL(Serial CLock)线称为串行时钟线,其上传输时钟信号,用来同步串行数据线上的数据。,25,DECT cordless phone base-station,Digital Enhanced Cordless Telecommunications,26,I2C总线上的器件,SDA和SCL引脚都是一个开漏输出端。,27,挂接在I2C总线上的器件(或IC),根据其功能可分为两种:主控器件和从控器件。,主控器件:控制总线存取,产生串行时钟(SCL)信号,并产生启动传送信号及结束传送信号的器件,总线必须由一个主控器件控制。主控器件一般称主器件(主机)。,从控器件:在总线上被主控器件寻址的器件,它们根据主控器件的命令来接收和发送数据。从控器件一般称从器件(从机)。,28,I2C总线系统是一个允许多主的系统。,系统中的某一器件有四种可能的工作方式:主发送方式、主接收方式、从发送方式和从接收方式。,29,在I2C总线上的所有器件是按照如下的数据传输协议协调工作的:,据此定义以下总线条件:,总线不忙,SCL=SDA=1,只有当总线不忙时,数据传输才能开始;,当串行时钟线为高电平时,串行数据线的变化将认为是传送的开始或停止;当串行时钟线为低电平时,才允许串行数据线发生变化;,数据传送期间,无论何时串行时钟线为高电平,串行数据线必须保持稳定。,30,开始数据传送,停止数据传送,起始信号(START),停止信号(STOP),31,数据有效(Data validity),32,应答(Acknowledge),33,B、7位的地址格式,34,主发送到从接收,主机发送,从机接收,传输的方向不会改变,35,从发送到主接收,主机在发送完第一个字节后,立即读从机。第一次响应仍由从机产生,在第一次响应后主机变成接受器,从机变成发送器。停止条件由主机发出。,36,复合格式,改变传输方向的时侯,起始条件和从机地址都会被重复,且R/W位取反。如果主机作为接收,发送一个重复起始条件,它之前应该发送了一个不响应信号(A)。,37,仲裁和时钟发生,时钟同步,产生的同步SCL时钟的低电平周期由低电平时钟周期最长的器件决定,而高电平周期由高电平时钟周期最短的器件决定。,38,仲裁,首先变成高电平的器件丢失仲裁,因为SDA上的电平与本器件产生的电平不一致。,39,C、I2C总线主要功能特点:,在主控器件和从控器件之间双向传送数据;无中央主控器件的多主总线;多主传送时,不发生错误;可以使用不同的位速率;串行时钟作为交接信号;可用于测试和诊断目的。,40,在单片机应用系统中,单主结构占绝大多数。在单主系统中,I2C总线的数据传送状态要简单得多,没有总线竞争与同步问题,只有作为主器件的单片机对I2C总线器件的读/写操作。这就简化了模拟软件的设计工作。,有I2C总线的单片机中,可以直接用I2C总线来进行系统的串行扩展;对于80C51系列单片机,大多数没有I2C总线接口功能,而是采用软件模拟双向数据传送协议的方法,来实现系统的串行扩展。,41,6.3 单片机的外部串行扩展,6.3.1 串行扩展E2PROM,1、利用模拟SPI扩展串行E2PROM,(1)串行E2PROM93C46的特点及引脚,93C46是6416(1024)位串行存取的电擦除可编程的只读存储器。具有如下特点:在线改写数据和自动擦除功能;电源关闭,数据也不丢失;输入、输出口与TTL兼容;片内有编程电压发生器,可以产生擦除和写入操作时所需的电压;,42,片内有控制和定时发生器,擦除和写入操作均由此定时电路自动控制;具有整体编程允许和禁止功能,以增强数据的保护能力;+5V单电源供电;处于等待状态时,电流为1.53 mA。,93C46有两种封装形式,如右图所示。其中(a)为8脚双列直插式塑料封装;(b)为14脚扁平式塑料封装。其各引脚的功能为:,93C46引脚排列,43,CS:片选信号。当CS置高电平时,片选有效。用CS信号的下降沿启动片内定时器,开始擦写操作。启动之后,CS信号上电平的高低不影响芯片内部的擦写操作。,CLK:串行数据时钟信号输入端。输入时钟频率为0250 kHz。,DI:串行数据输入端。,DO:串行数据输出端(读操作时)。擦除操作时,DO引脚可作为擦写状态指示,相当于READY/BUSY信号,即忙/闲指示信号。其它状态时,DO引脚呈高阻态。,44,ORG:结构端。当ORG连接到VCC或悬空时,芯片为16位存储器结构;当ORG连接到VSS时,则选择8位存储器结构。在时钟频率低于1MHz时,ORG端才能悬空,构成16位存储器结构。,93C46共有7条指令,指令格式如下表所示。,(2)指令系统,在不对芯片操作时,最好将CS置为低电平,使芯片处于等待状态,以降低功耗。,45,RDY/BSY,10,00,1,RDY/BSY,D7D0,01,00,1,高阻,00,00,1,高阻,11,00,1,擦除地址A6A0,RDY/BSY,11,1,擦除,写地址为A6A0,RDY/BSY,D7 D0,01,1,写,读地址为A6A0,D7D0,A6A5A4A3A2A1A0,10,1,读,DO,DI,说明,数据,地址,操作代码,起始位,指令,擦写禁止,擦写允许,片写,片擦除,A6A5A4A3A2A1A0,A6A5A4A3A2A1A0,93C46指令表(ORG=0,8位结构),46,RDY/BSY,10,00,1,RDY/BSY,D15D0,01,00,1,高阻,00,00,1,高阻,11,00,1,擦除地址A5A0,RDY/BSY,A5A4A3A2A1A0,11,1,擦除,写地址为A5A0,RDY/BSY,D15 D0,A5A4A3A2A1A0,01,1,写,读地址为A5A0,D15D0,A5A4A3A2A1A0,10,1,读,DO,DI,说明,数据,地址,操作代码,起始位,指令,擦写禁止,擦写允许,片写,片擦除,93C46指令表(ORG=1,16位结构),47,48,指令的最高位(起始位,第8位)恒为1,作为控制指令的起始值。接下去的两位操作代码,最后是6(或7)位地址码。只要向93C46写入控制命令,便可进行相应操作。,93C46在SPI系统中作为从器件。其DI引脚用于接收以串行格式发来的命令、地址和数据信息,信息的每一位均在CLK的上升沿读入93C46。不论93C46进行什么操作,必须首先将CS置高电平,接着在时钟同步下,把9位串行指令依次写入片内。在未完成这条指令所必须的操作之前,芯片拒绝接收新的指令。,49,读指令的功能是从93C46的单元中读取数据。该指令的机器码是“110ANA0”,ANA0是被读取单元的地址。93C46接收指令后,在DO引脚先输出一个低电平“虚拟”读脉冲,之后,从时钟CLK的上升沿开始,DO引脚连续输出16位串行数据。当CS保持为高时,允许连续读,即存储器中的数据将自动地周期性地输出下一个地址单元的数据。,1)读指令(READ),50,写指令的功能是向93C46的指定单元中写入数据。该指令的机器码是“101ANA0DND0”。写指令中,在指定单元的地址之后,紧接着输出16位数据。在最后一个数据位加在DI端后,在CLK的下一个上升沿以前,CS必须为低。CS的下降沿启动自定时自动擦除和编程周期。在CS约250ns的低电平之后,恢复为高,DO端指示器件的READY/BUSY状态。DO端为0时,指示编程仍在进行;DO端为1时,表示指定的数据已经写入指定的地址单元,并且器件已准备好接收下一条指令。写周期每字需4ms时间。,2)写指令(WRITE),51,擦除指令的功能是将指定单元的内容擦除,即强迫指定地址单元中的所有数据位为逻辑“1”状态。这条指令的机器码是“111ANA0”。在装载最后的地址位以后,CS为低电平。CS的下降沿启动自定时编程周期。在CS约250ns的低电平之后,恢复为高,DO端指示器件的READY/BUSY状态。DO端为0时,指示编程仍在进行;DO端为1时,表示指定的地址单元已被擦除,并且器件已准备好接收下一条指令。擦除周期每字需4ms时间。,3)擦除指令(ERASE),52,擦除整个存储器指令的功能是将整个存储器阵列强迫为逻辑“1”状态。除操作码不同之外,ERAL周期与ERASE(擦除)周期相同。ERAL周期完成自定时并且在CS的下降沿开始。在器件进入自己产生时钟的模式之后,CLK端的驱动时钟不再需要。在CS约250ns的低电平之后,恢复为高,DO端指示器件的READY/BUSY状态。,4)擦除整个存储器指令(ERAL),53,写整个存储器指令的功能是将命令中指定的数据写入整个存储器阵列中。除操作码不同之外,WRAL周期与WRITE(写)周期相同。WRAL周期完成自定时并且在CS的下降沿开始。在器件进入自己产生时钟的模式之后,CLK端的驱动时钟不再需要。WRAL指令不包括对器件的自动ERAL周期。因此,WRAL指令不要求一条ERAL指令,但是芯片必须进入EWEN状态。在CS约250ns的低电平之后,恢复为高,DO端指示器件的READY/BUSY状态。WRAL周期最大需30ms。,5)写整个存储器指令(WRAL),54,擦/写允许指令的功能是使芯片处于允许擦/写状态。一旦EWEN指令执行,编程保持允许直至执行了EWDS指令或者电源关闭为止。,6)擦/写允许指令(EWEN),55,7)擦/写禁止指令(EWDS),擦/写禁止指令的功能是禁止对芯片的所有擦除和写操作,包括整个芯片和单个单元的擦除和写入。在上电后,芯片处于EWDS状态。执行EWDS指令禁止所有擦/写功能,主要为了防止偶然的数据干扰。一般可跟在所有的编程操作之后。,56,(3)93C46与80C51单片机的接口与编程,利用软件仿真时的硬件电路原理图如下图所示。,电路中使用斯密特触发器74HC14,是为了对时钟脉冲整形,提高抗噪声干扰的能力。?,93C46与80C51单片机的接口,57,1)送起始位(“1”)子程序INSB,功能:80C51向93C46送出“1”。,2)送8位数据子程序WRI,功能:80C51向93C46送出8位数据,这8位数据可能是两位操作码和6位地址码,也可能是8位数据,若是16位数据可分两次送。,入口参数:无。,出口参数:无。,入口参数:8位数据在A中。,出口参数:无。,CSEQUP1.3 CLKEQUP1.0 DIEQUP1.1 DOEQUP1.2,58,INSB:SETBCS;置片选无效(CS)CLRCLK;时钟置低(CLK)SETBDI;置位DI NOPNOPCLRCS;置片选有效,NOPNOPSETBCLK;时钟置高,移入数据NOPNOPCLRCLK;时钟置低RET,(2个机器周期),80C51向93C46送出“1”,93C46端信号,59,WRI:MOV R4,#8;写入数据的位数 W10:RLC A MOV DI,C;将CY送DI NOP NOP SETB CLK;时钟置高,移入数据 NOPNOP,CLRCLK;时钟置低 DJNZR4,W10;未完,继续 RET(2个机器周期),80C51向93C46送出8位数据,60,3)读取8位数据子程序RDI,功能:80C51从93C46的DO引脚读取8位数据。,4)向93C46写入16位数据WRITE,功能:80C51向93C46送出16位数据。,入口参数:无。,出口参数:读出的8位数据在A中。,入口参数:B寄存器8位指令,2位操作码,6位地址码 R2:存放要写入的数据高8位;R3:存放要写入的数据低8位。,出口参数:无。,61,5)从93C46读取16位数据READ,功能:80C51从93C46的DO引脚读取16位数据。,入口参数:B寄存器8位指令,2位操作码,6位地址码,出口参数:R2:存放要读出的数据高8位;R3:存放要读出的数据低8位。,62,RDI:MOVR4,#8;读取的数据位数 R10:NOPNOP SETBCLK;时钟置高,移出数据 NOPNOP CLRCLK;时钟置低 MOVC,DI;数据从DI读入CY RLCA DJNZR4,R10;未读完,继续 RET,63,WRITE:LCALLINSB;擦/写允许指令 MOVA,#30H LCALLWRI LCALLINSB;写入指令 MOVA;B LCALL WRI MOVA,R2;写入高8位 LCALLWRI MOVA,R3;写入低8位 LCALLWRI SETBCS;置片选为无效 NOP,64,NOP CLRCS;片选有效WAIT:JNBDO,WAIT;编程未完,等待 LCALL INSB;擦/写禁止指令 MOV A,#00H LCALL WRI SETB CS;置片选为无效 RET;返回,65,READ:LCALLINSB;写读出指令 MOVA,B LCALLWRI NOP NOP LCALLRDI MOVR2,A;读出高8位 LCALLRDI MOVR3,A;读出低8位 SETBCS;置片选为无效 RET,66,(1)串行E2PROM24LC32的特点及引脚,24LC32是32 Kb(4 K8位)串行存取的电擦除可编程的只读存储器E2PROM。,特点:,芯片对快速写操作具有8个8B字节页面、或者64字节的高速缓存器,并具有二线串行接口。在I2C上作从器件使用;,2、利用模拟I2C扩展串行E2PROM,67,可在电源电压低到2.5V的条件下工作,芯片还有功率等待模式,以降低功耗;等待电流和额定电流分别为1A和3 mA(写);,地址线允许8片24LC32连接到相同的总线上,得到256 Kb位地址空间。,引脚:,A0、A1、A2:芯片地址输入端,WP:写保护端,68,(2)器件的寻址和操作,控制字节和器件寻址,69,作为从器件,接收到的下两个字节定义了第一个数据字节的地址。,由于仅用A0A11,所以最高4位地址码必须为0。,但对于ATMEL公司的产品来说,无此规定。,地址的最高有效字节的最高有效位最先发送。,70,写操作,字节写,主器件发出开始条件以后,再发送R/W=0的控制字节到总线上。这指示被寻址的从接收器的两个地址字节及一个数据字节将跟在第9个时钟周期产生的确认(应答)位之后。,0,主器件发送的下一个字节是字地址的高地址字节,应答后,接着是低地址字节,再次应答后,它们将被写入24LC32的地址指针。随后主器件发送写入到被寻址的存储器里的数据字节。24LC32应答后,主器件发出停止条件。,R/W=0时,将启动写操作。,71,页面写,写控制字节、字地址和第一个数据字节以与字节写相同的方式发送到24LC32。但是替代产生停止条件,主器件可发送多达8页的8个数据字节(总共64个字节)。24LC32先将这些数据字节暂存在片内的页面高速缓存器中。,一旦接收到主器件的停止条件后,则内部的写周期开始,这些数据字节将从页面高速缓存器中写入E2PROM阵列。每写入一个字节后,24LC32的低6位顺序地址指针在内部加1,高6位顺序地址指针保持不变。,72,如果主器件在产生停止条件以前要发送多于8个字节的数据(越过页边界写),地址计数器的低3位将会翻转,并且指针将加1,指向页面高速缓存器的下一页。这样重复8次后或者直至高速缓存器存满时,主器件产生停止条件。如果停止条件没有接收到,高速缓存器指针将翻转到第一页(字节0),这之后再接收到的数据将覆盖以前所获得的数据。在发送期间的任何时刻都可传送停止条件。,73,应答查询,由于在写周期期间,器件将不会应答,所以,这一点可以用来决定写周期在什么时候完成。一旦针对写命令的停止条件由主器件发出,从器件开始进行内部定时写周期,主器件的ACK查询被立即启动。如果写周期器件仍然很忙,则ACK信号将不会产生;如果周期已经完成,则器件将产生ACK信号。主器件将可以进行下一次的读或写操作。,74,读操作,读当前地址内容,当控制字的R/W位被置为“1”时,将启动读操作。存在三种基本的读操作类型:读当前地址内容、读随意地址内容及读顺序地址内容。,1,0,1,0,1,读当前地址内容24LC32内部包含一个自动加1的地址计数器,它保存被存取过的最后一个字节的地址。如果以前存取的地址为n,下一次读操作则从n+1地址中读数据。在接收到的从地址中的R/W为1的情况下,24LC32发送一个应答位,并且送出8位数据。主器件发出非应答信号(NO ACK),使从器件释放数据线,以便主器件发出一个停止条件,从而终止数据传送。,75,读随意地址内容,此方式允许主器件以任意方式读存储器任意地址的内容。这种读操作须先置字地址,即主器件将字地址作为写操作的一部分送给24LC32。在发送了字地址以后,主器件在应答位之后产生一个开始条件。这样可以在内部地址计数器置数后终止写操作。主器件再次发R/W为1的控制字。24LC32将发出应答位,并发送出8位数据。主器件将发送非应答信号,并产生一个停止条件,从而终止发送。,76,读顺序地址内容,读顺序地址内容方式与读随意地址内容方式的启动方法一样,但是在24LC32发送第一个数据字节后,主器件不发出终止发送的信号(发送应答信号)。24LC32继续发送下一个地址的8位数据,其内部的地址指针在操作后自动加1。地址指针允许在一次操作期间,连续顺序地读出整个存储器。,当主器件接收到最后一个字节后,主器件将产生非应答信号及一个停止条件,终止传送。,77,(3)80C51与串行E2PROM24LC32的接口和编程,80C51与串行24LC32的接口,80C51与串行E2PROM 24LC32的接口原理图,78,模拟I2C总线的编程,利用模拟仿真的方法,编写通用子程序。,这些通用子程序包括:启动、停止、发送应答位及非应答位、应答位检查、单字节数据接收与发送。,以下子程序中,设定单片机所使用的晶体振荡器为6MHz,即机器周期为2uS。若晶体振荡器不是6MHz,则可根据情况增减程序中的NOP指令即可。,汇编语言编写的子程序:,SCLBITP1.6 SDABITP1.7,79,A.启动I2C总线子程序:,START:SETB SDASETB SCLNOPNOPCLR SDANOPNOPCLR SCLNOPRET,80,B.停止I2C总线子程序:,STOP:CLR SDASETB SCLNOPNOPSETB SDANOPNOPCLR SCLNOPRET,81,C.发送应答位子程序:,S_ACK:CLR SDASETB SCLNOPNOPCLR SCLSETB SDARET,D.应答位检查子程序:,子程序出口时,SDA线的状态存入标志位F0中,若有ACK,F0=0,否则F0=1。,82,C_ACK:SETB SDA;SDA为输入状态SETB SCL;第9个时钟脉冲开始NOPMOV C,SDA;读SDA线MOV F0,C;存入F0中CLR SCL;第9个时钟脉冲结束NOPRET,83,E.单字节数据发送子程序:,将累加器A中的待发送数据送上SDA线。,WRBYT:MOV R7,#8;发送8位WRBYT1:RLC A;将发送位移入C中JC WRBYT2;此位为1,转WRBYT2CLR SDA;此位为0,发送0SETB SCL;时钟脉冲开始NOPNOPCLR SCL;时钟脉冲结束DJNZ R7,WRBYT1;未发送完,转WRBYT1RET,84,WRBYT2:SETB SDA;此位为1,发送1SETB SCL;时钟脉冲开始NOPNOPCLR SCL;时钟脉冲结束CLR SDADJNZ R7,WRBYT1;未发送完,转WRBYT1RET,85,F.单字节数据接收子程序:,从SDA线上读一个字节的数据,存入A中。,RDBYT:MOV R7,#8;接收8位RDBYT1:SETB SDA;SDA为输入状态SETB SCL;时钟脉冲开始MOV C,SDA;读SDA线MOV A,R6;取回暂存结果RLC A;移入新接收位MOV R6,A;将结果暂存R6CLR SCL;时钟脉冲结束DJNZ R7,RDBYT1;未读完8位,转RDBYT1RET;读完8位,返回,86,6.3.2 串行扩展I/O接口,1、用串行口方式扩展I/O接口,(1)扩展并行输出口,(2)扩展并行输入口,自己看,自己看,87,2、用I2C扩展I/O接口,(1)PCF8574的特性及引脚说明,PCF8574T是一种单片CMOS电路,具有I2C总线接口和8位准双向口。,在I2C总线系统中仅作从器件。,具有低的电流损耗,最大静态电流为10 A;,能输出大的电流,并有锁存功能,可直接驱动 LED发光管;,有中断逻辑线;,88,SDA:串行数据线,双向。,SCL:串行时钟线,输入。,P7P0:8位准双向输入/输出口。准双向口的每一位可作输出或输出。上电复位时,口的每一位均为高电平。某位在作输入前,应置为高电平。,A2A0:地址输入线。,INT:中断输出线,低电平有效。,3根硬件地址引脚使I2C总线系统可挂接8只PCF8574。,器件的串行时钟的最高频 率为400 kHz,89,PCF8574 的每个I/O口都可单独用作输入或输出。输入通过读模式将数据传送到MCU,输出通过写模式将数据发送到端口。,PCF8574 和PCF8574A 的控制字节的配置,(2)PCF8574的寻址方式及操作,90,写模式(输出),91,读模式(输入),92,中断,在输入模式中(读),口输入信号的上升或下降沿产生中断。,93,PCF8574作扩展8位输入口,PCF8574读方式的连接,将开关的状态读入片内RAM 30H单元中。,(3)PCF8574的应用和编程,94,程序如下:,RD8:ACALLSTART;开始条件MOVA,#41H;PCF8574为读方式ACALLWRBYTACALLC_ACK;检查ACK信号JBF0,$ACALLRDBYT;读数据MOV30H,AACALLC_ACKJBF0,$ACALLSTOP AJMP$,95,PCF8574作扩8位输出口,PCF8574写方式的连接,96,程序如下:,WR8:ACALLSTART;开始条件 MOVA,#40H;PCF8574为写方式 ACALLWRBYT ACALLC_ACK;检查ACK信号 JBF0,$MOVA,#0FFH;改变不同的立即数,;PCF8574的指示灯相应的亮熄ACALLWRBYTACALLC_ACK;检查ACK信号 JBF0,$ACALLSTOP;停止条件 AJMP$,97,PCF8574作扩展4位输入口和4位输出口,PCF8574高4位输入、低4位输出的连接,98,程序如下:,STA:ACALLSTART;开始条件 MOVA,#41H;PCF8574为读方式 ACALLWRBYT ACALLC_ACK;检查ACK信号 JBF0,$ACALLRDBYT;读数据 SWAPA CPLA MOV30H,AACALLSTOP ACALLSTART;开始条件 MOVA,#40H;PCF8574为写方式,99,ACALLWRBYT ACALLC_ACK;检查ACK信号 JBF0,$MOVA,30H ACALLWRBYT ACALLDELAY;延时子程序 ACALLSTOP;停止条件 LJMPSTA,100,扩展4个外部中断源的电路,中断源查询程序的流程图,6.4 外部中断源的扩展,101,INT0的中断服务程序如下:PINT0:PUSHPSW;保护现场 PUSHACC JBP1.0,LOOP1;转向中断服务程序1JBP1.1,LOOP2;转向中断服务程序2 JB P1.2,LOOP3;转向中断服务程序3JB P1.2,LOOP4;转向中断服务程序4INTEND:POPACC;恢复现场 POP PSW RETI,102,LOOP1:中断服务程序1 AJMP INTEND LOOP2:中断服务程序2 AJMP INTEND LOOP3:中断服务程序3 AJMP INTEND LOOP4:中断服务程序4 AJMP INTEND,从程序中可以看出,这里定义的扩展外中断源1的优先级最高,扩展外中断源4的优先级最低,所以查询的顺序从P1.0开始。,

    注意事项

    本文(单片机中级教程6.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开