表2.1 AT89C51端口
AT89C51由外部程序取指令(或数据)时,每个机器周期两次 有效,既输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的 信号不出现。
•EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H--FFFFH),EA端必须保持低电平(接地)。要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V的编程电压Vpp。
•XTAL1:震荡器反向放大器及内部时钟的输入端。
•XAAL2:震荡器反向放大器的输出端。
•时钟震荡器:AT89C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电路如图。外接石英晶体(或陶瓷震荡器)及电容C1、C2接在放大器的震荡回路中构成并联震荡电路。对外接电容C1、C2虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pF±10pF,而如果使用陶瓷谐振器建议选择40pF±10pF。用户还可以采用外部时钟,采用外部时钟如图所示。在这种情况下,外部时钟脉冲接到XTAL1端,既内部时钟发生器的输入端,XTAL2悬空。
图2.3 内部震荡电路 图2.4 外部震荡电路
由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部
表2.2 AT89C51寄存器
寄存器 内容 寄存器 内容
PC 0000H TMOD 00H
ACC 00H TCOM 00H
B 00H TH0 00H
PSW 00H TLO 00H
SP 07H TH1 00H0
DPTR 0000H TH1 00H
P1—P3 0FFH SCON 00H
IP xxx00000 SBUF 不定
IE 0xxx00000 PCON 0xxx00000
时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。
•Flash闪速存储器的编程:
AT89C51单片机内部有4K字节的Flash PEROM,这个Flash存储存储阵列出厂时已处于擦除状态(既所有存储单元的内容均为FFH),用户随时可对其进行编程。程序接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式,适用与用户在线编程系统。而高电平模式可与通用EPROM编程程序兼容。
•编程方法:
编程前需设置好地址、数据及控制信号,编程单元的地址就、加在P1口和P2口的P2.0—P2.3(11位地址范围为0000H—0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平设置见表。PSEN为低电平,RST保持高电平,EA/Vp 引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)编程时可采用4—20MHz的时钟震荡器AT89C51的编程方法如下:1.0 在地址线上加上要编程单元的地址信号。
1.在数据线上加上要写入的数据字节。
2.激活相应的控制信号。
3.在高电压编程时,将EA/Vpp端加上+1V编程电压。
4.每对Flash存储阵列写入一个字节,加上一个ALE/PROG编程脉冲。
(2) AT89C51控制信号
RST/VPD(9脚)复位信号时钟电路工作后,在引脚上出现两个机器周期的高电平,芯片内部进行初始复位,复位后片内存储器的状态如表所示,P1—P3口输出高电平,初始值07H写入堆栈指针SP、清0程序计数器PC和其余特殊功能寄存器,但始终不影响片内RAM状态,只要该引脚保持高电平,89C51将循环复位,,RAT/VPD从高电平到低电平单片机将从0号单元开始执行程序,另外该引脚还具有复用功能,只要将VPD接+5V备用电源,一旦Vcc电位突然降低或断电,能保护片内RAM中的信息不丢失,恢复电后能正常工作。
AT89C81通常采用上电自动复位和开关手动复位,我们采用的是手动复位开关如图所示:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页