1、1第第9 9章章 MCS-51MCS-51扩展扩展I/OI/O接口设计接口设计 在单片机的I/O口线不够用的情况下,可以借助外部器件对I/O口进行扩展。可供选用的器件很多,方案也有多种。 (1)并行总线扩展的方法 (2)串行口扩展方法 (3)I/O端口模拟串行方法I/O接口是接口是MCS-51与外设交换数字信息的与外设交换数字信息的桥梁桥梁。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计29.1 I/O9.1 I/O接口并行扩展概述接口并行扩展概述I/OI/O接口电路应满足以下要求:接口电路应满足以下要求:1.1.实现和不同外设的速度匹配实现和不同外设的速度匹配2.
2、2. 输出数据锁存输出数据锁存I/OI/O电路应具有数据锁存器,以保证接收设备接收。电路应具有数据锁存器,以保证接收设备接收。3. 3. 输入数据三态缓冲输入数据三态缓冲 数据总线可数据总线可“挂挂”有多个数据源有多个数据源,为不发生冲,为不发生冲突,突,只允许当前时刻正在进行数据传送的数据源使只允许当前时刻正在进行数据传送的数据源使用数据总线,其余的数据源应处于隔离状态。用数据总线,其余的数据源应处于隔离状态。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计3I/O数据的几种传送方式数据的几种传送方式 为实现和不同的外设的速度匹配,为实现和不同的外设的速度匹配,I/O
3、I/O接口必须接口必须根据不同外设选择恰当的根据不同外设选择恰当的I/OI/O数据传送方式。数据传送方式。 I/O I/O数据传送的几种传送方式是:数据传送的几种传送方式是:(1 1)同步传送)同步传送(2 2)查询传送)查询传送(3 3)中断传送。)中断传送。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计4I/O接口和接口和I/O端口端口I/OI/O端口:端口:简称简称I/OI/O口,指具有端口地址的寄存器或口,指具有端口地址的寄存器或 缓冲器。缓冲器。I/OI/O接口:接口:是指单片机与外设间的是指单片机与外设间的I/OI/O接口芯片。接口芯片。一个一个I/OI/
4、O接口芯片可以有多个接口芯片可以有多个I/OI/O端口:端口:(1 1)数据口数据口(2 2)命令口命令口(3 3)状态口状态口I/OI/O端口编址端口编址是给所有是给所有I/OI/O接口中的寄存器接口中的寄存器编址编址。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计5并行总线扩展并行总线扩展I/OI/O接口接口 访问扩展I/O口的方法与访问数据存储器完全相同,使用相同的指令,所有扩展的I/O口与片外数据存储器统一编址。利用并行总线扩展的方法扩展外部并行I/O口时,必须注意P0, P2口的负载问题,若负载能力不够,必须进行总线驱动能力扩展。扩展外部并行I/O口对外设的
5、硬件具有依赖性(驱动功率、电平匹配、干扰抑制、隔离等)。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计64.3.3 可编程并行可编程并行I/O接口接口第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计7第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计88255A应用实例应用实例第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计98255A8255A各端口的地址各端口的地址w A口:0111 1111 1111 1100B 7FFCHw B口:0111 1111 1111 1101B 7FFDHw C口
6、:0111 1111 1111 1110B 7FFEHw 控制 :0111 1111 1111 1111B 7FFFH第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计1082558255的应用的应用例:从8255A的A口读入数据,送到8255A的B口输出解:MOV DPTR ,#7FFFH MOV A,#90H ; MOVX DPTR,A MOV DPTR,#7FFCH MOVX A , DPTR MOV DPTR, #7FFDH MOVX DPTR,A第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计119.4 用锁存器或缓冲器扩展并行用锁存器或
7、缓冲器扩展并行I/O口口 利用TTL或CMOS电路的缓冲驱动器(74244、74245)和锁存器(74273、74373、74377),通过P0口构成各种类型的输入/输出口。 这些类型的芯片具有数据缓冲或锁存功能,但没有地址线和读写控制线,仅有数据输入/输出线和选通控制端。因此这类芯片扩展并行I/O口的方法与扩展数据存储器不同。其选通端选通端应由地址地址线和控制线线和控制线的组合控制。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计12扩展并行输出口扩展并行输出口带数据使能端正边沿触发的高速带数据使能端正边沿触发的高速 D触发器触发器 74377第第9 9章章 MCS-
8、51MCS-51扩展扩展IOIO接口设计接口设计13扩展并行输出口扩展并行输出口三态正边沿触发的高速三态正边沿触发的高速 D触发器触发器 74374第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计14P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0WRRDDDDDDDDDQQQQQQQQ0123456701234567DDDDDDDDQQQQQQQQ0123456701234567CLRKKKKKKKK01234567+5VLED0LED1LED2LED3LED4LED5LED6LED711G1803174LS27374LS244G2CP第第9
9、9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计15第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计169.5 用用MCS-51的串行口扩展并行口的串行口扩展并行口第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计17用用74LS164扩展并行输出口扩展并行输出口例例9-8 9-8 编写将内部编写将内部RAMRAM单元单元30H30H、31H31H的内容经串行口的内容经串行口 由由74LS16474LS164并行输出子程序。并行输出子程序。START: MOV R7,#02HSTART: MOV R7,#02H;设置要发送的字节个数
10、;设置要发送的字节个数 MOV R0,#30HMOV R0,#30H;设置地址指针;设置地址指针 MOV SCON,#00H MOV SCON,#00H ;设置串行口为方式;设置串行口为方式0 0SENDSEND: MOV A,R0MOV A,R0 MOV SBUF,A MOV SBUF,A ;启动串行口发送过程;启动串行口发送过程WAIT:WAIT: JNB TI,WAIT JNB TI,WAIT ;1 1帧数据未发完,循环等待帧数据未发完,循环等待 CLR TICLR TI INC R0 INC R0 ;取下一个数;取下一个数 DJNZ R7,SENDDJNZ R7,SEND ;未完,发完
11、从子程序返回;未完,发完从子程序返回 RETRET第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计18用用74LS165扩展并行输入口扩展并行输入口例例9-7 9-7 从从1616位扩展口读入位扩展口读入5 5组数据(每组二个字节),组数据(每组二个字节),并把它们转存到内部并把它们转存到内部RAM 20HRAM 20H开始的单元中。开始的单元中。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计19MOV R7,#05H MOV R7,#05H ;设置读入组数;设置读入组数MOV R0,#20H MOV R0,#20H ;设置内部;设置内部RAM
12、RAM数据区首址数据区首址START: CLR P1.0START: CLR P1.0;并行置入数据,;并行置入数据,S/LS/L* *=0=0 SETB P1.0 SETB P1.0;允许串行移位,;允许串行移位,S/LS/L* *=1=1 MOV R1,#02H MOV R1,#02H;设置每组字节数,即外扩;设置每组字节数,即外扩 ;74LS16574LS165的个数的个数RXDAT: MOV SCON,#10H RXDAT: MOV SCON,#10H ;设串口方式;设串口方式0 0,允许接收,启动,允许接收,启动WAIT: JNB RI,WAIT WAIT: JNB RI,WAIT
13、;未接收完一帧,循环等待;未接收完一帧,循环等待CLR RICLR RI ;清;清RIRI标志,准备下次接收标志,准备下次接收MOV A,SBUFMOV A,SBUF;读入数据;读入数据MOV R0,AMOV R0,A;送至;送至RAMRAM缓冲区缓冲区INC R0INC R0;指向下一个地址;指向下一个地址DJNZ R1,RXDAT DJNZ R1,RXDAT ;未读完一组数据,继续;未读完一组数据,继续DJNZ R7,STARTDJNZ R7,START;5 5组数据未读完重新并行置入组数据未读完重新并行置入 ;对数据进行处理;对数据进行处理第第9 9章章 MCS-51MCS-51扩展扩展
14、IOIO接口设计接口设计20串行扩展总线接口技术串行扩展总线接口技术一、串行扩展特点:一、串行扩展特点: 最大程度发挥最小系统的资源功能最大程度发挥最小系统的资源功能。 简化连接线路,缩小印板面积简化连接线路,缩小印板面积。 扩展性好,可简化系统的设计扩展性好,可简化系统的设计。 串行扩展的缺点串行扩展的缺点: : 数据吞吐容量较小,信号传输速度较慢,但数据吞吐容量较小,信号传输速度较慢,但随着随着CPUCPU芯片工作频率的提高,以及串行扩展芯片芯片工作频率的提高,以及串行扩展芯片功能的增强,这些缺点将逐步淡化。功能的增强,这些缺点将逐步淡化。第第9 9章章 MCS-51MCS-51扩展扩展I
15、OIO接口设计接口设计21串行扩展总线接口技术串行扩展总线接口技术二、串行扩展方式分类:二、串行扩展方式分类:1 1、一线制一线制一线制的典型代表为一线制的典型代表为DallasDallas公司推出的单总线(公司推出的单总线(1-1-wirewire)。)。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计22串行扩展总线接口技术串行扩展总线接口技术2 2、二线制:二线制: 二线制的典型代表为二线制的典型代表为philipsphilips公司推出的公司推出的I I2 2C C总线(总线(SMBusSMBus)。)。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接
16、口设计接口设计23串行扩展总线接口技术串行扩展总线接口技术 由由MotoralaMotorala公司推出的公司推出的SPISPI(Serial Serial peripheral Interfaceperipheral Interface);); 由由NSNS公司推出的公司推出的Micro wire/PLUSMicro wire/PLUS。3 3、三线制三线制第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计24串行扩展总线接口技术串行扩展总线接口技术虚拟串行扩展概念虚拟串行扩展概念: 用通用用通用I/OI/O口来模拟串行接口,构成虚拟口来模拟串行接口,构成虚拟的串行扩展
17、接口。的串行扩展接口。只要严格控制模拟同步信只要严格控制模拟同步信号,并满足串行同步数据传送的时序要求,号,并满足串行同步数据传送的时序要求,就可满足串行数据传送的可靠性要求。就可满足串行数据传送的可靠性要求。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计25I2C总线总线w I2C总线是一种具有自动寻址、高低速设备同步和仲裁等功能的高性能串行总线,能够实现完善的全双工数据传输。w I2C总线只有两根信号线:数据线SDA和时钟线SCL。w 各节点供电可以不同,但需共地,另外SDA和SCL需分别接上拉电阻。uI2C总线传输速率为100 kb/s(改进后的规范为400 k
18、b/s),总线驱动能力为400 pF。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计26I2C总线总线第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计27一、一、I I2 2CC总线的接口电路结构总线的接口电路结构 I2C总线由数据线SDA和时钟线SCL构成。SDA和SCL都是双向传输线,平时均处于高电平备用状态,只有当需要关闭I2C总线时,SCL线才会箝位在低电平。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计28二、二、I I2 2CC总线信号定义总线信号定义第第9 9章章 MCS-51MCS-51扩展扩展IOIO
19、接口设计接口设计29三、三、 I I2 2C C总线的数据传送总线的数据传送第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计30三、三、I I2 2C C总线的数据传送总线的数据传送 应答信号在第9个时钟位上出现,接收器在SDA线上输出低电平为应答信号(A),输出高电平为非应答信号(A)。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计31三、三、I I2 2C C总线的数据传送总线的数据传送 当主控器作为接收器接收被控器送来的最后一个数据时,必须给被控器发送一个非应答信号(A),令被控器释放SDA线,以便主控器可以发送停止信号来结束数据的传输。
20、I2C总线上的应答信号是比较重要的,在编制程序时应该着重考虑。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计32四、四、I I2 2C C总线数据传输协议总线数据传输协议总线节点的寻址字节:总线节点的寻址字节: 主机产生起始信号后,发送的第一个字节为寻址字节。该字节的头7位(高7位)为从机地址,最后位(LSB)决定了报文的方向:0表示主机写信息到从机,1表示主机读从机中的信息。 当发送了一个地址后,系统中每个器件都将头7位与自己的地址比较,如果一样器件会应答主机的寻址,至于是接收还是发送由R/W位决定。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接
21、口设计33四、四、I I2 2C C总线数据传输协议总线数据传输协议 从机地址由一组固定位和一组可编程位部分构从机地址由一组固定位和一组可编程位部分构成。例如,某些器件有成。例如,某些器件有4 4个固定的位(高个固定的位(高4 4位)和位)和3 3个可编程的地址位(低个可编程的地址位(低3 3位),那么同一总线上共位),那么同一总线上共可以连接可以连接8 8个相同的器件。个相同的器件。器件地址SLAR/WA0A1 A2DA0DA1DA2DA3D7 D0 从机地址和从机地址和1 1位方向位构成了位方向位构成了I I2 2C C总线器件的总线器件的寻址字节寻址字节SLASLA。引脚地址第第9 9章
22、章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计34I I2 2C C总线数据传输协议总线数据传输协议种类种类型号型号SLASLA引脚地址备注引脚地址备注静态静态RAMRAMPCF8570/71PCF8570/711010 A2 A1 A0 R/ W1010 A2 A1 A0 R/ W3 3位数字引脚地址位数字引脚地址A2A1A0A2A1A0PCF8570CPCF8570C1011 A2 A1 A0 R/ W1011 A2 A1 A0 R/ W3 3位数字引脚地址位数字引脚地址A2A1A0A2A1A0E E2 2PROMPROMPCF8582PCF85821010 A2 A1 A0
23、 R/ W1010 A2 A1 A0 R/ W3 3位数字引脚地址位数字引脚地址A2A1A0A2A1A0AT24C02AT24C021010 A2 A1 A0 R/ W1010 A2 A1 A0 R/ W3 3位数字引脚地址位数字引脚地址A2A1A0A2A1A0AT24C04AT24C041010 A2 A1 P0 R/ W1010 A2 A1 P0 R/ W2 2位数字引脚地址位数字引脚地址A2A1A2A1AT24C08AT24C081010 A2 P1 P0 R/ W1010 A2 P1 P0 R/ W1 1位数字引脚地址位数字引脚地址A2A2AT24C016 AT24C016 1010
24、P2 P1 P0 R/ W1010 P2 P1 P0 R/ W无引脚地址,无引脚地址,A2A1A0A2A1A0悬空处理悬空处理I/OI/O口口PCF8574PCF85740100 A2 A1 A0 R/ W0100 A2 A1 A0 R/ W3 3位数字引脚地址位数字引脚地址A2A1A0A2A1A0PCF8574APCF8574A0111 A2 A1 A0 R/ W0111 A2 A1 A0 R/ W3 3位数字引脚地址位数字引脚地址A2A1A0A2A1A0LED/LCDLED/LCD驱动控制器驱动控制器SAA 1064SAA 10640111 0 A1 A0 R/ W0111 0 A1 A0
25、 R/ W2 2位数字引脚地址位数字引脚地址A1A0A1A0PCF8576PCF85760111 0 0 A0 R/ W0111 0 0 A0 R/ W1 1位数字引脚地址位数字引脚地址A0A0PCF8578/79PCF8578/790111 1 0 A0 R/ W0111 1 0 A0 R/ W1 1位数字引脚地址位数字引脚地址A0A0ADC/DACADC/DACPCF8951PCF89511001 A2 A1 A0 R/ W1001 A2 A1 A0 R/ W3 3位数字引脚地址位数字引脚地址A2A1A0A2A1A0日历时钟日历时钟PCF8583PCF85831010 0 0 A0 R/
26、W1010 0 0 A0 R/ W1 1位数字引脚地址位数字引脚地址A0A0第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计35I I2 2C C总线数据传输的格式总线数据传输的格式地址字节和数据字节都是高位在前,低位在后。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计36I I2 2C C总线数据传输的格式总线数据传输的格式(1) 主控器的写数据操作格式主控器的写数据操作格式Adata2Adata1ASLAWSAdata2Adata1ASLAWSPAdataNAdataN1PA /AdataNAdataN1(2)主控器的读数据操作格式主控器的
27、读数据操作格式Adata2Adata1ASAdata2Adata1ASLARSAdataNAdataN1PAdataNAdataN1 无论哪种工作方式,都是由主控器来启动总线,发送寻址字节和终止运行;在I2C总线接口的外围器件中,器件内部有多个地址空间时,其读写操作都有地址自动加 1功能 。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计37五、五、5151单片机与单片机与I I2 2C C总线的接口总线的接口第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计38六、六、I I2 2C C总线数据传送软件包总线数据传送软件包 MCS-51MCS-5
28、1只能采用虚拟只能采用虚拟I I2 2C C总线方式,并且总线方式,并且只能用于单主系统,虚拟只能用于单主系统,虚拟I I2 2C C总线接口可用通总线接口可用通用用I/OI/O口中任一端线充任,数据线定义为口中任一端线充任,数据线定义为SDASDA,时钟线定义为时钟线定义为SCLSCL。 MCS-51 MCS-51单主系统虚拟单主系统虚拟I I2 2C C总线软件包由二总线软件包由二大类共大类共9 9个归一化子程序组成。二大类程序分个归一化子程序组成。二大类程序分别为别为典型信号模拟子程序典型信号模拟子程序和和数据传送通用子数据传送通用子程序。程序。第第9 9章章 MCS-51MCS-51扩
29、展扩展IOIO接口设计接口设计391 1、典型信号模拟子程序、典型信号模拟子程序 I2C总线数据传送时,有起始位(S)、终止位(P)、发送0代表应答位(A)、发送1代表非应答位(A)等信号。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计40主程序主程序在主程序初始化中,应有如下的语句: SDABITP1.7SCLBITP1.6MTDEQU30H ;MTD发送数据缓冲区首址MRDEQU40H ;MRD接收数据缓冲区首址SLAEQU60H ;SLA寻址字节SLAR/W的存放单元 NUMBYT EQU 61H ;NUMBYT传送字节数存放单元第第9 9章章 MCS-51MC
30、S-51扩展扩展IOIO接口设计接口设计411 1) 启动启动I I2 2C C总线子程序总线子程序STASTA:STA: STA: SETB SDA SETB SCL ;起始条件建立时间大于4.7 s NOP NOP CLR SDA NOP ;起始条件锁定时间大于4 s NOP CLR SCL ;箝住总线,准备发送数据 RET第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计422) 2) 停止停止I I2 2C C总线子程序总线子程序STOPSTOPSTOP: CLR SDA SETB SCL ;发送停止条件的时钟信号 NOP ;停止总线时间大于4 s NOP SET
31、B SDA ;停止总线 NOP NOP CLR SDA CLR SCL RET第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计433) 发送应答位信号子程序发送应答位信号子程序MACKMACK: CLR SDA SETB SCL NOP ; 即SCL为高,时间大于4.0 s NOP CLR SCL SETB SDA RET第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计444) 发送非应答位信号子程序发送非应答位信号子程序MNACKMNACK: SETB SDA SETB SCL NOP NOP CLR SCL CLR SDA RET第第9 9章
32、章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计452 2、I I2 2C C总线数据传送的模拟子程序总线数据传送的模拟子程序 I2C总线的数据操作除了基本的启动(STA)、终止(STOP)、发送应答位(MACK)、发送非应答位(MNACK)外,还应有应答位检查(CACK)、发送一字节(WRBYT)、接收一字节(RBYT)、发送N字节(WRNBYT)和接收N字节(RDNBYT)这5个子程序。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计46(1) 应答位检查子程序应答位检查子程序CACKCACK:SETB SDA ;置SDA为输入方式 SETB SCL ;
33、使SDA上数据有效 CLR F0 ;预设F0=0 MOV C,SDA ;输入SDA引脚状态 JNC CEND ;正常应答转CEND,且F0=0 SETB F0 ;无正常应答,F0=1CEND:CLR SCL ;子程序结束,使SCL=0 RET用F0作标志位,正常应答位后,F0=0;否则F0=1。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计47(2) 发送一字节数据子程序发送一字节数据子程序WRBYT初始化要发送的位送C1 or 0?送“1”送“0”8位送完?RET10NY第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计48w 调用该子程序前,
34、将要发送的数据送入A中。占用资源R0、C。WRBYT:MOV R0,#08HWLP :RLC A JC WR1 AJMP WR0WLP1: DJNZ R0,WLP RETWR1: SETB SDA SETB SCL NOP NOPCLR SCLCLR SDAAJMP WLP1WR0:CLR SDA SETB SCLNOPNOPCLR SCLAJMP WLP1第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计49(3)从)从SDA上接收一字节数据子程序上接收一字节数据子程序RDBYT初始化自SDA接收1位送C8位收完?RETNY送C中位to A使SCL=0,继续收第第9 9
35、章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计50(3)从)从SDA上接收一字节数据子程序上接收一字节数据子程序RDBYT从SDA上读取的一字节存放在R2或A中。占用资源 R0、R2和C。RDBYT:MOV R0,#08HRLP: SETB SDA SETB SCL NOP MOV C,SDA MOV A,R2 RLC A MOV R2,A CLR SCL NOP DJNZ R0,RLP RET第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计51(4) 向被控器发送向被控器发送N字节数据子程字节数据子程WRNBYT 在使用本子程序时,须调用STA、STO
36、P、WRBYT和CACK子程序,而且应在片内RAM中分配好这些地址。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计52(4) 向被控器发送向被控器发送N字节数据子程字节数据子程WRNBYT初始化启动I2C总线应答位?发送数据初始化NY送地址字节检查应答位发送一字节应答位?YN发送完?Y发送停止位N第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计53WRNBYT:MOV R3,NUMBYTLCALL STAMOV A,SLALCALL WRBYTLCALL CACKJB F0,WRNBYTMOV R1,#MTDWRDA:MOV A,R1LCALL
37、 WRBYTLCALL CACKJB F0,WRNBYTINC R1DJNZ R3,WRDALCALL STOPRET第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计54(5)从外围器件读取从外围器件读取N字节数据子程序字节数据子程序RDNBYT第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计55(5)从外围器件读取从外围器件读取N字节数据子程序字节数据子程序RDNBYT初始化启动I2C总线应答位?接收缓冲器初始化NY送地址字节检查应答位接收一字节接收完?N发送应答位Y发送非应答位、停止位第第9 9章章 MCS-51MCS-51扩展扩展IOIO接
38、口设计接口设计56RDNBYT:MOV R3,NUMBYT LCALL STA MOV A,SLAR LCALL WRBYT LCALL CACK JB F0,RDNBYTRDN: MOV R1,#MRD RDN1: LCALL RDBYT MOV R1,A DJNZ R3,ACK LCALL MNACK LCALL STOP RETACK: LCALL MACK INC R1 SJMP RDN1第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计57I2C总线接口的数码管驱动芯片总线接口的数码管驱动芯片SAA1064第第9 9章章 MCS-51MCS-51扩展扩展IOIO
39、接口设计接口设计58第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计59第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计60I2C总线接口的数码管驱动芯片总线接口的数码管驱动芯片SAA1064引脚引脚ADRADR模拟电平模拟电平引脚引脚ADRADR数字化数字化从地址从地址寻址命令寻址命令A1A1A0A0D7D7D6D6D5D5D4D4D3D3A1A1A0A0R/WR/W写写读读GNDGND(0V0V)0 00 00 01 11 11 10 00 00 01/01/070H70H71H71H3/8 VCC3/8 VCC0 01 10 01 11 1
40、1 10 00 01 11/01/072H72H73H73H5/8 VCC5/8 VCC1 10 00 01 11 11 10 01 10 01/01/074H74H75H75HVCC(5V)VCC(5V)1 11 10 01 11 11 10 01 11 11/01/076H76H77H77H第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计61I2C总线接口的数码管驱动芯片总线接口的数码管驱动芯片SAA1064第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计62I2C总线接口的数码管驱动芯片总线接口的数码管驱动芯片SAA1064 SC位、SB位
41、和SA位构成一个指针,用于装入控制字节和4个显示段码(字形码),且子地址自动增量(AI),主控器对其可快速初始化。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计63I2C总线接口的数码管驱动芯片总线接口的数码管驱动芯片SAA1064控制字节各位功能说明:控制字节各位功能说明:C0=0,静态模式,即连续显示数字位1和数字位2。C0=1,动态模式,即变换显示数字位1+3和数字位2+4。C1=0/1,数字位1+3为空/不空。C2=0/1,数字位2+4为空/不空。C3=1,所有段输出打开以进行段测试。C4=1,段输出电流加3mA。C5=1,段输出电流加6mA。C6=1,段输出
42、电流加12mA。 第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计64I2C总线接口的数码管驱动芯片总线接口的数码管驱动芯片SAA1064SAA1064的写数据操作格式为:SLA:SAA1064写命令SLAW;00H:首地址;COM:控制命令数据;LED1-LED4:4个显示位的共阳极段选码数据 第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计654.6 总线接口扩展 总线种类繁多,可分为局部总线、系统总线和通信总线。通信总线是系统之间或CPU与外设之间进行通信的一组信号线。通信总线通信总线接口按电气标准及协议来分包括RS-232、RS-422、
43、RS-485、MODEM、USB、IEEE 1394、CAN、Internet网络芯片等,它们在不同的领域得到了广泛的应用。这里主要介绍MCS-51单片机应用系统中常用的通信总线标准及接口。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计664.6.1 RS-232C4.6.1 RS-232C总线标准与接口电路总线标准与接口电路 EIA RS-232C是异步串行通信中应用最广泛的标准总线,是美国EIA(Electronic Industries Association,电子工业联合会)开发公布的通信协议。适合于数据传输速率在020kb/s范围内的通信,包括了按位串行传输
44、的电气和机械方面的规定。在微机通信接口中被广泛采用。 第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计674.6.1 RS-232C4.6.1 RS-232C总线标准与接口电路总线标准与接口电路1. 电气特性(1)采取不平衡传输方式,是为点对点(即只用一对收、发设备)通信而设计的;(2)采用负逻辑。(3)适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计684.6.1 RS-232C4.6.1 RS-232C总线标准与接口电路总线标准与接口电路DSR:数据装置准备好; DT
45、R:数据终端准备好;RTS:请求发送; CTS:允许发送;DCD:接收线信号检出; RI:振铃指示;TXD:发送数据; RXD:接收数据; SGND、PGND:地线,SGND(信号地)、PGND(保护地)。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计694.6.1 RS-232C4.6.1 RS-232C总线标准与接口电路总线标准与接口电路4电平转换电平转换 RS-232C采用负逻辑,为了能够同计算机接口或终端的TTL器件连接,必须在RS-232C与TTL电路之间进行电平和逻辑关系的变换。 M A X 2 3 2 芯 片 是Maxim公司生产的低功耗、单电源、双RS
46、-232发送/接收器,可实现TTL到EIA的双向电平转换。其引脚排列如下图所示。 第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计70EIA RS-232CEIA RS-232C与单片机系统的接口与单片机系统的接口第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计714.6.2 RS-422/RS-4854.6.2 RS-422/RS-485总线标准与接口电路总线标准与接口电路1. RS-4221. RS-422串行总线标准串行总线标准 RS-422由RS-232发展而来,是一种单机发送、多机接收的单向、平衡的通信总线标准。传输速率可达10Mb/s
47、,传输距离延长到1220m(速率低于100kb/s时),并允许在一条平衡总线上最多连接10个接收器。2. RS-4852. RS-485串行总线标准串行总线标准 EIA在RS-422的基础上制定了RS-485标准,增加了多点、双向通信能力。RS-485总线标准采用平衡发送和差分接收,能检测低至200mV的电压,具有抑制共模干扰的能力,数据传输可达千米以上。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计724.6.2 RS-422/RS-4854.6.2 RS-422/RS-485总线标准与接口电路总线标准与接口电路3. 3. 平衡传输平衡传输 RS-422, RS-4
48、85的数据信号采用差分传输方式,也称做平衡传输,它使用一对双绞线,将其中一条线定义为A,另一条线定义为B。 收、发端通过平衡双绞线将AA与BB对应相连,当在接收端AB之间有大于200mV的电平时,输出逻辑1,小于200mV时,输出逻辑0。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计734.6.2 RS-422/RS-4854.6.2 RS-422/RS-485总线标准与接口电路总线标准与接口电路电气特性:电气特性:RS-485标准采用正逻辑,1.5V6V表示“1”,6V1.5V表示“0”,二线双端半双工差分电平发送与接收,传输距离1.2km,最高数据传输速率可达10Mb/s功能与规程特性:功能与规程特性:网络媒介采用双绞线、同轴电缆或光纤,安装简易,电缆数量、连接器、中继器、滤波器使用数量较少(每个中继器可延长线路1.2km),网络成本低廉。第第9 9章章 MCS-51MCS-51扩展扩展IOIO接口设计接口设计744.6.2 RS-422/RS-4854.6.2 RS-422/RS-485总线标准与接口电路总线标准与接口电路 单片机与RS-485总线标准之间必须进行转换,常用的转换芯片有MAX485, SN5176等。MAX485芯片是MAXIM公司的电平转换芯片,其引脚如右图所示。