AT89C2051与8OC31单片机异同及其应用

🏠 首页 《无线电》杂志 1999年 🔗 第1期 🔗 第28页 分类:可控硅浅谈 🔗 钱晓进 🔗, 王传林 🔗

AT89C2051是美国爱特梅尔(ATMEL)半导体制造公司生产的一种高性能单片机。该单片机以与MCS-51系列单片机高度兼容、低功耗、可以在接近零频率下工作等诸多优点,而广泛应用于各类计算机系统、工业控制、电信设备、宇航设备及消费类产品中。由于ATMEL是全球最大的FLASH和E\(^{2}\)PROM生产制造公司,加之以其E2PROM技术与INTEL的80C31内核技术交换,使AIMEL拥有了80C31内核的使用权,其生产出的AT89C系列单片机不仅与80C31有极好的兼容性,而且具有极高的性能价格比。该系列单片机的可选种类有:AT89C1051、AT89C2051、AT89C51、AT89C52、AT89C55、AT89S8252等各档芯片,它们的差别仅在于其I/O口线数量、内部闪存容量、中断源和定时器个数不同,除此其它性能完全相同。下面主要以AT89C2051为例,详细介绍其与80C31的主要性能差别和应用,最后给出一个简单应用实例。

一、两种单片机的主要性能:

1.80C31的主要性能:

内部RAM128字节;内部ROM:无;工作电压:5V±5%;工作频率:12MHz(最大);程序加密:无;I/O口线:32位;定时器:2个;中断源:5个;可编程串行UART通道;输出口能否直接驱动LED:不能;片内有无模拟比较器:无;低功耗的闲置和掉电模式:仅有低功耗模式;外形尺寸:较大。

2.AT89C2051的主要性能

指令与MCS-51100%兼容;内带2K字节可编程闪速存储器(Flash Memory)可重复擦写1000次;数据保留时间:10年;工作电压范围:2.7V~6V;工作频率:0~24MHz;两级程序加密销定;128字节内部RAM;15条可编程双向I/O口线;两个16位定时器/计数器;5个中断源;可编程串行UART通道;输出口可直接驱动LED;片内含模拟比较器;低功耗的闲置和掉电模式;标准的DIP20封装,外形较小(与74LS373外型同)。

从以上两种单片的性能比较可以看出,AT89C2051单片机的优点体现在以下几个方面:

工作频率提高了,最大可以达到24MHz,这一点为一些需要高速控制的场合提供了方便;

工作电压范围变宽了,从2.7~6V,为电源的选择提供了极大的灵活性;

内部带有闪速程序存储器,方便了编程和开发;

两级程序加密锁定,增强了加密强度;

输出可以直接驱动LED,减少外围芯片,减化布线;

片内含模拟比较器,可方便地设计模拟比较电路;

另外,从两种单片机的I/O口线来看,似乎80C31要比AT89C2051多不少,但由于80C31无内部程序存储器,因此要用P0和P2口外扩程序存储器,故最后提供给用户使用的口线也只约20根左右。

AT89C2051是AT89C系列单片机中的一种派生产品,它是将AT89C51的P0口、P2口、EA-/Vpp、ALE/PROG、PSEN-口线简省后,形成的一种仅20个引脚的单片机,相当于早期IN-TEL8031的最小应用系统,这对于一些不太复杂的控制场合,仅用一片AST89C2051就足够了,是真正意义上的“单片机”。由于将多功能8位CPU和2k的闪速存储器集成在单个芯片中,使其成为一种高效的微控制器,为很多嵌入式控制系统提供了一种极佳的选择方案,使传统的51系列单片机的体积大、功耗大、可选模式少等诸多困扰设计工程师们的致命弱点不复存在。下面仅以AT89C2051为主,介绍其主要的技术特点与性能指标。

二、引脚性能介绍

该单片机引脚外形见图2。Vcc:供电电压,GND:接地。

图1
图1 🔍原图 (481×437)

P1口(P1.0~P1.7)是一个8位双向I/O口,其中P1.2至P1.7提供内部上拉电阻,P1.0和P1.1需外接上拉电阻。P1.0和P1.1也可作为片内精确模拟比较器的正向输入(AINO)和反向输入(AIN1)。P1口输出缓冲器能提供20mA的拉电流,可直接驱动LED。P1口写入“1”后可用作输入。

P3口:引脚P3.0至P3.7(P3.5除外)是7个带内部上拉电阻的双向I/O口线。原P3.6不能使用,已为片内硬接为内部比较器输入。与P1口相同,P3口也能提供20mA的拉电流,并可直接驱动LED显示器。与80C31相同,P3口也有第二功能:P3.0串行数据接收RXD;P3.1串行数据发送TXD;P3.2外部中断0申请INTO-;P3.3外部中断1申请INT1-;P3.4定时器/计数器0输入;P3.5定时器/计数器1输入;P3.6内部占用;P3.7无第二功能RD-。

另外,RST:复位输入,只要RST转为高电平,所有I/O口置1,当振荡器复位时,要保持RST引脚高电平两个机器周期。

XTAL1:反向振荡放大的输入及内部时钟电路的输入;

XTAL2:来自反向振荡放大器的输出。

特殊功能寄存器

图2
图2 🔍原图 (827×474)

被称为特殊功能寄存器(SFR)空间的片内存储区如图1所示。从图1可以看出不是所有的地址都被占用,未被占用的地址不能使用,对这些地址若强行写入数据,则读回的结果不能确定,这一点与80C31相同。

软件中不应对那些未列出的位置进行读写操作,因为将来ATMEL公司有可能对它们赋予一些新的器件特性。

三、程序存储器锁定

AT89C2051片内有两个锁定位,可以不编程(U),也可以编程(P),以获得一些附加的特性,如下列表:

编程锁定位 LB1 LB2 保护模式

1 U U 没有编程锁定特性

2 P U 禁止对闪速存储器进一步编程

3 P P 同模式2,同时禁止校验

四、闲置模式

在闲置模式下,CPU自身处于休眠状态,而片内所有其他外围设备保持工作状态。该模式是软件生成的,在该模式期间,片内RAM和所有特殊功能寄存器的内容都保持不变,闲置模式可以允许由中断或硬件复位终止。如果不采用外部上拉,P1.0和P1.1应置“0”,如果采用外部上拉,则置“1”。

必需注意,当闲置模式被硬件复位中止时,器件要从闲置处恢复程序的执行,执行两个机器周期后,内部复位算法才起作用。此时,硬件禁止访问内部RAM,但允许访问端口管脚。为了排除闲置被复位中止时对端口意外写入的可能性,跟在生成闲置模式后的指令不应是对端口管脚的读写操作。

五、掉电模式

在掉电模式下,振荡器停止工作,生成掉电状态的指令是最后执行的一条指令。片内RAM和特殊功能寄存器保持其值不变直到掉电模式终止。从掉电模式退出的唯一办法是硬件复位。复位将重新定义特殊功能寄存器(SFR),但不会影响片内RAM。在Vcc没有恢复到其正常工作电压之前,不应进行复位,且复位的保持时间应足够长,使振荡器能重新开始工作并稳定下来。

如果不采用外部上拉,P1.0和P1.1应置“0”,如果采用外部上拉,则置“1”。

六、最简应用

图3
图3 🔍原图 (643×485)

下面是AT89C2051的一个应用实例(图3),程序启动后,P1口上的8只发光二极管轮流闪烁3次。

程序清单如下:

org 0000h

mov p1,#00h

mov r0,#01h

again:mov a,r0

mov p1,a

acall time3

mov a,r0

rl a

mov r0,a

sjmp again

;闪烁3次

time3:mov r2,#06h

to: xrl pl,a

acall d500ms

djnz r2,to

ret

;延时500ms

d500ms:mov r5,#0ffh

loop2: mov r4,#0ffh

loop1: nop

nop

djnz r4,loop1

djnz r5,loop2

ret

end

(王传林 钱晓进)