AT89S51汇编语言程序设计单片机串行扩展技术教学PPT.ppt
《AT89S51汇编语言程序设计单片机串行扩展技术教学PPT.ppt》由会员分享,可在线阅读,更多相关《AT89S51汇编语言程序设计单片机串行扩展技术教学PPT.ppt(48页珍藏版)》请在三一办公上搜索。
1、第12章 单片机串行扩展技术,单片机串行扩展技术与并行扩展技术相比具有显著优点,串行接口器件与单片机接口时需要I/O口线很少(仅需14条),串行接口器件体积小,因而占用电路板空间小,仅为并行接口器件10%,明显减少电路板空间和成本。除上述优点,还有工作电压宽、抗干扰能力强、功耗低、数据不易丢失等特点。串行扩展技术在IC卡、智能仪器仪表以及分布式控制系统等领域得到广泛应用。,12.1 单总线串行扩展 单总线(也称1-Wire bus)是由美国DALLAS公司推出外围串行扩展总线。只有一条数据输入/输出线DQ,总线上所有器件都挂在DQ上,电源也通过这条信号线供给,使用一条信号线串行扩展技术,称为单
2、总线技术。单总线系统各种器件,由DALLAS公司提供专用芯片实现。每个芯片都有64位ROM,厂家对每一个芯片用激光烧写编码,其中存有16位十进制编码序列号,它是器件地址编号,确保它挂在总线上后,可唯一被确定。除地址编码外,片内还包含收发控制和电源存储电路,如图12-1所示。这些芯片耗电量都很小(空闲时几微瓦,工作时几毫瓦),从总线上馈送电能到大电容中就可以工作,故一般不需另加电源。,【例12-1】图12-2所示为一个由单总线构成分布式温度监测系统,图中多个带有单总线接口数字温度传感器DS18B20芯片都挂在单片机1根I/O口线(即DQ线)上。对每个DS18B20通过总线DQ寻址。DQ为漏极开路
3、,须加上拉电阻。DS18B20封装形式多样,在单总线数字温度传感器系列中还有DS1820、DS18S20、DS1822等其他型号,工作原理与特性基本相同。,图12-1 单总线芯片内部结构示意图,图12-2 单总线构成分布式温度监测系统,特点如下:(1)体积小、结构简单、使用方便。(2)每芯片都有唯一64位光刻ROM编码,家族码为28H。(3)温度测量范围-55+125C,在-10+85C范围内,测量精度可达0.5C。(4)分辨率为可编程912位(其中包括1位符号位),对应温度变化量分别为0.5C、0.25C、0.125C、0.0625C。(5)转换时间与分辨率有关。当设定为9位,转换时间93.
4、75ms;设定为10位,转换时间为187.5ms;当设定11位,转换时间375ms;当设定12位,转换时间750ms。(6)片内含有SRAM、E2PROM,单片机写入E2PROM报警上下限温度值和以及对DS18B20设置,在芯片掉电情况下不丢失。,功能命令包括两类:1条启动温度转换命令(44H),5条读/写SRAM和E2PROM命令。图12-2电路如果再扩展几位LED数码管显示器,即可构成简易数字温度计系统。可在图12-2基础上,自行扩展设计。在1-Wire 总线传输是数字信号,数据传输均采用CRC码校验。DALLAS公司为单总线寻址及数据传送制定了总线协议,具体内容读者可查阅相关资料。1-W
5、ire协议不足在传输速率稍慢,故1-Wire 总线协议特别适用于测控点多、分布面广、种类复杂,而又需集中监控、统一管理应用场合。,12.2 SPI总线串行扩展SPI(Serial Periperal Interface)是Motorola公司推出同步串行外设接口,允许单片机与多个厂家生产带有标准SPI接口外围设备直接连接,以串行方式交换信息。图12-3为SPI外围串行扩展结构图。SPI使用条线:串行时钟SCK,主器件输入/从器件输出数据线MISO,主器件输出/从器件输入数据线MOSI和从器件选择线。,图12-3 SPI外围串行扩展结构图,SPI典型应用是单主系统,一台主器件,从器件通常是外围接
6、口器件,如存储器、I/O接口、A/D、D/A、键盘、日历/时钟和显示驱动等。扩展多个外围器件时,SPI无法通过数据线译码选择,故外围器件都有片选端。在扩展单个SPI器件时,外围器件片选端 可以接地或通过I/O口控制;在扩展多个SPI器件时,单片机应分别通过I/O口线来分时选通外围器件。在SPI串行扩展系统中,如果某一从器件只作输入(如键盘)或只作输出(如显示器)时,可省去一条数据输出(MISO)线或一条数据输入(MOSI)线,从而构成双线系统(接地)。SPI系统中单片机对从器件选通需控制其CS*端,由于省去传输时地址字节,数据传送软件十分简单。但在扩展器件较多时,需要控制较多从器件 端,连线较
7、多。,在SPI系统中,主器件单片机在启动一次传送时,便产生8个时钟,传送给接口芯片作为同步时钟,控制数据输入和输出。传送格式是高位(MSB)在前,低位(LSB)在后,如图12-4所示。输出数据变化以及输入数据时采样,都取决于SCK。但对不同外围芯片,可能是SCK上升沿起作用,也可能是SCK下降沿起作用。SPI有较高数据传输速度,最高可达1.05Mbit/s。图12-4 SPI数据传送格式Motorola提供了一系列具有SPI接口单片机和外围接口芯片,如存储器MC2814、显示驱动器MC14499和MC14489等各种芯片。SPI从器件要具有SPI接口。主器件是单片机。目前已有许多,机型单片机都
8、带SPI接口。但AT89S51由于不带SPI接口,SPI接口实现,可采用软件与I/O口结合来模拟SPI接口时序。【例12-2】设计AT89S51单片机与串行A/D转换器TLC2543SPI接口。TLC2543是美国TI公司12位串行SPI接口A/D转换器,转换时间为1s。片内有1个14路模拟开关,用来选择11路模拟输入以及3路内部测试电压中1路进行采样。图12-5为单片机与TLC2543的SPI接口电路。TLC2543的I/O CLOCK、DATA INPUT和 端由单片机P1.0、P1.1和P1.3来控制。转换结果输出数据(DATA OUT)由单片机P1.2串行接收,单片机将命令字通过P1.
9、1输入到TLC2543输入寄存器中。下面子程序为AT89S51选择某一通道进行1次数据采集,A/D转换结果共12位,分两次读入。先读入TLC2543中8位转换结果到单片机中,同时写入下一次转换命令,然后再读入4位转换结果到单片机中。,注意:TLC2543在每次I/O周期读取数据都是上次转换结果,当前转换结果要在下一个I/O周期中被串行移出。TLC2543A/D转换第1次读数由于内部调整,读取转换结果可能不准确,应丢弃。图12-5 AT89S51单片机与TLC2543的SPI接口,子程序如下:ADCOMDBYTE6FH;定义命令存储单元ADOUTHBYTE6EH;定义存储转换结果高4位单元ADO
10、UTLBYTE6DH;定义存储转换结果低8位单元 ADCONV:CLRP1.0;时钟脚为低电平CLRP1.3;片选 有效,选中TLC2543MOVR2,#08H;送出下一次8位转换命令和;读8位转换结果做准备 MOVA,ADCOMD;下一次转换命令在ADCOMD单元;中送A LOOP1:MOVC,P1.2;读入1位转换结果RRCA;1位转换结果带进位位右移 MOVP1.1,C;送出命令字节中1位SETBP1.0;产生1个时钟NOPCLRP1.0 NOPDJNZR2,LOOP1;是否完成8次转换结果读入和命;令输出?未完则跳,MOVADOUTL,A;读8位转换结果存入ADOUTL单元MOVA,#
11、00H;A清0MOVR2,#04H;为读入4位转换结果做准备 LOOP2:MOVC,P1.2;读入高4位转换结果中1位RRCA;带进位位循环右移 SETBP1.0;产生1个时钟NOPCLRP1.0NOPDJNZR2,LOOP2;是否完成4次读入?未完则跳LOOP2MOVADOUTH,A;高4位转换结果存入ADOUTH单元;中高4位SWAP ADOUTH;ADOUTH单元中高4位与低4位互换SETBP1.0;时钟无效RET 执行上述程序中8次循环,执行“RRC A”指令8次,每次读入转换结果1位,然后送出ADCOMD单元中下一次转换命令字节“G7 G6 G5 G4 G3 G2 G1 G0”中1位
12、,进入TLC2543输入寄存器。,经8次右移后,8位A/D转换结果数据“”读入累加器Acc中,上述具体数据交换过程如图12-6所示。,图12-6 单片机与TLC2543的8位数据交换示意图,12.3 Microwire总线简介三线同步串行接口,1根数据输出线SO、1根数据输入线SI和1根时钟线SK组成。该总线最初是内建在NS公司COP400/COP800 HPC系列单片机中,为单片机和外围器件提供串行通信接口。该总线只需要3根信号线,连接和拆卸都很方便。在需对一个系统更改时,只需改变链接到总线单片机及外器件数量和型号即可。最初Microwire总线只能连接一台单片机作为主机,总线上其他器件都是
13、从设备。随着技术发展,NS公司推出了8位COP800系列单片机,该系列单片机仍采用原来Microwire总线,但接口功能进行了增强,称之为增强型MicrowirePlus。增强型MicrowirePlus允许连接多台单片机和外围器件,应用于分布式、多处理器复杂系统。NS公司已生产出各种功能Microwire总线外围器件,包括存储器、定时器/计数器、ADC和DAC、LED显示驱动器和LCD显示驱动器以及远程通信设备等。,12.4 I2C总线串行扩展介绍 12.4.1 概述I2C(InterIntegrated Circuit)总线PHILIPS推出,使用广泛、很有发展前途芯片间串行扩展总线。只有
14、两条信号线,一是数据线SDA,另一是时钟线SCL。两条线均双向,所有连到I2C上器件数据线都接到SDA线上,各器件时钟线均接到SCL线上。I2C系统基本结构如图12-7所示。I2C总线单片机直接与I2C接口各种扩展器件(如存储器、I/O芯片、A/D、D/A、键盘、显示器、日历/时钟)连接。由于I2C总线寻址采用纯软件寻址方法,无需片选线连接,简化了总线数量。I2C运行由主器件(主机)控制。主器件是指启动数据发送(发出起始信号)、发出时钟信号、传送结束时发出终止信号器件,通常由单片机来担当。从器件(从机)可以是存储器、LED或LCD驱动器、A/D或D/A转换器、时钟/日历器件等,从器件必须带有I
15、2C串行总线接口。,图12-7 I2C串行总线系统基本结构,当I2C总线空闲时,SDA和SCL两条线均为高电平。由于连接到总线上器件(节点)输出级必须是漏极或集电极开路,只要有一器件任意时刻输出低电平,都将使总线上信号变低,即各器件SDA及SCL都是“线与”关系。由于各器件输出端为漏级开路,故必须通过上拉电阻接正电源,以保证SDA和SCL在空闲时被上拉为高电平。SCL线上时钟信号对SDA线上各器件间数据传输起同步控制作用。SDA线上数据起始、终止及数据有效性均要根据SCL线上时钟信号来判断。在标准I2C模式,数据传输速率为100kbit/s,高速模式下可达400kbit/s。,总线上扩展器件数
16、量不是由电流负载决定的,而是由电容负载确定的。I2C总线上每个节点器件接口都有一定等效电容,连接器件越多,电容值越大,这会造成信号传输延迟。总线上允许器件数以器件电容量不超过400pF(通过驱动扩展可达4000pF)为宜,据此可计算出总线长度及连接器件数量。每个连到I2C总线上器件都有一个唯一地址,扩展器件时也要受器件地址数目限制。I2C系统允许多主器件,究竟哪一主器件控制总线要通过总线仲裁来决定。如何仲裁,可查阅I2C仲裁协议。但在实际应用中,经常遇到以单一单片机为主机,其他外围接口器件为从机情况。,12.4.2 I2C总线数据传送1数据位有效性规定I2C总线在进行数据传送时,每一数据位传送
17、都与时钟脉冲相对应。时钟脉冲为高电平期间,数据线上数据必须保持稳定,在I2C总线上,只有在时钟线为低电平期间,数据线上电平状态才允许变化,如图12-8所示。图12-8 数据位有效性规定,2起始和终止信号 据I2C总线协议,总线上数据信号传送由起始信号(S)开始、由终止信号(P)结束。起始信号和终止信号都由主机发出,在起始信号产生后,总线就处于占用状态;在终止信号产生后,总线就处于空闲状态。结合图12-9介绍起始信号和终止信号规定。图12-9 起始信号和终止信号(1)起始信号(S)。在SCL线为高期间,SDA线由高向低变化表示起始信号,只有在起始信号以后,其他命令才有效。(2)终止信号(P)。在
18、SCL线为高期间,SDA线由低向高变化表示终止信号。随着终止信号出现,所有外部操作都结束。,3I2C总线上数据传送应答I2C数据传送时,传送字节数(数据帧)没有限制,但每一个字节必须为8位长度。数据传送,先传最高位(MSB),每一个被传送字节后都须跟随1位应答位(即一帧共有9位)。I2C总线在传送每一字节数据后都须有应答信号A,在第9个时钟位上出现,与应答信号对应时钟信号由主机产生。这时发方须在这一时钟位图12-10 I2C总线上应答信号,上使SDA线处于高电平状态,以便收方在这一位上送出低电平应答信号A。由于某种原因接收方不对主机寻址信号应答时,例如接收方正在进行其他处理而无法接收总线上数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89S51 汇编语言 程序设计 单片机 串行 扩展 技术 教学 PPT

链接地址:https://www.31ppt.com/p-2430621.html