当前位置:首页 >> 其它课程 >> C第十二单元 新型51兼容单片机与新型接口器件

C第十二单元 新型51兼容单片机与新型接口器件


第十二单元

新型 51 兼容单片机与新型接口器件

本单元学习要点
1. 单片机技术的发展。 2. 目前与 8051 兼容的新型单片机。 3. 新型的接口器件。

12.1

引言

为了使读者尽快地掌握单片机及其开发技术,本书在前面的章节内全部采用了具备最 经典 80

51 的内核的单片机 89C52,这样方便了读者掌握单片机及其接口的概念、原理和方 法,但毕竟 8051 已经有 20 多年的历史了,89C52 也有 10 多年的历史,而微电子技术和微 处理机的技术发展又极为迅速,如果仅仅知道经典的 8051 单片机,那么将很难胜任今后的 可能面临的工作,原因是大量新型单片机的涌现,已经有很多的新型单片机把我们所介绍 的仿真实验板的全部 (除电源外) 器件集成在一个芯片上, 形成所谓的 SoC (System on Chip, 单片系统或片上系统)芯片,实现了真正意义上的”单片机”(Single Chip Machines,单 片机器,简称单片机)。采用这样一些新型的单片机,不仅不会提高成本,反而在提高可 靠性,简化工艺,提高开发效益和系统性能等方面效果显著,不仅如此,仿真实验板上有 不少的器件可能都难以买到,因此,为了使地址真正掌握单片机及其开发技术(所谓”真 正掌握”是在今后的工作中能够得心应手地开发单片机应用系统,如果仅仅掌握了一点基 础知识而对单片机的新发展手足无措的话,怎能称得上”真正掌握”),本章将简要地介 绍部分最新的与 8051 兼容的单片机和一些新型的接口器件。附录?列出了目前国内外各个 半导体厂商正在生产与 8051 兼容的单片机。

12.2 12.2
12.2.1

不断涌现的 8051 兼容的新型单片机
新型 8 位单片机的发展概况

自从 80 年代初期 8051 单片机诞生以来,由于厂商对 8051 单片机开发应用有力的技术 支持和国内有效地开发出 8051 仿真器,8051 单片机以绝对的优势在国内迅速地普及应用。 实际上,当业内人士谈到单片机时,他们就是在讨论 8051;反之,8051 也是单片机的代名 词。然而,随着以美国 MICRO CHIP(微芯)公司 PIC 系列单片机为代表的 RISC 指令集单片 机的出现,对 8051 系列单片机的地位造成巨大的冲击和威胁。PIC 系列单片机在高速度、 低功耗、 驱动能力强和具有一定的模拟信号处理能力等方面显著地胜过标准的 8051 单片机。 很多业内人士对 8051 单片机的落伍有莫名的失落感。毕竟 8051 的应用时间之长、应用面 之广和应用开发人员之多,是其它器件望尘莫及的。 幸而,近年来国际上有多家著名的半导体厂商没有丢弃 8051,通过他们的努力,8051 又有了新的生命力。首先是美国 ADI 公司的 AD?C8xx 系列单片机,这是采用与 8051 兼容的 内核、具有高精度模数转换器和数模转换器等强大混合信号处理为一体的高性能单片机器

186

件, 可以称之为 SoC System on Chip) ( 器件, 公司把他命名为微转换器 ADI (MicroConverter) 。 目前,ADI 公司的 AD?C8xx 系列单片机有三个子系列:AD?C812、AD?C816 和 AD?C824,他 们的差别主要在于模数转换的精度。AD?C812 的模数转换器的精度为 12 位,AD?C816 的模 数转换器的精度为 16 位和 AD?C824 的模数转换器的精度为 24 位。 接着,美国 MAXIM(DALLAS)公司推出了与 8051 完全兼容的高速单片机――DS89C420, 该款单片机的突出优点是其速度高达 50MIPS(Million Instructions Per Second,百万条 指令/秒),MAXIM(DALLAS)公司推出的另一系列与 8051 兼容的单片机是 MAX7651/7652, 这一系列单片机与 AD?C812 十分相似,MAXIM 公司称之为 DAS(Data-Acquisition System, 数据采集系统)器件,可以说,这也是一枚 SoC 器件。 美国 Cignal 公司则开发出 C8051Fxxx 系列单片机;C8051Fxxx 有 4 个子系列: C8051F0xx、C8051F02x、C8051F2xx 和 C8051F3xx。C8051Fxxx 系列单片机的突出特点是混 合信号处理、高速度和十分独特的口线管理能力。 瑞士 XEMICS 公司则推出了 XE881C0x 系列单片机。与同类器件不同的最大特色在于片 内集成了放大器、LCD 驱动电路和很低的功耗。LCD 驱动的输出线在不用于 LCD 显示器的驱 动时, 可作为普通 I/O 口线使用。 XEMICS 公司把 XE881C0x 系列单片机命名为混合信号微处 理器(Mixed Signal Microcontroller)。这一系列单片机主要定向于电池供电的手持式 仪器或射频供电的仪器。 作为世界上第一个研制出集成电路的著名半导体厂商 TI(Texas Instruments)公司也 不甘落后,推出了型号为 MSC1210 的单片机。该型号单片机的最大特点是具有 8 通道高精 度的模数转换器,精度高达 24 位不丢码。 这些新型的与 8051 兼容的单片机的出现,丰富了单片机的选型,更方便了我国难以计 数的单片机应用工程师开发新产品和对旧产品进行改造升级。本章对这些单片机所具有的 新特点进行一些简要的介绍,供读者参考。

12.2.2 12.2.2

8051 兼容单片机的新进展

新型 8051 兼容单片机在技术上体现速度和集成度大幅度提高,放大器、模拟比较器、 模数转换器和数模转换器的集成使得单片机本身具备混合信号处理的能力,各种串口的集 成,使得单片机具备更快、更好的与外部通信的能力,功耗的降低,使 8051 兼容单片机的 应用场合得以大幅度扩展,也简化了单片机的电源设计和提高了可靠性,而在线下载、在 线可编程和在线调试等技术的出现,大大方便了系统的开发和调试,使得单片机的开发方 式发生了革命性的变化。

1.高速度
标准 8051 单片机的最大缺点是速度慢,每个指令周期需要 12 个时钟(振荡)周期。 新型的与 8051 兼容的单片机则多数采用 6 个或 4 个时钟 (振荡) 周期执行一条指令的方式, 在相同的系统时钟频率时使单片机的运行速度提高 2 至 3 倍。如 DS87C550、MAX7651/7652 和 MSC1210 都是采用 4 个时钟(振荡)周期执行一条指令的方式;为了进一步提高速度和 降低功耗,C8051Fxxx 系列单片机和 XE881C0x 系列单片机则采用 RISC 指令与长指令代码, 达到了 1 个时钟(振荡)周期执行一条指令的速度,它们最高速度分别达到了 25MIPS 和 4MIPS。显然,达到 1 个时钟(振荡)周期执行一条指令的速度的单片机就不能再采用分时 复用的总线结构。

2.混合信号处理
在现实世界,需要测量与处理的信号绝大多数是模拟信号,而标准的 8051 单片机只能 处理数字信号。为弥补标准的 8051 单片机的不足,新型的单片机都在模拟信号处理上下了

187

很大的功夫,甚至重点就是放在模拟信号处理上。这些新型的单片机片内都有模数转换器: MAX7651/7652、AD?C812 和 C8051Fxxx 系列单片机都有 8 通道 12 位的模数转换器和数模转 换器。AD?C816 和 XE881C0x 系列单片机则有 16 位的模数转换器,而 AD?C824 和 MSC1210 则有 24 位的模数转换器。 在测控系统中,传感器往往是必不可少的,而传感器又往往需要驱动信号,新型单片 机为了适应这种需要,都设有片内数模转换器用于产生传感器的驱动信号,有的片内还设 有可控恒流源电路。因此,新型单片机可直接与传感器放置在一起,把传感器变成所谓的 智慧传感器(Smart Sensor),可大幅度提高系统的性能,特别是提高了系统的灵敏度和 抗干扰能力。 XE881C0x 系列单片机片内集成了高精度放大器, 放大器的增益可编程, 最大增益达 1000 倍。有了这种放大器,对于多数的应用场合,不需要其它信号放大、处理电路,足以完成 信号的集成、放大和处理工作。 MSC 的模拟信号条理电路则更完善: 不仅放大器的增益从 1 至 128 倍可调, 其失调和增 益误差也可以校准。失调和增益的温漂仅分别为 0.02PPM/℃和 0.5PPM/℃。 C8051Fxxx 系列单片机中不仅有多达 32 通道 12 位的模数转换器 (有些品种的模数转换 器为 8 位、有的为 10 位),还有功能强大的模拟比较器。这种模拟比较器的比较阈值可以 用软件设置、可以设置比较器的迟滞电压,比较器的输出可以配置到某根引脚上。 这些新型的单片机均有高精度的片内基准电源。在 AD?C8xx 系列单片机中还有片内温 度传感器,可以用来监测芯片温度或检测环境温度。

3.在线可编程与在系统可编程
随着单片机的功能增强,其引脚也迅速增加,新型单片机的速度也大幅度增加,采用 8051 原有的硬件仿真器的方式显然难以适应这些新型的单片机。所以,这些新型的单片机 都有大小不等的片内 FLASH 存储器和采用串口或 JTAG 接口下载、调试和固化程序。这样的 结果带来一系列优点:不需要复杂的硬件仿真器,开发更方便,可实现实时仿真,所有的 资源都可为用户所使用,可以在线可编程和在系统可编程。在线可编程和在系统可编程意 味着采用这类单片机的应用系统可以通过网络对系统进行升级、修改和维护。 AD?C8xx 系列单片机通过片内的 UART 串口进行程序的下载、调试和固化。用户只要给 UART 配一个电平转换电路,即可通过 PC 机的 RS232 串口下载程序到 AD?C8xx 系列单片机, 对其进行调试,程序调试好后程序自然就已固化完毕。 C8051Fxxx 系列单片机则采用 JTAG 接口进行程序的下载、 调试和固化。 由于 JTAG 接口 具有一系列优点:可高速实时仿真、不占用任何片内资源……,因而,采用 JTAG 接口调试 单片机是单片机的发展方向。

4. 多种通信串口
新型的单片机多数具备了较完善的串行通讯接口。前面介绍的新型的单片机多数都同 2 时具备 UART、I C 和 SPI 串口。表 12-1 中列出了这些单片机所配备的串口情况。应该指出 的是,这些新型的单片机中的串口功能都有所增强。如 AD?C8xx 系列单片机的 SPI 串口信 号的极性、主从模式和速度等等都是可编程的,又如 MAX7651/7652 中的 UART 串口的速度 可高达 375kb。 表 12-1
单片机型号 AD?C8xx MAX7651/7652 C8051Fxxx

新型的单片机片内串口的配备情况
UART 1 2 1 SMBu 1 IC 1
2

SPI 1





可编程 SPI 串口信号的极性、主从模式和速度。 速度最高可达 375kb。 SMBus 与 I C 完全兼容。三种串口可以同时使用。调试和下
2

188

s XE881C0x MSC1210 1 1 1 1

载程序采用 JTAG 接口。

SPI 串口具有 DMA 功能。

5. 高可靠性与高安全性
为了提高应用系统的可靠性,新型的单片机在以下几个方面有所加强: 1. 看门狗定时器; 2. 电压监视器; 3. 芯片温度检测或器件烧毁检测。 为了提高可靠性和改善电磁兼容性,新型的单片机中的有的器件采用两套时钟。如 XE881C0x 高速工作时采用片内 RC 时钟,高精度定时和低速工作采用片外 32.768kHz 的晶 体工作。这样,芯片的引脚没有高频脉冲信号出现。而有的单片机采用关闭 ALE 引脚输出 的方式,降低可能的电磁辐射。 在程序安全性和数据安全性方面这几种单片机也采用了许多措施,可以说”各庄有各 庄的高招”。 以 C8051Fxxx 系列单片机为例。C8051Fxxx 系列单片机提供了安全选项以保护 FLASH 存储器不会被软件意外修改, 并防止程序代码和常数被非法读取。 C8051Fxxx 系列单片机中 的特殊寄存器――程序存储读写控制寄存器中的程序存储写允许位 PSCTL.0 和程序存储擦 除允许位 PSCTL.1,就是专门用于保护 FLASH 存储器不会被软件意外修改。在用软件修改 FLASH 存储器的内容之前这些位必须被置 1。下面介绍的安全功能可以防止通过 JTAG 接口 或通过运行在系统控制器上的软件读取产权程序代码和常数: 保存在地址 0x7DFE 和 0x7DFF 中的安全锁定字节可以保护 FLASH 存储器,使得不能通 过 JTAG 接口读取或修改其内容。安全锁定字节中的每一位保护一个 4k 字节的存储器块。 将读锁定字节中的一位清 0 可防止通过 JTAG 接口读对应的 FLASH 存储器块;将写/擦除锁 定字节中的一位清 0 可防止通过 JTAG 接口写/擦除对应的存储器块。读锁定字节位于 0x7DFF,写/擦除锁定字节位于 0x7DFE。安全字节的地址和位定义可以用软件写入,但不能 用软件擦除。

6.低功耗 6.低功耗
新型的单片机增加了功能,提高了速度,却降低了功耗。表 12-2 列出了几种新型的单 片机的功耗情况。 表 12-2
单片机型号

新型的单片机片内串口的配备情况
正常工作(mA)/工作频率 (MHz) 闲置(μA) 关闭(μA) 备注

AD?C8xx MAX7651

26/12 55/12

15/(12MHz) 13

50 10 正常工作时的电流最大 值,包括 FLASH 存储器的 页擦除,但不包括模拟电 路的电流。

MAX7652

40/12

5

10

正常工作时的电流最大 值,包括 FLASH 存储器的 页擦除,但不包括模拟电 路的电流。

C8051Fxxx

10/20

2

189

XE88LC01R

0.31/1MIPS < 1.5 < 1 mA

1 < 1

MSC1210

注:由于新型的单片机的工作电压和频率、片上模块活动状态可存在巨大的差别,所以本表给出的数据只 能作为粗略的参考。要了解器件准确的功耗,请查阅相关的参考文献和数据手册。

7. 其它
新型的单片机正在向着 SoC 系统发展,把越来越多的功能部件集成在一个芯片上,功 能越来越强。已经很难在传统的意义去区分单片机(或微处理器)、数字信号微处理器、 逻辑电路、模拟电路、逻辑门阵列等等。如 XE881C0x 系列芯片集成了硬件乘法器,可以在 一个振荡周期内完成 8×8 的乘法运算,可以说已初步具备数字信号微处理器的功能。有的 单片机则集成了 FPGA,有的集成有 USB 接口,有的则集成有网络功能、甚至蓝芽模块。 实际上,只要某些功能模块有实际应用的可能,就有把某些功能模块和与 8051 兼容的内核 集成到一起的新型单片机,以往存在的工艺障碍和成本问题似乎在一夜之间就消失的无影 无踪了。所缺乏的,仍然是人类梦寐以求的主题――想象。

12.2.3

兼容单片机的介绍 若干 8051 兼容单片机的介绍

由于 8051 的众多优点,目前国内外有上百家厂商生产数以千个品种的与 8051 在不同 程度上兼容的单片机。在附录?中,列出了目前国内外各个半导体厂商正在生产与 8051 兼 容的单片机及其主要性能。下面介绍几种特色明显的与 8051 兼容的单片机。

一.Intel 公司的 MCS25l 系列 Intel
16 位单片机可以有比 8 位单片机高得多的性能, 单片机向 16 位机发展, 这是目前一大 发展趋势,甚至过去对 16 位单片机持否定态度的国际知名大厂商也推出了 16 位单片机, 大多数 16 位单片机都允许工作在 8 位方式,这主要是因为目前大量外围接口芯片都是工作 在 8 位方式,使用者可以有广泛的选择余地。Intel 公司新推出的新一代单片机 MCS25l 系 列,它与 8051 系列单片机具有很好的兼容量。可以实现二进制代码兼容、封装引脚兼容。 只要换上 MCS25l 芯片,8051 系列单片机使用者就可以迅速实现升级,有效保护了使用者 原有时间和精力的投入。 使用现存 8051 代码, 升级后可使性能增强 5 倍, 如果使用 MCS25l 新指令,则可以使性能增强 15 倍。 1. MCS25l 系列单片机的性能特点 MCS25l 系列单片机的具有如下的性能特点: MCS25l 单片机核心采用了三段式的流水线指令和寄存器式的中央处理单元结构, 芯片 具有 16 位内部代码总线、因而可以使性能增强 5~15 倍、同时减少功耗及射频干扰。 基于 CPU 的寄存器结构,具有灵活的 8 位/16 位/32 位寄存器、从而可以实现 8 位、 l 6 位、32 位运算和逻辑操作。 具有 24 位程序和数据地址线,可以寻址 l6 M 字节存储器。 堆栈空间可以达到 64K 字节。 片内 RAM 可达 512~1K 字节,ROM 或 EPROM 可达 8K 或 16K 字节。 有 32 条可编程定义的 I/0 线。 具有多个 16 位定时器/计数器。 标准串行口。 支持多达 64 个中断源;具有上升沿/下降沿捕捉功能。 高速输出。

190

具有 PWM 脉冲宽度调制输出。 内置硬件看门狗,提高系统安全可靠性 片内含有 ROM 或 EPROM 的芯片具有很好的加密特性,使用先进的加密结构和方 法。具有 64 字节加密阵列、3 级锁定,保护开发者的权益。 0~l6MHz/33MHz 时钟。 MCS251 系列单片机的品种 的品种及派生产品 2. MCS251 系列单片机的品种及派生产品 251 系列单片机的多种不同型号,以满足不同场合与情况的需要。如 8XC251SA, 8XC251SB,8xC251SP,8xC251SQ 等,有的品种集成有其他的特殊功能:如 25l 十 USB, 251 十 LCD 驱动,251 十 EEPROM,251 十 FLash 存储器等。其中 251 十 USB 的单片机特 别引人重视:USB(Unive rsal Searial Bus)是一种新的串行总线标准。它由七大产业巨头 发起,即 Intel、IBM、Compaq、Digital、Microsoft、NEC、Northern、Telecom。USB 是开 放性的、免版权的 PC 产业串行标准、1996 年应用于标准 PC。它是 PC 架构的革命,支持” 箱外”即插即用,简化互联,而且成本低。它将目前计算机主机箱与外设蜘蛛网式的连接简 化为一条串行总线。它可有 126 个逻辑节点、速度可达到 12MB/s、可以动态插拔、自动 配置。 MCS251 3. MCS251 系列单片机的内部结构 MCS251 系列单片机的内部结构如图 12-1 所示。

图 12-1

MCS251 系列单片机的内部结构

191

MSC12l0 二.TI 公司的 MSC12l0 系列
在许多测控系统中往往需要进行高精度的测量和进行实时快速控制,同时还希望提高 开发效率。为此人们常采用高精度 A/D 芯片加带 ISP(In-System Programm,在系统可编 程)开发功能的单片机系统来实现。德州仪器(TI)的 MSCl210 单片机解决了上述问题。 MSCl210 集成了一个增强型 8051 内核、高达 33MHz 的时钟周期、8 路 24 位高精度Σ-? A /D 转换器、F1ash 存储器等,其系统功能和结构框图如图 12-2 所示。MSCl210 具有以下 主要特点: 3 个 16 位的定时器。 16 位 PWM 输出。 多达 21 个中断源。 32 个数字输入/输出端口。 带有看门狗。 8 路 ADC 提供 24 位分辨率、可编程的无丢失码。 可编程增益放大(PGA),增益在 1—128 之间可调,极大提高了 ADC 精度。 供电电源 2.7~5.25V,在 3V 时功耗低于 4mw,停止方式电流小于 1?A。 内核兼容 8051,指令与 8051 完全兼容,可以使用原有 8051 开发系统。 时钟频率可达 33MHz,单周期指令执行速度达 8MIPS,执行速度比标准 8051 快 3 倍。 高达 32KB 的 F1ash 存储器,SRAM 达 1.2KB,外部可扩展至 64KB 存储器。 F1ash 在电压低达 2.7V 时仍可串行或并行编程,可 10 万次擦除/写操作。 具有 32 位累加器。 电源管理功能,能够进行低电压检测片上电复位。 带 FIFO 的 SPI 端口,双 UART。

图 12-2

MSCl210 的内部结构框图

三.Philip 公司的 8XC552 系列
Philip 公司的 8XC552 单片机具有体积小、功能强、价格低等优势。是一种应用较广

192

的 8051 兼容的单片机。8XC552 三种不同的型号: (1)80C552 为片内无 ROM 型; (2)83C552 为片内带 8kB 编程 ROM 型; (3)87C552 为片内带 8kB 用户可编程 EPROM 型。 从 8XC552 内部结构上,8XC552 大体可分为六个部分:8051 核件、存储器组织、I/O 接口、定时器材数器、A0 及 D/A、中断系统,其内部结构框图如图 12-3 所示。与 8051 相比,8XC552 片内集成的新增硬件有:片内 RAM 的高 128 字节及新增的 35 个特殊功能 寄存器 SP、R、高速 I/O 口、脉冲宽度调制器 PWM、A/D 转换器、内部监视定时器 WDT、 定时/计数器 T3 以及与之相配合的捕获/比较逻辑、串行总线 I2C 和增强功能的中断逻辑。

图 12-3
【0】P0 口的第二功能 【3】P3 口的第二功能

8XC552 内部结构框图
【2】P2 口的第二功能 【5】P5 口的第二功能

【1】P1 口的第二功能 【4】P4 口的第二功能

下面对 8XC552 的新增功能及特性进行说明。 1. 8XC552 的片内 RAM 与特殊功能寄存器 . 8XC552 的片内 RAM 共有 256 个字节,地址范围为 00H~0FFH。其中 00H~7FH 为片 内 RAM 的低 128 字节区,用法与 8051 相同;80H~FFH 为片内 RAM 的高 128 字节,它与 特殊功能寄存器区公用。而在 8051 中,这段片内 RAM 的高 128 字节地址空间只能作特殊 功能寄存器区使用。 2. 8XC552 的并行 I/O 口及其第二功能 . / 8XC552 有 6 个 8 位并行 I/O 口 P0~P5,8051 只有 P0~P3 一共 4 个。其中在对 P0, P2 和 P3 口的第一功能和第二功能用法上,8XC552 和 8051 完全一样。而对 P1 口,用法有 所不同:805l 中的 Pl 口无第二功能;8XC552 中的 Pl 口有第二功能(见图 12-3),用于定 时器 T2 的捕捉输入、外部事件的计数输入、复位输入以及 12C 总线的时钟线和数据线。 8XC552 中的 P4 口除有作为通用 I/O 口的第一功能外,还具有第二功能:用于比较寄 存器与定时器相匹配时的置位输出、复位输出和触发输出。8XC552 的 P5 口只用作输入, 可用作片内 10 位 A/D 转换器的 8 路模拟量输入,也可作为数字量输入,但无位寻址功能。 3. 8XC552 的 A/D 转换器和 PWM 的应用 . 8XC552 片内含有一个 8 路 10 位逐次比较型 A 心转换器,它由模拟输入开关、10 位

193

A/D 转换器、ADC 控制寄存器 ADCON 和 ADC 结果寄存器 ADCH 等组成。对 A/D 转换 器的操作通过访问特殊功能寄存器 ADCON 实现。ADCON 中包括了 A/D 转换器的启动控 制位、中断标志位、8 路模拟量输入选择位和转换结果的低 2 位。其中对于 A/D 转换器的 启动可设置成两种方式:一种是只能由软件启动;另一种是既可由软件启动,也可由外部 引脚 STADC 上的信号上升沿启动。完成一次 A 心转换的时间是 50 个机器周期。 8XC552 的 D/A 转换器功能采用脉冲宽度调制器的输出实现。8xC552 芯片上有两 个脉冲宽度调制器输出引脚 PWM0 和 PWMl,可分别输出占空比可调的系列脉冲。占空比 由脉冲宽度调制寄存器 PWM0 和 PWMl 的内容确定。通过对 PWM0 和 PWMl 引脚上输出 波形的滤波和放大就可实现 8XC552 的 8 位 D/A 转换器输出功能。 4. 8XC552 的定时器 T2 和捕捉比较逻辑 . 8XC552 的定时器 T2 由两个 8 位特殊功能寄存器 TMH2 和 TML2 组成,且 T2 与四个 16 位捕捉寄存器 CT3~CT0 和三个 16 位比较寄存器 CM2~CM0 相连, 形成捕捉比较逻辑。 对定时器侧的控制通过访问 T2 控制寄存器 TM2CON 实现。在 TM2CON 中定义了 T2 的工 作方式、计数脉冲的预分频系数及溢出中断控制位等。定时器 T2 不能由程序装入初值,只 能由 RST 上的复位信号或 RT2(P1.5 的第二功能)引脚上信号的上升沿清零。T2 的预分频 系数有 1, 4 和 8 四种, 2, 其中溢出中断的最长时间间隔为 524ms 发生一次 (12MHz 时钟) 。 对定时器 T2 的时间捕捉功能是在输入引脚 CT0I~CT3I(P1.0~P1.3 的第二功能)的 控制下进行的。 CT0I~CT3I 引脚上的信号上升沿或下降沿触发, T2 计数寄存器 TMH2 由 将 和 TML2 中的内容分别装入 T2 捕捉寄存器 CT0I~CT3I 中,并同时使 T2 中断标志寄存器 TM2IR 中的相应中断标志位 CTI0~CTI3 置位产生中断请求。CT0I~CT3I 引脚上的信号触 发方式由 T2 的捕捉控制寄存器 CTCON 设定。利用定时器 T2 的时间捕捉功能可以方便地 测得一个周期变化事件的时间间隔。一般地通过计算前后两次连续捕捉到的正时间值的差 值可得到某个周期变化事件的周期时间。 8XC552 对定时器 T2 的时间/计数值比较功能是将设置在三个比较寄存器 CM0~ CM2 中的内容不断地与定时器 T2 中加 1 变化的计数值经比较器 COMP 进行比较。若发现 相等时,则在发现相等的同一机器周期末时置位 T2 中断标志寄存器 TM2IR 中的相应中断 标志位 CMI0~CMI2,产生中断请求。定时器 T2 的时间计数值比较功能可以实现对 P4 口 (当 P4 口用作第二功能时)的操作,使 P4.5~P4.0 可实现置位输出、复位输出和 P4.7~ P4.6 的触发取反输出。 5.8XC552 的定时器 T3 . 定时器 T3 是一个监视定时器,用于单片机因受干扰而不能正常执行程序时使系统复 位,以恢复正常运行。监视定时器 T3 由一个 11 位预分频器和一个 8 位定时器组成。在晶 振频率为 12MHz 时,T3 的监视时间间隔可编程为 2ms~512ms,对应的 T3 初值为 0FFH~ 00H。当监视定时器 T3 发生溢出时,将产生一个内部复位信号,使 8XC552 复位,以恢复 系统正常运行。 监视定时器 T3 的工作必须在外部引脚 EW=0 时才能进行。在系统调试阶段,为了不 使因 T3 产生间隔的复位信号而影响系统调试,可将 EW 接高电平,禁止 T3 工作。待系统 投入运行时再将 EW 接地,以起到监视复位作用。 对 T3 的时间常数初值须分两步装入: 首先使电源控制器 PCON 的位 4――PCON.4 (位 符号名为 WLE)置位;然后再对 T3 装入初值。一当 T3 的初值装入后,WLE 便自动复位, 以禁止对 T3 的再装入。在实际应用中,常把对 T3 的初值装入编成一个子程序,称作”喂 狗”子程序。在应用程序中,用户只要在规定的监视间隔以内调用看门狗子程序,就可确 保监视定时器 T3 不会因溢出而造成系统复位。看门狗子程序为:
WATCHDOG: ORL PCON, #10

194

MOV T3, #WATCH-INTV RET

; WATCH-INTV 为已定义的时间常数初值

6.8XC552 的 12C 总线 . 8XC552 片内有一个 I2C 串行总线接口(又称 SIO1 接口),它通过 P1.6 和 P1.7 引脚的 第二功能同 I2C 总线上的数据线 SDA 和时钟线 SCL 相连。该接口(SIO1)由输入滤波器与 输出级、地址寄存器与比较器、移位寄存器、仲裁与同步逻辑、串行时钟发生器、定时与 控制逻辑、控制寄存器、状态译码器以及状态寄存器等部分组成。I2C 串行总线接口的工作 方式有 4 种:主发送、主接收、从发送和从接收。 7. 8XC552 的中断系统 . 8XC552 中断系统的逻辑图如图 12-4 所示。8XC552 共有 15 个中断源,每个中断源可 通过中断优先级寄存器 IP0、IP1 设定为高、低两个中断优先级。高优先级中断可打断低优 先级中断, 实现两级中断嵌套。 同级中断申请的优先级顺序和各中断源的中断矢量如表 12-3 所示。

图 12-4

8XC552 中断系统的逻辑图

195

表 12-3

8x1C552 的中断优先级顺序及各中断源的中断矢量 中断源 符号 INT0 SIO1 ADC T0 CT0I CM0 INT0 CT1I CM1 T1 CT2I CM2 SIO0 CT3I T2 硬件查询顺序 1(最高) 2 3 4 5 6 7 8 9 10 11 12 13 14 15(最低) 中断矢量 003H 002BH 0053H 000B 0033H 005BH 0013H 003BH 0063H 001BH 0043 006BH 0023H 004BH 0073H

外部中断 0 串口 I2C ADC 转换完成 T0 溢出 T2 捕捉 0 输入端 T2 比较 0 外部中断 1 T2 捕捉 1 输入端 T2 比较 1 T1 溢出 T2 捕捉 2 输入端 T2 比较 2 串口 UART1 T2 捕捉 3 输入端 T2 溢出

Semiconductor EZ四.Cypress Semiconducto 公司的 EZ-USB FX2
传统的外设与 PC 机的通讯接口一般是基于 PCI 总线、ISA 总线或者是 RS-232 串行总 线。PCI 总线虽然具有较高的传输速度(132 Mbp),并支持”即插即用”功能,但其缺点 是插拔麻烦,且扩展槽有限(一般为 5~6 个)。ISA 总线显然存在同样的问题。RS-232 串 行总线虽然连结简单,但其传输速度慢(56 kbps),且主机的串口数目也有限。通用串行 总线(Universa1Seria1Bus,简称 USB)是 1995 年康柏、微软、IBM、NEC 等公司为了解 决传统总线的不足,而推出的一种新型串行通信标准。该总线接口具有安装方便、高带宽、 易扩展等优点,已经逐渐成为现代数据传输的发展趋势。基于 USB 的数据采集系统充分利 用 USB 总线的上述优点,有效地解决了传统数据采集系统的缺陷。USB 的规范能针对不同 的性能价格比要求提供不同的选择,以满足不同的系统和部件及相应不同的功能,从而给 使用带来极大方便。 Cypress 公司推出的 EZ-USB FX2 芯片,也叫做 CY7C68013。它是第一个支持 USB2.0 同时向下兼容 USB2.1 规范的单片机, 它既负责 USB 事务处理也兼具微处理器的控制功能, 可用作 USB 外部设备的主控芯片。该芯片把 USB2.0 收发器、串行接口引擎 SIE(Serial Interface Engine)、增强的 8051 内核、I2C 总线接口以及通用可编程接口 GPD(General Programmable Interface)集成于一体。其小巧的体积及较高的性能价格比使得 EZ-USB FX2 芯片在高速数据采集、海量存储器、打印机、扫描仪和 PCMCIA 等各种 USB 设备上得到了 广泛的应用。EZ-USB FX2 的主要性能特点如下: ● 内置 USB2.0 收发器和智能串口引擎 SIE。 ● 带有增强的 8051 内核,其时钟频率可为 12MHz、24MHz 或 48MHz。两个通用异 步收发器(UART)。三个定时/计数器。两个数据指针。支持外部中断。 ● 可通过 USB 下载程序,也可从外部扩展的 EEPROM 中下载程序。 ● 支持块传输、中断传输、同步传输和控制传输。 ● 具有的 8bit 或 16bit 外部数据接口。 ● 具有通用可编程接口 GUF。 ● 内置 12C 接口,其工作速率为 100 kHz 或 40 kHz。

196

● 带有集成 FIFO(先进先出存储器),能运行于 MASTER 或 SLAVE 模式,并可很 容易地与 ASIC(大规模集成电路)或 DSP 接口。 ● 具有 40 个通用 I/0 引脚,采用 3.3V 工作电压,具有 128-TQFP、100-TQFP 及 56-SSOP 三种封装形式。 FX2 的内部功能框图和引脚图分别如图 12-5、12-6 所示,引脚定义如表 12-4 所示。

图 12-5

FX2 的内部功能框图

当前大部分 USBl.1 器件都需要微控 制器参与数据从端点 FIFO 到应用环境转 移,如图 12-7 所示。显然,微控制器本身 的工作频率在相当程度上限制了带宽的进 一步提高。 虽然在 12Mb/s 的全速模式下, 这种限制并不明显,但当速度提升至 480Mb/s 时,在成本严格控制下的微控制 器就必然成为整个系统的带宽瓶颈。 而 EZ-USB FX2 提供了一种独特架 构,使 USB 接口和应用环境直接共享 FI F0,微控制器可不参与数据传输,但允许 以 FIFO 或 RAM 的方式访问这些共享 FIFO,如图 12-8 所示。这种被称之为”量 子 FIFO”(Quantum FIFO)的处理架构, 较好地解决了 USB 高速模式的带宽问题。 具体来说,如图 12-9 所示,USB 执 行 OUT 传输时, EP2 端点设成 512 字节 将 四重 FIFO。 USB 端只要有 1 个 FIFO 为 “半 满”,就可以继续发送数据。当前操作的 FIFO 写“满”时,Fx2 自动将其转换到外 部接口端,排队等候读取;并将 USB 接口 队列中下一个为” 空” FIFO 转移到 USB 的 接口上,供其继续写数据。外部接口端与 此类似,只要有 1 个 FIFO 为“半满”,就

图 12-6

56-SSOP 封装 FX2 的引脚

197

可以继续读取数据。当前操作的 FIFO 读“空”时,Fx2 自动将其转换到 USB 接口端,排 队等侯写入;并将外部接口队列中下一个为“满”的 FIFO 转移到外部接口上,供其继续读 取数据。 表 12-4 FX2 的引脚定义

198

USB

端点 FIFOs

微控制器

应用系统

图 12-7

USBl.1 的传输模式

微处理器 RAM/ FIFO USB 端点 FIFOs 应用系统

图 12-8

EZ-USB FX2 的传输模式

图 12-9

EZ-USB FX2 的 OUT 传输时的原理

AD? 五.ADI 公司的 AD?C8XX 系列 美国 ADI(Analog Device Inc. 模拟器件)公司推出的 AD?C 类芯片,虽然将 ADC、 DAC 以及单片机高度集成在一起,但其核心仍然是单片机内核。如 AD?C812,其内核与 8051 兼容,它的内部存贮器组织、片内外围设备等,与 8051 的结构相似,指令系统与 8051 的指令系统完全一样, 定时器/计数器和串行接口等的工作方式也与 8051 的完全一样。 所以 在对 AD?C812 编程时,可以参考 8051 单片机的有关资料。但是 AD?C 类芯片仍有一些结 构和功能与 8051 单片机不同。例如 AD?C 类芯片的闪速/电擦除(Flash/EE)程序存贮器和 数据存贮器,与 8051 单片机的存贮器不同,尤其该类芯片中所集成的模数转换器 ADC 的 工作方式,比传统的 ADC 芯片的工作方式灵活得多,这使得用户利用 AD?C812 开发数据 采集系统非常方便。 1. AD?C812 的单片机内核介绍 ?

199

AD?C812 的单片机内核是与 8051 兼容的、可编程的 8 位 MCU。片内有 8k 字节的闪 速/电擦除(Flash/EE)程序存贮器、640 字节的闪速/电擦除数据存贮器以及 256 字节数据 SRAM。另外 MCU 支持的功能包括看门狗定时器、电源监视器以及 ADC DMA 功能。为 多处理器接口和 I/O 扩展提供了 32 条可编程的 I/O 线、I2C 兼容的 SPI 和标准 UART 串行 端口 I/O。 AD?C812 的 MCU 内核和模数转换器二者均有正常、空闲以及掉电工作模式,它提供 了适合于低功率应用的灵活的电源管理方案。器件包括在工业温度范围内用 3V 和 5V 电压 工作两种规格,它有 52 引脚、塑料四方形扁平封装形式可供使用。 下面分别从 AD?C812 的功能方框图、 芯片引脚排列及其引脚说明、 存贮器组织以及片 内外围设备来详细说明该芯片的结构。 AD?C812 的功能方框图和引脚排列分别如图 12-10 和 12-11 所示。AD?C812 的引脚说 明如表 12-5 所示。
P0.0—P0.7 P1.0—P1.7 P2.0—P2.7 P3.0—P3.7

12 位 AIN0(P1.0) AIN AIN7(P1.7) MUX 采样/保持 12 位 ADC ADC 转换 和校准单元 DAC 控制 12 位 DAC1 DAC1 T0(P3.4) 微控制器 2.5V 参考电平 温度 传感器 与 8051 兼容 的微控制器 电源检测器 3 个 16 位 定时/控制器 T1(P3.5) T2EX(P1.1) INT0(P3.2) T2(P1.0) INT1(P3.3) DAC0 缓冲器 DAC0

8k 闪速/电擦 VREF 缓冲器 除程序存贮器

看门定时器

2 线串 行 I/O 口 SPI

640 字节 闪速/电擦除 数据存贮器

片内串口 下载器 MUX

ALE

CREF

PSEN 256 字节片内 数据存贮器 OSC UART RESET

EA

AVDD AGND

DVDD

DGND

XTAL XTAL TxDRxD MOSI MISO 1 2 P3.0 P3.1 SDATA P3.3

SCLOCK

图 12-10

AD?C812 功能方框图

200

图 12-11

AD?C812 的引脚排列

表 12-5 AD?C812 的引脚说明 符号 类型 功能 DVDD P 数字正电源电压,额定值为+3V 或+5V AVDD P 模拟正电源电压,额定值为+3V 或+5V CREF I 片内基准的去耦引脚,在此引脚和 AGND 之间连接 0.1?F 的电容 VREF I/O 基准输入/输出。此引脚通过串联电阻连接至内部基准,是模数转换 器的基准源。额定内部基准电压为 2.5V 且出现在此引脚(当 ADC 和 DAC 外围设备被使能时)。此引脚可以由外部引脚过驱动 AGND I/O 模拟地。模拟电路的地基准点 P1.0-P1.7 G 端口 1 仅为 8 位输入端口。 与其他端口不同,端口 1 缺省为模拟输入 端口, 为了把这些端口的任一个引脚配置为数字输入,应把 0 写至端 口值。端口 1 引脚是多功能的且共享以下功能 ADC0-ADC7 I 模拟输入。8 个单端模拟输入。通过 ADCCON2 SFR 进行通道选择 T2 I 定时器 2 数字输入。输入至定时器/计数器 2。当被使能时,对应于 T2 输入的 1 至 0 的跳变,计数器 2 增量 T2EX I 数字输入。计数器 2 Capture/Reload(捕获/重载)触发并用作计数器 2 Up/Down(上/下)控制输入 SS I SPI 接口的从属选择输入 SDATA I/O 用户可选,I2C 兼容输入/输出引脚或 SPI 数据输入/输出引脚 SCLOCK I/O I2C 兼容串行时钟引脚和 SPI 串行接口时钟 MOSI I/O 用于 SPI 接口的 SPI 主输出/从输入数据 I/O 引脚 MISO I/O 用于 SPI 接口的 SPI 主输入/从输出数据 I/O 引脚 DAC0 O DAC0 电压输出 DAC1 O DAC1 电压输出 RESET I 数字输入。当振荡器运行时,此引脚上长达 24 个主时钟周期的高电 平是器件复位

201

P3.0-P3.7

I/O

RxD TxD INT0 INT1 T0 T1 CONVST

I/O O I I I I I

WR RD XTAL2 XTAL1 DGND P2.0-P2.7 (A8-A15) (A16-A23)

O O O I G I/O

PSEN

O

ALE

O

EA

I

P0.7-P0.0 (A0-A7)

I\O

端口 3 是具有内部上拉电阻的双向端口。 1 的端口 3 引脚被内部上 写 拉电阻拉至高电平, 在此状态下它们可被用作输入。由于内部上拉电 阻, 被外部拉至低电平的端口 3 引脚提供电流。端口 3 引脚也包括各 种次要功能,它们将在下面说明 串行(UART)端口的接收数据输入(异步)和数据输入/输出(同步) 串行(UART)端口的发送数据输出(异步)和数据输入/输出(同步) 中断 0,可编程为边沿或电平触发中断输入,它可以被编程至两个优 先级之一。此引脚也可用作定时器 0 门(GATA)控制输入 中断 1,可编程为边沿或电平触发中断输入,它可以被编程至两个优 先级之一。此引脚也可用作定时器 1 门(GATA)控制输入 定时器/计数器 0 输入 定时器/计数器 1 输入 当外部转换启动被使能时 ADC 块低电平有效转换启动逻辑输入。此 输入端低电平至高电平跳变将把跟踪/保持置入其保持方式并启动转 换 写控制信号, 逻辑输出。把来自端口 0 的数据字节锁存入外部数据存 贮器 读控制信号,逻辑输出。允许外部数据存贮器送至端口 0 倒相振荡器放大器的输出 输入至倒相振荡器放大器并输入至内部时钟产生器时钟电路 数字地。数字电路的地基准点 端口 2 是具有内部上来电阻的双向端口。 1 的端口 2 被内部上拉电 写 阻拉至高电平,在此状态下它们可被用作输入。由于内部上拉电阻, 被外部拉至低电平的端口 2 引脚将提供电流。 端口 2 在从外部程序存 贮器取指期内发出高地址字节,在访问外部 24 位外部数据存贮器空 间发出中和高地址字节 程序存贮使能,逻辑输出。此输出端是控制信号,它在外部取指操作 期间内允许外部程序存贮器送至总线。 除了在外部数据存贮器访问期 间, 它每 6 个时钟周期有效。在内部程序执行期间内此引脚保持高电 平。当上电或者复位通过电阻拉至低电平时,PSEN 也可用作使能下 载模式 地址锁存允许,逻辑输出。在正常工作期间,此输出用于把地址的低 字节(对于 24 位地址空间访问还有中字节)锁存入外部存贮器。除 了在外部数据存贮器访问期间内,它每 6 个振荡周期被激活(有效) 外部访问使能,逻辑输入。当保持高电平时,此输入使器件能从地址 为 0000H 至 1FFFH 的内部程序存贮器取回代码。当保持低电平时, 此输入使器件能从外部程序存贮器取回所有指令 端口 0 是 8 位漏极开路双向 I/O 端口。写 1 的端口 0 引脚悬空,在此 状态下可用作高阻抗输入。 在访问外部程序和数据存贮器期间内,端 口 0 也是多路复用的低位地址和数据总线。

2.存贮器组织 AD?C812 如所有与 8051 兼容的器件一样, 对于程序和数据存贮器具有分开的地址空间。 其内核中组合了片内可重新编程,非易失性闪速/电擦除程序和数据存贮器。闪速存贮器是 最新类型的非易失性存贮器技术,它基于单个晶体管单元结构,既具有 EEPROM 灵活的在线 可重新编程的特点,又包括了 EPROM 空间有效性/高密度的特点。与 EEPROM 一样,虽然闪 速存贮器首先必须被擦除,但它可在系统内在字节级被编程,擦除在扇区块内执行。因此, 闪速存贮器常常且更为确切地被称作为闪速/电擦除存贮器。 AD?C812 包含了两个闪速/电擦除存贮器。一个是 8k 字节的闪速/电擦除程序存贮器空 间,它使得代码的执行变得容易,而且无需任何外部分立的 ROM 器件。编程时,可以用常

202

规的第三方提供的存贮器编程器编程,或者可使用开发商所提供的串行下载模式在线编程, 也可以并行编程。 作为工厂引导代码的一部分, AD?C812 使经过标准 UART 串行接口, 实现串行代码下载变 得容易。 将外部引脚 PSEN 通过外部电阻拉至低电平, 那么上电时将自动进入串行下载模式。 一旦处于此模式,用户可以把代码下载到程序存贮器阵列,同时器件仍位于其目标应用硬 件中。 并行编程模式与常规的第三方闪速或 EEPROM 器件编程器完全兼容。如图 12-12 所示, 在此方式下,端口 P0、P1 和 P2 用作外部数据和地址总线接口,ALE 用作写使能选通,端口 P3 用作适用配置端口,在并行编程期间内它为各种编程和擦除操作配置期间。闪速编程所 需的高压(12V)电源用片内充电泵产生,对于高压编程线供电。表 12-6 表示用端口 3 的 位来配置的正常并行编程模式。 表 12-6 闪速存贮器并行编程模式 端口引脚(P3.0-P3.7) 7 6 5 4 3 2 1 0 1 X X X 0 0 0 1 1 X X X 0 0 1 0 1 X X X 0 0 1 1 1 X X X 0 1 0 1 1 X X X 0 1 1 1 1 X X X 1 0 0 1 1 X X X 1 0 1 1 任何其它代码 +5V VDD GND 编程模式 (见表 2) GND VDD P3 PSEN RST XTAL1 ALE XTAL2 图 12-12 闪速/电擦除存贮器并行编程 写使能 AD?C812 P0 P1 P2

编程模式 擦除闪速程序 擦除闪速用户 读制造和芯片 ID 编程字节 读字节 保留 保留 冗余

编程数据 (D0-D7) 编程地址 (A0-A13) (P2.0=A0) (P1.7=A13)

另一个是 640 字节的闪速/电擦除数据存贮器空间, 它可以被用户用作通用非易失性高 速暂存存贮器区域,如同传统的 EEPROM。它被配置为 160(00H 至 9FH)、4 字节的页。通 过映射在 SFR 空间的存贮器组与此存贮器空间相接口。4 个数据寄存器组(EDATA1-4)用 于保存刚访问的 4 字节页数据。EADRL 用于保存被访问页的 8 位地址。最后,ECON 是 8 位 控制寄存器,它可以写入 5 个闪速/电擦除存贮器访问命令之一,以便使能各种读、写、擦 除和校验模式。ECON 控制寄存器命令模式如表 12-7 所示。 表 12-7 命令字节 01H 02H ECON――闪速/电擦除存贮器控制寄存器命令模式 命令模式 读命令。使四个被读字节从包含在 EADRL 内的存贮器页地址进入 EDATA1-4 写命令。使四个字节(EDATA1-4)写至包含在 EADRL 内的存贮器页地址。此 命令假设指定的“写”页已预先被擦除。

203

03H 04H

05H 06H 07H 至 FFH

保留命令。“不用”。 校验命令。允许用户校验 EDATA1-4 中的数据是否包含在 EADRL 所指定的页地 址。如果校验有效,那么后续的 ECON SFR 读操作将读出“零”,读出非零值 表示无效校验。 擦除命令。擦除 EADRL 所指定的 4 字节页。 全部擦除命令。擦除全部用户存贮器 160 页(640 字节)阵列。 保留命令。留作今后使用的命令。

一般对闪速/电擦除阵列的访问包括在 EADRL SFR 中设置被访问的页地址,把要编程到 阵列的数据置到 EDATA1-4(对于读访问将不写 EDATA SFR),最后写 ECON 命令字,它将 启动表 12-7 所示的 5 种模式之一。 应当注意,只要命令字写入 ECON SFR,给定的工作方式将开始。此时在 AD?C812 内核 心微控制器的操作将空闲直至所要求的编程/读或擦除方式被完成。实际上,这意味着即使 闪速/电擦除存贮器的工作模式通常由两个机器周期的 MOV 指令(写至 ECON SFR)开始,但 是在闪速/电擦除操作完成(250?s 或 20ms 之后)之前,下一条指令将不被执行。这表示虽 然在整个这种准空闲(psendo-idle)周期内像计数器/定时器这样核心外围设备功能将如 所设置的那样计数和定时,但是直到闪速/电擦除操作完成之前,内核将不响应中断请求。 一般说来,闪速/电擦除存贮器阵列只有在它预先已被擦除时才能被编程。具体的说, 一个字节只有在它已保持数值 FFH 才能被编程。由于闪速/电擦除存贮器的结构,这种擦除 必须发生在页一级,因此当擦除命令开始时,将最少擦除 4 个字节(1 页)。 如图 12-13 所示,是一个特殊的编程过程的例子。在此例子中,用户将把 F3H 写入用 户闪速/电擦除存贮器空间中页 03H 的第二个字节。然而,页 03H 已包含了 4 个字节的有效 数据,当用户只要求修改这些数据之一时,必须首先读出整个页以便接着可以擦除此页而 不丢失已存在的数据。然后把新字节写入 EDATA2 SFR,其后是擦除(ERASE)周期,它确保 在新的页数据 EDATA1-4 写回到存贮器之前擦除此页。如果用户试图在没有擦除(ERASE) 周期(ECON 设置为 05H)的情况下开始编程周期(ECON 设置为 02H),那么只有设置为“1” 的位地址将被修改,即,为了实现对存贮器阵列的有效写访问,必须预先擦除闪速/电擦除 存贮器字节地址。 通常用户包含一个全部擦除子程序作为运行在 AD?C812 上任何配置/设置 代码的一部分是一种良好的编程习惯,全部擦除命令的 8051 汇编语言代码为 MOV ECON, #06H。注意,全部擦除(ERASE-ALL)命令(640 字节)的持续时间与擦除(ERASE)页命 令(4 字节)的持续时间是相同的,即 20ms。用 8051 汇编语言代码表示如下:
MOV MOV MOV MOV MOV EADRL, #03H ECON, #01H EDATA2, #0F3H ECON, #02H ECON, #05H ; 设置页指针 ; 读页命令 ; 写新字节 ; 擦除页命令 ; 编程页命令

06H A6H 32H 06H 0DH 05H A6H 32H 06H 0DH 04H A6H 32H 06H 0DH 03H A6H 32H 06H 0DH 02H A6H 32H 06H 0DH 01H A6H 32H 06H 0DH 00H A6H 32H 06H 0DH 读 03H 页 MOV EADRL,#03H;设置编程页指针 MOV ECON,#01H;初始化读模式 0DH EDATA4 06H EDATA3 32H EDATA2 A6H EDATA1

0DH EDATA4 06H EDATA3 F3H EDATA2 A6H EDATA1 204 在 EDATA2 中写入新字节 MOV EDATA2,#0F3H;写新字节

06H A6H 32H 06H 0DH 05H A6H 32H 06H 0DH 04H A6H 32H 06H 0DH 03H FFH FFH FFH FFH 02H A6H 32H 06H 0DH 01H A6H 32H 06H 0DH 00H A6H 32H 06H 0DH 0DH EDATA4 06H EDATA3 F3H EDATA2 06H A6H 32H 06H 0DH 05H A6H 32H 06H 0DH 04H A6H 32H 06H 0DH 03H A6H F3H 06H 0DH 02H A6H 32H 06H 0DH 01H A6H 32H 06H 0DH 00H A6H 32H 06H 0DH A6H EDATA1 写 擦除 擦除 03H 页并写新数据 MOV ECON,#05H;擦除页 MOV ECON,#02H;写页

图 12-13

用户闪速/电擦除存贮器字节编程举例

片内外围设备 3. 片内外围设备 2 AD?C812 的片内外围设备包括:UART 串行 I/O、2 线(与 I C 兼容)和 SPI 串行 I/O、 看门狗定时器、电源监视器等等。下面分别介绍。 (一) 并行 I/O 端口 P0-3 AD?C812 使用 4 个通用数据端口与外部器件交换数据。 除了使用通用的 I/O 外, 某些端 口能实现外部存贮器操作,其它端口则与器件上外围设备其它功能多路复用。通常,当外 围设备共享端口引脚被使能时,该引脚不能用作通用 I/O 引脚。 P0、P2 和 P3 是双向端口,而 P1 是只输入端口。所有端口均包含输出锁存器和输入缓 冲器, I/O 端口也包含输出驱动器。 P0-3 引脚的读和写访问通过它们对应的特殊功能寄 对 存器来实现。 通过相应的端口 SFR 位,可把端口 P0、2 和 3 的端口引脚独立地配置为数字输入或数 字输出。但是 P1 引脚只能被配置为数字输入或模拟输入,此器件不支持端口 P1 的数字输 出能力。 (二) 串行 I/O 端口 (1) UART 接口 串行端口是全双工的,意味着它可以同时发送和接收。它也是接收缓冲的,表示在从 接收寄存器读出先前接收到的字节之前可以开始接收第 2 个字节。但是,如果在第 2 个字 节的接收完成时,第 1 个字节任未被读出,那么字节之一将被丢失。 至串行网络的物理接口经过引脚 RxD(P3.0)和 TxD(P3.1),串行接口可以配置为 4 中工作模式之一。(可参考有关 MCS8051 单片机的书)。 (2)串行外设接口(SPI) 串行外设接口(Serial Periphral Interface,SPI)是工业标准的同步串行接口,它 允许 8 位数据同时同步的被发送和接收。系统可配置为主(Master)或从(Slave)操作。 (3)I2C 兼容的串行接口 AD?C812 支持 2 线串行接口模式,它与 I2C 兼容。此接口可配置为软件主(Software Master)或硬件从(Hardware Slave)模式,且可与 SPI 串行接口多路复用。 (三)定时器/计数器 AD?C812 具有 3 个 16 位的定时器/计数器,即:定时器 0、定时器 1 和定时器 2。定时 器/计数器硬件已包含在片内,以减轻用软件实现定时器/计数器功能时,处理期内核固有

205

的负担。每一个定时器/计数器包含两个 8 位寄存器 THx 和 TLx(x=0、1、2)。所有 3 个 定时器/计数器均可配置定时器或事件计数器。 在“定时器”功能中,每个机器周期 TLx 寄存器增量。因此可以把它看作对机器周期计 数。因为一个机器周期包含 12 个振荡周期,所以最大的计数速率是振荡频率的 1/12。 在“计数器”功能中,TLx 寄存器根据其对应的外部输入引脚 T0、T1 或 T0 上的 1 至 0 的跳变增量。 (四) 片内监视器 AD?C812 集成了两个片内监视器功能以便使灾难性的编程或其它外部系统故障期间内 代码或数据的破坏为最小。此外,两个监视器功能完全可以通过 SFR 空间来配置。 (五) 看门狗定时器 看门狗定时器的作用是当 AD?C812 可能由于编程错误、电气噪声或 RFI 而进入出错状 态达到适当的时间时产生器件的复位。看门狗的功能可通过清除看门狗控制(WDCON)SFR 中 WDE(看门狗使能)位而永远被禁止。当它被使能时,如果在预定的时间间隔内用户程序 没有刷新看门狗,那么看门狗电路将产生系统复位。看门狗复位时间间隔可通过 SFR 预定 标(prescale)位在 16 至 204ms 范围内进行调整。 (六) 电源监视器 当加至 AD?C812 的模拟 (AVDD) 或数字 (DVDD)电源降至 5 个电压转变点(它们在 2.6V 至 4.6V 范围内由用户选择)之一时,电源监视器产生中断。在电源回到转变点以上至少 256ms 之前中断位不会被清除。 这种监视器功能确保用户能保存工作寄存器以避免由于低电源情况而可能造成的数据 破坏,并且确保在可靠的建立“安全”的电源电平之前不会恢复代码的执行。电源监视器 也能防止寄生的闪变信号触发中断电路。 4. 中断系统 AD?C812 提供具有两个优先级的 9 个中断源, 12-14 给出了中断源的概况, 图 并说明了 请求和控制标志。在图 12-14 中,给定级别内中断优先级以递减的顺序表示。相应中断的 中断矢量地址包括在表 12-8 中。 表 12-8 中断 PSM1 IE0 ADC1 TF0 IE1 TF1 T2CI/ISPI RI/TI TF2/EXF2 中断矢量地址 中断名称 电源监视器 外部 INT0 ADC 转换结果 定时器 0 溢出 外部 INT1 定时器 1 溢出 串行中断 UART 中断 定时器 2 中断

中断矢量地址 43H 03H 33H 0BH 13H 1BH 3BH 23H 2BH

优先级中的优先顺序 1 2 3 4 5 6 7 8 9

为了使用 AD?C812 的任何中断,必须遵循下列 3 个步骤。 (a) 把中断服务子程序放在该中断相应的矢量地址。见表 12-8 所示。 (b) 把 IE SFR 中 EA(使能全部)位设置为“1”。 (c) 把 IE 或 IE2 SFR 中相应的各中断位设置为“1”。 3 个 SFR 用于使能各种中断并设置其优先级。这些 SFR 位的意义示于表 12-9、10 和 11 中。应该注意,IE 和 IP SFR 是位可寻址的,而 IE2 仅是字节可寻址的。 下面介绍这三个中断控制寄存器。 (1)IE――(中断使能 SFR) IE 寄存器使能中断系统和 7 个中断源。 SFR 地址: A8H

206

SFR 上电缺省值:00H 位可寻址: 是 EA EADC ET2 表 12-9 位地址 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0

ES

ET1

EX1

ET0

EX0

中断使能(IE)SFR 位的说明 位助记符 说明 EA 在内核识别任何中断源之前, 全局中断使能位 (EA) 必须置为 “1” , EA 置为“0”将禁止所有的中断。 EADC 为了使能 ADC 中断,ADC 中断使能位(EADC)应置为“1” ET2 为了使能定时器 2 中断,定时器 2 溢出中断使能位(ET2)应置为 “1” ES 为了使能 UART 串行端口中断,UART 串行端口中断使能位(ES) 位应置为“1” ET1 为了使能定时器 1 中断,定时器 1 溢出中断使能位(ET1)应置为 “1” EX1 为了使能外部 INT1 中断,INT1 中断使能位(EX1)应置为“1” ET0 为了使能定时器 0 中断,定时器 0 溢出中断使能位(ET2)应置为 “1” EX0 为了使能外部 INT0 中断,INT0 中断使能位(EX0)应置为“1”

(2)IE2――(中断使能 2 SFR 位说明) IE2 寄存器使能另外两个中断源。 SFR 地址: A9H SFR 上电缺省值: 00H 位可寻址: 无 NU NU NU NU 表 12-10 位地址 IE2.7 IE2.6 IE2.5 IE2.4 IE2.3 IE2.2 IE2.1 IE2.0

NU

NU

EPSM

ESI

中断使能 2(IE2)SFR 位说明 位助记符 说明 NU 未用 NU 未用 NU 未用 NU 未用 NU 未用 NU 未用 EPSM 为了使能 PSW 中断,电源监视器中断使能位应置为“1” 2 2 ESI 为了使能 SPI 或 I C 中断,SPI/ I C 中断使能位(ESI)应置为“1”

(3)IP――(中断优先级 SFR) IP 寄存器为各种中断源设置两种主优先级之一。把相应的位设置为“1”可把中断偏置为高 优先级,设置为“0”则把中断偏置为低优先级。 SFR 地址: B8H SFR 上电缺省值:00H 位可寻址: 是 PSI PADC PT2 PS PT1 PX1 PT0 PX0 表 12-11 位地址 IP.7 中断优先级(IP)SFR 位的说明 位助记符 说明 2 PSI 设置 SPI/ I C 中断优先级

207

IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0

PADC PT2 PS PT1 PX1 PT0 PX0

设置 ADC 中断优先级 设置定时器 2 中断优先级 设置 UART 串行口中断优先级 设置定时器 1 中断优先级 设置外部 INT1 中断优先级 设置定时器 0 中断优先级 设置外部 INT0 中断优先级

图 12-14

中断请求源

ADC) DAC) 5 . 模 数 转 换 器 ( ADC ) 数 模 转 换 器 ( DAC ) 介 绍 、 AD?C812 除了其单片机内核外,还集成了一个 8 通道 12 位模数转换器 ADC 和两个 12 位的 DAC。这使得用户数据采集系统的开发变得非常方便。 (一)ADC 及其应用 ADC 转换块包含了 8 通道、12 位、单电源 A/D 转换器。此模块为用户提供多通道多路 转换器、跟踪/保持、片内基准、校准特性。此模块内的所有部件能方便的通过 3 个寄存器 SFR 接口来设置。 A/D 转换器由基于电容 DAC 的常规逐次逼近转换器组成。 转换器接收的模拟输入范围为 0 至+VREF。 片内提供高精度、 低漂移并经工厂校准的 2.5V 基准电压。 内部基准可经外部 VREF 引脚过驱动。外部基准可在 2.3V 至 AVDD 的范围内。 AD?C812 装有工厂编程的校准系数,它在上电时自动下载到 ADC,以确保最佳的 ADC 性 能。 ADC 核包括内部失调和增益校准寄存器, 所提供的软件校准子程序可允许用户在需要时 重写工厂编程的校准系数,以便使用户目标系统中端点误差的影响为最小。 来自片内温度传感器的电压输出正比于绝对温度,它也可前端 ADC 多路转换器(实际

208

上是第 9 个 ADC 通道输入)传送,这方便了温度传感器的实现。 AD?C812 的 ADC 有三种工作模式:第一 用软件或通过把转换信号加至外部引脚 23 (CONVST)可以启动单步或连续转换模式。第二用定时器 2 来产生用于 ADC 转换的重复触 发信号。第三配置 ADC 工作于 DMA 模式。在 DMA 模式下,ADC 块连续转换并把采样值捕获到 RAM 空间而不需来自 MCU 核的任何干预。 这种自动捕获功能可以扩展到 16M 字节外部数据存 贮器空间,实现快速 ADC 转换。这三种工作模式可以由 3 个 SFR ADCCON1 ADCCON2 ADCCON3 来设置。 (二)DAC 及其工作原理 AD?C812 组合了两个片内 12 位的 DAC。其工作经过单个特殊功能控制寄存器 DACCON 和四个特殊功能数据寄存器 DAC0L/DAC1L DAC0H/DAC1H 来控制。一旦在这些寄存器中写入 相应的数据,就可以启动 DAC。在正常工作模式下,当写低 DAC 半字节(DACxL)SFR 时, 每一个 DAC 被更新。使用 DACCON SFR 中的 SYNC 位可同时更新两个 DAC。 六.Cygnal 公司的 C8051Fxxx 系列 美国 cygnal 公司推出的高性能 C8051Fxxx, 可彻底改变人们对 8051 单片机速度慢、 性 能低的印象。简要说来,C8051Fxxx 系列单片机具有如下几个重要的特点: ● 速度快:高达 25MIPS 的速度,比标准 8051 快十倍以上;也丝毫不逊于 PIC、AVR 单片机。 ● 强大的模拟信号处理功能: 有多达 32 路 12 位 ADC 速度为 100KHz) 或高达 500KHz ( 、 的 8 位 ADC、两路 12 位精度的 DAC、两路模拟比较器、高精度基准电源、程控放大 器和温度传感器。 ● 先进的 JTAG 调试功能:支持在系统、全速、非插入调试和编程,不占用任何片内 资源。 ● 强大的控制功能:可有多达 64 位 I/O 口线,所有的口线可以编程为弱上拉或推挽 输出。更为独特的是具有数字开关阵列(Digital Crossbar),可以将内部系统资 源定向到 P0、P1 和 P2。即可以把定时器、串行总线、外部中断源、AD 转换输入、 比较器输出定向到 P0、P1 和 P2。 ● 丰富的串行接口:具有标准的全双工 UART、PHILIPS 或 INTEL 标准的 I2C/SMBus 串 行总线、MOTOROLAR 的 SPI 串行总线。不仅覆盖了典型的串行通信标准,功能更强 大。 ● 多达 22 个中断源:为实时多任务系统的实现提供了扎实的基础。 ● 可靠的安全机制:有 7 种复位源,使系统的运行可靠性大大提高;采用一种与传统 方式完全不同的加密方式,利用 JTAG 口编程来加密芯片,可以绝对保护用户的知 识产权。 ● 存储器: 可以有多达 64K 字节的 Flash 存储器, 其中的部分可以作为数据存储器用。 同时,片内可有多达 4K 字节的 RAM 存储器。 由此可见, C8051Fxxx 系列单片机具有很高性能。 本文介绍 C8051Fxxx 系列单片机中的 C8051F0xx 子系列单片机。表 12-12 列出了 C8051F0xx 系列单片机的主要性能。 每个 MCU 都可在工业温度范围-45 到+85 内用 2.7V-3.6V 的电压工作。端口 I/O/RST 和 JTAG 引脚都容许 5V 的输入信号电压。C8051F000/05/10/15 为 64 脚 TQFP 封装(原理框图 见图 12-15)。C8051F001/06/11/16 为 48 脚 TQFP 封装(原理框图见图 12-16)。 C8051F002/076/12/17 为 32 脚 LQFP 封装(原理框图见图 12-17)。 表 12-12
M I 型号 P S ( F LA S H 存 RAM

C8051Fxxx 系列产品选择指南
S M B U S S PI UA R T 定 时 器 ( 16 可 编 程 计 数 数 字 端 口 I/ AD C 分 辨 率 AD C 最 大 速 AD C 输 入 电 压 基 准 温 度 传 感 器 DA C 分 辨 率 DA C 输 出 电 压 比 较 器 封装

209

峰 值 )

储 器

/ 1
2

位 )

器 阵 列

O

( 位 )

度 ( ks ps )

C

C8051F000 C8051F001 C8051F002 C8051F005 C8051F006 C8051F007 C8051F010 C8051F011 C8051F012 C8051F015 C8051F016 C8051F017

20 20 20 25 25 25 20 20 20 25 25 25

32k 32k 32k 32k 32k 32k 32k 32k 32k 32k 32k 32k

256 256 256 2304 2304 2304 256 256 256 2304 2304 2304

√ √ √ √ √ √ √ √ √ √ √ √

√ √ √ √ √ √ √ √ √ √ √ √

√ √ √ √ √ √ √ √ √ √ √ √

4 4 4 4 4 4 4 4 4 4 4 4

√ √ √ √ √ √ √ √ √ √ √ √

32 16 8 32 16 8 32 16 8 32 16 8

12 12 12 12 12 12 10 10 10 10 10 10

100 100 100 100 100 100 100 100 100 100 100 100

8 8 4 8 8 4 8 8 4 8 8 4

√ √ √ √ √ √ √ √ √ √ √ √

√ √ √ √ √ √ √ √ √ √ √ √

12 12 12 12 12 12 12 12 12 12 12 12

2 2 2 2 2 2 2 2 2 2 2 2

2 2 1 2 2 1 2 2 1 2 2 1

64TQFP 48TQFP 32LQFP 64TQFP 48TQFP 32LQFP 64TQFP 48TQFP 32LQFP 64TQFP 48TQFP 32LQFP

图 12-15

C8051F000/05/10/15 原理框图

210

图 12-16

C8051F001/06/11/16 原理框图

图 12-17 CIP1. CIP-51TMCPU

C8051F002/07/12/17 原理框图

211

C8051F000 系列器件使用 Cygnal 的专利: CIP-51 微控制器内核 CIP-51。 CIP-51 与 8051 指令集完全兼容,可以使用标准 803x/805x 的汇编器和编译器进行软件开发。CIP-51 内核 具有标准 8052 的所有外设部件,包括 4 个 16 位的计数器/定时器、一个全双工 UART、256 字节内部 RAM 空间、128 字节特殊功能寄存器 SFR 地址空间及 4 字节宽的 I/O 端口。 CIP-51 采用流水线结构,与标准的 8051 结构相比,指令执行速度有很大的提高。在一 个标准的 8051 中,除 MUL 和 DIV 以外所有指令都需要 12 或 24 个系统时钟周期,最大系统 时钟频率为 12-24MHz。而对于 CIP-51 内核,70%的指令的执行时间为 1 或 2 个系统时钟周 期,只有 4 条指令的执行时间大于 4 个系统时钟周期。 CIP-51 共有 109 条指令。表 12-13 列出了指令条数与执行时所需的系统时钟周期数的 关系。 表12-13 指令 执行周期数 CIP-51指令条数与执行时所需的系统时钟周期数 26 1 50 2 5 2/3 14 3 7 3/4 3 4 1 4/5 2 5 1 8

CIP-51 工作在最大系统时钟频率 25MHz 时,它的峰值速度达到 25MIPS,图 12-18 给出 了几种 8 位微控制器内核工作在最大系统时钟时的峰值速度的比较关系。

图12-18 MCU峰值执行速度比较 C8051F000 系列 MCU 在 CIP-51 内核的内部和外部有几项关键性的改进,提高了整体性 能,更易于在最终应用中使用。 扩展的中断系统为 CIP-51 提供 21 个中断源,而标准 8051 只有 7 个中断源。CIP-51 允许大量的模拟和数字外设中断微控制器。一个由中断驱动的系统需要较少的 MCU 干预, 但有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是非常有用的。 MCU 可有多达 7 个中断产生源:一个片内 VDD 监视器、一个看门狗定时器、一个时钟丢 失检测器、 一个由比较器 0 提供的电压检测器、 一个强制软件复位 CNVSTR 引脚及/RST 引脚。 /RST 引脚是双向的,可接受外部复位或将内部产生的上电复位信号输出到/RST 引脚。除了 VDD 监视器和复位输入引脚以外, 每个复位源都可以由用户用软件禁止。 在上电复位之后的 MCU 初始化期间,可以永远地禁止 WDT。 MCU 内部有一个能独立工作的时钟发生器(见图 12-19)。在复位后默认为系统时钟。 如有需要,时钟源可以在运行时切换到外部振荡器。外部振荡器可以使用晶体谐振器、RC 振荡器或外部时钟源产生系统时钟。这种时钟切换功能在低功耗系统中是非常有用的,它 允许 MCU 在需要时从一个低频率(节电)的外部晶体振荡器切换到高速(可达 16MHz)的内 部振荡器,或者由高速的振荡器切换到低速振荡器工作。

212

图12-19

片内时钟和复位

2. 片内存储器 CIP-51 有标准的 8051 程序和数据地址配置。它包括 256 字节的数据 RAM,其中高 128 字节为两个地址空间:用间接寻址访问通用 RAM 的高 128 字节;用直接寻址访问 128 字节 的 SFR 地址。空间数据 RAM 的低 128 字节可用直接或间接寻址方式访问。前 32 个字节为 4 个通用工作寄存器区,接下来的 16 字节既可以字节寻址又可以位寻址。 C8051F005/06/07/15/16/17 中的 CIP-51 还另有位于外部数据存储器地址空间的 2048 字节的 RAM 块。这个 2048 字节的 RAM 块可以在整个 64k 外部数据存储器地址空间中被寻址 (见图 12-20)。

图12-20

片内存储器结构

213

MCU 的程序存储器包含 32k + 128 字节的 FLASH。该存储器以 512 字节为一个扇区,可 以在系统编程,且不需在片外提供编程电压。从 0x7E00 到 0x7FFF 的 512 字节被保留由工 厂使用。还有一个位于地址 0x8000 - 0x807F 的 128 字节的扇区,该扇区可作为一个小的 软件常数表或额外的程序空间。 3.JTAG 调试和边界扫描 . C8051F000 系列具有片内 JTAG 和调试电路。 通过 4 脚 JTAG 接口并使用安装在应用系统 中的单片机就可以进行非侵入式、全速的在系统调试。该 JTAG 接口完全符合 IEEE 1149.1 标准,为生产和测试提供完全的边界扫描功能。 Cygnal 的调试系统支持观察和修改存储器和寄存器、断点、观察点、堆栈指示器和单 步执行,不需要额外的目标 RAM 程序存储器、定时器或通信通道。在调试时所有的模拟和 数字外设都正常工作。当 MCU 单步执行或遇到断点而停止运行时,所有的外设除 ADC 外都 停止运行以便保持同步。 开发套件 C8051F000DKC8051F005DKC8051F010DK 和 C8051F015DK 具有开发应用代码所 需要的全部硬件和软件,并可分别对 C8051F000/1/2F005/6/7F010/1/2F015/6/7 MCU 进行 在系统调试。开发套件中包括开发者工作室软件和调试器、一个集成的 8051 汇编器和一个 被称为 EC 的 RS-232 至 JTAG 协议转换模块。 套件中还有一个目标应用板, 上面有对应的 MCU 和一大块扩展区域。套件中还包括 RS-232 和 JTAG 电缆及一个电源适配器。开发套件需要 一个运行 Windows 95/98/Me/NT 并有一个可用 RS-232 串口的计算机。如图 12-21 所示,PC 机通过 RS-232 与 EC 连接一条六英寸的扁平电缆将 EC 和用户的应用板连接起来,包括 4 个 JTAG 引脚和 VDD 及 GNDEC 从应用板取电源。在 2.7-3.6V 时其供电电流 大约为 20 mA。对于不能 从目标板上提取足够电 源的应用, 可以将套件中 提供的电源直接连到 EC 上。 对于开发和调试嵌 入式应用来说该系统的 调试功能比采用标准 MCU 仿真器要优越得多。 标准的 MCU 仿真器要使 用在板仿真芯片和目标 电缆, 还需要在应用板上 有 MCU 的插座。Cygnal 图 12-21 调试环境示意图 的调试环境既便于使用 又能保证精确模拟外设的性能。 4.可编程数字 I/O 和交叉开关 . F0xx 系列 MCU 具有标准 8051 的端口(P0、P1、P2 和 P3)。在 F000/05/10/15 中,这 4 个端口都有引出脚, F001/06/10/16 中端口 0 和 1 有引出脚, F002/07/12/17 中只有 在 在 端口 0 有引出脚,没有引出脚的端口可用作通用寄存器。I/O 端口的工作情况与标准 8051 相似但有一些改进。 每个端口 I/O 引脚都可以被配置为推挽或漏极开路输出。在标准 8051 中固定的弱上拉 可以被禁止,这为低功耗应用提供了进一步节电的能力。 最突出的改进是引入了数字交叉开关。这是一个很大的数字开关网络,允许将内部数 字系统资源分配给 P0、P1 和 P2 的端口(见图 12-22)。与具有标准复用数字 I/O 的微控制 器不同,这种结构可支持所有的功能组合。 可通过设置交叉开关控制寄存器,将片内的计数器/定时器、串行总线、硬件中断、ADC 转换启动输入、比较器输出以及微控制器内部的其它数字信号配置为出现在端口 I/O 引脚。 这就允许用户根据自己的特定应用选择通用端口 I/O 和所需数字资源的组合。

214

图12-22

数字交叉开关原理框图

5.可编程计数器阵列 . 除了 4 个 16 位的通用计数器/定时器之外,C8051F000 系列 MCU 还有一个片内可编程计 数器/定时器阵列 PCA。PCA 包括一个专用的 16 位计数器/定时器时间基准和 5 个可编程的 捕捉/比较模块。时间基准的时钟可以是下面的 4 个时钟源之一:系统时钟/12、系统时钟 /4、定时器 0 溢出和外部时钟输入 ECI。 每个捕捉/比较模块都有 4 种工作方式:边沿触发、捕捉软件定时器、高速输出脉冲宽 度调制器 PCA 捕捉/比较模块的 I/O 和外部时钟输入。可以通过数字交叉开关连到 MCU 的端 口 I/O 引脚。 图 12-23 给出了 PCA 原理框图。 6.串行端口 . C8051F000 系列 MCU 内部有一个全双工 UARTSPI 总线和 I2C/SMBus。每种串行总线都完 全用硬件实现,都能向 CIP-51 产生中断,因此很少需要 CPU 的干预。这些串行总线不共享 定时器中断或端口 I/O。所以可以按需要使用任何一个或全部同时使用。 7.模数转换器 . C8051F000/1/2/5/6/7 有一个片内 12 位 SAR ADC。一个 9 通道输入多路选择开关和可 编程增益放大器。该 ADC 工作在 100ksps 的最大采样速率时可提供真正的 12 位精度,INL 为 1LSB。C8051F010/1/2/5/6/7 与 C8051F000/1/2/5/6/7 类似但分辨率为 10 位。每个 ADC 的最大转换速率均为 100ksps。 C8051F00x 的 ADC 有 1LSB 的 INL, 可提供真正的 12 位精度。 C8051F00x 的 ADC 可提供真正的 10 位精度。 片内还有一个 15ppm 的电压基准, 也可通过 VREF 引脚使用外部基准。 ADC 完全由 CIP-51 通过特殊功能寄存器控制。 有一个输入通道被连到内部温度传感器, 其它 8 个通道接外部输入 8 个外部输入。通道的每一对都可被配置为两个单端输入或一个 差分输入。系统控制器可以关断 ADC 以节省功耗。 可编程增益放大器接在模拟多路选择器之后,增益可以用软件设置,从 0.5 到 16 以 2 的整数次幂递增。当不同 ADC 输入通道之间输入的电压信号范围差距较大,或需要放大一 个具有较大直流偏移的信号时,在差分方式 DAC 可用于提供直流偏移,这个放大环节是非

215

常有用的。 A/D 转换可以有 4 种启动方式:软件命令、定时器 2 溢出、定时器 3 溢出或外部信号输 入。这种灵活性允许用软件、事件、硬件信号触发转换或进行连续转换。一次转换完成可 以产生一个中断,或者用软件查询一个状态位来判断转换结束。在转换完成时 10 或 12 位 转换结果数据字被锁存到两个特殊功能寄存器中,在软件控制下这些数据字可以是左对齐 或右对齐。

图12-23

PCA原理框图

ADC 数据比较寄存器可被配置为当 ADC 数据位于一个规定的窗口之内时向控制器申请 中断。 ADC 可以用后台方式监视一个关键电压, 当转换数据位于规定的窗口之内时才向控制 器申请中断。 图 12-24 给出了 C8051F0xx 系列 MCU 的 ADC 原理框图。

图12-24

ADC原理框图

216

8.比较器和 DAC . C8051F000 系列 MCU 内部有两个 12 位 DAC 和两个比较器。 F002F007F012F017 中没有 在 第二个比较器 CP1。MCU 与每个比较器和 DAC 之间的数据和控制接口通过特殊功能寄存器实 现。MCU 可以将任何一个 DAC 或比较器置于低功耗关断方式。 可以用软件设置比较器的回差电压。每个比较器都能在上升沿或下降沿产生中断,或 在两个边沿都产生中断。比较器的输出状态可以用软件查询。这些中断能将 MCU 从等待方 式唤醒。可通过设置交叉开关将比较器的输出接到端口 I/O 引脚。 DAC 为电压输出方式,与 ADC 使用同一个电压基准。DAC 在作为比较器的参考电压或为 ADC 差分输入提供偏移电压时非常有用。 图 12-25 给出了 C8051F0xx 系列 MCU 的比较器和 DAC 原理框图。

图12-25

比较器和DAC原理框图

9.引脚和封装定义 . 表 12-14 给出了 C8051F000 系列 MCU 的引脚定义。 12-26 至图 12-28 给出了 C8051F0xx 图 系列 MCU 的引脚图和封装图。 表 12-14 引脚定义
引脚名称 VDD 引 脚 号 F000/F010 F001/F011 F002/F012 31 40 62 DGND 30 41 61 22 33 27 19 AV+ 16 17 13 43 9 29 模拟电源。 17 21 数字地。 23 32 18 20 类 型 数字电源。 说 明

217

AGND

5 15

44 12 18 17 20

8 30 14 13 15 数字输入 数字输入 数字输入

模拟地。

TCK TMS TDI

22 21 28

带内部上拉的 JTAG 测试时钟。 带内部上拉的 JTAG 测试模式选择。 带内部上拉的 JTAG 测试数据输入。 在 TCK TDI 上升沿被锁存。

TDO

29

21

16

数字输出

带内部上挂的 JTAG 测试数据输出。 数据在 TCK 的下降沿从 TDO 引脚输出,TDO 输出是一个三 态驱动器。

XTAL1 18

14

10

模拟输入

晶体输入。 该引脚为晶体或陶瓷谐振器的内部 振荡器电路反馈输入。 为了得到一个精确的内 部时钟可以在 XTAL1 和 XTAL2 之间接上一个晶 体或陶瓷谐振器。如果被一个外部 CMOS 时钟 驱动,则该引脚成为系统时钟。

XTAL2 19

15

11

模拟输出

晶体输出该引脚。 是晶体或陶瓷谐振器的激励 驱动器。

/RST

20

16

12

数字 I/O

芯片复位引脚。 内部电压监视器的漏极开路输 出,当 VDD2.7V 时为低电平。一个外部驱动信 号可以通过将该引脚置为低电平使系统复位。

VREF 6

3

3

模拟 I/O

电压基准。当被配置为输入时该引脚作为 MCU 的电压基准,否则内部电压基准驱动该引脚。

CP0+ 4 CP0CP1+ CP1DAC0 3 2 1 64

2 1 45 46 48

2 1

模拟输入 模拟输入 模拟输入 模拟输入

比较器 0 的同相输入端。 比较器 0 的反相输入端。 比较器 1 的同相输入端。 比较器 1 的反相输入端。 数模转换器输出口 0。DAC0 电压输出。见第 7 节的 DAC 指标详细说明。

32

模拟输出

DAC1

63

47

31

模拟输出

数模转换器输出口 1。DAC1 端电压输出。见第 7 节的 DAC 指标详细说明。

AIN0 7 AIN1 8 AIN2 9 AIN3 AIN4 AIN5 AIN6 AIN7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 10 11 12 13 14 39 42 47 48 49 50

4 5 6 7 8 9 10 11 31 34 35 36 37 38

4 5 6 7

模拟输入 模拟输入 模拟输入 模拟输入 模拟输入 模拟输入 模拟输入 模拟输入

模拟 MUX 通道输入 0。详见 ADC 指标说明。 模拟 MUX 通道输入 1。详见 ADC 指标说明。 模拟 MUX 通道输入 2。详见 ADC 指标说明。 模拟 MUX 通道输入 3。详见 ADC 指标说明。 模拟 MUX 通道输入 4。详见 ADC 指标说明。 模拟 MUX 通道输入 5。详见 ADC 指标说明。 模拟 MUX 通道输入 6。详见 ADC 指标说明。 模拟 MUX 通道输入 6。详见 ADC 指标说明。 端口 0 位 0。详见端口 I/O 子系统部分。 端口 0 位 1。详见端口 I/O 子系统部分。 端口 0 位 2。详见端口 I/O 子系统部分。 端口 0 位 3。详见端口 I/O 子系统部分。 端口 0 位 4。详见端口 I/O 子系统部分。 端口 0 位 5。详见端口 I/O 子系统部分。

19 22 23 24 25 26

数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O

218

P0.6 P0.7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

55 56 38 37 36 35 34 32 60 59 33 27 54 53 52 51 44 43 26 25 24 23 58 57 46 45

39 40 30 29 28 26 25 24 42 41

27 28

数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O 数字 I/O

端口 0 位 6。详见端口 I/O 子系统部分。 端口 0 位 7。详见端口 I/O 子系统部分。 端口 1 位 0。详见端口 I/O 子系统部分。 端口 1 位 1。详见端口 I/O 子系统部分。 端口 1 位 2。详见端口 I/O 子系统部分。 端口 1 位 3。详见端口 I/O 子系统部分。 端口 1 位 4。详见端口 I/O 子系统部分。 端口 1 位 5。详见端口 I/O 子系统部分。 端口 1 位 6。详见端口 I/O 子系统部分。 端口 1 位 7。详见端口 I/O 子系统部分。 端口 2 位 0。详见端口 I/O 子系统部分。 端口 2 位 1。详见端口 I/O 子系统部分。 端口 2 位 2。详见端口 I/O 子系统部分。 端口 2 位 3。详见端口 I/O 子系统部分。 端口 2 位 4。详见端口 I/O 子系统部分。 端口 2 位 5。详见端口 I/O 子系统部分。 端口 2 位 6。详见端口 I/O 子系统部分。 端口 2 位 7。详见端口 I/O 子系统部分。 端口 3 位 0。详见端口 I/O 子系统部分。 端口 3 位 1。详见端口 I/O 子系统部分。 端口 3 位 2。详见端口 I/O 子系统部分。 端口 3 位 3。详见端口 I/O 子系统部分。 端口 3 位 4。详见端口 I/O 子系统部分。 端口 3 位 5。详见端口 I/O 子系统部分。 端口 3 位 6。详见端口 I/O 子系统部分。 端口 3 位 7。详见端口 I/O 子系统部分。

219

图 12-26

TQFP-64 引脚图

图 12-27

TQFP-48 引脚图

220

图 12-28

LQFP-32 引脚图

12.3

新型单片机接口器件

前面介绍了若干种较先进的 8051 兼容的单片机,不仅单片机本身在快速地发展,单片 机的外围接口也在迅速地发展。下面介绍若干新型的单片机外围接口器件及其接口技术。

12.3 12.3.1

16 位 LED 数码管显示及 64 键键盘专用控制芯片 BC7281

BC7281 芯片是 16 位 LED 数码管显示及 64 键键盘专用控制芯片。 通过外接移位寄存器, 最多可以控制 16 位数码管显示或 128 只独立的 LED。它具有集成度高、节省 I/ O 口资源、 占用 CPU 时间少、使用方便等优点,可以和各种驱动电路配合,适用于任何尺寸的数码管。 1.BC7281 内部寄存器 BC7281 内部共有 25 个寄存器(见表 12-15),包括 16 个显示寄存器和 9 个特殊(控 制)寄存器,共用一段连续的地址,地址范围是 00H~0FH,所有的操作均通过对这 25 个寄 存器的访问完成。 表 12-15
地 址 00H~0FH 10H 11H 12H 13H

BC7281 内部寄存器
名 称 上电缺省 FFH FFH 40H 00H FFH 允许操作 读写 读写 读写 读写 只读 第 0~15 位显示寄存器 闪烁开关控制寄存器 闪烁速度控制寄存器 工作模式控制寄存器 键值锁存器

221

14H 15H 16H 17H 18H

译码寄存器 1(BCD) 译码寄存器 2(HEX) 译码寄存器 3(光柱一) 译码寄存器 4(光柱二) 译码寄存器 5(段寻址)

- - - - -

只写 只写 只写 只写 只写

(2)闪烁开关控制寄存器 闪烁开关控制寄存器控制显示位的闪烁属性。其数据位与显示位的对应关系如下:
D6 D7 BIG7 BIG15 BIG6 BIG14 BIG5 BIG13 BIG4 BIG12 BIG3 BIG11 BIG2 BIG10 BIG1 BIG9 BIG0 BIG8 D5 D4 D3 D2 D1 D0

其中,BIG0~BIG15 分别代表显示位 0 到显示位 15。相应数据位为“1” 时,表示该 位正常显示;为“0”时,该位按闪烁方式显示。复位后,该寄存器的初始值为 FFH,即各 位均按正常方式显示。用户可在任何时候改写或读出其内容。 值得指出的是:由于第 8~15 位显示与第 0~7 位共用同一组 8 位位驱动,因此第 8~ 15 位显示是不能单独控制闪烁属性的。也就是说,当第 0 位按闪烁方式显示时,第 8 位也 同时闪烁。而在许多应用场合,系统在执行参数设置、报警显示等功能时,只需一个或几 个数字进行闪烁,其它位正常显示,这种情况下,使用芯片的闪烁开关寄存器就不能达到 系统的设计要求。针对上述情况,本系统采用定时中断程序来控制闪烁显示。当系统检测 到闪烁标志位有效后,将需闪烁显示的位点亮,200ms 后将该位熄灭,然后再点亮,如此以 200ms 为周期进行循环显示,直到检测到标志位无效。 (2) 工作模式控制寄存器 为了能够和各种驱动电路配合,BC7281 具有多种工作模式,其工作模式由工作控制寄 存器控制,各数据位意义如下: D7 SC N D6 X D5 X D4 X D3 X D2 X D1 IN V D0 MO D

MOD:移位寄存器模式控制。当 MOD=0 时,为普通移位寄存器模式,SDAT 端每输出一 位数据,SCLK 端输出一个移位脉冲,8 个数据共输出 8 个移位脉冲,此种模式适用于一般 的移位寄存器,典型器件如 74HC164 等,故又称为 164 模式;当 MOD=1 时,除了同普通模 式一样输出 8 位数据和 8 个移位脉冲外,在数据的末尾还多输出一个额外的移位脉冲,此 种模式适用于带有二级锁存的移位寄存器,典型器件如 74HC595 等,因此又叫做 595 模式。 INV:段驱动数据输出极性控制。当 INV=0 时,各位显示寄存器的数据直接通过移位寄存 器输出作为段驱动数据; INV=1 时, 当 显示寄存器的内容经过反相后才从移位寄存器输出。 SCN:扫描使能控制。当 SCN=0 时,扫描被禁止,包括显示扫描和键盘扫描,位驱动 DIG0~DIG7 输出低电平。当 SCN=1 时,扫描被使能。 X:无影响。 复位后,工作模式控制寄存器的初始值为 00H,扫描被禁止,若要器件正常工作,必须 给控制寄存器设置适当的值。本系统采用 164 模式,不反相输出,扫描使能,故寄存器的 值为 80H。 (3) 译码寄存器 译码寄存器负责对输入的数据完成显示译码。该寄存器不是物理寄存器,因此不能实

222

际地向给定的地址内写入数据,对给定地址的写入操作的结果是间接地改变显示寄存器的 内容。译码寄存器是“只写”寄存器,只能写入不能读出,对译码寄存器读操作的结果将 始终为 00H。本系统需要控制 10 位数码管显示和 8 个单独使用的 LED,因此使用了 HEX 译 码器和段寻址译码寄存器。 a. HEX 译码器 写入数据的格式如下: D7 a3 D6 a2 D5 a1 D4 a0 D3 d3 D2 d2 D1 d1 D0 d0

其中,a3:a0 为显示位地址,其取值范围为 0~F,对应第 0~第 15 位显示;d3:d0 为 待译码的数据。通过 HEX 译码寄存器改变显示内容,不会影响显示位的小数点段的状态, 若需要改变小数点的状态,让其点亮或熄灭,需通过段寻址指令。 b. 段寻址译码寄存器 16 位显示共 128 个显示段,通过段寻址寄存器,可以分别独立控制每一个显示段。写 入段寻址译码寄存器的数据格式如下: D7 SD D6 A6 D5 A5 D4 A4 D3 A3 D2 A2 D1 A1 D0 A0

A6-A0 为段地址,范围是 00H~7FH,SD 为段状态,即写入段寻址寄存器指令执行完后 相应显示寄存器的状态,SD=0,则相应位被置为“0”(点亮),反之则被置为“1”(熄 灭)。由于 BC7281 的段驱动输出的极性是软件可控的,因此显示寄存器位的“0”对应显 示段实际是开还是关,还取决于输出的极性及驱动电路的结构。 2. BC7281 与 89C52 的接口电路 BC7281 与单片机 89C52 的接口共需三根线,其连接如图 12-29 所示,其中各管脚说明 如下: BC7281 中: DAT:与 CPU 串行数据端,为双向数据传输口,作输出时为漏极开路输出,需外接上拉 电阻; KEY:键盘有效输出端,低电平有效,检测到有效按键后该引脚变为低电平,并一直保 持到键值锁存器内容被读出; CLK:与 CPU 串行通讯时钟端,下降沿有效; RST:复位端,低电平有效; RC: 外接 RC 振荡器端, 该引脚连接一 RC 电路形成振荡, 为内部扫描等电路提供时钟。 BC7281 采用外接的 RC 振 VCC VCC 荡电路为显示和键盘扫描提 供时钟驱动,外接元件的典型 参数为 R=3.3K,C=20pF,在 89C52 BC7281 20K 3.3K VCC=5V 的情况下,振荡电路 的振荡频率约为 4.5MHz。另 1 DAT RC 16 外,芯片的内部有上电复位电 3 CLK CPU 路,因此本系统只需将 RST 引 2 20P KEY 脚直接连接到 VCC 端即可。 C 4 RST 3. 串行通讯 VCC BC7281 与 89C52 之间通讯 采用 2 线高速串行接口,其一 为双向数据传输线 DAT,另一 图 12-29 BC7281 与 89C52 接口电路

89C

BC7

223

为同步时钟线 CLK。值得注意的是,DAT 引脚为漏极开路输出(OPEN DRAIN)结构,使用时 必须在该线上加一 20K 欧姆左右的上拉电阻。CLK 引脚由 89C52 控制,下降沿有效。串行接 口数据宽度为 8 位,两个字节为一组,构成一条完整的指令。第一个字节为命令字,第二 个字节为数据。字节在传送时高位在前。串行接口数据结构如表 12-16 所示。 表 12-16 指 令 字 节 D7 R/W D6 0 D5 0 D4 a4 D3 a3 D2 a2 D1 a1 D0 a0 串行接口数据结构 数 据 字 节 D7 d7 D6 d6 D5 d5 D4 d4 D3 d3 D2 d2 D1 d1 D0 d0

指令字节中 R/W 为读写控制,当 R/W=0 时,由 CPU 向 BC7281 的内部寄存器写入数据; 当 R/W=1 时,CPU 读出 BC7281 内部寄存器的数据。a0~a4 为目标寄存器的地址,范围为 00H~18H。 BC7281 的时序如图 12-30 所示,时序特性见表 12-17。 Tr1 CLK Tr2 Tr3 Tr4 Tr5

DAT D7 D6 D5 D4 D3 D2 D1 D0 字节读出 图 12-30 BC7281 的时序

字节写入时,首先要建立握手信号,CPU 先向 BC7281 发出一 CLK 脉冲,BC7281 在收到 该脉冲后在 DAT 线上输出一低电平,表示准备好可以接收 CPU 的数据,CPU 检测到 BC7281 的相应信号后,在 CLK 线上再次发出一脉冲,待 CPU 检测到 DAT 线恢复成高电平后,开始 发送数据。发送时数据的高位在前。每发送一位,即输出一脉冲,开始部分及数据部分的 CLK 脉冲均为下降沿有效。读出数据时,也需要建立握手信号,过程与写入数据时相同。唯 一不同的地方是,当 8 个数据位均读出以后,MCU 还必须再多发一个 CLK 脉冲,表示数据接 收完毕,BC7281 从数据输出状态转成输入状态,准备接收下一个指令。 由图 12-30 及表 12-18 可以看出,数据传送时的数据保持时间不能小于规定的值,否 则会造成通讯错误。而且,虽然数据传送的速度没有下限的限制,但如果速度过慢,将会 影响显示。 表 12-18
符号

BC7281 的时序特性
说 明 最小值 典型值 ?s 最大值

Tw1 Tw2

写入数据时握手信号响应时间 写入数据时握手信号完成到接收状态准备好 建立时间 5

15 6

10ms 10

224

Tw3 Tw4 Tw5 Tr1 Tr2

写入移位脉冲周期 写入数据,数据保持时间 写入时间,CLK 脉冲宽度 读出时间时握手信号响应时间 读出数据时握手信号完成到输出数据准备好 建立时间

20 8 1 15 7 9 55 12 11

Tr3 Tr4 Tr5

输出数据建立时间 读出 CLK 脉冲周期 DAT 线恢复输入状态响应时间 22 10

10

14

15

20

需要指出的是,当系统开定时中断或其他中断并连续向 BC7281 送数据时,会产生通讯 错误。这是因为 BC7281 采用的是用 I/O 口线模拟串口通讯,数据随移位时钟一位一位的送 出,当中断产生时立即响应中断,而不是象单片机串口通讯那样,将数据送出后再响应中 断,结果导致通讯故障,程序死机。对于这种情况,若系统对定时精度要求不高,可通过 在数据发送开始时关闭中断,发送结束后再打开中断来解决;若系统对定时精度要求较高, 则此种方法显然不行,为此,我们将 BC7281 的 DAT 管脚和 CLK 管脚分别接至单片机的 RXD 端和 TXD 端,采用串口模式 0 方式通讯。由于模式 0 方式下,串行口的波特率是固定的, 为振荡器频率的十二分之一,而 BC7281 的写入移位脉冲周期 Tw3 最小值为 20?s,因此,需 要使用低频振荡器。 另外, BC7281 送数前仍要建立握手信号, 向 读出数据后发送确认信号。 需要说明的是,采用串口通讯方式时,数据传送是低位在前,而 BC7281 通讯是数据的高位 在前,故在向串行口缓冲寄存器 SBUF 送数前,应将数据倒序。 4. 显示驱动电路 显示驱动电路包括位驱动电路和段驱动电路,电路连接如图 12-31 所示。其中各管脚 说明如下:

(a)位驱动电路 图 12-31

(b)段驱动电路 显示驱动电路

DIG0~7:位驱动输出端, 8~10 位显示位驱动与 0~7 位共用;SCLK:外接段驱动用 移位寄存器时钟端; SDAT:外接段驱动用移位寄存器数据端,输出段驱动数据,低位在前。

225

BC7281 适合连接共阳式数码管, 虽然 DIG0~DIG7 本身具有一定的驱动能力, 但为了保 证足够的显示亮度,需接 8 只 NPN 型三极管做外部驱动电路,三极管接成射极跟随器形式。 BC7281 送出的数据共 16 位,数据结构如下: D15 DP2 D14 G2 D13 F2 D12 E2 D11 D2 D10 C2 D9 B2 D8 A2 D7 DP1 D6 G1 D5 F1 D4 E1 D3 D1 D2 C1 D1 B1 D0 A1

发送的顺序是高位(MSB)在前,前 8 位(D15~D8)为第 8~15 位显示的段驱动数据, 后 8 位(D7~D0)为第 0~7 位显示的段驱动数据。本系统采用 164 模式,故每一位数据对 应一个移位脉冲,其串行数据输出时序如图 12-32 所示。

图 12-32

164 模式数据输出时序

12.3.2

铁电存储器 FM18L08

存储器的设计和应用在单片机应用系统及智能仪器的设计中占有很重要的地位,程序 的运行、采集数据的贮存、系统参数的设置等都与之有着直接的联系。随着仪器的智能化、 交互性、高速度、大数据量的发展,对存储器的数据存储速度、易擦写和可靠性都提出更 高的要求。 传统半导体存储器分为易失性存储器 (VM, Volatile Memory) 和非易失性存储器 (NVM, Non-volatile Memory)两大体系。非易失性存储器,如 EPROM、EEPROM 和 FLASH,能 在断电后保存数据,但由于采用 ROM 技术,存在着写入缓慢、有限写入次数、写入时需要 特大功耗的缺点。而易失性存储器虽然高性能、写入次不受限制、易用,但在掉电的情况 下数据无法保存。两者鲜明的优缺点使两者互相不可替代,同时也在工程师的头脑中形成 了一个根深蒂固的概念:非易失性存储器用来存储设置参数和启动程序,易失性 SRAM 暂 存系统变量或运算的中间结果。在以往传统设计中,由于 NVM 写入次数、速度和功耗的限 制,只有在侦测掉电的时侯,才能将少量的更新配置参数存储,这种做法存在着可靠性的 问题;而对于保留大量的采集数据,则通过加后备电池的方法去实现,增加了系统硬件结 构复杂及电路板空间,同时可能存在的电池失效及掉电检测电路的故障的问题降低了数据 存储的可靠性。铁电存储器的出现为以上的问题的解决提供了很好的方案。 铁电存储器是一种同时拥有随机存储器和非易失性存储器特性的高性能存储器,相对 于其他类型的存储器,铁电存储器主要具有以下特点: 1. 铁电存储器可以跟随总线速度写入而无须任何的写入等待时间 2. 铁电贮存器可以向 RAM 那样无限次的写入,新一代铁电存储器的写入寿命高达百 亿次,而 EEPROM 只能应付十万至百万次写入。 3. 超低功耗,它写入能量消耗仅为 EEPROM 的 1/2500。 FM18L08 是 RAMTRON 公司生产的容量为 32k*8bit 的并行 FRAM 组织结构为 32k*8bit 掉电数据保存 10 年 100 亿次以上的读写次数 写数据无延迟 兼容符合 JEDEC32k*8bit SRAM&EEPROM 管脚

226

存取时间 70ns 周期时间为 140ns 工作电压 3.0V~3.65V 工作电流 15mA 待机电流 15μA FM1808 原理框图如图 12-33 所示。 12-19 和 12-20 分别给出了 FM18L08 的引脚说明 表 和功能真值表。 表 12-19
引脚名称 A0~A14 DQ0~7 /CE /OE

引脚说明
功能描述 地址输入:15 根地址线寻址 32768 字节的数值,在/CE 的下降沿将地址缩存 数据输入/输出:8 根双向数据线 片选信号线。 为低时,地址锁存至存储器内部,此时地址改变将被忽略,直到下一个上升沿。 /CE 输出允许线。/OE 为低时 FM18L08 将有效数据驱动到数据总线。/OE 高时数据线处于高阻 状态。 写允许线。/WE 为低时将数据总线上的数据写入/CE 下降沿锁存的地址对应单元 电源 +5V 地

/WE VDD VSS

表 12-20
/CE H X X L L H

功能真值表
功能 待机/预充电 锁存地址 读操作 写操作

/WE

从 表 12-19 和 表 12-20 可 以 看 出 FM18L08 管脚及读写操作与 62256 相似, 但使用上还是有一定的差别的。 用户在设计 图 12-33 FM18L08 原理框图 系统或编写程序时需注意以下几点: 1) FM1808 内含地址锁存器,在/CE 下降沿锁存地址, 并且还利用/CE 为高电平以产生必要的预充电时间, 这就要求每 次内存存取都必须确保/CE 产生一次由高向低的跃变,所以不能像 SRAM 那样将 /CE 直接接地。 2) 与 SRAM 地址锁存后地址值改变不会影响内存操作不同,FM18L08ZAI 地址在锁 存后可能会随着地址线内容变化而发生变化, 所以编程时在/CE 下降沿将地址锁存 后地址值必须满足保持时间参数后才能改变。 SRAM 在检测 VDD 低于某一水平时会禁止用户对存储器操作, FRAM 则不管 VDD 电 而 压如何,用户都可以对其进行访问,这也存在一个问题就是在 VDD 降低到一定水平后,用 户写入的数据的可靠性无法保证。所以在电压超出正常的工作范围之外时,用户应停止对 存储器的操作。

12.3.3

带大量 I/O 口扩展的串行总片 GM8164

单片机,特别是 8 位的单片机,相比于 DSP 或 16 位以上的微处理器,其优点是控制、 管理功能强,即控制开关量的输入、输出。在许多单片机的应用系统中,需要大量的 I/O 口 线。而传统的 8255、8155 等并行接口扩展芯片,由于采用总线接口方式,电路复杂,而且

227

经常要多片器件才能满足实际需要。成都国腾微电子设计中心推出的串行 I/O 扩展器 GM8164,具有 72 根 I/O 口线的扩展能力,因而非常适合于需要使用大量开关量的单片机 应用系统。该芯片的级联非常方便,扩展 I/O 口的数量几乎不受限制。GM8164 主要的性 能特点如下: ● 扩展 I/O 口数量众多,可提供 32 位数据输入口和 40 位数据输出口。 ● 可同时提供 8 个开漏输出口,并能方便地进行电平转换和驱动。 ● 带有可达 1MHz 的全速率同步串行接口,能非常方便地与通用 MCU 接口。 ● 可多个芯片级联,以扩展 I/O 口的数量。 ● 工作电压为 2.7~5.6V,可适应多种应用。 ● 静态电流典型值为 3?A(3.3v 时)。 ● 动态电流在时钟频率为 1MHz 时的典型值为 13?r1A(3.3v 时)。 ● 具有 PLCC-84 和 QFP-80 两种封装形式 1.引脚功能和主要参数 . 图 12-34 所示是 GM8164 采用 PLCC-84 封装时的引脚排列图, 各引脚的功能见表 12-21 所列。 GM8164 主要性能参数如下: ● 电源电压 VCC:2.0~6.0 V ● 输入电压 Vi:0.VCC ● 输出电压 VO:0.VCC ● 输入脉冲上升、下降时间 tr、tf:0~500ns ● 时钟频率:1MHz(3.3V)或 2MHz(5V)。 表 12-21
引 脚 I0~I31 O0~O39 O0~O37 DIN DOUTA DOUTB DOUTC DOUTC CLK I/0 LE 0C Vcc GND

GM8164 的引脚功能
功 能

异步并行数据输入端(带施密特触发器) 并行数据输出端(为 OC 门输出,耐压 15V),相当于 5 个 8 位并行口 功能同上,适用于 QFP-80 封装 同步串行数据输入端 6 位同步串行数据输出端 32 位同步串行数据输出端 40 位同步串行数据输出端 38 位同步串行数据输出端,适用于 QFP-80 封装 时钟输入端 串行/并行数据输入允许端 O0~O39(37)并行数据输出锁定控制端 O0~O39(37)并行数据输出允许控制端 电源端 接地端

2.内部结构 . GM8164 是 CMOS 器件, 12-35 所示是其内部的功能框图。 图 由图中可以看出, GM8164 内部包括 5 组 8 位串人/并出和并人/串出的寄存器。其功能如下: ●将串行数据转换为并行数据时,可选择 5 个并行口中的任意一个口输出。 ●将并口数据输入转换为串口输出。

228

●将串口数据输入转 换为并口输出。 ●可存储并行数据。 ●可多芯片级联,并可 任意扩充 I/O 口。 ●在时钟上升沿有效。 3.工作方式 . GM8164 的功能设置如 表 12-22 所列,其具体工作 方式如下: (1)串行输入、并行 输出工作方式 在 OC=0、 I/O=0 时, 如果 IE 为“1”,则并行数 据输人口 I0~I3 为高阻态, 此时,在 CPU 输出指令时 钟 CLK 的上升沿作用下, 串行数据将从 DIN 口输入, 图 12-34 GM8164 的引脚排列图 并 在 内部寄存器中完成数 据从低位向高位的移动,而后从 O0~O39 输出口输出。而当 IE=0 时锁存 O0~O39。 (2)并行输入、串行输出工作方式 当 LE=0、 OC=0 时, I/0 为 若 “1” , 则并行置数, 此时并行数据从 I0~O31 输入 至内部寄存器。若将 I/0 置“0”并断开输 入端, 那么在 CPU 输出指令时钟 CLK 上升 沿的作用下, 内部寄存器中的数据将从串行 数据输出端 DOUTA、DOUTB、DOUTC (3)级联工作方式 GM8164 芯片有三个串行数据输出端 图 12-35 GM8164 的内部功能框图 DOUTA、DOUTB、DOUTC,它们分别为 内部 16 位、32 位、40 位移位寄存器 O15、O31、O39(O37)所对应的内部寄存器。当用 户系统所需要的输入输出口数量较少时(如分别少于 16 个),可以只使用 I0~I15、O0~ O15,此时 DOUTA 可作为串行数据输出端。而当系统需要的 I/0 口数量很多时,则可通 过 DOUTC 再级联一片 GM8164 芯片,以扩展 I/O 数量。 GM8164 在使用时应注意以下几点。 ● 并行输出口受输出允许控制端 OC 和输出锁存控制端 LE 的控制,当 OC=1 时,输 出 O1~O39 为高阻态,禁止并行数据输出,但此时器件的串行输入、并行置数及 串行输出功能不受影响。当 OC=0 时,若 LE=1,则在 O0~O39 输出数据,而 LE=0 时,则将 O0~O39 的数据锁存。 ● 当进行输出口控制时,无论改变多少个输出口的状态(即使是一位),也必须把所 有的输出口状态按照一定的顺序重新输出一次, 且当所有输出口都应置成所需的状 态后,方能置锁存端为“1”,然后再置“0”锁存。 ● 由于 O0~O7 为 OC 门输出结构,可驱动电压较高的非 TTL 型负载(电压不得超

229

过 15V),因此当 O0~O7 用于普通输出口时,应外接上拉电阻。 ● 读入输入口状态时,不能打开锁存端,需要读入的次数由输入端所处的位置决定, 而不一定要把所有的输入口状态都读入到 CPU。 ● 当用户系统输人口数量在 16 个以下而又使用 DoUl 阳及 Dotn 凹做输出口时,会出 现 2 个(DOTTB 端)或 3 个字节(DOUTC 端)的无效数据;当用户的输入端口 数目在 32 个以下时,DOUTC 端会产生一个字节的无效数据,而且在多片级联时 也会产生无效数据,因此在软件编程时应将无效数据舍弃。 表 12-22 GM8164 的功能设置

4. 应用举例 . 应用举例 图 12-35 所示为 GM8164 与 89C51 的硬件连接电路。电路中没有采用 89C51 的串 口, 而是采用 P1 口用软件模拟串口的方法对 GM8164 进行控制。 由于程序不是很复杂, 而又绝大多数的读者不会有现成的器件用于调试,这里就不详细地给出程序清单。
Vcc

Vcc 89C51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 OC LE I/O CLK DIN DOUTC GND

OUT0 输出 OUT39

GM8164
IN0 输入 IN31

图 12-35

所示为 GM8164 与 89C51 的硬件连接电路

230

思考题与习题
12-1 12-2 12-3 12-4 12-5 12-6 12-7 本章介绍了几种新型的与 8051 兼容的单片机,它们与 89C51(2)相比有些什么不 请上网或去图书馆查一查,还有些什么样的单片机,它们与 8051 兼容吗?它们各 自有那些特点? 本章介绍了几种新型的接口器件,它们与本书前面介绍的接口器件有何不同? 什么混合信号处理单片机?有那些场合需要混合信号处理单片机? 什么时候需要 A/DC 器件?在选用外接 A/DC 器件还是选用混合信号处理单片 机,你是如何考虑的? 请上网或去图书馆查一查,还有些什么样的新型的接口器件?它们有些什么样的 特点?如何与单片机接口? 本章介绍的单片机各有特点?如何选用? 同?

第十二单元 新型 51 兼容单片机与新型接口器件 ................................................................ 186 本单元学习要点 .................................................................................................................. 186 12.1 引言 ........................................................................................................................... 186 12.2 不断涌现的 8051 兼容的新型单片机 ..................................................................... 186 12.2.1 新型 8 位单片机的发展概况......................................................................... 186 12.2.2 8051 兼容单片机的新进展............................................................................ 187 12.2.3 若干 8051 兼容单片机的介绍....................................................................... 190 12.3 新型单片机接口器件 ............................................................................................... 221 12.3.1 16 位 LED 数码管显示及 64 键键盘专用控制芯片 BC7281 ..................... 221 12.3.2 铁电存储器 FM18L08 ................................................................................... 226 12.3.3 带大量 I/O 口扩展的串行总片 GM8164 ................................................... 227 思考题与习题 .................................................................................................................... 231

231


更多相关文档:

C第十二单元 新型51兼容单片机与新型接口器件

89c5289c52隐藏>> 第十二单元 新型 51 兼容单片机与新型接口器件 本单元学习要点 1. 单片机技术的发展。 2. 目前与 8051 兼容的新型单片机。 3. 新型的接口...

第一章习题答案

。 A、1/2 B、1/4 C、1/6 D、1/12 (1)...(Input/Output,简称 I/O)接口电路、定时器 /计数...MCS-51 系列单片机内 RAM 是如何划分的,各有什么功能...

新型实训51板示例说明书

C52 单元(U1) 74LS377/574 并行总线接口扩展单元...启蒙家 第二章 示例实验 此部分共包括 12 个示例...AT89S51/2 是 51 系列单片机的一种,支持在线下载...

新型51单片机实验箱的硬件设计

新型51单片机实验箱的硬件设计_电子/电路_工程科技_...信号接口部分默认悬空, 需要用到该器件时, 用外接线...12 脚分别连接 STC89C516RD+的 P3.1, P3.0 串行...

11-12第一学期单片机A卷

11-12-1单片机原理与接口... 暂无评价 3页 免费喜欢此文档的还喜欢 ...PUSH 指令 C、MOVC 指令 D、MOVX 指令 8、在 MCS-51 单片机中,当晶振频率...

单片机作业答案第5、6、7、8章

也就是说,如果某位 输出为 1 时,有外接器件拉...答:振荡器 ÷12 C/T=0 C/T=1 Tx TRx GATE ...单片机与 PC 的串行接口图 23 答: MCS-51 系列...

与8051兼容的单片机及其应用选型

兼容单片机,概括说来,新型的 8051 及其兼容单片机有...多种串口; 11.DMA 功能; 12.USB 接口; 13.视频...AT89C51 全静态 CMOS 微控制器,3 级程序存储器...

单片微机原理及应用 徐春辉第12章 习题答案

单片微机原理及应用 徐春辉第12章 习题答案单片微机...三.中断传送方式:中断传送方式是利用 AT89S51 本身...所以它经常用于单片机的外围接口芯片。 10.假设 81C...

MS51单片机实验

MS51单片机实验_电子/电路_工程科技_专业资料。多种...而 JD13 口接 到八位逻辑显示 JD3,A,B,C 接...目前,各式各样的串行接口器件层出不穷,如:串行 ...

第十二课 单片机的指令(二)

扫描二维码下载 支持Android / iPhone / iPad文档信息...单片机的指令( 第十二单片机的指令(二)这一课继续...那么单片机能扩充多少的外部 RAM 空间呢?89C51 ...
更多相关标签:
单片机元器件清单 | 单片机最小系统元器件 | 3v单片机怎么连5v器件 | 单片机外围器件 | 单片机元器件 | 新型微电子器件 | 新型电子元器件 | 新型电子元器件有哪些 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com