51单片机(汇编)教学课件第8章_第1页
51单片机(汇编)教学课件第8章_第2页
51单片机(汇编)教学课件第8章_第3页
51单片机(汇编)教学课件第8章_第4页
51单片机(汇编)教学课件第8章_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第8章 单片机原理与控制技术 第1页,共38页。第8章 80C51串行扩展技术 本章要点: 串行扩展特点 串行扩展方式分类 虚拟串行扩展慨念 移位寄存器串行扩展方式 80C51 I/O虚拟串行接口 I2C总线串行扩展技术 I2C总线扩展I/O口通用器件PCF8574 虚拟I2C总线扩展AT24CXX系列E2PROM第2页,共38页。8-1 串行扩展概述 一、串行扩展特点 最大程度发挥最小系统的资源功能。 原来由并行扩展占用的P0口、P2口资源, 直接用于I/O口。 简化连接线路,缩小印板面积。 扩展性好,可简化系统的设计。 串行扩展的缺点: 数据吞吐容量较小,信号传输速度较慢, 但随着CPU芯

2、片工作频率的提高,以及串行扩展芯片功能的增强,这些缺点将逐步淡化。 第3页,共38页。 二、串行扩展方式分类1、一线制一线制的典型代表为Dallas公司推出的单总线(1-wire)。第4页,共38页。2、二线制 二线制的典型代表为philips公司推出的I2C总线(Intel Integrated Circuit BUS)。 第5页,共38页。3、三线制 三线制(不包括片选线)主要有两种: 由Motorala公司推出的SPI(Serial peripheral Interface); 由NS公司推出的Micro wire /PLUS。 第6页,共38页。 SPI的时钟线是SCK,数据线MOSI

3、(主发从收)、MOSO(主收从发),主从器件的MOSI和MOSO是同名端相连。 Micro wire /PLUS的时钟线是SK,数据线为SI和SO,但SI、SO依照主器件的数据传送方向而定,主器件的SO与所有扩展器件数据输入端DI或SI相连;主器件的SI与所有扩展器件数据输出端DO或SO相连。 由于该两类器件无法通过数据传输线寻址,因此,必须由MCU I/O线单独寻址,连到扩展器件的片选端CS(若只扩展一片,可将扩展芯片CS接地)。第7页,共38页。 4、80C51 移位寄存器串行扩展 80C51的UART(Universal Asynohronous Receiver/Transmitter

4、)有4种工作方式,其中方式0为同步移位寄存器工作方式,通过移位寄存方式,可将串行数据并行输出,也可以将并行数据串行输入。第8页,共38页。 三、虚拟串行扩展概念 用通用I/O口来模拟串行接口,构成虚拟的串行扩展接口。只要严格控制模拟同步信号,并满足串行同步数据传送的时序要求,就可满足串行数据传送的可靠性要求。第9页,共38页。 8-2 80C51移位寄存器 串行扩展技术一、移位寄存器串行扩展方式 80C51串行方式0时,串行口作为同步移位寄存器使用。TXD端(P3.1)发出移位脉冲,频率为fosc/12,RXD端(P3.0)输入输出数据。第10页,共38页。 1、80C51扩展并行输出口 74

5、LS164为串入并出移位寄存器,其中A、B为串行数据输入端,QA、QB、QH为并行数据输出端(QA为高位),CLK为同步时钟输入端,CLR为输出清0端。若不需将输出数据清0,则CLR端接Vcc。第11页,共38页。 2、80C51扩展并行输入口 74LS165为并入串出移位寄存器,A、B、H为并行输入端(A为高位),QH为串行数据输出端,SER为串行数据输入端,CLK为同步时钟输入端,S/L为预置控制端。S/L=0时,锁存并行输入数据;S/L=1时,可进行串行移位操作。第12页,共38页。 二、串行方式0归一化子程序 所谓归一化子程序,即通用或标准化操作子程序,将80C51串行方式0所有应用操

6、作归纳成几个基本的输入输出子程序,并使这些标准子程序具有规范的入口条件和出口状态。应用时,只要设置相应的入口和出口,调用归一化子程序,就能达到串行输入输出的目的。 80C51串行方式0归一化子程序: 单字节串行输出子程序 单字节串行输入子程序 多字节串行输出子程序 多字节串行输入子程序第13页,共38页。 三、80C51 I/O虚拟串行接口 利用80C51通用I/O口虚拟移位寄存器工作方式实现串行扩展,只需用任一通用I/O口代替RXD和TXD,设为VRXD和VTXD。 80C51虚拟串行I/O口归一化子程序: 单字节虚拟串行输出子程序 单字节虚拟串行输入子程序 多字节虚拟串行输出子程序 多字节

7、虚拟串行输入子程序第14页,共38页。四、移位寄存器串行扩展应用 80C51移位寄存器串行扩展应用,只需根据标准化的电路形式连接,设置好入口条件,然后调用串行方式0归一化子程序或虚拟串行接口归一化子程序,即可完成扩展应用. 第15页,共38页。 【例8-1】电路如图8-5所示,fosc = 12MHz,要求发光二极管从左向右依次点亮,点亮时间为1秒,不断循环。设串行方式0归一化子程序已存在ROM中。第16页,共38页。 解: PIOX1 BIT P1.0 ;定义PIOX1WORK: MOV A,#10000000B ;置D7灯亮,其余暗LOOP: CLR PIOX1 ;74LS164输出全0,

8、灯全暗 LCALL UART0 ;调用单字节串行输出子程序 LCALL DLY1s ;调用延时1秒子程序(略) RR A ;右移 SJMP LOOP ;第17页,共38页。 【例8-2】 电路如图8-6所示,fosc=12MHz,要求每隔10ms,检测键K0K7状态,并存入内RAM 2FH。设虚拟串行接口归一化子程序已存在ROM中。第18页,共38页。 解: ORG 0000H ;复位地址 LJMP STAT ;转初始化程序 ORG 000BH ;T0中断入口地址 LJMP IT0 ;转T0中断服务子程序 VRXD BIT P1.0 ;P1.0虚拟RXD VTXD BIT P1.1 ;P1.1

9、虚拟TXD PIOX2 BIT P1.2 ;P1.2虚拟PIOX2 ORG 0100H ;初始化程序首地址STAT: MOV TMOD,#01H ;置T0定时器方式1 MOV TH0,#0D8H ;置T0定时初值10ms MOV TL0,#0F0H ; SETB TR0 ;启动T0 SETB ET0 ;T0开中 SETB EA ;CPU开中 LJMP WORK ;转主程序并等待T0中断 ORG 1000H ;T0中断服务子程序首地址IT0: MOV TH0,#0D8H ;重置T0定时初值10ms MOV TL0,#0F0H ; PUSH Acc ;保护现场 PUSH PSW ;INPUT: L

10、CALL VUARTI ;调用虚拟串行输入子程序 MOV 2FH,A ;存键K0K7状态数据 POP PSW ;恢复现场 POP Acc ; RETI ;第19页,共38页。8-3 I2C总线串行扩展技术一、I2C总线串行扩展概述1、扩展连接方式 第20页,共38页。 具有I2C总线结构的器件,不论SRAM、E2PROM、ADC/DAC、I/O口或MCU,均可通过SDA、SCL连接(同名端相连)。 无I2C 总线结构的器件,如LED/LCD显示器、键盘、码盘、打印机等也可通过具有I2C总线结构的I/O接口电路成为串行扩展器件。第21页,共38页。 2、器件寻址方式 具有I2C总线结构的器件在器

11、件出厂时已经给定了器件的地址编码。 I2C总线器件地址SLA格式如下: DA3DA0 4位器件地址是I2C总线器件固有的地址编码,器件出厂时就已给定,用户不能自行设置。 A2A1A0 3位引脚地址用于相同地址器件的识别。若I2C总线上挂有相同地址的器件,或同时挂有多片相同器件时,可用硬件连接方式对3位引脚A2A1A0接Vcc或接地,形成地址数据。 R/W 数据传送方向。R/W=1时,主机接收(读); R/W=0时,主机发送(写)。第22页,共38页。 3、接口电气结构 I2C总线端口输出为开漏结构,总线上必须外接上拉电阻Rp,其阻值通常可选510K。4、总线驱动能力 由于I2C总线器件均为CM

12、OS器件,总线具有足够的电流驱动能力。 I2C总线的电容负载能力为400 pF(通过驱动扩展可达4000pF)。 I2C总线传输速率为100Kb/s(改进后的规范为400 Kb/s)。第23页,共38页。5、I2C总线时序 一次完整的数据传送过程应包括:起始(S)、发送寻址字节(SLA R/W)、应答、发送数据、应答、发送数据、应答、终止(P)。第24页,共38页。 三、80C51单主系统虚拟I2C总线软件包 80C51只能采用虚拟I2C总线方式,并且只能用于单主系统,虚拟I2C总线接口可用通用I/O口中任一端线充任,数据线定义为VSDA,时钟线定义为VSCL。 80C51单主系统虚拟I2C总

13、线软件包VIIC可由二大类共9个归一化子程序组成。二大类程序分别为典型信号模拟子程序和数据传送通用子程序。第25页,共38页。 1、典型信号模拟子程序 对于虚拟I2C总线,有几个重复应用的典型信号,可根据I2C总线时序要求,编制这些典型信号子程序: 启动信号STAT 终止信号STOP 发送应答位(A)MACK 发送应答非位(A)NACK 检查应答位CACK2、数据传送通用子程序 数据传送通用子程序是应用典型信号模拟子程序(起始、终止、应答和检查应答)并按I2C总线数据传送时序要求编制的子程序。 发送一字节数据子程序WR1B 接收一字节数据子程序RD1B 发送N个字节数据子程序WRNB 接收N个

14、字节数据子程序RDNB 第26页,共38页。 发送N个字节数据子程序WRNB 按照I2C总线数据传送时序要求,一次完整的数据发送过程应包括起始(S)、发送寻址字节(SLA R/W)、应答、发送数据、应答、发送数据、应答、终止(P),其格式如下: 其中,红色部分由主器件发送,从器件接收;黑色部分由从器件发送,主器件接收。 入口条件: 伪指令定义NUMB、SLA、MTD单元地址; 发送数据字节数存内RAM NUMB单元; 发送寻址字节存内RAM SLA单元; 发送数据依次存放在首址为MTD的内RAM中。占用资源:Acc、R1、R2、R3、Cy、F0。第27页,共38页。WRNB: MOV R3,N

15、UMB ;取发送数据字节数N(存在内RAM NUMB单元)WRNB0:LCALL STAT ;启动I2C总线 MOV A,SLA ;读发送寻址字节(存在内RAM SLA单元) LCALL WR1B ;发送寻址字节 LCALL CACK ;检查应答位 JB F0,WRNB0 ;应答不正常,返回重发 MOV R1,#MTD ;应答(A)正常,取发送数据存储区首址WRDA: MOV A,R1 ;读一个字节发送数据 LCALL WR1B ;发送一个字节 LCALL CACK ;检查应答位 JB F0,WRNB ;应答不正常,返回重发 INC R1 ;应答(A)正常,指向发送数据下一字节 DJNZ R3

16、,WRDA ;判N个数据发送完毕否?未完继续 LCALL STOP ;N个数据发送完毕,发送结束信号 RET ;第28页,共38页。 接收N个字节数据子程序RDNB 按照I2C总线数据传送时序要求,接收N个字节数据应按下列格式编程: 其中,红色部分由主器件发送,从器件接收;黑色部分由从器件发送,主器件接收。入口条件: 伪指令定义NUMB、SLA、MRD地址; 接收数据字节数存内RAM NUMB单元; 接收寻址字节存内RAM SLA单元。出口状态:接收N个字节依次存在首址MRD的内RAM中。占用资源:Acc、R1、R2、R3、Cy、F0。第29页,共38页。 RDNB: MOV R3,NUMB

17、;取接收数据字节数N(存在内RAM NUMB单元)RDNB0: LCALL STAT ;启动I2C总线 MOV A,SLA ;读接收寻址字节(存在内RAM SLA单元) LCALL WR1B ;发送接收寻址字节 LCALL CACK ;检查应答位 JB F0,RDNB0 ;应答不正常,返回重新开始RDA0: MOV R1,#MRD ;应答(A)正常,取接收数据存储区首址RDA1: LCALL RD1B ;接收一个字节数据 MOV R1,A ;存一个字节数据 DJNZ R3,ACK ;判N个数据接收完毕否?未完转发送应答位 LCALL NACK ;N个数据接收完毕,发送应答非位(A) LCALL

18、 STOP ;发送终止信号 RET ;子程序结束返回ACK: LCALL MACK ;发送应答位(A) INC R1 ;指向下一接收数据存储单元地址 SJMP RDA1 ;转接收下一字节数据第30页,共38页。 3、虚拟I2C总线软件包VIIC小结 VIIC软件包共有9个归一化子程序组成。 VIIC软件包仅适用单主系统即主方式下I2C总线外围扩展。且应fosc6MHz,若fosc6MHz,则应相应调整NOP指令个数,以满足I2C总线数据传送时序要求。 VIIC软件包可嵌入到80C51 ROM中任一空间,作为I2C总线扩展应用程序设计的软件支持平台。 在应用VIIC软件包初始化中,应对软件包中标

19、记符号用伪指令定义。 VIIC软件包占用资源:F0、Cy、Acc、R1、R1、R3。在调用VIIC软件包之前,若涉及这些存储单元中原有数据尚需保存,应采取保护现场措施,在调用结束后恢复现场。 第31页,共38页。 8-4 虚拟I2C总线扩展I/O口一、I2C总线扩展I/O口通用器件PCF85741、引脚功能 PCF8574是一个带有中断输出的8位准双向I/O口I2C总线扩展芯片。 A2A0:地址引脚; P0P7:8位准双向I/O口,驱动能力IOL = 25mA,IOH300A; SDA、SCL:I2C总线接口; INT:中断请求输出,低电平有效,开漏输出; VDD、VSS:电源端、接地端;第32页,共38页。2、电路设计PCF8574与80C51 I2C总线接口应用电路。 3、寻址字节 PCF8574的器件地址是0100,A2A1A0为引脚地址,全接地时为000,R/W=1时,接收寻址字节SLAR=41H =01000001B;R/W=0时,

温馨提示

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

评论

0/150

提交评论