P3,3 (外中断1)
P3.4 T0 (定时/计数器0)
P3.5 T1 (定时/计数器1)
P3.6 (外部数据存储器写选通)
P3.7 (外部数据存储器读选通)
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
.RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将单片机复位。
.ALE/ :当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器。ALE仍一时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。但要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲( )。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
. :程序存储允许( )输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,这两次有效的 信号不出现。
.EA/VPP:外部访问允许,欲使 CPU仅访问外部程序存储器(地址为0000H--FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部会锁存EA端状态。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
.XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
.XTAL2:振荡器3放大器的输出端。
3.2.4 时钟振荡器
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图:
外接石英晶体(或陶瓷振荡器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低,振荡器工作的稳定性,起振的难易程序及温度稳定性,如果使用石英晶体,则推荐电容使用30pF 10pF,而如使用陶瓷振荡器建议选择40pF 10F。
用户也可以采用外部时钟,采用时钟的电路如图。在这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分钟触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
3.2.5 空闲节电模式
AT89C51有两种可用软件编程的省电模式,它们是空闲模式和掉点工作模式。这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的PD(PCON.1)和IDL(PCON.0)位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机模式,即PD和IOL同时为1,则先激活掉电模式。
在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设保持激活状态,这种方式由软件产生。此时,片内RAM和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。
终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。
其二是通过硬件复位也可将空闲工作模式终止。需要注意的是,当有硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。
3.2.6 掉电模式
在掉点模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。
模式 程序存储器 ALE /PSEN P0 P1 P2 P3
空闲模式 内部 1 1 数据 数据 数据 数据
空闲模式 外部 1 1 浮空 数据 地址 数据
掉电模式 内部 0 0 数据 数据 数据 数据
掉电模式 外部 0 0 浮空 数据 数据 数据
空闲和掉电模式外部引脚状态
3.2.7 程序存储器的加密
AT89C51可使用对芯片上的3个加密位LB1、LB2、LB3进行编程(P)或不编程(U)来得到下表所示的功能:
加密位保护功能表
程序加密位 保护类型
LB1 LB2 LB3
1 U U U 没有程序保护功能
2
P
U
U 禁止从外部程序存储器中执行MOVC指令读取内部程序存储器的内容
3 P P U 除上表功能外,还禁止程序校验
4 P P P 除以上功能外,同时禁止外部执行
当加密位LB1被编程时,在复位期间,EA端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止,为使单片机能正常工作,被锁存的EA电平必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。
Flash闪速存储器的编程
AT89C51单片机内部有4K字节的Flash PEROM,这个Flash存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。
AT89C51单片机中,有些属于低电压编程方式,而有些则是高电压编程方式。用户可从芯片上的型号和读取芯片内的签名字节获得该信息。如图
Vpp=12V Vpp=5V
芯片顶面标识 AT89C51
xxxx
yyww AT89C51
xxxx—5
yyww
签名字节 (030H)=1EH
(031H)=51H
(032H)=FFH (030H)=1EH
(031H)=51H
(032H)=05H
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>