5设计说明书单片机adμc834完整的数据采集系统芯片本科毕业论文_第1页
5设计说明书单片机adμc834完整的数据采集系统芯片本科毕业论文_第2页
5设计说明书单片机adμc834完整的数据采集系统芯片本科毕业论文_第3页
5设计说明书单片机adμc834完整的数据采集系统芯片本科毕业论文_第4页
5设计说明书单片机adμc834完整的数据采集系统芯片本科毕业论文_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

大学毕业设计说明书大学毕业设计说明书第页前言ADμC834是一种真正意义上的完整的数据采集系统芯片。这种崭新的微处理转换器和先进的混合信号处理工艺显著提高了数据采集系统的性能,并大幅度减少了应用系统的开发时间和成本。ADμC834是美国模拟器件(AD)公司最新(2003年前)投入市场的一款微处理转换器产品,它集成了双路∑—△型ADC、温度传感器、增益可程控放大器(PGA)、8位51MCU、62k的可编程程序EEPROM、4k的数据FlashMemory、2304字节的片内RAM、12位DAC以及定时器、I2C兼容的SPI和标准的串行I/O等。由此可见,ADμADμC834内部集成了两路独立的∑—△ADC,其中主通道ADC为24位,辅助通道ADC为16位。两个独立的ADC通道由于使用了数字滤波,因而可以实现宽动态范围的低频信号测量,非常适用于称重仪、张力应变仪、压力转换器和温度测量等方面的应用。其中主通道的AD输入范围在±20mV~±2.56V之间分为8档,使用时可任选一档。由于使用了∑—△转换技术,因此可以实现高达24位无丢失码性能,且辅助通道还可以作为温度传感器使用。ADμC834利用32kHz晶振来驱动片内锁相环(PLL)以产生内部所需要的工作频率,它的微控制器内核与8051兼容。片内外围设备包括一个与SPI和I2C兼容的串行端口、多路数字输入/输出端口、看门狗定时器、电源监视器以及时间间隔计数器。同时片内还提供了62kB闪速/电擦除程序存储器以及2304字节的片内RAM。ADμ 对于已经掌握了51系列单片机的用户,可以轻而易举的掌握ADμC834位转换器的开发应用技术,但要注意ADμC834微转换器与8051的若干不同之处。而对于没有接触过单片机的用户,由于ADμC834微转换器所具有的在线下载/调试/编程的功能,把ADμC834作为学习单片机或微控制器的入门,是一种上佳选择。 本设计较为详细的介绍了ADμC834微转换器的内部结构和各功能模块的具体使用,目的在于让用户能够容易的学习使用ADμC834微转换器,进而学好单片机或微控制器。但限于作者水平和时间仓促,设计中可能存在不妥甚至疏漏之处,敬请各位老师批评指正,作者不胜感激。 陈挺 2005-6-3总体方案设计ADADμC834STROBES串行下载SPI/I2ICELEDI/O端口模拟输入复位电源RS232接口中断第一章 ADμC834概述1.1ADμC834概述ADμC834是一款非常灵活的器件,它集双路∑-△ADC、温度传感器、增益可编程放大器(PGA)、8位MCU、闪速/电擦除程序数据存储器于一身。两个分离的ADC(主通道及辅助通道)包括一个温度传感器及一个增益可编程的放大器(可以直接测量微弱信号)。ADC包含一个片内的数字滤波器用来测量宽动态范围的低频信号,例如在体重、形变、压力或者温度测量中的应用。32kHz晶体驱动片内PLL产生一个12.58MHz的高频时钟用于设备的操作。通过编程对该时钟分频就得到了所需要的MCU核心时钟的操作频率。智能转换器使用的是8052内核,因此它兼容8051指令集。智能转换器内核的机器周期由12个内核时钟周期组成,该时钟周期是通过被选定的内核工作频率所确定的。另外MCU支持的功能包括看门狗定时器、电源监视器以及ADCPWM功能。为多处理器接口和I/O扩展提供了26条可编程的I/O线、与I2C片内提供了62kB片内闪速/电擦除程序存储器、4k片内闪速/电擦除数据存储器、2304字节片内数据RAM。并且程序存储器可被配置为数据存储器,从而为数据记录提供一个60kB的非易失数据存储器。MCU内核和模拟转换器二者均有正常、空闲以及掉电工作模式,它提供了适合于低功率应用的、灵活的电源管理方案。器件包括在工业温度范围内用3V和5V电压工作的两种规格,有52引脚、塑料四方形扁平封装形式(MQFT)可供使用。片内工厂固件支持串行下载和调试方式(通过UART),以及通过/EA引脚实现单引脚仿真模式。ADμC834通过QuickStartTM和QuickStartPlus开发系统可以使用低成本的软件和硬件开发工具。1.2主要功能高分辨率∑-△ADC 两个独立通道(16位和24位分辨率) 24位无丢失码(主ADC) 21位RMS(18.5位P-P)有效分辨率(在20Hz条件下) 失调漂移10nV/C,增益漂移0.5ppm/℃存储器 62kB片内闪速/电擦除程序存储器 4kB片内闪速/电擦除数据存储器 可用100年,可重复擦写10万次以上 闪速/电擦除程序存储器3级安全 在线串行下载(不许外部硬件) 高速用户下载(5秒) 2304字节片内数据RAM基于8051的内核 与8051兼容的指令集 32kHz外部晶体 可编程片内锁相环(最大12.58MHz) 3个16位定时器/计数器 26条可编程I/O线 11个中断源,2个优先级 双数据指针,扩展的11位-堆栈指针片内外围设备 内部上电复位电路 12位电压输出DAC 双16位∑-△DAC/PWM 片内温度传感器 2个激励电流源 定时间隔计数器(唤醒/RTC定时器) UART,I2C®和SPI®串行I 高速波特率发生器(包括115200) 看门狗定时器(WDT) 电源监视器(PSM)电源 正常:3.6V条件下最大为2.3mA(核心时钟=1.57MHz) 掉电:最大为20μA,定时器运行于指定的3V和5V工作电压下封装和温度范围 52引脚MQFP(14mm*14mm),-40℃至+ 56引脚LQFP(8mm*8mm),-40℃至+应用领域 智能传感器 称重仪 便携式设备,电池供电系统 4~20mA变送器 数据记录 机密系统监测1.3ADμC834的功能方框图图11.4引脚排列 引脚排列如图2:图21.5引脚说明表1第二章 存储器组织与扩展 如所有与8051兼容的器件一样,对于程序存储器和数据存储器,ADμC834具有分开的地址空间。附加的4kB片内闪速/电擦除数据存储器可供用户使用。通过一组映射在特殊功能寄存器(SFR)区的控制寄存器,可间接访问闪速/电擦除数据存储器区。 除了程序计数器和通用寄存器区外,所有的寄存器都驻留在特殊功能寄存器SFR区域内。SFR寄存器包括控制、配置以及数据寄存器,它们在CPU和片内外围设备之间提供接口。 2.1非易失性闪速存储器 2.1.1概述 ADμC834包含片内闪速存储器技术,以便向用户提供非易失性、在线可重新编程的代码和数据存储器空间。 闪速存储器是最新型的非易失性存储器技术,它基于单个晶体管单元结构。这种技术是在80年代后期开发的,基本上是EPROM技术的产物。 闪速存储器具有EEPROM灵活的在线可重新编程的特点,并包括EPROM空间有效性/高密度的特点,如图3所示。图3flash/eeROM的发展 由于闪速技术基于单个晶体管单元的结构,所以闪速存储器阵列像EPROM一样可以达到给定设计所需的空间有效性或存储器密度。 与EEPROM一样,虽然闪速存储器在写入前要先擦除,但它在系统内可在字节级上编程,擦除在扇区块(sectorblock)内执行。因此,闪速存储器常常且更为确切的被称为闪速/电擦除(Flash/EE)存储器。 总之,闪速/电擦除存储器朝着理想存储器更为接近了一步,这种理想的存储器包括非易失性、在线编程能力、高密度以及低价格。包含在ADμC834内的闪速/电擦除存储器技术使用户可以在线更新程序代码空间,而无须在远处工作节点上替换一次性可编程(OTP)器件。 2.1.2闪速/电擦除存储器和 ADμC834为用户的应用提供了2个闪速/电擦除存储器阵列。 片内提供62kB的闪速/电擦除程序空间,使代码的执行变得容易,无需任何外部分立的ROM器件。程序存储器可以用常规的第3方提供的存储器编程器编程,此阵列也可使用所提供的串行下载模式在线编程。 片内还提供4kB的闪速/电擦除数据存储器空间。这可以被用户用作通用非易失性高速暂存存储器区域,用户通过由6个SFR构成的组访问此区域。虽然首先必须按4B的扇区擦除,但此空间可在字节级上编程。 2.1.3 62kB的闪速/电擦除程序存储器阵列被映射到ADμC834可位寻址的程序空间中,在典型应用中用以存放用户代码。 程序存储器阵列可以按两种模式之一编程,即:串行下载(在线编程)作为工厂引导代码的一部分,ADμC834使经过标准UART串行接口实现串行代码下载变得容易。如果外部引脚/PSEN通过外部电阻拉至低电平,那么上电时将自动进入串行下载模式。一旦处于此模式,用户可以把代码下载到程序存储器阵列,同时器件仍位于其目标应用硬件中。PC串行下载的可实行是作为ADμC834QuickStart开发系统的一部分而提供的。串行下载协议在ADI公司出版的微转换器应用笔记中详述,它可从ADI公司的微转换器网站/microconverter中获得。并行编程并行编程模式与常规的第3方闪速或EEPROM器件编程器完全兼容。在此方式下,端口P0、P2用作外部数据和地址总线接口,ALE用作写使能选通,P3口作为适用配置端口,在并行编程期间内为各种编程和擦除操作配置器件。闪速编程所需的高压(12V)电源用片内充电电泵产生,对高压编程线供电。图4表示正常并行编程模式,它可由端口3的位来配置。图4flash/eeROM并行编程2.1.4闪速/电擦除数据存储器 用户闪速/电擦除数据存储器阵列包括4kB,如其它用户外围设备一样,通过映射在SFR空间的寄存器组与此存储器空间相接。数据寄存器组用于保存刚访问的数据。EADRL用于保存被访问数据的地址。ECON是8位控制寄存器,可写入5个闪速/电擦除存储器访问命令之一,以便使能各种读、写、擦除和效验模式。 SFR寄存器与用户闪速/电擦除数据存储器阵列接口的方框图如图5所示:作用作用保持4B的数据9FH00HBYTE1BYTE2BYTE3BYTE4BYTE1BYTE2BYTE3BYTE4EADRL作用保持8位页地址指针EADRL1(BYTE1)EADRL2(BYTE2)EADRL3(BYTE3)EADRL4(BYTE4)ECON命令译码ECON作用保持命令字作用对命令字译码图5用户flash/eedataROM控制和配置第三章 模拟接口 3.1概述 ADμC834中集成的A/D转换块包括一个主通道24位无丢失码∑-△ADC和一个辅助通道16位∑-△ADC。此模块为用户提供多通道多路转换器和跟踪/保持、片内基准及校准特性。此模块内的所有部件能方便地通过3个寄存器SFR接口来设置。 该ADC由基于电容DAC的常规逐次逼近转换器组成。转换器接收的模拟输入范围为0V~VREF引脚电压。片内提供高精度、低漂移并经工厂校准的2.5V基准电压。内部基准可经外部VREF引脚驱动,外部基准可在2.3V~AVDD引脚电压的范围内。 ADμC834装有工厂编程的校准系数,它在上电时自动下载到ADC,以确保最佳的ADC性能。ADC核包括内部失调和增益校准寄存器,所提供的软件校准子程序,可允许用户在需要时重写工厂编程的校准系数,以便使用户目标系统中端点误差的影响为最小。 来自片内温度传感器的电压输出正比于热力学温度。它也可经前端ADC多路转换器传送(如图6所示),这方便了温度的测量。图6模拟输入的等效电路 3.2ADC的转移函数 ADC的模拟输入范围是0V~VREF引脚电压。在此范围内,设计的代码跳变发生在连续的整数LSB值的中间(即1/2LSB、3/2LSB、5/2LSB、…、FS-3/2LSB)。当VREF引脚电压为2.5V时,输出码是直接的二进制数。在0V~VREF引脚电压范围内理想的输入/输出转移特性如图7所示。图7ADC转移函数 3.3ADC的内部基准 ADμC834的A/D转换器接收的模拟输入范围为0V~VREF引脚电压。片内提供高精度、低漂移并经工厂校准的2.5V基准电压,通常工厂里把内部2.5V校准到2.5V±50mV的绝对精度。也可以通过VREF引脚接入外部基准电源,如图8所示。外部基准电源可在2.3V~AVDD引脚电压的范围内。图8使用外部基准源 如果使用内部基准电源,那么在VREF和CREF引脚与AGND之间都应当连接0.1μF电容,以便去耦。这些去耦电容应放在紧靠VREF和CREF引脚处。如果把内部基准电源用到微转换器之外,那么应当在VREF引脚与AGND之间连接0.1μF电容,加以缓冲,如图9所示。应该注意的是:器件上电后,内部的VREF将保持掉电,直到DAC和ADC外围设备模块之一被它们各自的使能位上电为止。图9外部电路使用内部基准源 3.4ADC校准 ADC模块组合了校准硬件,确保用户始终能从ADC获得最佳的性能。基准模式用作ADμC834工厂内部最终例行测试的一部分。工厂基准结果储存在闪速存储器中,由任何上电复位事件自动下载,以初始化ADC校准寄存器。在许多应用中,这种自动校准下载功能已足够满足精度要求。另一方面,可以由用户软件已开始器件的基准,来补偿工作条件(CLK频率,模拟输入范围,基准电压和电源电压)的明显变化。 这种在线软件校准特性使用户能修正各种与系统和基准(无论是内部基准还是外部基准)相关的误差,并确定系统的模拟输入范围,充分利用ADC的动态范围。 3.5ADC的工作模式 ADμC834的ADC有3种工作模式:第一,用软件或通过把转换信号加至外部引脚,可以启动单步或连续转换模式;第二,用定时器2来产生用于A/D转换的重复触发信号;第三,配置ADC工作于DMA模式。在DMA模式下,ADC块连续转换并把采样值捕获到RAM空间,而不需来自MCU核的任何干预。这三种工作模式由3个特殊功能寄存器SFR来设置。 3.6DAC的原理与应用 ADμC834组合了一个12位电压输出DAC和一个双16位∑-△DAC/PWM。它们采用电阻串网络,其等效电路如图10所示。这种结构保证了电路的单调性和线性。但由于缓冲器输出在靠近电源的幅度时,在DAC输出的两端点及其附近有一定的非线性,如图11所示。如果负载电阻大于10kΩ和基准电源为AVDD,产生非线性的范围分别在靠近地和AVDD引脚电压的100mV以内,相应的数字量为0~48和3995~4095。如果采用片内基准电源或远小于AVDD引脚电压的基准电源,则在高端不存在上述的非线性。图10DAC等效电路图11基准电源为AVDD时DAC的传递函数 DAC的缓冲器具有禁止功能。在器件的缺省上电状态,两路DAC都被禁止,它们的输出都处于高阻状态。它们保持缺省上电状态直到软件使能为止。这就意味着,如果上电后要使DAC输出为0,必须在DAC的输出端加一个下拉电阻。有了下拉电阻,只要DAC处于禁止状态,其输出就为低电平。但是,每当器件上电时或软件使能DAC时,DAC都会输出一个脉冲。必要时可采取适当的方法,避免这类脉冲对后续电路的影响。第四章 数字接口 4.1引言 ADμC834有4个I/O端口,每个都有不同特色的驱动/输入电路。除P1口外,其余的端口都与标准的8051/8052以双向性功能为特色的驱动/输入电路相同,而P1口的操作是ADμC834所特有的。P0和P2口可用来访问外部存储器。当不接外部存储器的时候,P0和P2口可以用于通用输入/输出口,并且由特殊的功能寄存器控制。 访问不同类型的外部存储器时,P0和P2的作用与标准的I/O功能不同。特别是MOVX@Ri,A命令仅需要8位地址,所以只需使用P0口,没有涉及P2口的SFR,P2口的引脚可以保持它们的通用I/O口状态。不过,P0口的SFR的内容被改变。P0口的SFR上电时的缺省值为FFH。 MOVX@DPTR或MOVC命令使用P0和P2口。像上述的一样,执行这两条指令中的一条后,P0口的SFR的内容被改变,新的值为FFH。不过,P2口的SFR的内容保持不变,并且,执行命令之后马上就恢复P2口所定义的状态。(假定下一个命令周期不访问外部存储器。) 执行外部存储器中的程序时,使用P0和P2口。同样,P0口的SFR的内容被改变,新的值为FFH。P2口的SFR的内容保持不变,并且,取指之后,如果第一个机器周期不访问外部存储器,P2口马上就恢复所定义的状态。P3口的引脚都是多功能的。表2列出了P3口的特殊功能。引脚功能P3.0RXD,UART的输入口(模式0时,作为串行数据I/O)P3.1TXD,UART的输出口(模式0时,作为串行时钟输出口)P3.2/INT0,外部中断0P3.3/INT1,外部中断1,MISO、SPI串行接口的主模式输入/从模式输出P3.4T0,定时器/计数器0的外部输入端P3.5T1,定时器/计数器1的外部输入端。/CONVST,ADC的转换启动端P3.6/WR,外部数据存储器写选通信号P3.7/RD,外部数据存储器读选通信号表2P3口的特殊功能只有P3口SFR中相应的位置为1时,其特殊功能才被激活;否则,口线保持为0点平。P3口引脚可以比别的端口引脚吸收更大的灌电流(可达8mA),可以直接驱动LED和光电耦合器件。不过,要避免在A/D转换期间同时有多个引脚吸收大电流,以免影响ADC的性能。P1口的基本功能是用作模拟输入口。往P1口的SFR中的各位写入1,可以把P1口设置为模拟输入模式(这也是上电缺省模式);往P1口的SFR中的各位写入0,可以把P1口设置为数字输入模式。但是,P1口不能用作数字输入模式。P1口也是多功能口,除作为模拟输入和数字输入外,还有其它功能,如表3所示。引脚第二功能P1.0T2/PWM0P1.1T2EX/PWM1P1.2DAC/IEXC1P1.3AIN5/IEXC2表3P1口的第二功能4.2端口的位锁存器与I/O缓冲器图12至图15所示为4个端口典型的位锁存器和I/O缓冲器的结构。位锁存(在口SFR中的一位)是一个D触发器,在执行CPU的“写锁存器”指令时,从内部的总线上锁存一个值。触发器的输出Q作为执行CPU的“写锁存器”指令时,放到内部总线上,口引脚本身的电平作为对于“读引脚”信号的响应,由CPU放到内部的总线上。有些指令是“读锁存器”,有些指令是“读引脚”,要注意区别。图12P0口的位锁存器和I/O缓冲器图13P1口的位锁存器和I/O缓冲器图14P2口的位锁存器和I/O缓冲器图15P3口的位锁存器和I/O缓冲器如图12和14所示,P0口和P2口的输出驱动在访问外部数据存储器时,可以由内部控制信号切换到内部地址和地址/数据总线。在访问外部存储器期间里,P2口的SFR保持不变,但是,P0口的SFR各位都被写入1(即全部位锁存器都为1)。在通用的I/O端口方式中,P0口的引脚特点都以“开漏”方式输出。在图12中,只要CONTROL信号保持低电平,与门输出就保持高电平,结果是上端的FET管截止。因此,如果要把P0口作为通用输出口,必须外加上拉电阻。在访问外部数据寄存器时,CONTROL信号为高电平,使P0口的引脚可以在内部地址/数据总线(ADDR/DATA)的作用下上拉。因此,在访问外部数据存储器时,不需要外加上拉电阻。同样的,P2口在内核的控制信号(CONTROL)的作用下也有两种工作方式。在通常的方式中(CONTROL=0),上端的FET管截止,但是,在外部存储器寻址方式中(CONTROL=1),P2口引脚在内部的地址总线(ADDR)控制下,实现上拉/下拉操作。和P0口不同,P2口和P3口都具有内部的上拉功能。P3口的结构如图15所示。无论什么时候,只要P2口或P3口从低电平变为高电平,图16中的Q1管导通两个振荡周期,将引脚迅速的上拉到高电平。此后,由Q3管保持微弱的上拉,因此,引脚保持逻辑高电平。如果有外部信号把引脚拉到低电平,则Q3管截止,只有Q2管保持极微弱的上拉,以提供引脚一定的拉电流。图16P2口和P3口的内部上拉电路唯一不同的是14引脚,它作为串行接口SPI的MISO端,无论什么时候只要工作在SPI方式,SPI的硬件便完全控制该引脚。软件写操作给该引脚不起作用,既不能改变该引脚的状态,也不能读到该引脚的状态。如前所述,ADμC834的P1口主要作为模拟输入口使用。在P1口相应的SFR上写0可以把P1口设置为数字输入口。图13给出了P1口的结构。此外,作为串行接口SPI/I2C的引脚SCLOCK和SDATA/MOSI也有输入和输出功能。它们的等效I/O结构分别如图17~图20所示。两图中左边的方框代表了SPI和I2C的SFR(SPICON和I2CCON)中的位。注意,在I2C模式(SPE=0)中,上边的FET管保持在开路状态,因此,两个引脚都像标准的I2C引脚一样,没有内部上拉的“开漏图17SPI模式下SCLOCK引脚的I/O功能结构图18I2C图19SPI模式下SDATA/MOSI引脚的I/O功能结构图20I2C在SCLOCK和SDATA/MOSI的输入通道上,信号经过施密特触发器调理后到达SPI的硬件,这样可以防止比较慢的信号边沿误触发(重复触发)。而对I2C上面两个图中的“I2C硬件”和“SPI硬件”框图将在下一章详细介绍。注意到SCLOCK和SDATA/MOSI的信号是通过I2C主模式的SFR来提供的,因此,在不使用I2C第五章 串行接口5.1引言 ADμC834配置了很强的串行接口。共有三种串行接口:UART串行接口、SPI串行接口和与I2C兼容的串行接口。UART串行接口是全双工的,可以同时发送和接收数据;它也是接收缓冲的,表示在从接收寄存器读出先前接收到的字节之前,可以开始接收第2个字节。但如果在第2个字节接收完成时,第1个字节仍未被读出,那么字节之一将被丢失。至串行网络的物理接口经过引脚RXD(P3.0)和TXD(P3.1),串行接口可以配置为4种工作模式之一。SPI是工业标准的同步串行接口,它允许8位数据同时同步地被发送和接收。系统可配置为主(master)或从(slave)操作。ADμC834支持2线串行接口模式,它与I2C兼容。此接口可配置为软件主(softwaremaster)或硬件从(hardwareslave)模式,且可与SPI串行接口多路复用。下面分别介绍UART串行接口、SPI串行接口和与I5.2UART串行接口5.2.1UART串行接口简介 ADμC834中的UART串行接口是一个全双工通信接口,即能同时发送和接收数据。它可以作UART通用异步接收和发送器用,也可以作同步移位寄存器用。其帧格式和波特率可通过软件编程设置,在使用上非常方便灵活。串行接口的结构ADμC834的串行接口主要由2个数据缓冲器、1个输入移位寄存器、1个串行控制寄存器SCON和1个波特率发生器T1(即定时器1)等组成。其结构如图21所示。图21串行接口的结构 串行接口数据缓冲器SBUF是可以直接寻址的专用寄存器。在物理上,一个作发送缓冲器,一个作接收缓冲器。两个缓冲器共用一个口地址99H,由读、写信号区分,CPU写SBUF时为发送缓冲器,读SBUF时为接收缓冲器。接收缓冲器是双缓冲的,它是为了避免在接收下一帧数据之前,CPU未能及时相应接收器的中断,把上帧数据读走,而产生两帧数据重叠的问题而设置的双缓冲结构。对于发送缓冲器,为了保持最大传输速率,一般不需要双缓冲,这是因为发送时CPU是主动的,不会产生写重叠的问题。 特殊功能寄存器SCON用来存放串行接口的控制和状态信息。T1作串行接口的波特率发生器,其波特率是否增倍可由特殊功能寄存器PCON的最高位控制。串行通信过程在进行通信时,当CPU允许接收时(即SCON的REN位置1时),外界数据通过引脚RXD(P3.0)串行输入,数据的最低位首先进入输入移位器,一帧接收完毕,再并行送入缓冲器SBUF中,同时将接收中断标志位RI置位,向CPU发送中断请求。CPU响应中断后,并用软件将RI位清除,同时读走输入的数据。接着又开始下一帧的输入过程,重复直至所有数据接收。 CPU要发送数据时,即将数据并行写入发送缓冲器SBUF中,同时启动数据由TXD(P3.1)引脚串行发送。当一帧数据发送完,即发送缓冲器空时,由硬件自动将发送中断标志位T1置位,向CPU发出中断请求。CPU响应中断后,用软件将T1位清除,同时又将下一帧数据写入SBUF中重复上述过程直到所有数据发送完毕。串行接口工作方式及帧格式ADμC834串行接口可以通过软件设置4种不同的工作方式,4种工作方式及帧格式如下:方式0这种工作方式比较特殊,与常见的微型计算机的串行接口不同,它又叫同步移位寄存器输出方式。在这种方式下,数据从RXD端串行输出或输入,同步信号从TXD端输出,波特率固定不变,为fOSC/12(振荡频率为fOSC)。该方式是以8位数据为一帧,没有起止位和停止位,先发送或接收最低位。方式1串行接口采用该方式时,特别适合于点对点的异步通信。该方式规定发送或接收10位数据为一帧:1个起始位、8个数据位和1个停止位。方式2采用这种方式可以接收或发送11位数据,以11位为一帧,比方式1增加了一个数据位,其余相同。所增加的第9个数据即D8位具有特别的用途,可以通过软件来控制它,再加特殊功能寄存器SCON中的SM2位的配合,可使ADμC834串行接口适用于多机通讯。方式2的波特率固定,只有两种选择,为fOSC/64或fOSC/32,可由PCON的最高位选择。方式3方式3与方式2类似,唯一的区别是方式3的波特率是可变的。而帧格式与方式2一样,为11位一帧,所以方式3也适合于多机通讯。串行接口控制ADμC834串行接口的工作方式的选择、中断标志和可编程位的设置、波特率的增倍均是通过2个特殊功能寄存器SCON和PCON来控制的。电源和波特率控制寄存器PCONPCON的地址为87H,只能进行字节寻址,不能按位寻址。它是为在CHMOS结构的51系列单片机上实现电源控制而附加的。对HMMOS的51系列单片机,只用了最高位,其余位都是虚设的。PCON的最高位D7位作SMOD,是串行接口波特的增速控制位。当SMOD=1时,波特率加倍。系统复位时,SMOD位为0。PCON其它各位定义将在后面介绍。串行接口控制寄存器SCON深入理解SCON各位的含义,正确的用软件设定修改SCON各位是运用ADμC834串行接口的关键。该专用寄存器的主要功能是串行通信方式选择、接收和发送控制及串行接口的状态标志指示等。其各位定义如下:SCON9FH9EH9DH9CH9BH9AH99H98H98HSM0SM1SM2RENTB8RB8TIRI表3SCON寄存器的定义①SCON.7和SCON.6分别为SM0和SM1。用于选择串行接口的工作方式(见表4)SM0SM1工作方式功能波特率00方式08位同步移位寄存器fOSC/1201方式110位UART可变10方式210位UARTfOSC/64,fOSC/3211方式310位UART可变表4选择串行接口的工作方式的选择②SCON.4位为REN位。用以软件允许/禁止串行接收,REN=1时允许串行接口接收数据,REN=0时禁止串行接口接收数据。③SCON.5、SCON.3和SCON.2分别为SM2、TB8和RB8。用于实现多机通讯的控制位。在方式0下,SM2应设置为0,不用TB8和RB8位。在方式1下,当SM2=0时,RB8是接收到的停止位;若SM2=1时,则只有收到有效的停止位,才会激活RI使之置1,否则RI不置位。在方式2和方式3下,TB8是发送的第9位(D8)数据,可用软件置1或置0;RB8是接收到的第9位(D8)数据;这两位也可作为奇偶效验位。当方式2或方式3处于接收时,若SM2=1,且接收到的第9位RB8为0时,则RI不置1;若SM2=1,且RB8也为1时,则RI置1。当方式2或方式3处于多机通讯时,TB8和RB8位可作为地址数据帧表示位:一般约定地址帧为1,数据帧为0。④SCON.1为TI位,作发送中断标志。在方式0中,发送完8位数据后,由硬件置位;在其它方式中,在发送停止位之初,由硬件置位。TI置位后可向CPU申请中断,任何方式中都必须由软件来消除TI。⑤SCON.0为RI位,作接收中断标志。在方式0中,接收完8位数据后,由硬件置位;在其它方式中,在接收停止位的一半时,由硬件将RI置位(还应考虑SM2的设定)。RI被置位后可允许CPU申请中断,任何方式中都必须由软件来清除RI。 5.2.2 在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。串行接口的工作方式可以通过编程选择4种工作方式。各种工作方式下其波特率的设置均有所不同,方式0和方式2的波特率是固定的;而方式1和方式3的波特率是可变的,由定时器T1的作为波特率控制。下面分别加以说明。 在方式0时,每个机器周期发送或接收1位数据,因此波特率固定为fOSC/12,且不受SMOD位的控制。 方式2的波特率要受PCON中SMOD位的控制,若SMOD设置为0时,波特率为fOSC/64;若SMOD设置为1时,则波特率为fOSC/32。方式2的波特率可用下式表示:波特率=2SMOD/64*fOSC ADμC834串行接口方式1和方式3的波特率,由定时器1(T1)的溢出率与SMOD位同时控制,其波特率可由下式表示:波特率=T1的溢出率/n 其中n=32或16,取决于PCON的SMOD位的值。SMOD=0时,n=32,SMOD=1时,n=16。因此也可用下式来表示:波特率=2SMOD/32*T1的溢出率 其中定时器送出串取决于计数速率和定时器的预设值。计数速率与TMOD寄存器中C/T的设置有关,当C/T=0时,为定时方式,计数速率=fOSC/12;当C/T=1时,为计数方式,计数速率取决于外部输入时钟的频率,但不能超过fOSC/24。定时器的预设值等于M-X,X为计数初值,M为计数器的最大计数值,与操作模式有关。如果为了达到很低的波特率,则可以选择16位的操作模式,即模式1或模式0;可以利用T1中断来重装计数初值。为能实现定时器计数初值重装,则通常选择操作模式2。在模式2中,TL1用于计数,TH1用于保存计数初值。当TL1计满溢出时,TH1中的值自动重装到TL1中。因此,一般选用T1工作于模式2作波特率发生器。设T1的计数初值为X,设置C/T=0时,那么每过256-X个机器周期,T1就会产生一次溢出。则T1的溢出周期为:溢出周期=12/fOSC*(256-X)溢出率为溢出周期的倒数,所以波特率=2SMOD/32*fOSC/(12*(256-X))=2SMOD*fOSC/(384*(256-X))T1模式2的计数初值由上式可得:X=256-2SMOD*fOSC/(384*波特率)如果串行通信选用很低的波特率,设置T1为模式0或模式1定时方式,则产生溢出时,需要重装计数初值,故对波特率会产生一定的误差。5.3SPI串行接口5.3.1SPI串行接口简介串行外设接口(SerialPeriphralInterface,SPI)是工业标准的同步串行接口,它允许8位数据同时同步的被发送和接收。系统可配置为主(master)或从(slave)操作。SPI接口是一种全双工、三线通信的系统,它允许MCU与各种外围设备以串行方式(8位数据同时同步的被发送和接收)进行通信。在SPI接口中,数据的传输需要1个时钟信号和2条数据线。SPI可工作在主模式或从模式下。在主模式下,每一位数据的发送/接收需要1次时钟作用;而在从模式下,每一位数据都是在接收到时钟信号之后才发送/接收。一个典型的SPI系统包括1个主MCU和1个或几个从外围器件。SPI接口可设置成在发送/接收1个字节结束后产生一次中断。主时钟可以通过编程编成不同的状态。既可编程为4种不同主波特率中的任何一种,又可对时钟的极性和相位进行编程。SPI也可用于那些需要比微控制器上的并行I/O端口有更多输入或输出端口的场合中。SPI提供了一种扩展I/O功能的最简单的方法,只需使用最少的微控制器引脚。5.3.2SPI接口的原理1.SPI的信号说明SPI系统使用4条线可与多种标准外围器件直接接口:串行时钟线SCLOCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线/SS.MISO是主机的输入/从机的输出,主机的MISO应与从机的MISO相连进行高位在前的数据交换。MOSI是SPI接口的SPI主机输出/从机输入数据引脚。因而,这一引脚应当连接主单片机的数据输出和从单片机的数据输入端MOSI,进行高位在前数据的交换。SCLOCK是主机的时钟线,为MISO数据的发送和接收提供同步时钟信号。每一位数据的传输都需要1次时钟作用。因而,发送/接收1B的数据需要8个时钟的作用。主机的时钟通过主机的硬件设置,并和各个从机的SCLOCK相连。时钟的波特率、极性、相位是由SPICON(SPI控制寄存器)来设置的。/SS值在从方式中用于低电平选中从机。/SS在初始化时,P1口被设置为模拟输入。因而,通过清除该引脚可将其设置为数字输入,才可完成主从机的通信。2.SPI的寄存器SPI有两个相关寄存器:SPICON和SPIDAT。其中SPICON包含各种标志位、使能位、方式位及时钟位。各位都是位可寻址的,见下表。另一个SPI寄存器是SPIDAT,对这一寄存器的写操作会产生从高位开始的逐位的数据发送。如果写操作发生在其他数据正在传递的过程中,那么WCOL将置位。如果写操作进行时,没有其他数据在传递,SPIDAT中的数据将自动锁存到移位寄存器中,移位寄存器从高位开始发送数据。发送结束后,输入的字节将锁存到SPIDAT中,可进行软件读出。5.4与I2CI2C接口是Philips开发的双线串的接口模式,此接口可配置为软件主模式(softwaremaster)或硬件从模式(hardwareslave),且可与SPI串行接口多路复用。它通过双线SCLOCK和SDATA可与多片主、从单片机相连。图22描述的是I2图22I2C5.4.1I2C在I2C串行接口中,两根信号线都是双向的。SCLOCK信号控制主、从机之间的数据传递,并控制波特率。SDATA信号用于发送和接收数据。SCLOCK和SDATA分别为第26脚和第27脚。虽然I2C串行接口可以支持多片主、从单片机结构,但是一个I2C串行接口至少要有一个主单片机和一个从单片机。主单片机产生时钟信号,从而驱动从单片机。图22典型I2C时序起始是由主单片机产生的起始位控制的,起始状态是SCLOCK处于高电平时,由SDATA的下降沿触发的。起始状态之后,主机给SDATA发送一个字节(MSB在前),这一字节包括从机地址和R/W状态位。前7位为从机地址(slaveaddress),第8位(LSB)决定了数据传输方向。第8位是0表示主机要向从机中写数据;是1表示主机要从从机中读取数据。只有在从机中的有效应答位已经收到的情况下,这些操作才可进行。主机送出从机地址后,系统中的每个从机将自己的地址与起始状态后第一个字节的前7位地址作比较。如果与之匹配。则从机认为自己被主机访问。此时,从机通过发送应答位发出确认,如图23所示。应答位应在发送每一字节结束时由从机发出,即在SDATA的第9个时钟周期,表现为低电平。图23I2C如果没有确认应答,或者传输已经完成,主机就会发出结束状态。结束状态是SCLOCK处于高电平时,由SDATA的上升沿触发的。5.4.2ADμC834上的I串行接口是由3个特殊功能寄存器SFR控制的:I2CADD:将ADμC834器件的7位地址保存在总线上(默认值为55H)。7位的地址保存过程:如果从机将44H存放在它的I2CADD寄存器中,则主机必须送出88H才能与从机建立联系。由于地址为7位,从机自动确定LSB(最低有效位)为读/写位(R/W)。因此,从机只需将该字节的前7位与自己的地址作比较。为构成一个完整字(8位),从机添加一个0作为MSB(最高有效位)。添加后的结果即为从机的地址,如下图所示。I2CDAT:保存需要接收或者发送的8位数据。I2CCON:保存主/从模式操作的模式/控制位,如图24。从机占用I2CCON的低3位。当硬件执行从模式时,从机自动检测起始位、应答位、中断及结束位。主机占用I2CCON的高4位来控制主机上SCLOCK和SDATA脚的信号发送。因此,在软件主模式中,用户必须利用这些可寻址位通过软件来产生SCLOCK和SDATA信号。10001001/0第一步:主机送地址88H或89H(视操作模式而定)

10001001/0第二步:从机取前7位00001001/0第三步:从机通过加“0”从机添加MSB以构成一个完整8位字,结果:从机接收到地址44H图24I2CCON的位规定第六章 中断系统与定时器/计数器6.1中断系统6.1.1中断源、中断向量和中断优先级 ADμC834提供具有两个优先级的九个中断源。在给定级别内,中断优先级以递减的顺序表示并给出了中断源的概述,说明了请求和控制标志。相应中断的中断矢量地址如表5所列。中断中断名称中断矢量地址优先级中的优先顺序PSMI电源监视器43H1IE0外部INT003H2ADCIA/D转换结果33H3TF0定时器0溢出0BH4IE1外部INT113H5TF1定时器1溢出1BH6I2CI/ISPI串行中断3BH7RI/TIUART中断23H8TF2/EXF2定时器2中断2BH9表5中断矢量地址 为了使用ADμC834的任何中断,必须遵循下列3个步骤:把中断服务子程序放在该中断相应的矢量地址,如表5所列;把IESFR中EA(使能全部)位设置为1;把IE或IE2SFR中相应的各中断位设置为1。3个SFR用于使能各种中断并设置其优先级。这些SFR位的意义如表6所列。应该注意,IE和IPSFR是位可寻址的,而IE2仅是字节可寻址的。下面分别介绍这3个有关中断的SFR。6.1.2与中断6系统有关的特殊寄存器 1、IE为中断使能SFR IE寄存器使能总中断系统和7个中断源,如表6所示:IEAFHAEHADHACHABHAAHA9HA8HA8HEAEADCET2ESET1EX1ET0EX0表6IESFR的各位分布 SFR地址:A8H SFR上电缺省值:00H 位可寻址:是位地址位助记符说明IE.7EA在内核识别任何中断之前,全局中断使能位(EA)必须置为1,EA置为0将禁止所有的中断IE.6EADC为使能ADC中断,ADC中断使能位应置为1IE.5ET2为使能定时器2中断,定时器2溢出中断使能位(ET2)应置为1IE.4ES为使能UART串行接口中断,UART串行接口中断使能位(ES)应置为1IE.3ET1为使能定时器1中断,定时器1溢出中断使能位(ET1)应置为1IE.2EX1为使能外部INT1中断,INT1中断使能位(EX1)应置为1IE.1ET0为使能定时器0中断,定时器0溢出中断使能位(ET0)应置为1IE.0EX0为使能外部INT0中断,INT0中断使能位(EX0)应置为1表7中断使能(IE)SFR位的说明2、IE2为中断使能SFR IE2寄存器使能另外两个中断源,其中各位分布如表8所示:IE2A9HNUNUNUNUNUNUEPSMESI表8IE2SFR的各位分布 SFR地址:A9H SFR上电缺省值:00H 位可寻址:无位地址位助记符说明IE2.7NU未用IE2.6NU未用IE2.5NU未用IE2.4NU未用IE2.3NU未用IE2.2NU未用IE2.1EPSM为使能PSW中断,电源监视器中断使能位(EPSM)应置为1IE2.0ESI为使能SPI或I2C中断,SPI/I2C中断使能位(ESI)应置为1表9中断使能2(IE2)SFR位的说明IP为中断优先级SFR寄存器为各种中断源设置两种主优先级之一。把相应的位设置为1可把中断偏置为高优先级,设置为0则把中断偏置为低优先级。IPSFR的各位分布如图28所示:IPBFHBEHBDHBCHBBHBAHB9HB8HB8HPSIPADCPT2PSPT1PX1PT0PX0表10IPSFR中的各位分布SFR地址:B8H SFR上电缺省值:00H 位可寻址:是位地址位助记符说明IP.7PSI设置SPI/I2C中断优先级IP.6PADC设置ADC中断优先级IP.5PT2设置定时器2中断优先级IP.4PS设置UART串行接口中断优先级IP.3PT1设置定时器1中断优先级IP.2PX1设置外部INT1中断优先级IP.1PT0设置定时器0中断优先级IP.0PX0设置外部INT0中断优先级表11中断优先级(IP)SFR位的说明6.1.3外部中断输入及其应用ADμC834有两个独立的外部中断输入,这两个外部中断与标准的80C51控制器相同。通过对TCON寄存器中的IT1和IT0置位和清除,可将外部中断源设置为电平触发或边沿出发。如果IT1和IT0为0,在INT1或INT0脚上出现低电平时将产生中断;如果IT1和IT0为1,则外部中断设置为边沿触发,中断源必须先维持引脚高电平至少一个机器周期,然后维持低电平至少一个机器周期,这样可以保证跳变信号被检测到。在检测到外部中断信号后,由硬件将中断请求标志位IE0或IE1置1。当中断服务程序响应中断时,IE0或IE1自动清除。如果外部中断设置为电平中断,并且在响应的中断服务完成后外部中断源仍然维持低电平,这将产生一次新的中断。在外部中断设置为电平中断时,是否清除中断标志位IE0或IE1无关紧要,因为中断只与输入端口的电平有关。6.2定时器/计数器ADμC834有3个定时器/计数器,即定时器/计数器T0、T1和T2,还有一个看门狗定时器(WatchdogTimer,监视定时器)。6.2.1定时器/计数器0 在专用寄存器TMOD(定时器方式)中,各有一个控制位(C/T),用于控制定时器/计数器是工作在定时器方式还是计数器方式。 选择定时器工作方式时,计数输入信号是内部时钟脉冲,每个时钟周期使寄存器的值增1。每个机器周期等于12个振荡周期,故计数频率为振荡器频率的1/12。当采用12MHz晶体时,计数频率为1MHz。 选择计数器工作方式时,计数脉冲来自相应的外部输入引脚T0或T1。当输入信号产生由1至0的跳变时,计数寄存器TH0、TL0(或TH1、TL1)的值增1。每个机器周期的S5P2期间,对外部输入进行采样。如在第一个周期中采得的值为1,而在下一个周期中采得的值为0,则在紧跟着的再下一个周期的S3P1期间,计数值就增1。由于确认一次负跳变要花2个机器周期,因此外部输入的计数脉冲的最高频率为振荡周期频率的1/24。对外部输入信号的占空比并没有什么限制,但为了确保某一给定的电平在变化之前至少被采样一次,则这一电平至少要保持一个机器周期。 除了可以选择定时器或计数器工作方式外,每个定时器/计数器还有4种操作模式,其中前3种模式对两者都是一样的,模式3对两者是不同的。1、模式0 通过TMOD寄存器把定时器/计数器0或1置为模式0时,将使它工作在13位定时器/计数器模式。图25表示了定时器/计数器1在模式0下的逻辑图,对定时器/计数器0也适用,只要把图中相应的标识符后缀1改为0就可以了。图25定时器/计数器操作模式0在这种模式下,16位寄存器(TH1+TL1)只用了13位,TL1的高3位未用。图中C/T是TMOD中的控制位,当C/T=0时,选择定时器方式;当C/T=1时,选择计数器方式。引脚T1(P3.5)接外部输入信号。TR1是专用寄存器TCON(定时器控制)中的一个控制位,GATE是TMOD中的另一个控制位,引脚INT1(P3.3)是外部中断1的输入端,在此另有它用。TF1是定时器溢出标志。当满足条件TR1=1和GATE=0(或INT1=1)为真时,接通计数输入,当计数值由全1再增1变为全0时,使TF1置1,请求中断。若TR1=1和GATE=1,则定时器1(TH1+TL1)是否计数取决于INT1引脚的信号,当INT1由0变为1时,开始计数;当INT1由1变为0时,停止计数。这样就可以测量在INT1端出现的正脉冲的宽度。2、模式1 模式1和模式0几乎完全相同,唯一的差别是:模式一中,定时器寄存器TH1和TL1(或TH0和TL0)是以全16位参与操作的。3、模式2 模式2把定时器寄存器TL1(或TL0)配置成一个可以自动重装载的8位计数器,如图26所示。TL1计数溢出时,不仅使溢出标志TF1置1,而且还自动把TH1中的内容重装载到TL1中。TH1的内容可以靠软件预置,重装载后内容不变。 操作模式2对定时控制特别有用。定时器0工作在模式2时与定时器1完全相同。图26定时器/计数器操作模式24、模式3 操作模式3对定时器/计数器0和1是不同的。 对于定时器/计数器1,设置为模式3,将使它保持原有的计数值,其作用如同使TR1=0。 对于定时器/计数器0,设置为模式3,将使TL0和TH0成为2个互相独立的8位计数器,如图27所示。其中TL0利用了对于定时器/计数器0本身的一些控制位:C/T,GATE,TR0,/INT0和TF0。它的操作情况与模式0和模式1类同,但TH0被规定只用作定时器。对机器周期计数时,它借用了定时器1的控制位TR1和TF1,故这时TH0借用了定时器1的中断。 模式3适用于要求增加一个额外的8位定时器的场合。把定时器/计数器0设置于操作模式3,TH0控制了定时器1的中断,而定时器/计数器1还可以设置于模式0~模式2,用于任何不需要中断控制的场合。图27定时器/计数器操作模式36.2.2定时器/计数器2定时器/计数器2是一个具有16位自动重装载功能或捕获功能的定时器/计数器。专用寄存器T2CON是它的控制寄存器。它的工作方式可以分为两类:一为定时器/计数器方式,另一为波特率发生器方式。作定时器用时,TH2和TL2计的是机器周期数。作计数器用时,外部计数脉冲由T2(P1.0)端输入,其工作情况和时序关系与定时器/计数器0和1的完全一样。对外部计数脉冲的要求也如前所述。在定时器/计数器工作方式下,都可以通过T2CON中的控制位CP/RL2来选择捕获功能或自动重装载功能。TH2和TL2内容的捕获或自动重装载是通过一对捕获/重装载寄存器RCAP2H和RCAP2L来实现的。TH2、TL2和RCAP2H、RCAP2L之间接有双向缓冲器(三态门)。当CP/RL2=0时,选择自动重装载功能,即把RCAP2H和RCAP2L的数据自动装入TH2和TL2。当CP/捕获或自动重装载操作发生于下述2种情况中:(1)定时器2的寄存器TH2和TL2溢出时,这时若CP/RL2=0,则打开自动重装载的三态缓冲器,把RCAP2H和RCAP2L的内容自动装载到TH2和TL(2)当EXEN2=1且T2EX(P1.1)端的信号有负跳变时。这时根据CP/RL2是0还是1,将发生捕获或自动重装载操作,同时标志EXF2置1,请求中断。若定时器/计数器2的中断是被允许的,则无论发生TF2=1还是EXF2=1,CPU都会响应中断,此中断向量的地址为2BH。响应中断后,应靠软件撤除中断请求,以免无休止地发生中断。TF2和EXF2都是直接可寻址位,可采用CLRTF2和CLREXF2指令实现撤除中断申请的功能。波特率即每秒钟传输的数据位数,波特率发生器用于控制串行接口的数据传输速率。在T2CON中有2位:RCLK和TCLK,用于选择定时器/计数器1还是定时器/计数器2作串行通信的波特率发生器。由图28可看出,这2位的值用来控制2个电子开关的位置。值为0时,选用定时器/计数器1;值为1时,选用定时器/计数器2。RCLK选择串行通信接收波特率发生器,TCLK选择发送波特率发生器。当选用定时器/计数器2作波特率发生器时,其溢出脉冲用作串行接口的时钟,此时钟频率可由内部时钟决定,也可由外部时钟决定。若C/T2=0,选用外部时钟,该时钟由T2(P1.0)端输入,每当外部脉冲负跳变时,计数器值增1。外部脉冲的脉冲频率不能超过振荡器频率的1/24。由于溢出时,RCAP2H和RCAP2L的内容会自动装载到TH2和TL2中,故波特率的值还决定于装载值。当定时器/计数器2用作波特率发生器时,若EXEN2置1,则T2EX端的信号产生负跳变,EXF2将置1,但不会发生重装载或捕获操作。这时,T2EX可以作为一个附加的外部中断源。在波特率发生器工作方式下,TH2和TL2的内容不能再读写,也不能改写RCAP2H和RCAP2L。图28波特率发生器方式下的定时器/计数器26.2.3定时器/计数器的控制和状态寄存器 专用寄存器TMOD、TCON和T2CON用于控制和确定各定时器/计数器的功能和操作模式。这些寄存器的内容靠软件设置。系统复位时,寄存器的所有位都被清0。1、模式控制寄存器TMODTMOD用于控制定时器/计数器0和1操作模式,其各位的定义见图29。其中低4位用于控制定时器0,高4位用于控制定时器1。各位的作用如下。(MSB) (LSB)GATEC/TM1M0GATEC/TM1M0\_____________________________/ \_____________________________/\/ \/定时器/计数器1 定时器/计数器0图29定时器/计数器模式控制寄存器TMODGATE为选通门。当GATE=1时,只有INT0或INTl引脚为高电平且TR0或TRl置1时,相应的定时器/计数器才被选通工作,这时可用于测量在INTx端出现的正脉冲的宽度。若GATE=0,则只要TR0和TRl置1,定时器/计数器就被选通,而不管INT0或INTl的电平是高还是低。C/T为计数器方式和定时器方式的选择位。C/T=0,设置为定时器方式,内部计数器的输入是内部脉冲,其周期等于机器周期;C/T=l,设置为计数器方式,内部计数器的输入来自T0(P3.4)或T1(P3.5)端的外部脉冲。M0和M1为操作模式控制位。2位可形成4种编码,对应于4种操作方式,见表12。M0M1操作模式00模式0。TLx中低5位与THx中8位构成13位计数器,TLx相当于一个5位定标器01模式1。TLx与THx构成全16位计数器,操作模式同上,但无定标器10模式2。8位自动重装载的定时器/计数器,每当计数器TLx溢出时,THx中的内容重新装载到TLx11模式3。对于定时器0,分成两个8位计数器;对于定时器1,停止计数表12操作模式控制位2.控制寄存器TCON TCON的各位定义见表13。各位的作用如下: TFl(TCON.7):定时器1溢出标志。当定时器/计数器溢出时,由硬件置位,请求中断。进入中断服务后被硬件自动清除。TRl(TCON.6):定时器1运行控制位。靠软件置位时,定时器/计数器接通工作,清除时停止工作。TF0(TCON.5):定时器0溢出标志。其功能和操作情况类同于TFl。,TR0(TCON.4):定时器0运行控制位。其功能和操作情况类同于TRl。IEl(TCON.3):外部沿触发中断1请求标志。检测到在INTl引脚上出现的外部中断信号的下降沿时,由硬件置位,请求中断,进入中断服务后被硬件自动清除。ITl(TCON.2):外部中断1类型控制位。靠软件来设置或清除,以控制外部中断的触发类型。ITl=1时,下降沿触发;ITl=0时,低电平触发。IE0(TCON.1):外部沿触发中断0请求标志。其功能和操作情况类同于IEl。IT0(TCON.0):外部中断0类型控制位。其功能和操作情况类同于ITl。(MSB) (LSB)TF1TR1TF0TR0IE1IT1IE0IT0表13定时器/计数器控制寄存器TCON3.定时器/计数器2控制寄存器T2CONT2CON的各位定义见表14。各位的作用如下:TF2(T2CON.7):定时器2溢出标志。定时器2溢出时置位,并请求中断。只能靠软件清除。但在波特率发生器方式下,也即RCLK=1或TCLK=1时,定时器溢出时不对TF2置位。EXF2(T2CON.6):定时器2外部标志。当EXEN2=1,且T2EX引脚上出现负跳变而造成捕获或重装载时,EXF2置位,请求中断。这时若已允许定时器2中断,CPU将响应中断,转向中断服务程序。EXF2要靠软件来清除。RCLK(T2CON.5):接收时钟标志。靠软件置位或清除,用以选择定时器2或1作串行口接收波特率发生器。RCLK=1时,用定时器2溢出脉冲作为串行接口的接收时钟;RCLK=0时,用定时器1的溢出脉冲作接收时钟。TCLK(T2CON.4):发送时钟标志。靠软件置位或清除,以选择定时器2或定时器1作串行接口发送波特率发生器。TCLK=1时,用定时器2溢出脉冲作为串行接口的发送时钟;TCLK=0时,用定时器1的溢出脉冲作发送时钟。EXEN2(T2CON.3):定时器2外部允许标志。靠软件设置或清除,以允许或不允许用外部信号来触发捕获或自动重装载操作。当EXEN2=1时,若定时器2未用于作串行接口的波特率发生器,则在T2EX端出现的信号负跳变时,将造成定时器2捕获或自动重装载,并置EXF2标志为1,请求中断;EXEN2=0时,T2EX端的外部信号不起作用。TR2(T2CON.2):定时器2运行控制位。靠软件设置或清除,以决定定时器2是否运行。TR2=1,启动定时器2,否则停止。C/T2(T2CON.1):定时器方式或计数器方式选择位(对定时器/计数器2)。靠软件设置或清除。C/T2=0,选择定时器工作方式;C/T2=1,选择计数器工作方式。CP/RL2(T2CON.0):捕获或自动重装载标志。用软件设置或清除。CP/RL2=1选择捕获功能,这时若EXEN2=1,且T2EX端的信号负跳变时,发生捕获操作,即把TH2和TL2的内容传递给RCAP2H和RCAP2L。CP/RL2=0,选择自动重装载功能,这时若定时器2溢出,或在EXEN2=1条件下T2EX端的信号负跳变时,都会造成自动重装载操作,即把RCAP2H和RCAP2L专用寄存器TMOD、TCON和T2CON中的各位都是可位寻址的,因此这一小节叙述的所有标志或控制位都可以靠软件来设置或清除。(MSB) (LSB)TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2表14定时器/计数器控制寄存器T2CON看门狗定时器的功能看门狗定时器的用途是当ADμC834可能有编程错误、电气噪声或电磁辐射干扰而进入错误状态,在合适的时间内产生复位,以保证其最大限度的可靠性。它通过WDCON寄存器(见图35)的WDE位启动。当看门狗功能被启动,定时装置必须得到软件的清除,以防止其溢出时对CPU复位,但是定时装置不能被关闭。当不作为看门狗定时器时,可通过WDCON寄存器的WDE位控制。看门狗溢出时间选择有8个数据,一般正常时间间隔从16ms~2048ms。当看门狗功能有效,在芯片初始化时,向WDCON一次写入数据以设定看门狗溢出时间。建议初始化WDCON时,先写WDCON配置的PRE2~PRE0位,设定看门狗溢出时间,然后“喂”看门狗,最后启动看门狗。由于看门狗定时器的振荡器是一个完全独立于CPU的片内振荡电路,它实质上执行的是振荡器失灵的检测功能。当看门狗功能被启动,无论CPU振荡器因何故失灵,看门狗定时器都会溢出,使CPU复位。当看门狗功能被启动,这个定时器会由于其他原因造成芯片复位而暂时无效,如:电源复位、降压复位或外部复位等。6.2.5看门狗定时器的控制和状态寄存器WDCON看门狗定时器的控制和状态寄存器WDCON如表15所示。其各位定义如下:(MSB) (LSB)PRE2PRE1PRE0-WDR1WDR2WDSWDE表15看门狗定时器控制与状态寄存器WDCONPRE2、PREl、PRE0(WDCON.7~WDCON.5):看门狗定时器溢出时间设置位。通过对这几位的设置可分别得到16ms、32ms、64ms、128ms、256ms、512ms和1024ms的看门狗定时器的溢出时间周期。WDRl、WDR2(WDCON.3~WDCON.2):看门狗定时器的刷新位。通过对这两位按顺序置位操作,可以使看门狗定时器复位,即看门狗定时器重新开始计时。这两位实际上是用于“喂”看门狗的。WDS(WDCON.1):看门狗定时器的溢出状态位。WDS=1,说明看门狗定时器为溢出状态。这一位用于程序初始化时,判断程序是开机复位还是看门狗定时器的溢出复位。WDE(WDCON.0):看门狗定时器的使能位。WDE=1,开启看门狗定时器;WDE=0,关闭看门狗定时器。6.2.6“喂”看门狗的顺序如果看门狗定时器正在工作,必须在其溢出产生复位前“喂”它。“喂”看门狗的顺序包括:先写1到WDRl,再写1到WDR2。下面是一个操作实例:WDFeed:SETBWDRl SETBWDR2两个写命令必须按严格的规程进行操作。一个不正确的“喂”看门狗顺序不会引起看门狗定时器的任何反应。只要在此时间之前没有给它一个正确的“喂”,它仍然按最初设置的时间工作直到溢出。第七章复位、时钟与电源复位电路、时钟电路和电源的设计对ADμC834的应用系统有着重要意义。有关的设计不仅关系到系统的性能高低,更决定了系统能否正常工作。本章讨论ADμC834的复位电路、时钟电路和电源的设计及其注意事项,并给出若干设计建议。7.1复位ADμC834需要外接POC(Power-onreset,上电复位)电路。上电复位电路在电源电压(AVDD和DVDD引脚处)低于2.5V时,要使RESET引脚保持高电平;而且,VDD的电压高于2.5V时,RESET保持低电平至少10ms。外部POR电路必须能够在低至1.2V,甚至更低的电压下工作。图30给出POR电路在三种不同的情况下应有的功能。这三种情况分别是:上电、电源低落和掉电。注意RESET引脚为高电平时它跟随VDD的电压。图30POR电路在三种不同的情况下应用的功能采用专门的POR芯片能够很好满足上述要求,如ADI公司出品SOT-23封装的ADM181x系列复位芯片、MAXIM公司的MAX813等。图37和图38分别给出高电平有效和低电平有效两种复位芯片的复位电路。复位芯片的输出也可用于电路中其它器件的复位,但应注意复位芯片的驱动能力。有些低电平有效复位芯片可以外接手动复位的按键,如图38中虚线所示。图31和图32所推荐的POR电路可以保证ADμC834在上电时正常复位,掉电时正常关闭,在非完全掉电和电源低落时也能做出正常、合适的响应。图31高电平有效复位芯片的复位电路图32低电平有效复位芯片的复位电路7.2时钟ADμC834既可以使用片内的时钟振荡器,也可以使用片外时钟源。使用片内时钟振荡器时,采用并联谐振晶体,在接引脚32(XTAL1)和33(XTAL2)之间,如图33所示。电容器的值按照产生晶体振荡器的厂家提供的电容值选用,一般在10pF~60pF之间取值。如果使用ADμC834片外时钟源,只需将片外时钟源接到引脚32(XTAL1),让引脚33(XTAL2)悬空,如图34所示。XTAL1输入所需的逻辑电平可参考数据手册中有关“DigitalInputs”(数字输入)部分。不管是使用片内的时钟振荡器,还是使用片外时钟源,ADμC834的时钟工作范围均为400kHz~16MHz.由于ADμC834的内核是静止的,所以内核的工作频率可以低到直流。但是,当时钟频率低于400kHz时,片内ADC不能正常工作。因此,为使器件的性能达到额定的指标,应保证ADμC834的时钟工作范围在400kHz~16MHz之间。图33使用片内时钟振荡器的时钟电路图34使用片外时钟源的时钟电路7.3.1ADμC834ADμC834的操作电源供压范围是2.7V~5.5V。只有电源提供的电压没有超出3V或5V的±10%,才能保证器件达到数据手册所给定的额定性能。将模拟正电源电压和数字正电源电压的引脚AVDD和DVDD分离,可以使AVDD不受系统DVDD电源线上噪声信号的干扰。虽然可以用各自独立的电源驱动AVDD和DVDD,但必须确保AVDD和DVDD的电压一直保持在彼此的±0.3V以内,以避免损坏芯片(按照数据表中的绝对最大额定极限)。因此,建议在AVDD和DVDD不直接连在一起时,在它们之间连接反向相叠的肖特基二级管,如图35所示。图35采用两独立电源供电时的处理如果不用两个独立的电源,则可以通过在AVDD和DVDD之间串接小阻抗电阻或磁珠来保证AVDD不受DVDD的影响,并将AVDD直接去耦,如图42所示。然而,不要在AVDD和DVDD之间串接电感器,否则,电感与去耦电容一起会在AVDD上形成谐振电路。同时,不要采用电阻值过大的电阻,以防止AVDD上的阻抗大幅度增加。如图42所示的电路也可以从AVDD电源线上驱动其它模拟电路(如放大器、参考电压等)。为了避免上电和掉电时电源电压的瞬时压差过大,必须在AVDD和DVDD之间连接两只反向并接的肖特基二级管。图36采用一个电源供电的处理注意,在图35和图36中,在DVDD和AVDD上分别接有较大的储能电容器。同样,在芯片每个VDD引脚处接有小容量的陶瓷电容;并尽可能保证陶瓷电容与每个AVDD引脚靠近,每个陶瓷电容的接地端直接连接到地平面。7.3.2A ADμC834的各主要部件的功耗如表16所列。表中列出的内核的电流值是由DVDD提供,其它部件(ADC、DAC、voltageref)的电流值是由AVDD提供,并在不使用时能够使用软件关闭。芯片上的其它外设(看门狗定时器、电源监视器等)消耗的电流可以忽略不计。因此,这些设备的工作电流可以考虑在内核的工作电流内。当然,为了测定ADμC834的电源引脚所需的全部电流,必须把通过并行和串行I/O引脚以及DAC引脚的全部电流计算在内。同样,在FLASH/EE擦除和编程的期间,从DVDD电源提供的电流将增加约10mA,也应计算在内。VVDD=5VVVDD=3VCORE(正常工作模式)1.6nA*fMCLK/Hz+5mA0.8nA*fMCLK/Hz+1.5mACORE(闲置模式)0.75nA*fMCLK/Hz+5mA0.25nA*fMCLK/Hz+1.5mAADC1.3mA1.0mADAC(每通道)250μA200μA参考电源200μA150μA表16ADμC834的各主要部件的功耗DVDD电源提供的电流主要与时钟速度有关,因此,表9中的内核电流表示成fMCLK(振荡器频率)的函数,fMCLK值的单位为Hz。由表9可以确定芯片内核在一定的振荡器频率时的功耗(电流)。由于ADC和DAC可以通过软件使其激活或关闭,因此,所增加的电流仅仅是使用的外设所消耗。只要ADC或至少一路DAC被激活,内部参考电压就自动激活。在考虑功耗时不要忘记从I/O引脚、串行接口引脚、DAC输出等处引入的电流,以及在Flash/EE擦除和编程过程中引入的额外电流。用软件可以使芯片从正常模式切换到闲置模式,也可以切换到关闭模式。下面简要地介绍关闭模式和闲置模式。在闲置模式中,振荡器继续运转,但不与芯片内核接通。芯片上的外设可接收时钟信号并处于功能激活状态。端口引脚和DAC输出引脚保持原状态不变。芯片在接收任一非屏蔽中断信号或硬件复位信号后,将从闲置模式恢复到正常模式。在关闭模式中,芯片上的振荡器停止工作,所有片上外设被关闭。端口引脚保持原逻辑电平不变,但DAC输出变成高阻状态。芯片在接收到硬件复位信号或重新上电时,将从关闭模式恢复到正常工作模式。在关闭模式时,ADμC834消耗的电流总额约为5μA。7.3.3接地与电路板设计由于数据转换器的高分辨率,为了得到最佳的性能,必须格外注意ADμC834的接地及其电路板设计。尽管每个用户系统都有其独特之处,但在设计中,仍有一些共同的原则值得注意。虽然ADμC834有各自独立的模拟地和数字地引脚,但若这两个地平面在非常靠近ADμC834的地方连接在一起,则可将它们就近接地,而无需将它们接到各

温馨提示

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

评论

0/150

提交评论