




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能仪器第 1 章 绪 论第 2 章 智能仪器的标准数据通信接口第 3 章 预处理电路及数据采集第 4 章 人机接口技术第 5 章 测量算法与系统化设计第 6 章 监控主程序的设计第1章 绪 论课时安排:2学时知识点:智能仪器的定义、特点、组成;智能积分式DVM的工作原理、智能仪器设计要点、监控程序的结构、程序设计技术。重 点:智能仪器的组成、智能积分式DVM的工作原理、监控程序的结构。难 点:智能积分式DVM的工作原理教学方法:以课堂讲授方式进行教学,从介绍电子测量仪器的发展过程、深刻分析智能仪器与传统电子仪器的区别。通过介绍智能仪器的结构及设计要点,使学生明确智能仪器包含的主要模块和涉及的知识领域,把本课程在其它几章中要介绍的内容关联起来,使学生明确其余几章在本课程中所占的地位,明确学习目的和任务,激发学生的学习积极性和主动性。本章对学生的要求:要求学生上课认真听讲,课后多查阅一些相关资料,进一步了解电子仪器的发展过程、现状和今后的发展趋势,深入分析科技发展的规律。通过通过学习本章介绍的内容,应对智能仪器的定义、主要特点、基本结构、工作原理,设计智能仪器的基本任务和应该注意的事项有一定的了解;明确本课程学习的目的、主要任务等。1.1 概述 1.1.1 智能仪器及其特点 1.什么是智能仪器是带有微型计算机和自动测试系统通用接口(GP-IB)的电子测量仪器。电子仪器的发展过程:从使用器件上看,分为三个阶段。 真空管时代 晶体管时代 集成电路时代从工作原理上看:已经历了三代:第一代:模拟式电子仪器 特点:功能简单、精度低、速度慢。第二代:数字式的电子仪器 工作原理:A/D转换 测量 数字显示 特点:精度高、速度快、读数清晰直观、能打印输出 能与计算机技术相结合,适于遥控遥测。第三代:智能仪器 在数字化的基础上进行微机化。 智能仪器含有微机和自动测试系统通用接口GP-IB的电子测量仪器。CPU在智能仪器中的作用可归结为两大类:对测试过程进行控制和对测试数据进行处理。 2. 智能仪器的特点1)仪器的功能强大 : 可测量参数多;是通过间接测量实现的。 仪器中常用的数值计算有: (1) 线性变换 (乘常数): R=cx (2) 百分数偏离 : R=100(x-n)/n (3) 偏移 : R=x- (4) 比例 : 线性的 R=x/r 对数的 R=20lg(x/r) 功率的 R=x2/r (5) 最大/最小:记录测量的最大/最小值。 (6) 极限:设置高、低极限值、越限报警。 (7) 统计:对测量结果进行统计处理。2)仪器的性能优越CPU可实现自动补偿、自动校正、多次测量平均等技术,以提高测量精度。用适当和巧妙的算法,克服硬件本身的缺陷,提高仪器的性能。3)操作自动化自选量程、自动校准,自动调整测试点,方便操作,提高精度。也称为自动测试仪器。 4)具对外接口配备GPIB接口,接入自动测试系统,实现自动测试。5)硬件软化实现“硬件软化”,降低成本、减小体积、降低功耗和提高可靠性。 6)采用面板显示有LED、LCD、CRT显示,字迹清晰、直观。7)自测试、自诊断功能能测试自身工作是否正常并指出故障的部位。提高仪器工作可靠性,方便使用和维修。 1.1.2 智能仪器的组成组成框图如下,典型的计算机结构。CPU是整个智能仪器的核心;固化在只读存储器中的程序是仪器的灵魂。智能仪器的基本组成 1.1.3 智能仪器的工作原理1. 传统数字电压表(DVM)的工作原理及特点传统积分式DVM原理图传统积分式DVM工作过程: (1)积分器先对Ui 进行定时积分,积分时间T1称为采样期。 (2)T1结束后进入比较期T2,积分器对Er 积分。积分器输出电压的斜率方向相反。 (3)积分器输出到达零点时,比较器输出产生跳变,T2结束,一次转换也结束。在T2内计数器计数,该值正比于被测电压。经标度变换得测量结果,存储、显示。传统的DVM具有以下特点: (1)通过旋扭改变仪器中的电参数,以设置仪器的功能。 (2)各种控制、计数、漂移补偿等工作完全由硬件完成。 (3)电路采用随机逻辑,复杂,设计和调试难,可靠性差。2. 智能积分式DVM的工作原理及特点智能积分式DVM原理框图工作过程:(1) CPU依来自键盘或GPIB接口的命令,输出合适的开关量,规定量程。 (2)CPU置输出口b3位为高,接通S3,积分器 对Ui进行定时积分。通过计数,控制采样期T1时间。 (3)T1结束后,CPU置b3位为低,b4位为高,接通S4,断开S3 ,进入比较期T2,积分器对Er积分,计数并检查比较器输出是否发生跳变。 (4)当检出比较器输出发生跳变,表明积分器输出回零,即停止计数;置输出口的b3、b4位均为低,断开S3、S3,积分器停止积分,一次模数转换或测量结束。 (5)CPU对比较期内的计数值进行处理后,存储、显示,或经GPIB总线发送到远地。特点:(1) 通过键盘向CPU发出命令,CPU对命令译码后发出适当的控制信号,规定仪器的功能。(2)CPU通过执行程序发出控制信号,只要修改软件就能改变仪器工作, 有些硬件电路的功能可由软件完成。(3)CPU能对测量数据进行处理,如自动校正零点偏移和增益漂移、统计及其它数学运算等。(4)计算机结构,各部件都“挂”在总线上,方便系统的设计、调试、和维护。(5)具有GP-IB接口,能接入自动测试系统进行工作。 1.1.4 智能仪器的新发展呈现微型化、多功能化、智能化和网络化的发展趋势 1.个人仪器: 20世纪60年代以来测线系统发展经三个阶段: (1)测试仪器与小型仪用计算机通过专用接口连接而成。 (2)智能仪器 (3)个人仪器:个人计算机通过系统总线控制多个仪器插件实现测量功能。如下图所示:个人仪器结构个人仪器的特点:(1) 成本低每个测试功能不是由整机、而是由插件完成的。(2) 使用方便标准的仪器功能写入操作软件,备有清单,用户选择清单就能完成各种测试任务。(3)制造方便:仪器制造厂只要研制、生产测试卡即可。(4) 实时交互作用相互间通过微机系统总线连接,可进行实时交互。 2.虚拟仪器 在个人仪器和计算机软件不断发展的基础上出现,更强调软件的作用,提出了“软件就是仪器”的思想。 以通用计算机为控制器,添加模块化硬件来完成数据采集,由高效、功能强大的软件系统实现测量操作。虚拟仪器系统的基本构架是: 高性能的通用计算机; 模块化的通用硬件设备;功能强大的专业性测试软件系统。 “虚拟”二字的含义: (1)面板虚拟。面板控件图形与实物相像,对应着相应的控制程序,通过鼠标点击操作。 (2)功能由软件实现。在硬件平台下,通过软件编程实现仪器的测试功能。 特点: (1)通用硬件平台确定后,可由软件取代传统仪器中的各种硬件。 (2)仪器的功能是用户根据需要由软件来定义,而不是由厂家事先定义的。 (3)仪器功能的改进和扩展只需进行相关软件更新设计,无须购买新的仪器。 (4)研制周期较传统仪器大为缩短。 (5)虚拟仪器开放、灵活,可与计算机同步发展,与网络及其它周边设备互联。1.2 智能仪器设计简介 1.2.1 设计要点主要任务:CPU选择、硬件设计、软件设计CPU选择:依功能而定,若运算量不大,选高性能的 8位单片机。硬件设计:先设计内部的微机及外设、测试硬件和 GPIB接口;然后设计微机和其它部件的接口。软件设计:任务描述、程序设计、编码纠错、调试、编写文件。1.2.2 监控程序的结构监控程序是指管理机器工作的整个程序 监控主程序:接受和分析来自键盘的命令。把控制转移到相应处理子程序的入口监控程序 接口管理主程序:接受和分析来自GP-IB接口命令,把控制转到相应的处理子程序的入口 命令处理子程序:具体执行某个命令、完成命令所规定的操作的子程序1.2.3 程序设计技术(1)模块法把一个长的程序分成若干个较小的程序模块进行设计和调试,然后把各模块连接起来。(2)自顶向下的设计方法设计思路从整体到局部,最后到具体细节的设计方法。(3)结构程序设计基本原则:每个模块只能有一个入口和一个出口。有以下三种基本结构: 序列结构P1 P2 P3 分支结构If-then-else结构 循环结构循环结构(a) Repeat-until结构;(b)Do-while结构另一种常用的结构选择结构选择结构 1.2.4 智能仪器的研制步骤大致可以分为3个阶段: 1. 确定任务、拟制设计方案 2. 硬件、软件研制及仪器结构设计 3. 仪器总调、性能测定 1.2.5 智能仪器设计中应注意的问题 1、采用新颖的设计方法 2、硬件软件化 3、分时操作: CPU速度极高,为分时操作提供可能。 4、增强功能:充分利用微机的快速运算和灵活控制的特点。5、简化面板结构6、采用新器件、运用新技术习题与思考题1. 电子仪器发展至今经历了哪几个阶段?2. 什么是智能仪器?智能仪器有哪些主要特点?3. 画出智能仪器的基本组成框图,并说明其各部分的作用。4. 说明如图1-4所示的智能积分式DVM的工作原理及其主要特点。5. 将图1-4中的微处理器确定为80C51单片机,请画出单片机与测试电路的接口连接图,并编写启动一次测量的程序。设采样期T1的定时可调用DLYT1,比较期T2用80C51 内部定时器T0计测;输出口的某位为1时,相应的开关接通,输出口、输入口的地址分别为2080H和2081H。6. 什么是虚拟仪器?虚拟仪器的特点是什么?7. 试述虚拟仪器的结构原理。8. 简述虚拟仪器中软件结构与功能。9. 设计智能仪器的主要任务是什么?研制的一般步骤怎样?10. 在智能仪器的设计中应注意哪些问题?第2章 智能仪器的标准数据通信接口2.1 RS-232C标准串行接口总线2.2 SPI总线标准2.3 I2C标准总线2.4 USB总线标准2.5 CAN总线 2.6 GP-IB接口总线2.7 无线数据传输及PTR2000应用习题与思考题课时安排:6学时知识点:智能仪器中常用的标准总线、串行总线及各种总线的应用重 点:SPI和I2C总线标准、各信号的定义,对于不带SPI、I2C总线接口的一般8051单片机这两种总线的实现方法。难 点:SPI、I2C总线的软件实现及其应用教学方法:主要采用课堂讲授方式,考虑到学生已学过微机原理与接口技术、单片机原理及应用等课程,但是一般对单片机操作时序的理解和实现有一定的难度,因此本章在讲授过程中采用先分析时序波形,再用软件模拟一些基本操作的子程序,之后再介绍几个实际应用的例子,循序渐进,以便于学生理解。本章对学生的要求:在第一章中介绍的智能仪器的构成框图可见,它是一个典型的计算机结构,其中的各个部分是通过总线联系在一起的。与计算机系统一样,智能仪器的标准总线可分为外部总线和内部总线,由于本章教学时数有限,课堂上只重点介绍SPI、I2C两种内部总线,这两种总线性能优越,应用广泛,它们是单片机系统扩展、智能仪器设计的一个重要手段,要求学生认真掌握它们的有关信号的定义及具体操作时序和用软件模拟的实现方法。2.2 SPI总线标准 2.2.1 SPI总线标准介绍串行外设接口,允许MCU与各种外设进行串行通信。完整的SPI系统的特性: (1)全双工、三线同步传送。 (2)主、从机工作方式。 (3)可程控的主机位传送速率、时钟极性和相位。 (4)发送完成中断标志。 (5)写冲突保护标志。 用一个MCU为主机,控制数据向一个或多个从机传送,SPI系统使用4个I/O引脚。 1)串行数据线(MISO、MOSI) 主输入/从输出MISO和主输出/从输入MOSI: 用于数据的收、发,先MSB(高位),后LSB(低位)。 主机方式时,MISO是主机数据输入线,MOSI是主机数据输出线; 从机方式时,MISO是从机数据输出线,MOSI是从机数据输入线。 2)串行时钟线(SCLK) 用于同步MISO和MOSI引脚上数据的传送。 主机方式时,SCLK为输出;主机启动一次传送,在SCLK脚产生8个时钟。 从机方式时,SCLK为输入。在主机、机之间,SCLK的一个跳变进行数据移位,数据稳定后的另一个跳变进行采样。串行数据和时钟之间有4种极性和相位关系。主、从机的定时关系必须相同。SPI系统时钟的极性和相位关系 3)从机选择() 从机方式用于使能从机进行数据传送; 主机方式一般由外部置为高电平。 一般只需连接SPI的SCLK、MOSI及MISO三根线即可。对于有端的I/O扩展芯片,用一根I/O线来控制片选端。 2.2.2 利用模拟SPI总线扩展串行E2PROM 1. 串行E2PROM93C46的特点及引脚93C46是6416(1024)位串行的电擦除可编程的只读存储器。特点: (1)在线改写数据和自动擦除功能。 (2)电+5V单电源供电;源关闭,数据也不丢失。 (3)输入、输出口与TTL兼容。(4)内有电压发生器,产生擦/写所需的电压。(5)有控制和定时逻辑,控制擦和读写操作。(6)整体编程允许和禁止功能,以增强数据的保护能力。(7)等待状态时,电流为1.5mA3mA。有两种封装形式,如下图: 图2-11 93C46引脚排列(a) 8脚双列直插式塑料封装 (b)14脚扁平式塑料封装。 引脚功能: DO:读时数据输出端;擦时为状态指示,相当于READY/信号,其它状态该脚呈高阻。DI:用于接收命令、地址和数据信息,每一位均在CLK的上升沿写入93C46。 ORG:结构端。连到Vcc或悬空时为16位结构;连到Vss时为8位结构。注意:时钟频率低于1MHz时ORG端才能悬空,构成16位结构。2. 指令系统:共有7条指令,格式如下表。 表2-3 93C46指令表(ORG=0,8位结构) 一条指令操作完成之前,拒绝接收新指令。 1)读指令(READ) 从单元中读取数据。接收指令后,DO端先输出一低电平,之后从CLK的上升沿开始,DO连续输出位或16位串行数据。当CS保持为高时允许连续读,即自动周期性地输出下一个地址单元的数据。时序如下。图2-12 读指令的时序 2)写指令(WRITE) 向指定单元中写入数据。 指令指定了单元地址后输出位或16位数据。在最后一个数据位加在DI端后,在CLK的下一个上升沿以前,CS必须为低。 DO端指示READY/状态。指令的时序如图2-13所示。图2-13 写指令的时序 3)擦除指令(ERASE)将指定单元的内容擦除,即强迫该单元所有数据位为“1”状态。时序图如下。图2-14 擦除指令的时序 装载最后的地址位后,CS为低。CS的下降沿启动自定时编程周期。CS为低约250ns后恢复为高。擦除周期每字4ms。 DO端指示器件的READY/状态: DO端为0时,指示编程仍在进行;DO端为1时,表示擦除结束,可接收下一指令。4)擦除整个存储器指令(ERAL)将整个存储器阵列强迫为逻辑“1”状态。除操作码不同外,与ERASE(擦除)相同,时序如图2-15(a)所示。ERAL周期完成自定时,在CS的下降沿开始。无需CLK端的驱动时钟。CS为低约250ns后恢复为高。DO端指示器件的READY/ 状态。5)写整个存储器指令(WRAL)将命令中指定的数据写入整个存储器阵列中。除操作码不同外,与WRITE相同,时序如图2-15(b)所示。WRAL周期也完成自定时。WRAL周期最大需30ms。 图2-15 擦除和写入整个存储器指令的时序 (a) 擦除整个存储器指令的时序 (b) 写整个存储器指令的时序。 6)擦/写允许指令(EWEN)和擦/写禁止指令(EWDS) EWEN 使芯片处于允许擦/写状态,直至执行了EWDS指令或电源关闭为止。 EWDS 禁止对整个芯片和单个单元的擦和写操作。上电复位芯片处于擦写禁止状态。EWEN与EWDS操作码不同,但周期相同。时序如图2-16所示。 图2-16 EWEN指令和EWDS指令时序(a)EWEN指令时序 (b)EWDS指令时序。 3.93C46与80C51单片机的接口与编程 80C51串口方式0提供了简化的SPI,特点: (1)SCLK极性、相位、传送速率固定。 (2)无从机选择输入端。 (3)数据入/出是同一根线,用软件设置数传方向。 故80C51中SPI仅两个脚: RXD(P3.1)MOSI/MISO;TXD(P3.0)SCLK。 (4)传送数据位的顺序为先LSB,后MSB。 1)利用80C51的串行口实现的接口 80C51与93C46接口时,需适当的硬、软件配合。 下图80C51串口工作在方式0。图中80C51的TXD脚提供CLK信号;RXD送出命令和读入数据;P1.1为片选信号与93C46的CS相连。93C46与80C51单片机的接口之一 该电路需注意两点: 必须将TXD反相,以适应E2PROM时序需要; P1.0作为93C46的读/写控制信号。 注:本方案中除起始位和“虚拟”数据位外,同步串口自动传送操作码、地址及数据的;由于两种接口传送数据位顺序相反,所以数据要做倒序处理。下面列出相关操作子程序:(1)送起始位子程序 此时,P1.0和P1.1作为输出,P1.0=1时选通93C46,P1.1=1时将指令写入93C46。P3.0和P3.1作为标准的I/O输出口线。 INSB: CLR P1.1 ;置片选无效 SETB P1.0 ;P1.0=1,使P3.0=1,P3.0接通DI SETB P3.0 ;置位DI NOP NOP SETB P1.1 ;置片选有效 NOP NOP SETB P3.1 ;时钟置高 NOP NOP CLR P3.1 ;时钟置低 RET (2)数据倒序处理子程序 ASMB:MOV R6 ,#0 ;工作单元R6清零 MOV R7,#08H ;计数器初值 CLR C ALO: RLC A XCH A,R6 RRC A XCH A,R6 DJNZ R7,ALO XCH A,R6 RET (3)读数据子程序 READ:MOV SCON,#00H ;置串行口为方式0输出 ACALL INSB ;送起始位 MOV A,#10001111B ;送命令和地址,读命令 ACALL ASMB MOV SBUF,A JNB TI,$ ;等待发送完毕 CLR TI MOV SCON ,#10H ;设为输入,REN=1 MOV R0,#BUF ;指向数据缓冲区 CLR P1.0 ;准备读入数据 JNB RI,$ ;等待接收数据结束 CLR RI MOV A,SBUF ACALL ASMB MOV R0 ,A INC R0 JNB RI , CLR RI MOV A, SBUF ACALL ASMB MOV R0 ,A CLR P1.1 ;置片选无效 NOP NOP SETB P1.1 ;置片选有效 RET (4)写数据子程序 WRITE:MOV SCON,#00H ;置串行口为方式0 ACALL INSB ;送起始位 MOV A,#01001111B ;送命令和地址,写命令 ACALL ASMB MOV SBUF,A JNB TI,$ ;等待发送完毕 CLR TI MOV R0,#BUF ;指向数据缓冲区 SETB P1.0 ;准备写入数据 MOV A , R0 ACALL ASMB MOV SUBF , A JNB TI,$ ;等待发送完数据 CLR TI INC R0 MOV A , R0 ACALL ASMB MOV SUBF , A JNB TI , $ CLR TI CLR P1.1 ;置片选无效 RET 2)利用软件仿真SPI实现的接口 若51的串口已被用,或认为串口使用不便,则可用软件来模拟SPI操作,包括时钟的产生、数据的输入/输出等。 其硬件电路如图2-18所示。图中斯密特触发器74HC14是对时钟脉冲整形,提高抗噪能力。 图2-18 93C46与80C51单片机的接口之二 软件仿真常用的操作子程序如下: (1)送起始位“1”子程序INSB 功能:80C51向93C46送出“1” INSB:SETB P1.3 ;置片选无效 CLR P1.0 ;时钟置低 SETB P1.1 ;置位DI NOP NOP CLR P1.3 ;置片选有效 NOP NOP SETB P1.0 ;时钟置高,移入数据 NOP NOP CLR P1.0 ;时钟置低 RET (2)写入8位数据子程序WRI 功能:80C51向93C46送出8位数据(2位操作码和6位地址码或是8位数据)。若是16位数据,可分两次传送。 入口参数:8位数据在A中。 程序如下: WRI: MOV R4,#8 ;写入数据的位数 W10: RLC A MOV P1.1,C ;将CY送DI NOP NOP SETB P1.0 ;时钟置高,移入数据 NOP NOP CLR P1.0 ;时钟置低 DJNZ R4,WIO ;未完,继续 RET (3)读取8位数据子程序RDI 功能:80C51从93C46的DO引脚读取8位数据。 入口参数:无。出口参数:读出的8位数据在A中。 RDI:MOV R4,#8 ;读取的数据位数 R10:NOP NOP SETB P1.0 ;时钟置高,移出数据 NOP NOP CLR P1.0 ;时钟置低 MOV C ,P1.2 ;数据从DO读入CY RLC A DJNZ R4,RIO ;未完,继续 RET (4)向93C46写入16位数据 功能:80C51向93C46写入16位数据。 入口参数:B寄存器:存待写8位指令(2位操作码、6位地址码A5A0); R2:存待写数据的高8位;R3:存待写数据的低8位。 出口参数:无。 程序如下: WRITE:LCALL INSB ;送起始位“1” MOV A,#30H ;擦/写允许指令 LCALL WRI LCALL INSB MOV A,B ;写入指令 LCALL WRI MOV A,R2 ;写入高8位 LCALL WRI MOV A,R3 ;写入低8位 LCALL WRI SETB P1.3 ;置片选为无效 NOP NOP CLR P1.3 ;片选有效 WAIT:JNB P1.2,WAIT ;编程未完,等待 LCALL INSB MOV A,#00H ;擦/写禁止指令 LCALL WRI SETB P1.3 ;置片选为无效 RET ;返回 (5)从93C46读取16位数据 功能:80C51从93C46读取16位数据。 入口参数: B寄存器:存待写8位指令(2位操作码,6位地址码A5A0)。 出口参数:R2:存读出数据高8位。 R3:存读出数据低8位。 程序如下: READ:LCALL INSB ;送起始位“1” MOV A,B ;写读出指令 LCALL WRI NOP NOP LCALL RDI MOV R2,A ;读出高8位 LCALL RDI MOV R3,A ;读出低8位 SETB P1.3 ;置片选为无效 RET2.3 I2C标准总线 2.3.1 I2C标准总线介绍 在器件之间用两根信号线SDA和SCL以串行方式进行信息传送,并允许若干兼容器件共享的双线总线。 SDA线:串行数据线,双向传输数据;SCL线:串行时钟线,同步数据线上的数据。I2C器件的SDA和SCL引脚均开漏。故总线上所有器件的SDA和SCL需分别接在一起,通过电阻与电源连接,如图。 图2-19 I2C总线系统的示意图 I2C总线上器件按功能分为主器件和从器件。 主器件:控制总线,产生时钟、启动传送和结束传送信号。总线必须由一个主器件控制。 从器件:被主器件寻址,根据主器件的命令,收、发数据。系统中可有多个主器件,I2C总线系统允许多主。系统中任一器件可有4种工作方式:主发送方式、主接收方式、从发送方式和从接收方式。总线上所有器件是按如下传输协议工作的:仅当总线不忙时,数传才能开始;数传期间若时钟线为高,则数据线必须保持稳定,否则将认为是传送的开始或停止。总线条件定义:1)总线不忙(空闲) SCL和串行数据线SDA都保持高电平。2)数据传送开始 起始信号START :SCL保持高,SDA上一个由高到低的变化。如图2-20所示。 总线上所有命令必须在起始条件以后进行。图2-20 起始条件和停止条件 3)数据传送停止 停止信号STOP: SCL保持高,SDA上发生由低到高的过程。见图2-20。 总线上所有操作必须在停止条件以前结束。 4)数据有效 起始信号后位传输开始。每位需一个时钟脉冲。 SCL保持高,SDA稳定的状态表示有效的数据。在SCL为低期间,数据线状态应改变。图2-21 I2C总线上的位传输 每次数传在START下启动,在STOP下结束。重复的START将结束前一个传送过程,但不释放I2C总线,可接着下一个传送过程。I2C总线上数传有两种方式,由START后的第一个字节的最低位(即方向位)决定。 (1)主发送到从接收。主器件产生START后,发送的第一个字节为从地址字节(高7位为从器件的地址,最低位为方向位R/,此时该位为0 ),随后发送数据字节,如图2-22所示。发送的数据可以是单字节或一串数据,由主器件决定。从器件每接收一个数据字节后,都返回一个应答信号ASK=0,即第9个时钟脉冲时数据线低为应答信号A,高为非应答信号 。图2-22 主发送到从接收 (2)从发送到主接收。 从器件收到主器件发的从地址和值为1的方向位后,返回一个应答信号(ASK=0),接着从器件发数据给主器件,主器件每收一个数据字节,都返回一个应答信号。 在接收从器件最后一个字节后,主器件发送一个“非应答信号”,即终止从器件继续发送。 从器件发送的数据可以是单字节或一串数据。I2C总线的主要功能: 在主、从器件之间双向传送数据; 无中间主器件的多主总线; 多主传送时不发生错误; 可以使用不同的位速率; 串行时钟作为交接信号; 可用于测试和诊断目的。有I2C总线的单片机可直接用I2C进行串行扩展;51单片机大多无I2C总线接口,可用软件模拟来实现系统的串行扩展。单片机应用系统多为单主结构,其数传状态较简单,无总线竞争与同步问题,仅有单片机对I2C总线的读/写操作。简化了模拟软件的设计工作。 2.3.2 80C51单片机模拟I2C总线应用实例1.PCF8574的特性及引脚说明 是带I2C的8位准双向口的单片CMOS电路,在I2C总线系统中仅作从器件。特点:低损耗,静态电流10;输出电流大,可直接驱动LED发光管; 3根地址引脚使一个系统可接8片;最高时钟频率为400kHz; 有中断逻辑线。引脚排列如图2-23,功能如下: 图2-23 PCF8574外部引脚SDA:串行数据线,双向。 SCL:串行时钟线,输入。 P7P0:8位准双向入/出口。上电复位均为高,某位作输入前应置为高。 A2A0:地址输入线。 :中断输出线,低有效。2.PCF8574的寻址方式及操作 1)控制字节和器件寻址 控制字节跟在开始条件后,结构见图2-24: 前4位控制码规定器件的型号:0100PCF8574;0111PCF8574A。接下来3位A2、A1、A0与引脚接法对应,指明同一种器件的不同芯片。图2-24 PCF8574及PCF8574A控制字节的配置 2)读操作将接口数据传给主器件,时序如下图。图2-25 读操作的时序 3)写操作将主器件的数据传给PCF8574口,时序如下图。图2-26 写操作的时序 3.PCF8574应用和编程 1)通用子程序编写 模拟I2C总线一般用两根I/O线。设用P1.6作SCL线,P1.7作SDA线。软件仿真先编写通用子程序,包括:启动、停止、发送应答位及非应答位、应答位检查、单字节数据接收与发送等,供接口操作程序调用。子程序(设晶振频率为6MHz,否则应适当增减程序中的NOP指令)如下: SDA BIT P1.7 SCL BIT P1.6 ;启动I2C总线子程序 STA: SETB SDA SETB SCL NOP NOP CLR SDA NOP NOP CLR SCL NOP RET;停止I2C总线子程序 STOP: CLR SDA SETB SCL NOP NOP SETB SDA NOP NOP CLR SCL NOP RET ;发送应答位子程序 MACK: CLR SDA SETB SCL NOP NOP CLR SCL SETB SDA RET;发送非应答位子程序 NACK:SETB SDA SETB SCL NOP NOP CLR SCL CLR SDA RET ;应答位检查子程序。出口时,SDA线的状态存入标志位FO中。有ACK, FO=0,否则FO=1 CACK: SETB SDA ;SDA为输入状态 SETB SCL ;第9个时钟脉冲开始 NOP MOV C ,SDA ;读SDA线 MOV FO,C ;存入FO中 CLR SCL ;第9个时钟脉冲结束 NOP RET ;发送一字节数据子程序。将Acc中待发数据送入SDA线 WRBYT: MOV R7 ,#8 ;发送8位 WRBYT1: RLC A ;将发送位移入C中 JC WRBYT2 ;此位为1,转WRBYT2 CLR SDA ;此位为0,发送0 SETB SCL ;时钟脉冲开始 NOP NOP CLR SCL ;时钟脉冲结束 DJNZ R7 ,WRBYT1;未发送完,转WRBYT1 RET WRBYT2: SETB SDA ;此位为1,发送1 SETB SCL ;时钟脉冲开始 NOP NOP CLR SCL ;时钟脉冲结束 CLR SDA DJNZ R7 ,WRBYT1 ;未发送完,转WRBYT1 RET ;接收一字节子程序。从SDA上读一字节数据,存ACC中 RDBYT: MOV R7 ,#8 ;接收8位 RDBYT1:SETB SDA ;SDA为输入状态 SETB SCL ;时钟脉冲开始 NOP MOV C , SDA ;读SDA线 RLC A ;移入新接收位 CLR SCL ;时钟脉冲结束 DJNZ R7 ,RDBYT1;未读完8位,转RDBYT1 RET ;读完8位,返回2)PCF8574作扩展8位输入口图2-27 PCF8574读方式的连接 程序如下: RD8:ACALL STA ;开始条件 MOV A, #41H ;PCF8574为读方式 ACAL L WRBYT ACALL CACK ;检查ACK信号 JB FO , $ ACALL RDBYT ;读数据 MOV 30H , A ACALL CACK JB FO, $ ACALL STOP SJMP $ 3)PCF8574作扩展8位输出口PCF8574作扩展8位输出口的连接如图2-28所示。图2-28 PCF8574写方式的连接 程序如下: WR8: ACALL STA ;开始条件 MOV A ,#40H ;PCF8574为写方式 ACALL WRBYT ACALL CACK ;检查ACK信号 JB FO ,$ MOV A ,#0FFH ;改变立即数,指示灯亮与暗也改变 ACALL WRBYTACALL CACK ;检查ACK信号 JB FO ,$ ACALL STOP ;停止
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解析卷安徽省天长市七年级上册有理数及其运算单元测评试题(含解析)
- 医院感染管理应知应会考试试题(附答案)
- 耳鼻喉口腔颌面外科院感试题(附答案)
- 2025年生态修复中生物多样性保护与生态修复工程可持续发展研究报告
- 2025年老年健康管理领域长期照护服务模式政策法规解读报告
- 2025年海洋生态修复项目环境影响评价报告
- 2025年文化娱乐行业消费者行为分析:细分市场细分与用户体验报告
- 2025年工业互联网平台射频识别(RFID)在图书管理系统的应用与效率提升报告
- 2025至2030年中国猫粮市场竞争格局及投资战略规划报告
- 诉讼和解协议书示例
- 2024广西专业技术人员继续教育公需科目参考答案(99分)
- 不定代词专项练习(附详解)
- 科研数据的存储与管理
- 内镜床旁预处理培训
- 人文与社会《家乡的山水》黑龙江省地方教材
- 宫内感染的早期识别与诊断专家共识
- 2024儿童营养保健科试题及答案
- 电力系统绝缘保护 过电压防护 电力系统内部过电压及防护
- 行政事业单位法律风险
- 《保障农民工工资支付条例》宣传册
- GB/Z 43427-2023优质服务设计高品质服务以实现极致顾客体验
评论
0/150
提交评论