目录

1AT89C52原理图及结构框图

1.1 原理图

1.2 AT89C52 结构框图

1.2.1 8 位 CPU

1.2.2 存储器

1.2.3 I/O 端口

1.2.4 定时器 / 计数器

1.2.5 串行通信接口 

1.2.6 中断系统

1.2.7 时钟与复位

1.2.8 总线结构 

1.2.9 特殊功能寄存器区 

2 AT89C52引脚介绍(PDIP)

3AT89C52使用要点

4AT89C52的存储结构

4.1程序存储器(ROM/Flash)——放代码

4.2数据存储器(RAM)—— 放变量/堆栈

4.3特殊功能寄存器(SFR)—— 控外设

4.4地址映射总览

4.5使用小贴士

5定时器 / 计数器

5.1 共性部分

5.2 T0、T1 的 4 种工作模式(M1:M0 决定)

5.3 T2 的专用特性(8052 独有)

5.4 小结

6 中断系统

6.1 中断源一览

6.2 控制寄存器

6.3 优先级与嵌套规则 

6.4 外部中断细节

6.5定时器中断 

6.6串行口中断

6.7 中断响应流程(精简记忆版) 

6.8 使用技巧 


概述:文章摘要:AT89C52是一款基于8051内核的8位单片机,包含8KB Flash程序存储器、256B RAM、3个定时器/计数器、全双工串口和8个中断源。其40引脚PDIP封装提供32个可编程I/O口,支持多种外设控制。存储结构分为程序存储器(8KB片内Flash)、数据存储器(128B通用RAM+128B SFR)和可扩展64KB片外RAM。定时器/计数器包含T0/T1的4种工作模式和T2的增强功能(捕获/自动重装)。中断系统支持6个中断向量和2级优先级管理。使用需注意P0口上拉电阻、晶振选型和存储空间分配等要点。

1AT89C52原理图及结构框图

1.1 原理图

如上图所示,AT89C52 单片机有 PDIP(双列直插式封装)、PQFP/TQFP(塑料四方扁平封装)和 PLCC(塑料有引线芯片载体封装)三种封装形式,以适应不同产品的需求。PDIP 封装便于手工焊接与调试,适用于实验开发与小批量生产;PQFP/TQFP 封装具有引脚间距小、集成度高的特点,适合对体积要求严格的产品;PLCC 封装则在电气性能与散热方面表现出色,常用于对性能要求较高的工业级产品。

1.2 AT89C52 结构框图

1.2.1 8 位 CPU

   ALU、累加器 A、程序计数器 PC、堆栈指针 SP、指令寄存器 IR 等

1.2.2 存储器

   8 KB Flash ROM(程序存储器) 

   256 B RAM(128 B 通用 + 128 B 可位寻址)

1.2.3 I/O 端口

   32 条可编程 I/O 线:P0~P3 四个 8 位端口

1.2.4 定时器 / 计数器

    3 个 16 位可编程定时/计数器 T0、T1、T2

1.2.5 串行通信接口 

   全双工 UART(串口)

1.2.6 中断系统

    8 个中断源、6 个中断向量、2 级优先级

1.2.7 时钟与复位

   片内振荡器及时钟电路(XTAL1、XTAL2) 

   上电/手动复位逻辑(RST)

1.2.8 总线结构 

    内部 8-bit 数据总线 

   16-bit 地址总线(P0、P2 复用) 

   PSEN、ALE、EA 等控制总线

1.2.9 特殊功能寄存器区 

   控制/状态寄存器:TCON、TMOD、SCON、PCON、IE、IP 等

以上模块通过内部数据总线和地址总线互连,构成典型的 8051 内核微控制器。

2 AT89C52引脚介绍(PDIP)

AT89C5240引脚PDIP封装)各引脚功能一览

引脚号

引脚名

功能说明(第一功能 / 第二功能)

1

P1.0

口线 P1.0;T2(定时器 2 外部计数输入)

2

P1.1

口线 P1.1;T2EX(定时器 2 捕获/重装触发)

3

P1.2

口线 P1.2;普通 I/O

4

P1.3

口线 P1.3;普通 I/O

5

P1.4

口线 P1.4;普通 I/O

6

P1.5

口线 P1.5;普通 I/O

7

P1.6

口线 P1.6;普通 I/O

8

P1.7

口线 P1.7;普通 I/O

9

RST

复位输入;高电平 ≥2 个机器周期复位 MCU

10

P3.0

口线 P3.0;RXD(串口数据输入)

11

P3.1

口线 P3.1;TXD(串口数据输出)

12

P3.2

口线 P3.2;/INT0(外部中断 0)

13

P3.3

口线 P3.3;/INT1(外部中断 1)

14

P3.4

口线 P3.4;T0(定时器 0 外部计数输入)

15

P3.5

口线 P3.5;T1(定时器 1 外部计数输入)

16

P3.6

口线 P3.6;/WR(外部 RAM 写选通)

17

P3.7

口线 P3.7;/RD(外部 RAM 读选通)

18

XTAL2

晶振输出端(接晶振一端或外部时钟输入反相端)

19

XTAL1

晶振输入端(接晶振另一端)

20

GND

21

P2.0

口线 P2.0;A8(高 8 位地址总线位 8)

22

P2.1

口线 P2.1;A9

23

P2.2

口线 P2.2;A10

24

P2.3

口线 P2.3;A11

25

P2.4

口线 P2.4;A12

26

P2.5

口线 P2.5;A13

27

P2.6

口线 P2.6;A14

28

P2.7

口线 P2.7;A15

29

/PSEN

程序存储器读选通(外部取指时为低电平)

30

ALE

地址锁存允许;平时输出 fosc/6 脉冲,可关闭

31

/EA

外部访问使能;低电平时强制访问外部程序存储器;高电平时访问内部 Flash

32

P0.7

口线 P0.7;AD7(地址/数据总线位 7,需外加上拉电阻)

33

P0.6

口线 P0.6;AD6

34

P0.5

口线 P0.5;AD5

35

P0.4

口线 P0.4;AD4

36

P0.3

口线 P0.3;AD3

37

P0.2

口线 P0.2;AD2

38

P0.1

口线 P0.1;AD1

39

P0.0

口线 P0.0;AD0

40

VCC

+5 V 电源

3AT89C52使用要点

1 P0 口做普通 I/O 时需外加上拉电阻(≈10 kΩ)。

2 ALE、/PSEN、/EA 在仅使用片内 Flash 时可固定接法:
/EA → VCC
ALE、/PSEN 可悬空或保留测试点。

3晶振典型值 11.0592 MHz(便于串口波特率整除),两引脚加 30 pF 负载电容到地。

4AT89C52的存储结构

AT89C52的存储结构=“三大块 + 可选扩展”

4.1程序存储器(ROM/Flash)——放代码

片内:8 KB(= 8×1024 B)闪存,地址 0000h~1FFFh

掉电不丢失,可重复擦写>1000 次

由 /EA 引脚决定片内/片外取指: 

/EA = 1——>先片内 8 KB,超过 1FFFh 自动跳到片外 

/EA = 0——>强制全部从片外 0000h 开始取指 

片外:最大可扩到 64 KB(0000h~FFFFh)

通过P0(AD0~AD7)+ P2(A8~A15)+ /PSEN 选通并行总线

4.2数据存储器(RAM)—— 放变量/堆栈

1.片内 RAM 256 B(地址 00h~FFh)

   ├─ 低 128 B(00h~7Fh) 

   │   ├─ 00h~1Fh:4 组工作寄存器 R0~R7(RS0/RS1 选择) 

   │   ├─ 20h~2Fh:位寻址区(16 B×8 bit = 128 可位寻址位) 

   │   └─ 30h~7Fh:通用 RAM(函数局部变量、堆栈默认从此开始) 

   └─ 高 128 B(80h~FFh) 

       └─ 特殊功能寄存器区 SFR(与 RAM 统一编址,但用直接寻址访问) 

          例:P0=80h, SP=81h, DPL=82h, DPH=83h, TCON=88h …… 

2. 片外数据 RAM(可选) 

   独立 64 KB 空间(0000h~FFFFh) 

   通过 P0 + P2 + /RD、/WR 选通,与程序空间并行但物理隔离 

   C 语言用关键字 `xdata` 访问:`unsigned char xdata buf[512];`

4.3特殊功能寄存器(SFR)—— 控外设

占用了片内 RAM 高 128 B 的地址 80h~FFh;常用的有 

端口:P0~P3 

定时器:TMOD, TCON, TL0/TH0, TL1/TH1, T2CON, RCAP2L/H 

串口:SCON, SBUF, PCON 

中断:IE, IP 

统:SP, DPL, DPH, AUXR, WDTRST ……

4.4地址映射总览

存储区域

地址范围

说明

片内 Flash ROM

0000h~1FFFh

8 KB 程序代码(默认)

片外 Flash/EPROM

2000h~FFFFh

可选扩展,最多 56 KB

片内 RAM

00h~7Fh

128 B 通用/位/寄存器区

SFR

80h~FFh

128 B 特殊寄存器

片外 XRAM

0000h~FFFFh

可选扩展,最大 64 KB

4.5使用小贴士

1. 片内 8 KB Flash 足够中小项目,无需外扩程序存储器; 

   若 /EA = 1,代码超过 8 KB 会自动到片外,无需手动切换。 

2. 堆栈默认在片内 RAM 07Fh 向上增长;如用片外 XRAM,需手动改 SP。 

3. 无内部 EEPROM;如需掉电数据保存,外挂 24C02 等 I²C EEPROM 最方便。

5定时器 / 计数器

AT89C52内部共有3个16位可编程定时/计数器:T0、T1 和 T2。它们都以“计数源→16 位加法计数器→溢出标志→中断/硬件事件”这一基本链路工作,但在计数源选择、工作模式、重装方式及附加功能上各有差异。下面按“共性-差异”方式概述其工作原理。

5.1 共性部分

1. 核心:16 位 THn+TLn 加法计数器(n = 0,1,2)。 

2. 计数源: 

   内部 fOSC/12(定时方式,C/T=0) 

   外部 Tn 引脚负跳变(计数方式,C/T=1) 

3. 溢出:FFFFH→0000H 时置位 TFx 标志,可请求中断。 

4. 启停:由 TRn 位(TCON 或 T2CON 中)控制。 

5. 读写:通过专用寄存器 THn/TLn 访问,均为 8 位,需分两次完成。

5.2 T0、T1 的 4 种工作模式(M1:M0 决定)

00  模式0:13 位(THn 高 8 位 + TLn 低 5 位),已淘汰。 

01  模式1:16 位,一次计数,溢出后需软件重装初值。 

10  模式2:8 位自动重装,TLn 计数,THn 存重装值。 

11  模式3:T0 分裂为两个 8 位定时器,T1 停止计数(仅作波特率发生器)。 

5.3 T2 的专用特性(8052 独有)

1. 计数器:TH2+TL2 仍为 16 位。 

2. 捕获/自动重装: 

   由 T2CON 中 CP/RL2 位决定。 

CP/RL2=1:捕获方式。当 T2EX(P1.1)出现负跳变时,把当前 TH2/TL2 锁存到 RCAP2H/RCAP2L,并置 EXF2 标志。 

CP/RL2=0:自动重装方式。溢出时将 RCAP2H/RCAP2L 预存值装入 TH2/TL2,并置 TF2。

3. 计数源扩展:除 fOSC/12、T2(P1.0) 外,还可选“向下计数”模式(由 DCEN 位允许),实现可逆计数。 

4. 时钟输出:置 T2OE=1 时,T2 引脚可输出 fOSC/24/(65536-初值) 的方波。 

5. 中断:TF2(溢出)和 EXF2(捕获/外部重载)共用中断向量 5。 

5.4 小结

T0、T1:经典 8051 定时器,模式简单,常用来产生延时、波特率或外部事件计数。 

T2:8052 增强定时器,带捕获/自动重装、可选向下计数、时钟输出,适合更复杂的定时需求(如脉冲宽度测量、可编程时钟产生)。

6 中断系统

AT89C52的中断系统=“6 组固定中断向量 + 1 组共用中断向量 + 2 级优先级管理”

6.1 中断源一览

编号

向量地址

标志位

源/功能

触发方式

0

0003H

IE0

外部中断 0 (INT0)

低电平 / 下降沿

1

000BH

TF0

定时器 0 溢出

内部计数溢出

2

0013H

IE1

外部中断 1 (INT1)

低电平 / 下降沿

3

001BH

TF1

定时器 1 溢出

内部计数溢出

4

0023H

RI/TI

串行口 (UART)

收完/发完 1 字节

5

002BH

TF2+EXF2

定时器 2

溢出或捕获/重载

共 8 个“物理”中断源,但向量只有 6 个(T2 两个标志共用 002BH)。

6.2 控制寄存器

1. IE(A8H)——总中断允许 

   EA  ES  ET2  ES  ET1  EX1  ET0  EX0 

   1 = 允许;0 = 屏蔽 

2. IP(B8H)——优先级(1 = 高优先级,0 = 低优先级) 

   —   —   PT2  PS  PT1  PX1  PT0  PX0 

   8052 新增 PT2,其余位含义同 8051。 

3. T2CON(C8H)——T2 专用 

   TF2、EXF2 由软件清 0。 

6.3 优先级与嵌套规则 

两级:高优先级可打断低优先级,同级不嵌套。 

同优先级内部再按自然序号 0→5 排队。 

6.4 外部中断细节

IT0/IT1(TCON.0/TCON.2) 

0 = 低电平触发(需手动撤除低电平才能再次触发) 

1 = 下降沿触发(自动锁存,脉冲宽度 ≥ 1 机器周期即可) 

6.5定时器中断 

TF0/TF1 在计数器溢出时置 1,CPU 响应后硬件自动清 0。 

TF2/EXF2 共用向量,中断服务程序需判断是溢出还是捕获/重载,再分别清 0。

6.6串行口中断

RI 和 TI 共用向量,进入服务程序后先读 SCON 判定是“接收完”还是“发送完”,再清相应标志。

6.7 中断响应流程(精简记忆版) 

1. 标志置位 → 2. 总中断 EA=1 且对应位允许 → 3. 优先级仲裁 → 4. 完成当前指令 → 5. 自动把 PC 压栈 → 6. 装入向量地址 → 7. 执行 ISR → 8. RETI 返回。

6.8 使用技巧 

下降沿触发外部中断时,ITn=1 可避免“电平保持”误触发。 

高优先级 ISR 里可再被更高优先级打断,但同级或低优先级不能打断。 

T2 的 TF2/EXF2 必须软件清 0,否则会不停地进入中断。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919240.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919240.shtml
英文地址,请注明出处:http://en.pswp.cn/news/919240.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

联网车辆功能安全和网络安全的挑战与当前解决方案

摘要在过去的二十年里,数字化重塑了我们的日常生活,汽车行业也身处这一变革之中。如今的车辆正变得日益智能且联网,具备了更多的安全和便捷功能(如自动紧急制动、自适应巡航控制)。下一代车辆将实现高度自动化乃至 5 级…

网络安全(Java语言)脚本 汇总(二)

文章目录目录遍历漏洞扫描器源代码思路一、核心功能二、依赖库三、核心流程四、关键方法五、数据结构六、输出信息目录遍历漏洞扫描器 源代码 /*** description : 目录遍历漏洞扫描器* 注意; 在输入URL时 要求必须保存 ?page 的末尾 才能保证路径合成的有效性*//*** desc…

基于 ArcFace/ArcMargin 损失函数的深度特征学习高性能人脸识别解决方案

要实现当前最先进的人脸识别系统,我们需要采用业界公认性能最佳的算法框架,主要包括基于 ArcFace/ArcMargin 损失函数的深度特征学习、MTCNN 人脸检测与对齐以及高效特征检索三大核心技术。以下是优化后的解决方案: 核心优化点说明 算法选择:采用 ArcFace(Additive Angul…

Sql server 查询每个表大小

在SQL Server中,你可以通过查询系统视图和系统表来获取数据库中每个表的大小。这可以通过几种不同的方式来实现,下面是一些常用的方法:方法1:使用sp_spaceused存储过程sp_spaceused是一个内置的存储过程,可以用来显示数…

react 错误边界

注意点: 类组件是可以和函数式组件混合写的!!!getDerivedStateFromError是静态的,避免副作用,如果想将错误上报到服务器,则去componentDidCatch里去处理。getDerivedStateFromError直接返回{ ha…

自定义 VSCode 标题栏以区分不同版本

自定义 VSCode 标题栏以区分不同版本 当您在同一台计算机上使用多个 Visual Studio Code 版本时,自定义窗口标题栏是一个有效的方法,可以帮助您快速区分它们。 为何需要区分多个 VSCode 版本? 在同一台电脑上安装和使用多个 VSCode 实例是很常…

失败存储:查看未成功的内容

作者:来自 Elastic James Baiera 及 Graham Hudgins 了解失败存储,这是 Elastic Stack 的一项新功能,用于捕获和索引之前丢失的事件。 想获得 Elastic 认证吗?看看下一期 Elasticsearch Engineer 培训什么时候开始! E…

基于Spring Boot+Vue的莱元元电商数据分析系统 销售数据分析 天猫电商订单系统

🔥作者:it毕设实战小研🔥 💖简介:java、微信小程序、安卓;定制开发,远程调试 代码讲解,文档指导,ppt制作💖 精彩专栏推荐订阅:在下方专栏&#x1…

Node.js/Python 实战:封装淘宝商品详情 API 客户端库(SDK)

在开发电商相关应用时,我们经常需要与淘宝 API 交互获取商品数据。直接在业务代码中处理 API 调用逻辑会导致代码冗余且难以维护。本文将实战演示如何使用 Node.js 和 Python 封装一个高质量的淘宝商品详情 API 客户端库(SDK),使开…

【Docker】关于hub.docker.com,无法打开,国内使用dockers.xuanyuan.me搜索容器镜像、查看容器镜像的使用文档

🔧 一、国内镜像搜索替代方案 国内镜像源网站 毫秒镜像:支持镜像搜索(如 https://dockers.xuanyuan.me),提供中文文档服务(https://dockerdocs.xuanyuan.me),可直接搜索镜像名称并…

2025盛夏AI热浪:八大技术浪潮重构数字未来

——从大模型革命到物理智能,AI如何重塑产业与人机关系🌟 引言:AI从“技术爆炸”迈向“应用深水区」代码示例:AI商业化闭环验证模型# 验证AI商业化闭环的飞轮效应 def validate_ai_flywheel(compute_invest, app_adoption): re…

从希格斯玻色子到 QPU:C++ 的跨维度征服

一、引言:粒子物理与量子计算的交汇点在当代物理学和计算机科学的前沿领域,希格斯玻色子研究与量子计算技术的交汇正形成一个激动人心的跨学科研究方向。希格斯玻色子作为标准模型中最后被发现的基本粒子,其性质和行为对我们理解物质质量的起…

Elasticsearch:如何使用 Qwen3 来做向量搜索

在这篇文章中,我们将使用 Qwen3 来针对数据进行向量搜索。我们将对数据使用 qwen3 嵌入模型来进行向量化,并使用 Qwen3 来对它进行推理。在阅读这篇文章之前,请阅读之前的文章 “如何使用 Ollama 在本地设置并运行 Qwen3”。 安装 Elasticsea…

Mybatis实现页面增删改查

一、改变路由警告 二、实现新增数据 1.UserMapper.xml 2.Controller层 注意:前端传的是json对象,所以后台也需要使用JSON 3.设置提交的表单 <el-dialog title"信息" v-model"data.formVisible" width"30%" destroy-on-close><el-form…

Rabbitmq+STS+discovery_k8s +localpv部署排坑详解

#作者&#xff1a;朱雷 文章目录一、部署排坑1.1. configmap配置文件1.2. pv文件1.3. sc文件1.4. serviceAccount文件1.5. headless-service文件1.6. sts文件二、RabbitMQ集群部署关键问题总结一、部署排坑 1.1. configmap配置文件 编辑cm.yaml 文件 apiVersion: v1 kind: C…

8.14 模拟

lc658. deque 定长滑窗class Solution { public:vector<int> findClosestElements(vector<int>& arr, int k, int x) {int n arr.size();int l 0, r 0;deque<int> dq;while (r < n) {dq.push_back(arr[r]);if (dq.size() > k) {// 核心&#xf…

JavaScript 核心语法与实战笔记:从基础到面试高频题

一、面试高频:apply 与 call 调用模式的区别 apply 和 call 的核心作用一致——改变函数内 this 的指向并立即执行函数,唯一区别是参数传递方式不同: apply:第二个参数需以数组形式传入,格式为 函数名.apply(this指向, [参数1, 参数2, ...]) 示例:test.apply(param, [1,…

自动驾驶系统“测试”的“要求”与“规范体系”

让数据真正闭环的&#xff0c;L4级自动驾驶仿真工具链-杭州千岑智能科技有限公司&#xff1a;RSim。 自动驾驶系统测试的要求与规范体系 自动驾驶技术作为汽车产业智能化转型的核心领域&#xff0c;其测试验证环节直接关系到技术的安全性和可靠性。随着自动驾驶等级的提高&…

人工智能——CNN基础:卷积和池化

一、CNN入门介绍1、卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称 CNN&#xff09;是一种专门为处理具有网格结构数据&#xff08;如图像、音频&#xff09;而设计的深度学习模型。在传统的全连接神经网络&#xff08;FNN&#xff09;中&#xff0c;输…

适用监测农作物长势和病虫害的高光谱/多光谱相机有哪些?

面对农作物长势分析和病虫害监测&#xff0c;光谱技术在农业中得到了有效的应用。本篇文章给大家介绍下适合监测农作物长势和病虫害的高光谱/多光谱相机。农作物在遭受病虫害侵袭时&#xff0c;其叶片的细胞结构、水分含量、色素组成会发生变化&#xff0c;从而导致农作物对不同…