单片机第09章dpj.ppt_第1页
单片机第09章dpj.ppt_第2页
单片机第09章dpj.ppt_第3页
单片机第09章dpj.ppt_第4页
单片机第09章dpj.ppt_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章单片机系统的扩展主讲:朱兆优,本章学习要点:(1)单片机外部扩展和总线构成原理,串行总线、并行总线扩展技术;(2)采用线选法、译码法扩展单片或多片存储器、TTL芯片的方法;(3)扩展外部存储器或TTL芯片的端口地址编址方法;(4)I2C、SPI、1/2/3Wire总线的接口和编程应用。,9.1单片机系统扩展概述单片机内部资源不够用,需要外部扩展RAM、ROM或I/O口。1、传统的扩展办法采取外部扩展并行器件,如:ROM-2764、27128、27256、27512等。RAM-6264、62128、62256、62512或2864等。I/O口-8255A、8155H等。,通过三总线把单片机与外部器件连接起来,进行数据、地址、控制信号的传输。传统的扩展结构如下:实际上这些器件已经淘汰,也很不实用。,2、现代的扩展方法(1)单片机选型:从外部转到内部,重视单片机选型,根据不同的应用,选择不同性能的单片机芯片。(2)串行总线扩展:有I2C接口的AT24Cxx系列和SPI接口的W25Xxx系列。W25X64容量高达8MB,W25Q128容量高达16MB。因此,今后的片外扩展将以串行总线为主,传统的三总线的应用扩展将出现在以ARM为核心的大系统结构上。,9.2单片机系统总线的构造单片机系统扩展出总线,所有器件都挂接在一条总线上。9.2.1单片机系统总线三大总线数据总线-与外部器件之间传输数据地址总线-向外发出地址信号控制总线-是一组控制信号线,9.2.2单片机系统三总线的构造单片机的三总线分别由P0口、P2口和控制信号构成。三总线构造如下图:,9.3单片机系统的扩展接口1片外并行器件的连接方法(1)查阅芯片资料(2)按引脚功能分类。(3)同类线相连(4)片选信号接地址线。,2系统扩展要求(1)能区分不同的地址空间,每个存储单元或端口都各有一个地址。(2)能够控制不同的芯片,读、写操作时不会相互干扰。(3)系统的地址编址不重叠,避免发生数据冲突。,3存储器地址分配方法(1)线选法线选法是指直接利用单片机系统的地址线作为扩展芯片的片选信号。(2)译码法把地址用译码器进行译码,然后将译码器的输出信号作为扩展芯片的片选信号。,9.3.2扩展的外部单元的编址编址方法如下:(1)基本地址计算(2)加权地址计算(3)空地址线处理(4)将加权地址固定地址,再叠加到基本地址的高位上,得出器件的地址范围。,例如假定扩展了2个芯片(IC1、IC2),其连接关系如图9-3所示,要求计算这2个芯片的地址范围。单片机一次只能访问一个芯片。基本地址线12根,则基本地址为000FFFH,加权地址线2根和空线2根(在高4位),,计算出IC1、IC2的地址空间如下:,9.3.3单片机扩展存储器的接口设计12764和6264的引脚功能(1)双向三态数据线8根:D0D7。(2)地址线13根:A0A12。(3)控制线:OE输出允许控制端(读选通信号输入线),低电平有效;WE写允许信号输入线,低电平有效;PGM编程时,编程脉冲的输入端,低电平有效;片选信号,低电平有效;CS片选信号使能端,高电平有效,即当=0,同时CS=1时,芯片才被有效选中。(4)电源和地线:+5V供电。,2764、6264B引脚排列如图,2、单片机与存储器的典型接口电路,确定IC1、IC2和IC3的地址分配如下:IC1:6000H7FFFH;IC2:A000HBFFFH;IC3:C000HDFFFH;对A100H地址的读操作指令为:MOVDPTR,#0A100HMOVXA,DPTR对C200H地址的写操作指令为:MOVA,#DataMOVDPTR,#0C200HMOVXDPTR,A,3操作时序对程序存储器和数据存储器的操作是严格分开的。假设执行一个2字节、1周期指令“MOVA,#Data”,对外部数据存储器的读操作,如MOVXA,DPTR,9.4I/O端口扩展与设计传统的I/O端口扩展通常采用8255A/8155H和TTL芯片;现代的I/O口扩展采取选择片内带有不同端口数量的单片机芯片。单片机品种多,有564个数字I/O引脚,9.4.1I/O接口概述串行I/O接口-采用逐位串行移位的方式传输数据,可以满足速度要求不高的串行设备接口要求;并行I/O接口-采用并行方式传输数据,可以与外设高速传输数据。,1I/O接口的功能(1)数据传输速度匹配。(2)输出数据锁存。(3)输入数据三态缓冲。(4)信号或电平变换。,2I/O接口与端口的区别I/O接口(Interface)是CPU与外界的连接电路,是CPU与外界进行数据交换的通道。I/O端口(Port)是CPU与外设直接通信的地址,通常是把I/O接口电路中能够被CPU直接访问的寄存器或缓冲器称之为端口。,3.I/O端口的编址独立编址方式-把I/O端口地址空间和存储器地址空间严格分开,地址空间相互独立,编址界限分明。统一编址方式-每个I/O端口作为一个外部数据存储器RAM地址单元编址。8051单片机对I/O端口采用统一编址。,3单片机与外设间的数据传送方式(1)同步传送方式(2)异步传送方式(3)中断传送方式,4I/O接口电路种类常用的片外I/O接口芯片:(1)TTL芯片、CMOS器件(2)可编程并行接口芯片(如8155H、8255A)。使用可编程I/O接口芯片时,扩展电路繁杂,实际已经很少使用。,9.4.2TTL电路扩展并行I/O口采用TTL电路或CMOS电路的锁存器、三态门,使用总线式或非总线式扩展可以实现与单片机连接。1用TTL电路扩展并行I/O端口电路,例1按图中,LED灯一一对应按键状态,若K1按下对应L1亮,若没有键按下,则LED灯全灭,要求编程用点亮LED灯表示某按键是否按下。其参考程序段如下:MOVDPTR,#0000H;I/O端口地址DPTRMOVXA,DPTR;读74LS244端口数据A,产生RD=0。MOVXDPTR,A,2用串行接口扩展并行输入口CD4014和74LS165都是具有并行输入和串行移位输出的接口电路,利用这两种芯片可以将单片机的串行接口扩展成为并行输入口,具体接口电路如图,例2按图从扩展的16位输入口中读入6组数据(每组数2字节),读入的数据存放在片内30H开始的单元。RXDAT:MOVR2,#06;设置读入的字节数MOVR0,#30H;设置读入数据存放指针SETBP1.0START:CLRP1.0SETBP1.0;允许串行移位输入MOVSCON,#00;设置串行口为工作方式0MOVR3,#02;设置每组读入的字节数READAT:JNBRI,$CLRRIMOVA,SBUF;读入数据MOVR0,AINCR0DJNZR3,READATDJNZR2,STARTRET,3用串行接口扩展并行输出口CD4094和74LS164都是具有串行移位输入、并行输出的接口芯片,可扩展成并行输出口,电路如下:,例3按照图9-9,把片内30H、31H单元的内容通过串行接口传送到扩展的16位输出口。程序段如下:TXDAT:MOVR2,#02;设置发送的字节数MOVR0,#30H;设置发送数据地址指针CLRP1.0;显示复位清除START:SETBP1.0;禁止复位MOVSCON,#00;设置串行口为工作方式0MOVA,R0MOVSBUF,A;启动发送数据JNBRI,$CLRRIINCR0;指针加1DJNZR2,START;判断数据是否发送完毕RET,9.5串行总线的扩展应用串行总线是芯片间串行数据传输总线,串行总线类型:(1)I2C总线:传输速率400KB/s。(2)SPI总线(3)1/2/3Wire总线,9.5.1I2C总线结构与工作原理1I2C总线结构及特点I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据,可在主控器与被控器之间、主控器与主控器之间进行双向传输。结构如下图:,2I2C总线特点(1)使用2线传输。(2)多主竞争中的仲裁和同步。(3)I2C总线传输数据采用状态码管理方式。(4)采用器件地址与引脚地址相结合的方式进行编址。(5)I2C总线接口的器件都具有应答功能。(6)I2C总线电气接口输出端是晶体管漏极开路或集电极开路结构,使用时必须外接上拉电阻。,3I2C总线的信号及时序定义(1)总线上数据的有效性在时钟线(SCL)为高电平期间,数据线(SDA)高电平表示传输的数据位为1,低电平表示传输的数据位为0。如图9-11。(2)数据传输的起始位和结束位I2C总线在传送数据过程中有三种类型信号,分别是:起始信号、结束信号和应答信号。如图9-12。,9.5.2I2C总线的时序标准模式传输速率100KB/s,高速模式传输速率400KB/s。,9.5.3I2C总线上的数据传输格式1数据传输时的总线控制I2C总线上可以连续以8位(1字节)二进制数的方式传输数据。但每启动一次I2C总线,其后的数据传输字节数没有限制。,2应答信号每传送1字节数据后必须跟随等待一个应答信号,表示已收到数据。,3数据传送格式(1)主控器写操作:指主控器向被寻址的被控器写入n字节数据的操作,数据传输格式如下:(2)主控器读操作(3)主控器读/写操作,9.5.4I2C总线的信号模拟与编程技术启动条件:在SCL为高电平时,SDA出现一个下降沿则启动I2C总线。停止条件:在SCL为高电平时,SDA出现一个上升沿则停止使用I2C总线。稳定状态:除了启动和停止状态,在其余状态下,SCL的高电平都对应SDA的稳定数据状态。设以89C51的I/O口P1.2、P1.3做模拟I2C总线,则常用的子程序如下:,(1)I2C总线启动子程序STATSCLbitP1.2SDAbitP1.3STAT:SETBSDA;SDA置高电平SETBSCL;SCL置高电平NOP;延时NOPCLRSDA;在SCL=1使SDA产生下降沿NOPNOPCLRSCL;SCL拉低,主控制器等待RET,2、停止子程序STOPSTOP:CLRSDA;SDA置低电平SETBSCL;SCL置高电平NOP;延时NOPSETBSDA;在SCL=1使SDA产生上升沿NOP;延时NOPCLRSCL;SCL拉低,主控制器等待RET,(3)发送应答位置0子程序MACKMACK:CLRSDA;SDA置低电平SETBSCL;SCL置高电平NOP;延时NOPCLRSCL;发送0信号,即应答位SETBSDARET,(4)发送非应答位置1子程序NACKNACK:SETBSDA;SDA置高电平SETBSCL;SCL置高电平NOPNOPCLRSCL;发送1信号,即非应答位CLRSDARET,(5)应答位检测子程序CACKCACK:SETBSDA;置SDA为输入方式SETBSCL;SCL置1使SDA上数据有效CLRF0;置F0=0MOVC,SDA;读SDA信号到CJNCCEND;若SDA=0为应答,F0=0SETBF0;否则无正常应答,置F0=1CEND:CLRSCL;SCL拉低RET,(6)发送一字节数据子程序WRBYTWRBYT:MOVR2,#08;置一字节8位,WLP:RLCA;从高位开始逐位移出并发送JCWR1;判断发送1还是0,若发送1则转WR1AJMPWR0WLP1:DJNZR2,WLP;8位数据未发送完,继续发送RETWR1:SETBSDA;置SDA=1,发送1SETBSCLNOPNOPCLRSCLCLRSDA;复位SDAAJMPWLP1WR0:CLRSDA;置SDA=0,发送0SETBSCLNOPNOPCLRSCLAJMPWLP1,(7)接收一字节数据子程序RDBYTRDBYT:MOVR0,#08;置8位数据长度RLP:SETBSDA;置SDA为输入方式SETBSCL;置SCL=1,使数据有效MOVC,SDA;从数据线上读入一位到CMOVA,R2RLCA;把数据位移入到AMOVR2,ACLRSCL;读一位结束,继续接下一位DJNZR0,RLP;8位数据读完否?RET,9.6I2C总线器件的接口应用AT24Cxx、PCF8563/8583等器件都是目前广泛应用的I2C总线接口的器件。9.6.1串行E2PROM存储器接口应用AT24Cxx广泛应用于汽车电子、水表、电表、煤气表和电视机等电子产品中用做数据保存。,1AT24Cxx存储器的主要特性字节写入方式和页写入方式可用电擦写,功耗很低,电压1.85.5V1.8V供电时最高传输速率达100KHz2.7V或5V供电时传输速率达400KHz在5V供电时最大速率达1MHz(AT24C128/256/512)抗干扰能力强,2引脚功能与地址选择采用了DIP8脚封装形式,各引脚功能如下:A0、A1、A2:地址输入端,可并联8个芯片;SCL:I2C总线的时钟线;SDA:I2C总线的数据线;WP:写保护端,WP=1只读,读写时接地;Vcc、GND:电源,可以接3.3V或5V供电。,AT24Cxxx特性,3存储器的写操作AT24Cxx系列存储器把地址空间按物理分页,支持按页写操作模式,AT24C64读写通信格式时序如下:,4存储器的读操作(1)当前地址读操作,数据格式如下:(2)指定地址读操作,数据格式如下:(3)序列读操作,数据格式如下:地址为当前地址时:,5与单片机的接口编程89C51单片机与AT24C64接口电路,例1要求从IC1中的120H地址开始连续读出8字节数据,读出的数据存放在单片机片内30H开始的单元中(用R0作指针)。读出过程:送写命令,送写地址,送读命令,读出数据。初值定义如下:AddrHEQU01H;指定读器件内单元地址高字节AddrLEQU20H;指定读器件内单元地址低字节PAddrEQU30H;单片机片内地址NDATA08;从24C64器件内读出数据长度SDABITP1.7SCLBITP1.6MOVR0,#PAddr;初始化MOVR6,#AddrLMOVR7,#AddrHMOVR5,#N;多字节读出程序见课本,例2要求把片内地址30H开始的8个数写入到IC1中的3C0H地址开始单元中。写操作过程:送写命令,送写地址,写多字节数。写子程序如下:WRCBY:ACALLSTAT;24C64数据写入子程序MOVA,#0A2H;写入命令字A2H,准备数据写入ACALLWR8B;写入子程序ACALLCACKJBF0,WRC64MOVA,R7;高字节地址03HAACALLWR8B;写入子程序ACALLCACKJBF0,WRC64MOVA,R6;低字节地址0C0HAACALLWR8BACALLCACKJBF0,WRC64WRDA64:MOVA,R0;从30H单元取1字节要写入的数据AACALLWR8B;调用一字节数据写入子程序ACALLCACKJBF0,WRC64INCR0DJNZR5,WRDA64;判断N个数据数据是否写完,未完则继续ACALLSTOPRET,9.6.2串行日历时钟芯片的接口应用PCF8563是Philips公司推出的一款工业级、内含I2C总线接口功能、具有极低功耗的多功能CMOS实时时钟/日历芯片。广泛用于电池供电的仪器仪表等电子产品领域。1PCF8563的主要特性内部有16个8位寄存器,具有多种报警功能、定时器功能、时钟输出功能以及中断输出功能,能够完成各种复杂的定时服务,甚至可以为单片机提供看门狗功能。总线速度400KB/s,2PCF8563工作原理用16个8位寄存器管理、控制芯片工作。,CLK频率寄存器用于控制CLK引脚输出方波的频率。当FE=0,CLK成高阻态,禁止输出信号;FE=1,允许在CLK输出有效频率。,倒计数器(0FH)由定时器控制寄存器(0EH)控制,定时器控制寄存器用于设置定时器有效(TE=1)或无效(TE=0)以及设置定时器的频率。TD1和TD0为定时器时钟频率选择位,n是倒计数器的8位二进制数为00FFH,则:,3PCF8563与单片机的接口应用PCF8563有唯一的器件地址:读地址为A3H、写地址为A2H,具有字节写和读两种状态。,(1)时钟读出子程序RTC8563:LCALLRDCBY;调用读数据子程序,PAddr缓冲区中,MOVA,PAddr;取秒字节ANLA,#7FH;屏蔽无效位MOVPAddr,AMOVA,PAddr+1;取分钟字节ANLA,#7FH;屏蔽无效位MOVPAddr+1,AMOVA,PAddr+2;取小时字节ANLA,#3FH;屏蔽无效位MOVPAddr+2,AMOVA,PAddr+3;取日字节ANLA,#3FH;屏蔽无效位MOVPAddr+3,AMOVA,PAddr+4;取星期字节ANLA,#07H;屏蔽无效位MOVPAddr+4,AMOVA,PAddr+5;取月字节ANLA,#1FH;屏蔽无效位MOVPAddr+5,ARET,(2)时钟写入子程序WTC8563:MOVPAddr,#00H;启动时钟,PAddr缓冲区中MOVPAddr+1,#1FH;设置报警及定时器中断MOVPAddr+2,#56H;秒时间写入发送缓冲区中MOVPAddr+3,#39H;分钟时间写入发送缓冲区中MOVPAddr+4,#15H;小时时间写入发送缓冲区中MOVPAddr+5,#16H;日时间写入发送缓冲区中MOVPAddr+6,#02H;星期时间写入发送缓冲区中MOVPAddr+7,#03H;月时间写入发送缓冲区中MOVPAddr+8,#10H;年时间写入发送缓冲区中MOVN,#09H;写入7个时间信息和2个控制命令MOVR6,#00;控制/状态寄存器1地址送入R6LCALLWRCBY;调用写数据子程序RET,(3)报警功能的设置PCF8563共有四种报警:小时报警、日报警、月报警和星期报警。设置报警方法:设置AE=0,AIE=1则在AF置1的同时在引脚产生一个中断,低电平有效,中断响应后应软件置AF=0。实例程序见课本。,9.71/2/3Wire总线器件的接口应用1/2/3Wire总线是Dallas公司研制开发的一种总线接口技术,并设计了可供家用电器及工业控温使用的器件。9.7.1单线制串行总线器件每一个符合One-Wire协议的芯片都有一个唯一的地址,包括8位的家族代码、48位的序列号和8位的CRC代码。主芯片对各个从芯片的寻址依据这64位的内容来进行。,1DS18B20性能特点One-Wire协议的数字式温度传感器。它设置地址线、数据线和控制线合用1根双向数据传输信号线(DQ)。测温范围为-55+125;转换精度为912位二进制数(含1位符号位)。测温精度:9位精度为0.5;12位精度为0.0625;具有非易失性上、下限报警设定功能。转换时间:9位精度时为93.75ms;10位精度时为187.5ms;12位精度时为750ms。,2DS18B20寄存器DS18B20内部有9字节的高速寄存器,各寄存器功能与编址如表:,3DS18B20系统配置寄存器数据格式系统配置寄存器数据格式如下:DS18B20分辨率设置如下:,4DS18B20温度值存放格式DS18B20用12位精度测出的温度值用16位二进制补码形式表达如下:DS18B20采取12位精度测出的数字量用16位二进制补码形式表达如下:,6DS18B20命令字DS18B20温度步骤:复位操作;发送ROM指令;发送RAM指令进行预定操作。DS18B20指令表如表,DS18B20操作时序,6DS18B20的应用电路,7DS18B20的编程应用(1)主机应先发送复位信号(2)主机对DS18B20写数据时,主机每写入1位数据时间应保持60120s,两次写入数据的间隙应大于1s。(3)主机对DS18B20读操作时,主机应在15s后读取数据线,完成读操作。DS18B20的初始化、复位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论