AT89C中文DOC版.docx
《AT89C中文DOC版.docx》由会员分享,可在线阅读,更多相关《AT89C中文DOC版.docx(21页珍藏版)》请在冰点文库上搜索。
AT89C中文DOC版
AT89C2051
AT89C2051是低电压,高性能CMOS8位单片机,片内含2K字节可反复擦写的程序存储器和128字节的随机存取数据存储器,器件采用高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8为中央处理器和Flash存储单元,功能强大。
AT89C2051单片机可为您提供许多高性价比的应用场合。
主要性能参数:
与MCS-51产品指令系统完全兼容
2k字节可重擦写闪速存储器
1000次擦写周期
2.7——6V的工作电压范围
全静态操作:
0Hz——24MHz
两级加密程序存储器
128*8字节内部RAM
15个可编程I/O口线
两个16位定时/计数器
6个中断源
可编程串行UART通道
可直接驱动LED的输出端口
内置一个模拟比较器
低功耗空闲和掉电模式
1.功能特性概述:
AT89C2051提供以下标准功能:
2k字节Flash闪速存储器,128字节内部RAM,15个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,内置一个精密比较器,片内振荡器记时钟电路。
同时,AT89C2051可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
2.
引脚配置
3.框图
4.引脚功能说明
Vcc:
电源电压
GND:
地
Port1:
P1口是一组8位双向I/O,P1.2——P1.7提供内部上拉电阻,P1.0和P1.1内部无上拉电阻,主要是考虑它们分别是内部精密比较器的同相输入端(AINO)和反向输入端(AINI),如果需要应在外部接上拉电阻,P1口输出缓冲器可吸收20mA电流并可直接驱动LED。
当P1口引脚写入“1“时可作输入端。
当引脚P1.2to——P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流(IIL)。
P1口还在Flash闪速编程及程序校验时接受代码数据。
Port3:
P3口的P3.0——P3.5、P3.7是带有内部上拉电阻的7个双向I/O口。
P3.6没有引出,它作为一个通用I/O口但不可访问,但可作为固定输入片内比较器的输出信号,P3口缓冲器可吸收20mA电流。
当P3口写入“1“时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口还用于实现AT89C2051特殊的功能,如下表所示:
端口3引脚
功能特性
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时/计数器外部输入0)
P3.5
T1(定时/计数器外部输入1)
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
RST引脚一旦变成两个机器周期以上高电平,所有的I/O口都将复位到“1”(高电平)状态,当振荡器正在工作时,持续两个机器周期以上的高电平便可完成复位,每个机器周期为12个振荡时钟周期。
XTAL1:
振荡器方向放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反向放大器的输出端。
5.振荡器特征
XTAL1、XTAL2为片内振荡器的反相放大器的输入和输出端,如下图所示。
可采用石英晶体或陶瓷振荡器组成时钟振荡器,如需从外部输入时钟驱动AT89C2051,时钟信号从XTAL1输入,XTAL2应悬空。
由于输入到内部电路是经过一个2分频触发器,所以输入到外部时钟信号无需特殊要求,但它必须符合电平的最大和最小值及时序规范。
6.特殊功能寄存器
片内特殊功能寄存器(SFR)空间存储区的映像图如下所示。
并非存储区中所有的地址单元都被占用,未占用的地址单元亦不能使用,如果对其进行读访问一般返回为随机数,写访问也不确定。
这些单元是为了以后利用这些位使用的地址单元扩展新功能而设置,所以用户软件不要对它们写“1”,在这种情况下,新位的复位或不激活值总为“0”。
7.某些指令的约束条件
AT89C2051是经济型低价位的微控制器,它含有2k字节的Flash闪存程序存储器,指令系统与MCS-51完全兼容,可使用MCS-51指令系统对其进行编程。
但是在使用默写有关指令进行编程时,程序员需注意一些事项。
和跳转或分支有关的指令有一定的空间约束,使目的地址能安全落在AT89C2051的2k字节的物理程序存储器空间内,程序员必须注意这一点。
对于2k字节存储器的AT89C2051来说,LJMP7E0H是一条有效指令,而LJMP900H则为无效指令。
a)分支指令
LCALL,LJMP,ACALL,AJMP,SJMP,JMP@A+DPTR只要程序员记住这些分支指令的目的地址在程序存储器大小的物理范围内(AT89C2051程序地址空间为:
000H—7FFH单元),这些无条件分支指令就会正确执行,超出物理空间的限制会出现不可预知的程序错误。
CJNE[…],DJNZ[…],JB,JNB,JC,JNC,JBC,JZ,JNZ这些条件转移指令的使用与上述原则一样,同时,超出物理空间的限制也会引起不可预知的程序出错。
至于中断的使用,80C51系列硬件结构中已保留标准中断服务子程序的地址。
b)与MOVX相关的指令,数据存储器
AT89C2051包含128字节内部数据存储器,这样,AT89C2051的堆栈深度局限于内部RAM128字节范围内,它既不支持外部数据存储器的访问,也不支持外部程序存储器的执行,因此程序中不应有MOVX[…]指令。
一般80C51汇编器即使在违反上述指令约束而写入指令时仍对指令进行汇编,用户应了解正在使用的AT89C2051微控制器的存储器物理空间和约束范围,适当的调整所使用的指令寻址范围以适应AT89C2051。
8.程序存储器的加密:
AT89C2051可使用对芯片的两个加密位进行编程(P)或不编程(U)来得到如下表所示的功能:
AT89C2051加密位
程序加密位
保护类型
LB1
LB2
1
U
U
无程序加密功能
2
P
U
禁止进一步进行Flash闪速编程
3
P
P
如模式2,同时禁止校验
注:
加密位只能用片擦除操作进行擦除
9.空闲模式:
在空闲模式下,CPU保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。
此时,片内RAM和所有特殊功能寄存器的内容保持不变。
空闲模式可由任何允许的中断请求或硬件复位终止。
P1.0和P1.1在不使用外部上拉电阻的情况下应设置为“0”,或者在使用上拉电阻的情况下设置为“1”。
应注意的是:
在用硬件复位终止空闲模式时,AT89C2051通常从程序停止一直到内部复位获得控制之前的两个机器周期处恢复程序执行。
在这种情况下片内硬件禁止对内部RAM的读写,但允许对端口的反问,要消除硬件复位终止空闲模式端口意外写人的可能,原则上进行空闲模式指令的下一条指令不应对端口引脚或外部存储器进行访问。
10.掉电模式:
在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。
退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。
P1.0和P1.1在不使用外部上拉电阻的情况下应设置为“0”,或者在使用外部上拉电阻时应设为“1”。
11.Flash闪速存储器的编程:
AT89C2051是在擦除状态下(也即所有单元内容均为FFH时)用2k字节的片内PEROM代码存储阵列进行封装微控制器,其程序存储器是可反复编程的,代码存储阵列一次编程一个字节,一旦阵列被编程,如需重新编程—非空(空为:
FFH)字节,必须对整个存储器阵列进行电擦除。
AT89C2051内Flash闪速存储器的编程和校验电路如图4和图5所示。
内部地址计数器:
AT89C2051内部包含一个PEROM编程地址计数器,它总在RST上升沿到来时复位到000H,并在XTAL1引脚上出现正跳变脉冲时进行加1计数。
图4编程电路
图5校验电路
编程方法:
要对AT89C2051进行编程,推荐使用以下方法。
1.上电次序:
在VCC和GND引脚之间加上电源。
设置RST和XTAL1为GND电平。
其它引脚置空,等待至少10ms以上。
2.置RST引脚为高电平,置P3.2引脚为高电平。
3.对引脚P3.3,P3.4,P3.5,P3.7按下表正确组合加上逻辑高“H”或低“L”电平即可对PEROM进行编程操作。
AT89C2051Flash闪速编程方式
注:
1、内部PEROM地址计数器在RST的上升沿复位到000H并由XTAL1引脚正脉冲进行计数
2、片擦除需要10ms的
脉冲
3、编程期间P3.1被拉低来指示RDY/
编程和校验方法如下:
4.在000H地址单元对P1.0—P1.7输入数据代码字节。
5.置RST端为+12V,激活编程。
6.使P3.2跳变一次来编程PEROM阵列中的一字节或者加密位,写字节周期是自身定时的,一般需时1.2ms。
7.当校验已编程的数据时,使RST从+12V降到逻辑电平“H”,置P3.3—P3.7引脚到正确的电平即可从P1口读取数据。
8.对下一地址单元编程字节,使XTAL1引脚正脉冲跳变一次使地址计数器加1,在P1口输入新的数据字节。
9.重复5至8,可对整个2k字节阵列全部编程,直到目标文件结束。
10.下电次序:
置XTAL1为低“L”电平
置RST为“L”电平
置空所有其它I/O引脚
关闭VCC电源
数据查询:
AT89C2051具有写周期结束的数据查询功能,在写周期期间,对最后写入的字节尝试读将令P1.7上写入数据的操作结束。
当写周期完成,全部输出端的真实数据有效,同时下一个周期开始,数据查询可在写周期被初始化的任一时刻开始。
Ready/Busy:
字节编程的进度可通过“RDY/BSY”输出信号监测,编程期间,P3.1引脚在P3.2变高“H”后被拉低来指示“BSY”,P3.1在编程结束后被再次拉高“H”来指示“RDY”。
程序校验:
如果加密位LB1、LB2没有进行编程,则代码数据可以通过检验数据线读取:
1.使RST从“L”变为“H”,复位内部的地址计数器为000H。
2.对代码数据加上正确的控制信号即可在P1口引脚上读取数据。
3.XTAL1引脚跳变一次使内部地址计数器加1.
4.从P1口读取下一个代码字节。
5.重复3到4步骤,即可将全部单元的数据读取。
加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。
芯片擦除:
利用控制信号的正确组合并保持P3.2引脚10mS的低电平即可将PEROM阵列(2k字节)和两个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”可被在编程之前进行。
读片内标志字节:
除P3.5、P3.7必须被拉成逻辑低电平外,读签名字节的过程和单元000H、001H及002H的正常校验相同,返回值意义如下:
(000H)=1EH申明产品由Atmel公司制造。
(001H)=21H申明为89C2051单片机。
12.编程接口:
Flash闪速阵列中的每一个代码字节进行写入且整个存储器可在控制信号的正确组合下进行擦除,写操作周期是自身定时的,初始化后它将自动定时到操作完成。
13.Flash闪速存储器编程和校验时序参数
TA=0oC至70oC,Vcc=5.0±10%
符号
参数
最小
最大
单位
Vpp
编程电压
11.5
12.5
V
Ipp
编程电流
250
μA
TDVGL
建立数据到PROG变低时间
1.0
μs
tGHDX
PROG变低后数据保持时间
1.0
μs
TEHSH
ENABLE变高到Vpp时间
1.0
μs
TSHGL
建立Vpp到PROG变低时间
10
μs
TGHSL
加PROG后Vpp保持时间
10
μs
TGLGH
PROG宽度
1
110
μs
TELQV
ENABLE到数据有效时间
1.0
μs
TEHQZ
ENABLE到数据浮空时间
0
10.
μs
TGHBL
PROG变高到BUSY变低时间
50
ns
TWC
字节写周期
2.0
ms
TBHIH
RDY/BSY到增加时钟延时时间
1.0
μs
TIHIL
时钟增量时间
200
ns
注:
本表仅指明使用12V编程电压模式
14.AT89C2051的极限参数
工作温度。
。
。
。
。
。
。
。
。
。
。
。
。
。
-55oC至+125oC
储藏温度。
。
。
。
。
。
。
。
。
。
。
。
。
。
-65oC至+150oC
任一引脚对地电压。
。
。
。
。
。
。
。
-1.0V至+7.0V
最高工作电压。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6.6V
直流输出电流。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
25.0mA
15.直流特性
TA=-40oC至85oC,Vcc=2.7V至6.0V(除非特别指出)
符号
参数
条件
最小值
最大值
单位
VIL
输入低电平
-0.5
0.2VCC-0.1
V
VIH
输入高电平
除了XTAL1,RST
0.2VCC+0.9
VCC+0.5
V
VIH1
输入高电平
XTAL1,RST
0.7VCC
VCC+0.5
V
VOL
输出低电平
(1)(1、3口)
IOL=20mA,VCC=5V
IOL=10mA,VCC=2.7V
0.5
V
VOH
输出高电平(1、3口)
IOH=-80μA,VCC=5V±10%
2.4
V
IOH=-30μA
0.75VCC
V
IOH=-12μA
0.9VCC
V
IIL
逻辑0输入电流(1、3口)
VIN=0.45V
-50
μA
ITL
逻辑1到0转换电流(1、3口)
VIN=2V,VCC=5V±10%
-750
μA
ILI
输入漏电流(1.01.1口)
0±10
μA
VOS
比较器输入偏移电压
VCC=5V
20
mV
VCM
比较器输入普通模式电压
0
VCC
V
RRST
复位拉低电阻
50
300
kΩ
CIO
引脚电容
测试频率=1MHz,TA=25oC
10
pF
ICC
供电电流
活动模式,12MHz,VCC=6V/3V
15/5.5
mA
空闲模式,12MHz,VCC=6V/3VP1.0&P1.1=0VorVCC
5/1
mA
掉电模式
VCC=6V,P1.0&P1.1=0VorVCC
100
μA
VCC=3V,P1.0&P1.1=0VorVCC
20
μA
注:
1.在稳态条件下,IOL必须以以下外部条件为限制:
每引脚最大IOL:
20mA
所有引脚最大总IOL:
80mA
如果IOL超过测试条件,VOL可能超过相关规范。
引脚将不能保证比上述条件更大的灌电流。
2.最小掉电电源电压是2V。
16.外部时钟驱动波形
17.外部时钟驱动
符号
参数
Vcc=2.7V至5.0V
最小最大
Vcc=4.0V至5.0V
最小最大
单位
1/tclcl
振荡频率
0
12
0
24
MHz
tclcl
时钟周期
83.3
41.6
ns
tchcx
高电平时间
30
15
ns
tclcx
低电平时间
30
15
ns
tclch
上升时间
20
20
ns
tchcl
下降时间
20
20
ns
18.串口时序:
移位寄存器测试条件
VCC=5.0V±20%,负载电容=80pF
符号
参数
12MHzOSC
校验振荡器
单位
最小值
最大值
最小值
最大值
tXLXL
串口时钟周期时间
1.0
12tCLCL
μs
tQVXH
输出数据设置至时钟上升沿
700
10tCLCL-133
ns
tXHQX
时钟上升沿后输出数据保持
50
2tCLCL-117
ns
tXHDX
时钟上升沿后输入数据保持
0
0
ns
tXHDV
时钟上升沿到输入数据有效
700
10tCLCL-133
ns
19.移位寄存器测试波形
注:
AC输入测试期间是当电平VCC-0.5V(逻辑1)和0.45V(逻辑0)实时测量Vm的最小值及VIL的最大值。
20.产品序号信息
最高时钟(MHz)
电源电压
产品序号
封装
工作温度范围
12
2.7V-6.0V
AT89C2051-12PC
AT89C2051-12SC
20P3
20S
商用(0oC-70oC)
AT89C2051-12PI
AT89C2051-12SI
20P3
20S
工业用(-40oC-85oC)
24
4.0V-6.0V
AT89C2051-24PC
AT89C2051-24SC
20P3
20S
商用(0oC-70oC)
AT89C2051-24PI
AT89C2051-24SI
20P3
20S
工业用(-40oC-85oC)
封装形式
20P3
20脚,0.300”宽,塑料双列直插封装
20S
20脚,0.300”宽,塑料鸥翼封装