购买

¥30.0

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 第12章 串行扩展技术

第12章 串行扩展技术.ppt

第12章 串行扩展技术

中小学精品课件
2019-05-26 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《第12章 串行扩展技术ppt》,可适用于高等教育领域

第章单片机的串行扩展技术**第章目录单总线串行扩展SPI总线串行扩展Microwire总线简介IC总线的串行扩展介绍IC串行总线概述IC总线的数据传送ATS单片机的IC串行扩展设计ATS的IC总线扩展系统IC总线数据传送的模拟IC总线模拟通用子程序内容概要单片机的并行总线扩展(利用三总线AB、DB、CB进行的系统扩展)已不再是单片机系统唯一的扩展结构除并行总线扩展技术之外近年又出现串行总线扩展技术。例如:Philips公司的IC串行总线接口、DALLAS公司的单总线(Wire)接口、Motorola公司的SPI串行外设接口以及Microwire总线三线同步串行接口。本章介绍上述串行扩展接口总线的工作原理及特点重点介绍IC串行扩展技术并介绍ATS软件模拟IC串行接口总线时序实现IC接口的方法。单片机的串行扩展技术与并行扩展技术相比具有显著的优点串行接口器件与单片机接口时需要的IO口线很少(仅需~条)串行接口器件体积小因而占用电路板的空间小仅为并行接口器件的明显减少电路板空间和成本。除上述优点还有工作电压宽、抗干扰能力强、功耗低、数据不易丢失等特点。串行扩展技术在IC卡、智能仪器仪表以及分布式控制系统等领域得到广泛应用。*单总线串行扩展单总线(也称Wirebus)是由美国DALLAS公司推出的外围串行扩展总线。只有一条数据输入输出线DQ总线上的所有器件都挂在DQ上电源也通过这条信号线供给使用一条信号线的串行扩展技术称为单总线技术。单总线系统的各种器件由DALLAS公司提供的专用芯片实现。每个芯片都有位ROM厂家对每一个芯片用激光烧写编码其中存有位十进制编码序列号它是器件的地址编号确保它挂在总线上后可唯一被确定。*除地址编码外片内还包含收发控制和电源存储电路如图所示。这些芯片的耗电量都很小(空闲时几微瓦工作时几毫瓦)从总线上馈送电能到大电容中就可以工作故一般不需另加电源。下面说明具体应用。*图单总线芯片的内部结构示意图【例】图所示为一个由单总线构成的分布式温度监测系统也可用于各种狭小空间内设备的数字测温。图中多个带有单总线接口的数字温度传感器DSB芯片都挂在单片机的根IO口线(即DQ线)上。对每个DSB通过总线DQ寻址。DQ为漏极开路须加上拉电阻。DSB封装形式多样其中的一种封装形式见图。在该单总线数字温度传感器系列中还有DS、DSS、DS等其他型号工作原理与特性基本相同。具有如下特点:*()体积小、结构简单、使用方便。()每芯片都有唯一的位光刻ROM编码家族码为H。()温度测量范围~ºC在~ºC范围内测量精度可达±ºC。()分辨率为可编程的~位(其中包括位符号位)对应的温度变化量分别为ºC、ºC、ºC、ºC。()转换时间与分辨率有关。当设定为位转换时间ms设定为位转换时间为ms当设定位转换时间ms当设定位转换时间ms。*()片内含有SRAM、EPROM单片机写入EPROM的报警的上下限温度值和以及对DSB的设置在芯片掉电的情况下不丢失。功能命令包括两类:条启动温度转换命令(H)条读写SRAM和EPROM命令。图电路如果再扩展几位(根据需要)LED数码管显示器即可构成简易的数字温度计系统。可在图的基础上自行扩展设计。**图单总线构成的分布式温度监测系统在Wire总线传输的是数字信号数据传输均采用CRC码校验。DALLAS公司为单总线的寻址及数据的传送制定了总线协议具体内容读者可查阅相关资料。Wire协议不足在传输速率稍慢故Wire总线协议特别适用于测控点多、分布面广、种类复杂而又需集中监控、统一管理的应用场合。*SPI总线串行扩展SPI(SerialPeriperalInterface)是Motorola公司推出的同步串行外设接口允许单片机与多个厂家生产的带有标准SPI接口的外围设备直接连接以串行方式交换信息。图为SPI外围串行扩展结构图。SPI使用4条线:串行时钟SCK主器件输入从器件输出数据线MISO主器件输出从器件输入数据线MOSI和从器件选择线。**图SPI外围串行扩展结构图SPI典型应用是单主系统一台主器件从器件通常是外围接口器件如存储器、IO接口、AD、DA、键盘、日历时钟和显示驱动等。扩展多个外围器件时SPI无法通过数据线译码选择故外围器件都有片选端。在扩展单个SPI器件时外围器件的片选端可以接地或通过IO口控制在扩展多个SPI器件时单片机应分别通过IO口线来分时选通外围器件。在SPI串行扩展系统中如果某一从器件只作输入(如键盘)或只作输出(如显示器)时可省去一条数据输出(MISO)线或一条数据输入(MOSI)线从而构成双线系统(接地)。*SPI系统中单片机对从器件的选通需控制其CS*端由于省去传输时的地址字节数据传送软件十分简单。但在扩展器件较多时需要控制较多的从器件端连线较多。在SPI系统中主器件单片机在启动一次传送时便产生个时钟传送给接口芯片作为同步时钟控制数据的输入和输出。传送格式是高位(MSB)在前低位(LSB)在后如图所示。输出数据的变化以及输入数据时的采样都取决于SCK。但对不同外围芯片可能是SCK的上升沿起作用也可能是SCK的下降沿起作用。SPI有较高的数据传输速度最高可达Mbits。*图SPI数据传送格式Motorola提供了一系列具有SPI接口的单片机和外围接口芯片如存储器MC、显示驱动器MC和MC等各种芯片。*SPI从器件要具有SPI接口。主器件是单片机。目前已有许多机型的单片机都带有SPI接口。但对ATS由于不带SPI接口SPI接口的实现可采用软件与IO口结合来模拟SPI的接口时序。【例】设计ATS单片机与串行AD转换器TLC的SPI接口。TLC是美国TI公司的位串行SPI接口的AD转换器转换时间为µs。片内有个路模拟开关用来选择路模拟输入以及路内部测试电压中的路进行采样。*图为单片机与TLC的SPI接口电路。TLC的IOCLOCK、DATAINPUT和端由单片机的P、P和P来控制。转换结果的输出数据(DATAOUT)由单片机的P串行接收单片机将命令字通过P输入到TLC的输入寄存器中。下面的子程序为ATS选择某一通道(例如AIN通道)进行次数据采集AD转换结果共位分两次读入。先读入TLC中的位转换结果到单片机中同时写入下一次转换的命令然后再读入位的转换结果到单片机中。*注意:TLC在每次IO周期读取的数据都是上次转换的结果当前转换结果要在下一个IO周期中被串行移出。TLCAD转换的第次读数由于内部调整读取的转换结果可能不准确应丢弃。图ATS单片机与TLC的SPI接口*子程序如下:ADCOMDBYTEFH定义命令存储单元ADOUTHBYTEEH定义存储转换结果高位单元ADOUTLBYTEDH定义存储转换结果低位单元ADCONV:CLRP时钟脚为低电平CLRP片选有效选中TLCMOVR#H送出下一次位转换命令和读位转换结果做准备MOVAADCOMD下一次转换命令在ADCOMD单元中送ALOOP:MOVCP读入位转换结果RRCA位转换结果带进位位右移*MOVPC送出命令字节中的位SETBP产生个时钟NOPCLRPNOPDJNZRLOOP是否完成次转换结果读入和命令输出?未完则跳MOVADOUTLA读位转换结果存入ADOUTL单元MOVA#HA清MOVR#H为读入位转换结果做准备*SETBP产生个时钟NOPCLRPNOPDJNZRLOOP是否完成次读入?未完则跳LOOPMOVADOUTHA高位转换结果存入ADOUTH单元中的高位SWAPADOUTHADOUTH单元中的高位与低位互换LOOP:MOVCP读入高位转换结果中的位RRCA带进位位循环右移SETBP时钟无效RET*执行上述程序中的次循环执行“RRCA”指令次每次读入转换结果位然后送出ADCOMD单元中的下一次转换的命令字节“GGGGGGGG”中的位进入TLC的输入寄存器。经次右移后位AD转换结果数据“××××××××”读入累加器Acc中上述的具体数据交换过程如图所示。子程序中的次循环只是读入转换结果的位数据图中没有给出读者可自行画出次移位的过程。*图单片机与TLC的位数据交换示意图由本例见单片机与TLC接口十分简单只需用软件控制条IO脚按规定时序对TLC进行访问即可。Microwire总线简介三线同步串行接口根数据线SO、根数据输入线S和根时钟线SK组成。该总线最初是内建在NS公司COPCOPHPC系列单片机中为单片机和外围器件提供串行通信接口。该总线只需要根信号线连接和拆卸都很方便。在需对一个系统更改时只需改变链接到总线的单片机及外器件的数量和型号即可。*最初的Microwire总线只能连接一台单片机作为主机总线上的其他器件都是从设备。随着技术的发展NS公司推出了位的COP系列单片机该系列单片机仍采用原来的Microwire总线但接口功能进行了增强称之为增强型的MicrowirePlus。增强型的MicrowirePlus允许连接多台单片机和外围器件应用于分布式、多处理器的复杂系统。NS公司已生产出各种功能的Microwire总线外围器件包括存储器、定时器计数器、ADC和DAC、LED显示驱动器和LCD显示驱动器以及远程通信设备等。*IC总线的串行扩展介绍概述IC总线PHILIPS推出使用广泛、很有发展前途的芯片间串行扩展总线。只有两条信号线一是数据线SDA另一是时钟线SCL。两条线均双向所有连到IC上器件的数据线都接到SDA线上各器件时钟线均接到SCL线上。IC系统基本结构如图所示。IC总线单片机(如PHILIPS公司的xC)直接与IC接口的各种扩展器件(如存储器、IO芯片、AD、DA、键盘、显示器、日历时钟)连接。*由于IC总线的寻址采用纯软件的寻址方法无需片选线的连接这样就大大简化了总线数量。*图IC串行总线系统的基本结构IC的运行由主器件(主机)控制。主器件是指启动数据的发送(发出起始信号)、发出时钟信号、传送结束时发出终止信号的器件通常由单片机来担当。从器件(从机)可以是存储器、LED或LCD驱动器、AD或DA转换器、时钟日历器件等从器件必须带有IC串行总线接口。当IC总线空闲时SDA和SCL两条线均为高电平。由于连接到总线上器件(节点)输出级必须是漏极或集电极开路只要有一器件任意时刻输出低电平都将使总线上的信号变低即各器件的SDA及SCL都是“线与”关系。*由于各器件输出端为漏级开路故必须通过上拉电阻接正电源(见图中的两个电阻)以保证SDA和SCL在空闲时被上拉为高电平。SCL线上的时钟信号对SDA线上的各器件间的数据传输起同步控制作用。SDA线上的数据起始、终止及数据的有效性均要根据SDA线上的时钟信号来判断。*在标准IC模式数据的传输速率为kbits高速模式下可达kbits。总线上扩展的器件数量不是由电流负载决定的而是由电容负载确定的。IC总线上每个节点器件的接口都有一定的等效电容连接的器件越多电容值越大这会造成信号传输的延迟。总线上允许的器件数以器件的电容量不超过pF(通过驱动扩展可达 pF)为宜据此可计算出总线长度及连接器件的数量。每个连到IC总线上的器件都有一个唯一的地址扩展器件时也要受器件地址数目的限制。*IC系统允许多主器件究竟哪一主器件控制总线要通过总线仲裁来决定。如何仲裁可查阅IC仲裁协议。但在实际应用中经常遇到的是以单一单片机为主机其他外围接口器件为从机情况。IC总线的数据传送.数据位的有效性规定IC总线在进行数据传送时每一数据位的传送都与时钟脉冲相对应。时钟脉冲为高电平期间数据线上的数据必须保持稳定在IC总线上只有在时钟线为低电平期间数据线上的电平状态才允许变化如图所示。*图数据位的有效性规定.起始和终止信号据IC总线协议总线上数据信号传送由起始信号(S)开始、由终止信号(P)结束。起始信号和终止信号都由主机发出在起始信号产生后总线就处于占用状态在终止信号产生后总线就处于空闲状态。结合图介绍起始信号和终止信号规定。*图起始信号和终止信号()起始信号(S)。在SCL线为高期间SDA线由高向低的变化表示起始信号只有在起始信号以后其他命令才有效。()终止信号(P)。在SCL线为高期间SDA线由低向高的变化表示终止信号。随着终止信号出现所有外部操作都结束。*.IC总线上数据传送的应答IC数据传送时传送的字节数(数据帧)没有限制但每一个字节必须为位长度。数据传送先传最高位(MSB)每一个被传送字节后都须跟随位应答位(即一帧共有位)如图所示。IC总线在传送每一字节数据后都须有应答信号A在第个时钟位上出现与应答信号对应的时钟信号由主机产生。这时发方须在这一时钟位上使SDA线处于高电平状态以便收方在这一位上送出低电平应答信号A。*由于某种原因接收方不对主机寻址信号应答时例如接收方正在进行其他处理而无法接收总线上的数据时必须释放总线将数据线置为高电平而由主机产生一个终止信号以结束总线的数据传送。当主机接收来自从机的数据时接收到最后一个数据字节后必须给从机发送一个非应答信号()使从机释放数据总线以便主机发送一个终止信号从而结束数据的传送。*图IC总线上的应答信号*.IC总线上的数据帧格式IC传送的信号即包括真正的数据信号也包括地址信号。IC总线规定在起始信号后必须传送一个从机的地址(位)第位是数据传送的方向位(R)“”表示主机发送数据()“”表示主机接收数据(R)。每次数据传送总是由主机产生的终止信号结束。但是若主机希望继续占用总线进行新的数据传送则可不产生终止信号马上再次发出起始信号对另一从机进行寻址。因此在总线一次数据传送过程中可以有以下几种组合方式:*()主机向从机发送n个字节的数据数据传送方向在整个传送过程中不变传送格式如下:说明:阴影部分表示主机向从机发送数据无阴影部分表示从机向主机发送数据以下同。上述格式中的从机地址为位紧接其后的“”和“”表示主机的读写方向“”为读“”为写。格式中:字节∼字节n为主机写入从机n字节数据。*()主机读出来自从机的n个字节。除第一个寻址字节由主机发出n字节都由从机发送主机接收数据传送格式如下:其中:字节∼字节n为从机被读出的n个字节的数据。主机发送终止信号前应发送非应答信号向从机表明读操作要结束。*()主机的读、写操作。在一次数据传送过程中主机先发送一个字节数据然后再接收一个字节数据此时起始信号和从机地址都被重新产生一次但两次读写的方向位正好相反。数据传送的格式如下:“Sr”表示重新产生的起始信号“从机地址r”表示重新产生的从机地址。由上可见无论哪种方式起始信号、终止信号和从机地址均由主机发送数据字节传送方向由寻址字节中方向位规定每字节传送都必须有应答位(A或)相随。*.寻址字节在上面数据帧格式中均有位从机地址和紧跟其后的位读写方向位即下面要介绍的寻址字节。IC总线的寻址采用软件寻址主机在发送完起始信号后立即发送寻址字节来寻址被控的从机寻址字节格式如下:*位从机地址即为“DA、DA、DA、DA”和“A、A、A”。其中“DA、DA、DA、DA”为器件地址是外围器件固有的地址编码器件出厂时就已经给定。“A、A、A”为引脚地址由器件引脚A、A、A在电路中接高电平或接地决定(图)。数据方向位(R)规定了总线上的单片机(主机)与外围器件(从机)的数据传送方向。R=表示主机接收(读)。R=表示主机发送(写)。*.寻址字节中的特殊地址IC规定一些特殊地址其中两种固定编号和已被保留为作为特殊用途见表。*起始信号后第字节位为“”为通用呼叫地址用于寻访IC总线上所有器件的地址。不需从通用呼叫地址命令获取数据的器件可不响应通用呼叫地址。否则接收到这个地址后应作出应答并把自己置为从机接收方式以接收随后的各字节数据。另外当遇到不能处理的数据字节时不作应答否则收到每个字节后都应作应答。通用呼叫地址的含义在第字节中加以说明。格式如下:*第字节为H时所有能响应通用呼叫地址的从机复位并由硬件装入从机地址的可编程部分。能响应命令的从机复位时不拉低SDA和SCL线以免堵塞总线。第字节为H时所有能响应通用呼叫地址并通过硬件来定义其可编程地址的从机将锁定地址中的可编程位但不进行复位。如果第字节的方向位B为“”则这两个字节命令称为硬件通用呼叫命令。就是说这是由“硬件主器件”发出的。所谓硬件主器件是不能发送所要寻访从件地址的发送器如键盘扫描器等。*这种器件在制造时无法知道信息应向哪儿传送所以它发出硬件呼叫命令时在第字节的高位说明自己的地址。接在总线上的智能器件如单片机能识别这个地址并与之传送数据。硬件主器件作为从机使用时也用这个地址作为从机地址。格式为:在系统中另一种选择可能是系统复位时硬件主器件工作在从机接收方式这时由系统中主机先告诉硬件主器件数据应送往的从机地址。当硬件主器件要发数据时就可直接向指定从机发送数据。*.数据传送格式IC总线上每传送一位数据都与一个时钟脉冲相对应传送的每一帧数据均为一字节。但启动IC总线后传送的字节数没有限制只要求每传送一个字节后对方回答一个应答位。在时钟线为高电平期间数据线的状态就是要传送的数据。数据线上数据的改变必须在时钟线为低电平期间完成。在数据传输期间只要时钟线为高电平数据线都必须稳定否则数据线上任何变化都当作起始或终止信号。*IC总线数据传送是必须遵循规定的数据传送格式。图为一完整的数据传送应答时序。据总线规范起始信号表明一次数据传送开始其后为寻址字节。在寻址字节后是按指定读、写的数据字节与应答位。在数据传送完成后主器件都必须发送停止信号。在起始与停止信号间传输的字节数由主机决定理论上讲没有字节限制。*图IC总线一次完整的数据传送应答时序IC总线上的数据传送有多种组合方式前面已介绍常见的三种数据传送格式这里不再赘述。从上述数据传送格式可看出:①无论何种数据传送格式寻址字节都由主机发出数据字节的传送方向则遵循寻址字节中的方向位的规定。②寻址字节只表明了从机的地址及数据传送方向。从机内部的n个数据地址由器件设计者在该器件的IC总线数据操作格式中指定第一个数据字节作为器件内的单元地址指针且设置地址自动加减功能以减少从机地址的寻址操作。*③每个字节传送都必须有应答信号(A)相随。④从机在接收到起始信号后都必须释放数据总线使其处于高电平以便主机发送从机地址。ATS单片机的IC串行扩展设计许多公司都推出带有IC接口的单片机及各种外围扩展器件常见有ATMEL公司的ATC系列存储器、Philips公司的PCF(时钟日历且带有  RAM)和PCF(  RAM)、MAXIM公司的MAX(AD)和MAX(DA)等。IC总线系统中的主器件通常由带有IC总线接口单片*机来担当也可用不带IC总线接口的单片机。从器件必须带有IC总线接口。ATS没有IC总线接口这可利用其并行IO口线模拟IC总线接口的时序因此在许多ATS应用系统中都将IC总线的模拟传送技术作为常规的设计方法。本节首先介绍ATS扩展IC总线器件的硬件接口设计然后介绍用单片机IO口结合软件模拟IC总线数据传送以及数据传送模拟通用子程序的设计。*ATS的IC总线扩展系统图所示为一个ATS与有IC总线器件的扩展接口电路。图中ATC为EPROM芯片PCF为静态  RAMPCF为位IO口SAA为位LED驱动器。虽然各种器件的原理和功能有很大的差异但它们与ATS的连接是相同的。**图ATS单片机扩展IC总线器件的接口电路IC总线数据传送的模拟ATS用软件来模拟IC总线上的信号,为单主器件的工作方式下没有其他主器件对总线的竞争与同步只存在单片机对IC总线上各从器件的读(单片机接收)、写(单片机发送)操作。.典型信号模拟为保证数据传送的可靠性标准IC的数据传送有严格的时序要求。IC总线的起始信号、终止信号、应答数据“”及非应答数据“”的模拟时序如图、图、图、图所示。*在IC的数传中可利用时钟同步机制展宽低电平周期迫使主器件处于等待状态使传送速率降低。对终止信号要保证有大于s的信号建立时间。终止信号结束时要释放总线使SDA、SCL维持在高电平大于s后才可以进行第次起始操作。单主器件系统中为防止非正常传送终止信号后SCL可设置为低。对于发送应答位、非应答位来说与发送数据“”和“”的信号定时要求完全相同。只要满足在时钟高电平大于s期间SDA线上有确定的电平状态即可。*.典型信号的模拟子程序主器件采用单片机晶振为MHz(机器周期s)常用的几个典型的波形模拟如下。()起始信号S。对一个新的起始信号要求起始前总线空闲时间大于s而对一个重复的起始信号要求建立时间也须大于s。图所示的起始信号的时序波形在SCL高电平期间SDA发生负跳变该时序波形适用于数据模拟传送中任何情况下的起始操作。起始信号到第个时钟脉冲的时间间隔应大于s。子程序如下:*START:SETBPSDA=SETBPSCL=NOPSDA=和SCL=保持sNOPCLRPSDA=NOPSDA=和SCL=(起始信号)保持sNOPCLRPSCL=RET*图起始信号S的模拟图终止信号P的模拟()终止信号P。在SCL高期间SDA发生正跳变。终止信号P的波形如图所示。子程序如下:STOP:CLRPSDA=SETBPSCL=NOP终止信号建立时间μsNOPSETBPSDA=NOPNOPCLRPSCL=CLRPSDA=RET*()发送应答位数据“”。在SDA低电平期间SCL发生一个正脉冲波形如图所示。子程序如下:ACK:CLRPSDA=SETBPSCL=NOPμsNOPCLRPSCL=SETBPSDA=RET*图应答位数据“”的模拟时序图非应答位数据“”的模拟时序()发送非应答位数据“”。在SDA高电平期间SCL发生一个正脉冲时序波形如图所示。子程序如下:NACK:SETBPSDA=SETBPSCL=NOP两条NOP指令为μsNOPCLRPSCL=CLRPSDA=RET*IC总线模拟通用子程序IC总线操作中除基本的起始信号、终止信号、发送应答位数据“”和发送非应答位数据“”外还需要有应答位检查、发送字节、接收字节、发送n字节和接收n字节子程序。.应答位检查子程序在应答位检查子程序CACK中设置了标志位F当检查到正常应答位时F=否则F=。参考子程序如下:*CACK:SETBPSDA为输入线SETBPSCL=使SDA引脚上的数据有效CLRF预设F=MOVCP读入SDA线的状态JNCCEND应答正常转F=SETBF应答不正常F=CEND:CLRP子程序结束使SCL=RET.发送字节数据子程序下面是模拟IC数据线SDA发送字节数据的子程序。*调用本子程序前先将欲发送的数据送入A中。参考子程序如下:WBYTE:MOVR#H位数据长度送入R中WLP:RLCAA左移发送位进入CMOVPC将发送位送入SDA引脚SETBPSCL=使SDA引脚上的数据有效NOPNOPCLRPSDA线上数据变化DJNZRWLPRET*.接收字节数据子程序下面是模拟从IC的数据线SDA读取字节数据的子程序并存入R中子程序如下:RBYTE:MOVR#H位数据长度送入R中RLP:SETBP置SDA数据线为输入方式SETBPSCL=使SDA数据线上的数据有效MOVCP读入SDA引脚状态MOVARRLCA将C读入AMOVRA将A存入RCLRPSCL=继续接收数据DJNZRRLPRET*.发送n字节数据子程序本子程序为主机向IC的数据线SDA连续发送n字节数据从机接收。发送n字节数据的格式如下:本子程序定义了如下一些符号单元。MSBUF:主器件发送数据缓冲区首地址的存放单元。WSLA:外围器件寻址字节(写)的存放单元。NUMBYT:发送n字节数据的存放单元。*在调用本程序之前须将寻址字节代码存放在WSLA单元须将要发送的n字节数据依次存放在以MSBUF单元内容为首址的发送缓冲区内。调本程序后n字节数据依次传送到外围器件内部相应地址单元中。参考子程序如下:WNBYTE:MOVRNUMBYT发送字节数送RLCALLSTART调用起始信号模拟子程序MOVAWSLA发送外围器件的寻址字节LCALLWBYTE调用发送字节子程序LCALLCACK调用检查应答位子程序*JBFWNBYTE为非应答位则重发MOVRMSBUF主器件发送缓冲区首地址送RWDATA:MOVAR发送数据送ALCALLWBYTE调用发送字节子程序LCALLCACK检查应答位JBFWNBYTE为非应答位则重发INCR修改地址指针DJNZRWDATALCALLSTOP调用发送子程序发送结束RET*.读入n字节数据子程序本子程序为主机从IC的数据线SDA读入n字节数据从机发送。格式如下:子程序定义如下一些符号单元其中NUMBYT与子程序WNBYTE中定义相同。RSABYT:外围器件寻址字节(读)存放单元。MRBUF:主机接收缓冲区存放接收数据的首址单元。*在调用本程序之前须将寻址字节代码存放在RSABYT单元。执行子程序后从外围器件指定首地址开始的n字节数据依次存放在以MRBUF单元内容为首地址的发送缓冲区中。子程序如下:RNBYTE:MOVRNUMBYT读入字节数n存入RRLP:LCALLSTART调用起始信号模拟子程序MOVARSABYT寻址字节送入ALCALLWBYTE写入寻址字节LCALLCACK检查应答位JBFRNBYTE非正常应答时重新开始*MOVRMRBUF接收缓冲区的首址送RRDATA:LCALLRBYTE读入字节到AMOVRA接收的数据存入缓冲区DJNZRACKn字节未读完则跳转ACKLCALLNASKn字节读完则发送非应答位LCALLSTOP调用发送停止位子程序RETACK:LCALLACK发送一个应答位到外围器件INCR修改地址指针SJMPRDATARET*

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/71

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利