第2章 AT89S52单片机基本结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.4.1
算术、逻辑运算部件
AT89S52单片机的算术∕逻辑运算部件 (ALU)包括:
运算器、累加器A、寄存器B、暂存器 TMP、程序状态字PSW、堆栈指针SP和数据 地址指针DPTR等
注意:AT89S52的ALU和MCS-8051的ALU
完全兼容。
2.4.2 专用寄存器
寄存器的用途与特点: 寄存器是用来存放信息的单元,其特 点是存取速度快、编程方便,在处理过程 中起着重要的作用。寄存器的数量是衡量 一台计算机处理能力的重要标志之一。 AT89S52单片机的寄存器分为: ※ 通用工作寄存器 ※专用寄存器 ※ 特殊功能寄存器。特殊功能寄 存器是专为对应的功能部件服务的。
单片机复位后,RS1=RS0=0 ,CPU自动选中0区为 当前工作寄存器区。
OV(PSW.2)——溢出标志位 在执行算术运算指令时,如有溢出, 使0V=1,否则,0V=0, 执行ADD指令时: C C
' 6 ' 7
OV=1 OV=1 OV=1 OV=1
' ' 执行SUBB指令时: 6 C7 C
※ 在中断程序或子程序结束时,原PC值会自动 弹出堆栈,使程序从原断点处继续顺序执行下去。
※ 堆栈中每弹出一个字节,SP自动减1。
※ 堆栈除了用来保护断点地址外,还可通过 “PUSH”和”POP”堆栈操作指令,来保护其他一些 重 要信息。 ※ 这些指令会使SP值自动增、减。 ※ SP指针是一个双向计数器。压栈时增1,出
CY
AC
FO
RS0 RS1 OV
---
P
AC(PSW﹒6) —— 辅助进位标志。
做加、减法操作时,若产生由低四位向高四 位数进位或借位时, AC将被硬件置1,否则被 清除。 AC还被用于十进制调整。 FO(PSW﹒5)——由用户定义的一个标志 可由编程来使FO置位或清零,也可以测试 FO位来控制程序的流向。
若晶体为12mhz则指令执行时间分别s1s2s3s4s5s6p1p2s2s3s4s5s6s1s1oscxtal2ales1s6s5s4s3s2读操作码读下一个操作码丢掉再读下一个操作码b双字节单周期指令如addadatamovx单字节双周期s1s6s5s4s3s2读操作码读第2字节再读下一个操作码读操作码读下一个操作码丢掉s1s6s5s4s3s2s1s6s5s4s3s2再读下一个操作码c单字节双周期指令如incdptr读操作码movx读下一个操作码丢掉s1s6s5s4s3s2s1s6s5s4s3s2再读下一个操作码无ale访问外部存储器地址数据几种典型的取指和执行时序
5.
堆栈指针(SP)
SP—— 8位专用寄存器,它指示出栈顶在内
部RAM块中的位置, 可寻址128个单元。 系统复位后,SP=07H,实际上使得堆栈从 08H单元开始,因为压栈前,SP先加1 。
※ 在CPU响应中断或调用子程序时,程序
断点口地址(PC值)会自动压入堆栈。 ※ 每压入堆栈一个字节SP自动加1。 ※ 可用软件编程重新设定SP值,以改变堆 栈在128字节RAM区中的位置和深度。
2.2

AT89S52的内部总体结构
AT89S52单片机是在一块超大规模集成电路 芯片上,集成了包括有CPU、RAM、ROM、 定时器和多种I/O接口等电路。 也就是说,在一块单片机芯片中所具有的功 能,包括了一台微型计算机的基本功能。 系统功能框图如下。
RAM 地址 寄存器
P0口 RAM
ALE / PROG(30引脚)——当访问外部存贮器 时,ALE的输出用于 锁存地址的低位字节。
在不访问外部存贮器时,ALE仍以不变 的频率周期性地出现正脉冲信号,此频率为振 荡器的1/6,可作为外输出的时钟,或用于定 时的目的。
注意:每当访问外部数据存贮器时,将跳过 一个ALE脉冲。 ALE端可驱动8个TTL 输入门。 在片内FLASH编程期间,此引脚用 于输入编程脉冲( PROG )。
第2章
AT89S52单片机内部结构
本章详细介绍的内容,要求同学们熟练掌 握:
1、AT89S52的主要性能与基本组成 2、引脚功能及总线结构 3、AT89S52中央处理器 4、复位电路及复位状态 5、时钟电路与CPU时序
2.1
1. 2. 3. 4. 5.
AT89S52 的主要性能特点
8位CPU CPU工作频率:0~33MHz 内部FLASH可编程ROM容量: 8KB 内部数据存贮器(RAM)容量: 256B 输入/输出线(I/O端口): P0口~P3口 (共32位) 6 . 3个16位定时器/计数器 7 . 全双工的串行接口 8 . 4个通用工作寄存器区 (共32个寄存器)
P1.7:SCK(用于内部编程)——下载线
P2.0~P2.7(21~28脚)——P2口是一个 带内部上拉电阻的8 位双向口。 在访问外部存贮器时,它送出高8位地址。 在对FLASH编程和程序验证期间,它接 高位地址。 P3.0~P3.7(10~17脚)——P3口是一个带 内部上拉电阻的8位 双 向I/O口。这8个引脚还具 有专门功能。具体功能如下:
3、输入/输出端口引脚: P0.0~P0.7 (39 ~32脚)——P0口是一个8位 漏极开路的双向I/O 口
在访问外部存储器时,它是分时转换的 地址(低8位)/数据总线;
在访问期间激活了内部的上拉电阻。
在片内FLASH编程时,它接收指令字节; 在验证程序时,则输出指令字节,
并要求外接上拉电阻。
专用寄存器和特殊功能寄存器在SFR区 中,属于内部数据存储器80H—0FFH空间的 某些单元。 下面列出SFR块中的专用寄存器的助记 标识符,名称和对应地址。 注意:其中的PC为16位的特殊功能寄存器, 叫程序地址计数器,也叫程序地址指 针,在物理上是独立的,不属于SFR块 中的。
1. 程序计数器(PC) 2. 累加器(ACC) — 0E0H 3. B寄存器 — 0F0H 4. 程序状态字(PSW)——D0H 5. 栈指针(SP)——81H 6. 数据指针DPTR——(83H,82H) 7. 端口P0~P3(80H,90H,A0H,B0H) 8. 串行数据缓冲器(SBUF)——99H 9. 定时器/计数器(8CH,8AH,8DH,8BH) 10 .其它控制寄存器
P0口 锁存器
P2口
P2口 锁存器
FLASH
程序地址 寄存器 ACC SP 缓冲器
程序计数器PC
B
TMP2
TMP1
中断、串口、 定时计数器、 端口模块
ALU
PSEN ALE EA RET
定时 与 控制
指 令 寄 存 器
程序增量器PC
PSW
双DPTR
P3口 锁存器 P1口 锁存器
WDT 振荡器
ISP口
RS1、RS0(PSW.4、PSW.3)
——工作寄存器区选择控制位
RS1 和RS0组合关系如下图所示:
RS1 RS0 工作寄存器区 通用寄存器 地址
0 0 1 1
0 1 0 1
0区 1区 2区 3区
R0~R7 R0~R7 R0~R7 R0~R7
00~07H 08~0FH 10~17H 18~1FH
1
2
40
39
XTAL1 XTAL2 EA/VDD
P0
P1
AT89S52
PSEN ALE/PROG RST/VPD
P2
P3
19 20
22 21
Vss
Vcc
引脚排列图
逻辑符号图
现在介绍40条引脚中的功能属性: 2条专用于主电源的引脚; 2条外接晶体的引脚; 4条控制或与其他电源复用的引脚; 32条I/O端口的引脚,其中端口3的8条线具有 专用功能。
当EA保持低电平时,只访问外部 ROM,有无内部ROM都不访问; 在FLASH编程期间,此引脚用于施加 5V/12V的编程电压(Vpp)
2.4 AT89S52中央处理器
AT89S52单片机的核心部件是一个字长 为8位的高性能中央处理器(CPU),它是由运 算器和控制器组成的。
所谓中央处理器就是单片机的指挥控制 中心和执行机构。 其作用是读取和分析指令的功能,并根 据指令的功能要求,指挥和控制单片机的有 关部件具体、有序地执行规定的操作,完成 指令所要求的功能。
1. 程序计数器(PC)
放置下一条要执行指令的地址; 它是一个16位专用寄存器,其寻址范围: 0~65535(64K) 在物理上是独立的,不属于内部数据存储 器的SFR块。 2.累加器(ACC) — 0E0H ACC是最常用的专用寄存器。 很 大部分单操作数指令的操作数取自ACC, 多双操作数指令的一个操作数也取自ACC
P0口能驱动8个TTL输入门。
P1.0~P1.7(1~8脚)——P1口是一个带有内 部上拉电阻的8位双 向 I/O口。
对FLASH编程和程序验证时,接低8位地址. P1.0:T2的外部计数触发输入端。 P1.1:T2捕获/重装载触发及方向控制。 P1.5:MOSI(用于内部编程)——下载线
P1.6:MISO(用于内部编程)——下载线
4.程序状态字(PSW) PSW是一个8位程序状态寄存器,各位的 含义如下表:
PSW﹒7 PSW﹒0
CY
AC
FO
RS0 RS1 OV
---
Pபைடு நூலகம்
CY(PSW﹒7)——进位标志。 在执行某些算术和逻辑指令时,可以被硬 件或软件置位或清除。在布尔处理机中被认为是 位累加器,它的重要性相当于普通中央处理机中 的累加器;
P3.0(RXD ) ——(串行输入口) P3.1(TXD) ——(串行输出口) P3.2(INT0) ——(外部中断0触发端) P3.3(INT1) ——(外部中断1触发端) P3.4(T0 ) ——(定时器0的外部输入) P3.5(T1 ) ——(定时器1的外部输入) P3.6(WR) ——(外部数据存贮器写选通) P3.7(RD) ——(外部数据存贮器读选通)

下面分别介绍40条引脚的功能: 1. 主电源引脚 Vss和 Vcc:
VSS(20引脚)——接地 VCC(40引脚)——正常操作,对EPROM 编程和验证时接+5V
2. 外接晶体引脚:
XTAL1(19引脚)——接外部晶体的一个引脚,在 片内,它是一个反向放大器的输入端,这个 放大器构成了片内振荡器.(当采用外部振荡器 时:对HMOS单片机来讲,XTAL1脚应接地); 对CHMOS单片机来讲,XTAL1脚作为驱动 端. XTAL2(18引脚)——接外部晶体的另一端。在片 内,接到上述反向放大器的输出端。(当采用 外部振荡器时,对HMOS来讲,XTAL2脚接 收振荡器的信号,即把此信号直接接到时钟 发生器的输入端);对CHMOS,此引脚悬浮.
执行MUL指令时: 积>255 执行DIV指令时: 除数=0
P (PSW﹒0) ——奇偶标志 P——在每个指令周期中,根据累加器 中内容的奇偶性,由硬件来置位或清零。 如果A中结果值有奇数个“1”,则置P=1, 否则P清零; 在串行传送中常用奇偶校验的办法来检 验数据传送是否出错,通常在TX端可根据P 的值,对数据的奇偶位进行置位或清零。 如:通信协议规定奇校验,当P=0 时,应 对数据的奇偶位置位,否则清零。 PSW﹒1----保留位。
9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19.
6个中断源 ISP下载接口 定时监视器(看门狗) 双DPTR(数据地址指针) 20多个特殊功能寄存器 电源下降标志 堆栈区 布尔处理机 可外扩64KBROM空间 可外扩64KBRAM空间 指令系统
※ +﹑-﹑×﹑÷算术运算结果存放在ACC 或AB寄存器中。 ※ 指令中一般用A作累加器助记符 。
※ 在位操作和PUSH、POP指令中采用ACC
3.B寄存器—0F0H 在做×、÷法 运算时: 乘法指令的两个操作数分别取自A和B, 其乘积存放在BA中; 在除法指令中,被除数取自A,除数取自 B,商数存放于A,余数存放于B中。
P3口可驱动4个TTL输入门
4. 控制或与其他电源复用引脚:
RST/VPD (9脚)—当振荡器运行时, 在此引脚上出现两个机器周期的高电平,使 得单片机复位。 为了保证可靠复位,建议在此引脚与Vss 引脚之间连接一个约8.2 的下拉电阻,并与 Vcc引脚之间连接一个约10µF的电容。
在Vcc掉电期间, RST/VPD脚可接上备 用电源,以保持内部RAM的数据不变 当Vcc下掉到低于规定的水平时, VPD在其规定的电压范围(5±0.5V)内, 向内部提供备用电源。这时,使单片机处于 饥饿工作状态——低功耗。
编程逻辑
P3口
P1口
2.3 MCS-51的引脚及其功能说明
MCS-51有二种封装方式: 1. HMOS制造工艺 HMOS高性能金属氧化物半导体器件 采用40引脚双列直插(DIP)封装方式。 2. CHMOS制造工艺(CMOS场效应管 除了采用DIP封装方式外,还采用方形的 封装方式,方形封装为44个引脚,但有4个引 脚不连线。
PSEN (29引脚)——是外部程序存贮器的取
指选通信号。在由外部 ROM取指令期 间,每个机 器周期两次有效。
但在访问外部数据存贮器时,PSEN 将不出现。
EA / VPP
(31引脚)——当EA保持高电平时, 从内部ROM的0000地址 开始执行程序,当PC值超过 0FFFH/1FFFH 时,将自动转向 外部ROM取指,执行程序。
相关文档
最新文档