单片机串行扩展.ppt
《单片机串行扩展.ppt》由会员分享,可在线阅读,更多相关《单片机串行扩展.ppt(53页珍藏版)》请在课桌文档上搜索。
1、第六部分单片机的串行扩展,系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围新片以满足应用系统要求。80C51系列单片机有很强的外部扩展能力,外围扩展电路芯片大多是一些常规芯片。扩展电路及扩展方法较典型、规范。,80C51系统扩展有程序存储器(ROM)扩展,数据存储器(RAM)扩展,I/O口扩展,中断系统扩展以及其他特殊功能扩展。,单片机系统扩展方法有并行扩展和串行扩展法。,并行扩展是指利用单片机的三总线(AB、DB、CB)进行的系统扩展(见第五部分);,串行扩展是指利用SPI三总线、IC双总线、单总线 等进行的串行系统扩展。,6.1 概述,缺点:速度慢,在需要高速的
2、场合要用并行扩展。,优点:串行接口器件体积小;与单片机接口的I/O口线少。,串行扩展的特点:,在器件之间采用两根信号线(SDL,SCL)进行信息传送并允许若干兼容器件共享的数据总线,称为IC总线。,SDA传输双向的数据;SCL线用来传输时钟信号,用来同步串行数据线上的数据。,一、IC公用双总线结构(飞利浦公司),挂接在IC总线的器件,根据功能可分为:主控器件和从控器件。,主控器件:控制总线存取,产生串行时钟信号,并产生启动传送及结束传送的器件,总线必须有一个主控器件。,从控器件:在总线上被主控器件寻址的器件,它们根据主控器件的命令来接收和发送数据。,6.2 串行扩展概述,多个器件之间连接使数据
3、线SDA为“与”的关系,即只要其中一个器件输出0,即可使SDA数据线为0。,在有多个器件组成的I2C总线系统中,可能存在多个主器件。因此,I2C总线系统是一个允许多主的系统。,I2C数据传输协议:只有当总线不忙时(SDA与SCL均为高电平),数据传输才开始;数据传输期间,无论何时串行时钟线为高,串行数据线必须保持稳定;当串行时钟线为高时,串行数据线将认为此时传送的开始或停止。,I2C总线定义的总线条件有:,1.总线不忙:,2.开始传输数据:,3.停止传输数据:,SCL和SDA保持高电平。,在SCL1时,SDA发生一个高到底的跳变。,在SCL1时,SDA发生一个低到高的跳变。,4.数据有效:SC
4、L保持高电平期间,当SDA稳定后,串行数据线的状态表示数据线是有效的。,5.数据变化:SCL保持低电平期间,SDA数据线的状态才可以发生变化。,在I2C总线上传输的数据有两种方式:主发送从接收、从发送主接收。它们是由起始信号后的第一个字节的最低位决定。1表示主器件读数据,0表示主器件写数据)。,主发送从接收(主器件为写数据):,主器件产生起始信号后,发送的第一个字节为从地址(该地址的前7位字节为从器件的片选信号,最低位决定数据的传输方向位)此时该位是0。,从器件每接收一个数据字节后,都返回一个应答信号(ASK=0),从发送主接收(主器件为读数据):,从器件在接收到主器件发送的从地址和为1的方向
5、位后,返回一个应答信号(ASK=0),接着从器件发送数据到主器件,主器件每接收一个数据字节后,都返回一个应答信号(ASK=0):,在接收从器件最后一个字节后,主器件发送一个非应答信号(ASK=1),终止从器件继续发送。从器件发送的数据可以是单字节,也可以是一串数据。,(1)A0、A1、A2:片选或页面选择地址输入。,1、二线制I2C E2PROM AT24CXX系列的扩展,AT24C01(A)/02/04/08/16 E2ROM存储器都是8个引脚。存储容量为1K/2K/4K/8K/16K bits。,(2)GND:地线。,6.3 单片机的外部串行扩展,一、串行扩展E2PROM,AT24C01(
6、A)/02/04/08/16的封装形式,AT24C04与单片机的扩展,模拟实现I2C接口,(3)SDA:串行数据(/地址)I/O端,用于串行数据的 输入/输出。,(4)SCL:串行时钟输入端,用于输入/输出数据的同步。,(5)WP:写保护,用于硬件数据的保护。,(6)VCC:电源电压,接+5V。,AT24CXX SDA和SCL时钟关系,AT24CXX启动和停止信号,应答信号,AT24CXX立即地址读,其中:1010为EEPROM的编码;XXX为AT24CXX的地址编号。,在I2C总线上最多可以连接8个AT24C01/02,4个AT24C04,2个AT24C08,1个AT24C16。,AT24C
7、XX立即地址读,AT24CXX随机读,AT24CXX顺序读,AT24C01(A)/02/04/08/16字节写,AT24C01(A)/02/04/08/16页面写,START:;开始位;传入参数:无;返回值:无SETB SDASETB SCLNOP NOP CLR SDANOPNOP NOP NOP CLR SCLRET,STOP:;停止位;传入参数:无;返回值:无CLR SDANOP NOP SETB SCLNOP NOP NOP NOP SETB SDA NOPRET,SHIN:;从AT24Cxx移入数据到MCU;传入参数:无;返回值:R7-移入的数据USING0CLR AMOV R6,A
8、SHIN_LP:SETB SCLMOV A,R7ADD A,ACCMOV R7,AMOV C,SDACLR ARLC AORL AR7,ACLR SCLINC R6CJNE R6,#08H,SHIN_LP;共8位,判断是否完成RET,SHOUT:;从MCU移出数据到AT24Cxx;传入参数:R7-要移出的数据;返回值:C-AT24Cxx的应答位USING0CLR AMOV R6,ASHOUT_LP:MOV A,R7;循环移入8个位RLC AMOV SDA,CNOP SETB SCLNOP NOP CLR SCLMOV A,R7ADD A,ACCMOV R7,AINC R6CJNE R6,#08
9、H,SHOUT_LP;共8位,判断是否完成SETB SDA;读取应答NOP NOP SETB SCLNOP NOP NOP MOV C,SDA;保存应答位到CCLR SCLRET,READ_RANDOM:;在指定地址读取;传入参数:R7-地址;返回值:R7-读入的数据USING0MOV R5,AR7;暂存地址LCALLSTARTMOV R7,#OP_WRITE;写入器件地址和写入命令LCALLSHOUTMOV R7,AR5;写入地址LCALLSHOUTLCALLREAD_CURRENT;在当前地址读取RET,READ_CURRENT:;在当前地址读取;传入参数:无;返回值:R7-读出的数据US
10、ING0LCALLSTARTMOV R7,#OP_READ;写入器件地址和读取命令LCALLSHOUTLCALLSHIN;读取数据,保存在R7LCALLSTOPRET,WRITE_BYTE:;在指定地址写入数据;传入参数:R7-写入数据的地址;传入参数:R5-要写入的数据;返回值:无USING0MOV R4,AR7LCALLSTARTMOV R7,#OP_WRITE;写入器件地址和写命令LCALLSHOUTMOV R7,AR4;地址LCALLSHOUTMOV R7,AR5;数据LCALLSHOUTLCALLSTOPMOV R7,#10;写入周期,延时10msLCALLDELAYMS,2、利用S
11、PI扩展E2PROM,SPI是三线总线结构的一个同步外围接口,允许单片机与各种外围设备以串行方式进行通讯。特点:,主从机工作方式;,可程控的主机位传送频率、时钟极性和相位;,发送完成中断标志;,写冲突保护标志。,全双工、三线同步传送;,在SPI设置为主机方式时,MISO是主机的数据输入线,MOSI是主机的数据输出线;设置为从机时,MISO是从机的数据输出线,MOSI是从机的数据输入线。,(1)、串行数据线(MISO,MOSI),主机输入/从机输出数据线MISO和主机输出/从机输入数据线MOSI,用于串行数据的发送和接收。数据发送时,先传高位,后传低位。,(2)、串行时钟线SCLK,串行时钟线用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 串行 扩展

链接地址:https://www.desk33.com/p-246753.html