AT89C51单片机的基本结构和工作原理本文简介:AT89C51单片机的主要工作特性内含4KB的FLASH存储器,擦写次数1000次;内含28字节的RAM;具有32根可编程I/O线;具有2个16位可编程定时器;具有6个中断源、5个中断矢量、2级优先权的中断结构;具有1个全双工的可编程串行通信接口;具有一个数据指针DPTR;两种低功耗工作模式,即空闲
AT89C51单片机的基本结构和工作原理本文内容:
AT89C51单片机的主要工作特性
内含4KB的FLASH存储器,擦写次数1000次;
内含28字节的RAM;
具有32根可编程I/O线;
具有2个16位可编程定时器;
具有6个中断源、5个中断矢量、2级优先权的中断结构;
具有1个全双工的可编程串行通信接口;
具有一个数据指针DPTR;
两种低功耗工作模式,即空闲模式和掉电模式;
具有可编程的3级程序锁定定位;
AT89C51的工作电源电压为5(10.2)V且典型值为5V,最高工作频率为24MHz.
AT89C51各部分的组成及功能
外部中断
TXD
RXD
P0
P1
P2
P3
扩展控制
振荡器和时钟电路
数据存储器
128字节
程序存储器
14KB
CPU
两个16位定时器
计数器
中断
控制
总线扩展控制器
并行可编程
I/O口
可编程
串行口
内部总线
1.
中央处理器
1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。
地址寄存器
片内ROM
PSEN
ALE
EA
RST
XTAL1
XTAL2
振荡器
定时及
控制
逻辑
指令译码器
指令寄存器
程序计数器
PC
PC增量器
暂存器1
B寄存器
ACCC
暂存器2
PSW
ALU
(1)
运算器
运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。
ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。
暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。
累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。
B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。
(2)
控制器
控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对***KB程序存储器进行寻址。复位时PC的内容是0000H.
3存储器
单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash
Memory,编程和擦除完全是电器实现。
(4)外围接口电路
AT89C51单片机的外围接口电路主要包括4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。
AT89C51的工作原理
1.
引脚排列及功能
AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。
(1)I/O口线
P0口
8位、漏极开路的双向I/O口。
当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。
P1口
8位、准双向I/O口,具有内部上拉电阻。
P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。
P2
8位、准双向I/O口,具有内部上拉电阻。
当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。
P3
8位、准双向I/O口,具有内部上拉电阻。
P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。
(2)控制信号线
RST
复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。
EA/VPP
外部程序存储器访问允许信号EA.
当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压5V或12V。在编程校验时,该引脚可接VCC。
PSEN
片外程序存储器读选通信号PSEN,低电平有效。在片外程序存储器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部RAM时,PSEN
无效。
ALE/PROG
低字节锁存信号ALE.在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。此外,ALE端连续输出正脉冲,频率为晶振频率的1/6,可做外部定时脉冲使用。
(3)外部晶振引线
XTAL1
片内振荡器反向放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。
XTAL2
片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体和微调电容。
2.
存储器组织和特殊功能寄存器
AT89C51的存储器将程序存储器和数据存储器分开,并有各自的存储空间和访问指令。它有4个存储空间片内存储器、片外存储器、片内数据存储器及片外存储器。
振荡器
3.
时钟电路和工作时序
(1)
振荡器电路原理
Rf
XTAL1
PD
6
3
Q
2
Q
2振荡电路的接法
外部振荡器信号
NC
XTAL2
XTAL1
GND
C1
C2
XTAL2
XTAL1
CND