在单片机领域,AT89C 系列单片机凭借其独特的优势占据着重要的地位。AT89C 系列单片机是 Atmel 公司于 1993 年开始研制生产的 8 位单片机,因其优越的性能价格比,成为了颇受市场欢迎的产品。与 MCS - 51 系列单片机相比,AT89C 系列具有两大显著优势。其一,片内程序存储器采用闪速存储器,这使得程序的写入过程更加便捷高效;其二,该系列提供了更小尺寸的芯片,如 AT89C2051/1051,能够有效减小整个硬件电路的体积,满足一些对空间要求较高的应用场景。
AT89C 系列单片机包含 4 种型号,分别是 AT89C51、AT89C52、AT89C1051 和 AT90C2051。其中,AT89C2051/1051 以其较小的体积和良好的性能价格比,在家电产品、工业控制、计算机产品、医疗器械、汽车工业、智能仪器等众多应用领域中,成为用户降低成本的器件。接下来,我们将以 AT89C2051 为代表,对 AT89C 系列单片机进行详细阐述。
AT89C2051 是 Atmel 公司生产的带 2KB 闪速可编程可擦除只读存储器(EPROM)的 8 位单片机,它具备以下主要特性:
- 与 MCS - 51 兼容,这意味着开发者可以在熟悉的开发环境下进行编程,降低了开发难度。
- 内部带 2KB 可编程闪速存储器,方便存储程序代码。
- 具有 1000 次擦 / 写循环的寿命,保证了存储器的耐用性。
- 数据保留时间长达 10 年,确保数据的长期稳定性。
- 工作电压范围为 2.7~6V,具有较宽的电压适应能力。
- 全静态工作频率为 0~24Hz,可根据不同的应用需求灵活调整。
- 具备两级程序存储器锁定,增强了程序的安全性。
- 拥有 128×8 位内部 RAM,为数据处理提供了一定的存储空间。
- 配备 15 条可编程 I/O 线,方便与外部设备进行连接和通信。
- 有 2 个 16 位定时器 / 计数器,可用于定时和计数功能。
- 包含 5 个两级中断源,能够及时响应外部事件。
- 具有可编程全双工串行 UART 通道,便于进行串行通信。
- 可以直接对 LED 驱动输出,简化了 LED 驱动电路的设计。
- 片内集成了的模拟比较器,可用于模拟信号的比较和处理。
- 片内设有振荡器和时钟电路,无需外部额外配置。
- 支持低功耗的休眠和掉电模式,有助于降低功耗,延长设备的续航时间。
AT89C2051 单片机的内部结构与 8051 单片机基本一致,但增加了一个模拟比较器,同时减少了两个对外的端口(P0、P2 口),输出端口 P1、P3 具有独特的功能。其内部结构如图所示:

由于减少了两个外部端口,AT89C2051 芯片的外部引脚大大减少,芯片尺寸也更小。它是一个有 20 个引脚的双列直插式芯片,引脚配置如图所示:

下面对其引脚进行详细描述:
- VCC:电源电压,为芯片提供工作所需的电能。
- GND:接地,是电路的参考电位。
- RST:复位输入。当 RST 变为高电平并保持 2 个机器周期时,所有 I/O 引脚复位至高阻状态,使芯片恢复到初始状态。
- XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入,用于连接外部晶振,为芯片提供时钟信号。
- XTAL2:来自反向振荡放大器的输出。
- P1 口:8 位双向 I/O 口,引脚 P1.2 和 P1.1 需要外部上拉,可用作片内模拟比较器的正向输入(AIN0)和反向输入(AIN1)。P1 口输出缓冲器能接收 20mA 电流,并能直接驱动 LED 显示器;P1 口引脚写入 “1” 后,可用作输入。在闪速编程和编程校验期间,P1 口也可接收编码数据。
- P3 口:引脚 P3.0~P3.5 与 P3.7 为 7 个带内部上拉的双向 I/O 引脚。P3.6 在内部已与片内比较器输出相连,不能作为通用 I/O 引脚访问。P3 口的输出缓冲器能接收 20 mA 电流;P3 口写入 “1” 后,内部上拉,可用作输入。P3 口也可用作特殊功能口,其功能见下表:

从上述引脚说明可以看出,AT89C2051 没有提供外部扩展存储器与 I/O 设备所需的地址、数据、控制信号,因此利用 AT89C2051 构成的单片机应用系统不能在其之外扩展存储器或 I/O 设备,它本身即构成了的单片机系统。
与 8051 单片机特殊功能寄存器相对应,AT89C2051 片内设置了 19 个特殊功能寄存器,统称为特殊功能寄存器块(SFR),它们的地址散布在 80H~0F0H 区域内。具体信息如下表所示:

AT89C2051 片内有两个锁定位,可以编程(P),也可以不编程(U),从而得到 3 种锁定位保护模式,如下表所示:

程序存储器加密后,CPU 仍可执行其内部指令,但不能从外部读出它,锁定位只能由芯片擦除操作来实现其擦除,这有效地保护了程序的安全性。
AT89C2051 有两种低功耗工作方式:待机方式与掉电方式。
- 待机方式(休眠方式):当利用软件使待机方式位 IDL(PCON.0)= 0 时,单片机进入空闲方式。此时,CPU 处于休眠状态,而片内所有其它外围设备都保持工作状态,片内 RAM 和所有特殊功能寄存器内容保持不变。在待机方式下,当晶振 fOSC = 12 MHz,电源电压 VCC = 6V 时,电源电流 ICC 从 20mA 降至 5mA;而 VCC = 3V 时,ICC 由 5.5mA 降至 1mA。中断或硬件复位可以终止待机方式。当待机方式由硬件复位终止时,CPU 要从休眠处恢复程序的执行,执行 2 个机器周期后,内部复位电路才起作用。此时,硬件禁止访问内部 RAM,但允许访问端口引脚。为了防止休眠被复位终止时对端口引脚意外写入的可能性,在生成待机方式的指令后不应紧跟对端口引脚的写指令。如果不采用外部上拉,P1.0 和 P1.1 应置为 “0”;如果采用外部上拉,则应置为 “1”。
- 掉电方式:掉电方式由掉电方式位 PD(PCON.1)= 1 设置。此时,振荡器停止工作,设置掉电方式的指令成为执行的一条指令,片内 RAM 和特殊功能寄存器内容保持不变。在掉电方式下,VCCmin = 2 V。当 VCC = 6 V 时,ICCmax = 100μA;当 VCC = 3 V 时,ICCmax = 20μA。退出掉电方式的方式是硬件复位。硬件复位将重新定义特殊功能寄存器,但不影响片内 RAM。复位的保持时间应足够长,以便振荡器能重新开始工作并稳定下来。在 VCC 没有恢复到正常工作电压之前,不应进行复位。如果不采用外部上拉,P1.0 和 P1.1 应置 “0”,否则置 “1”。