一. 80C51系列单片机引脚图及逻辑符号,为标准的40脚DIP封装,如下图:

  • Pin1-Pin8为P1口,内部带上拉电阻的8位准双向IO口
  • Pin9为复位口,高电平有效(持续两个机器周期)。
  • Pin10-Pin17为P3口,内部带上拉电阻的8位准双向IO口,同时还有特殊功能。
  • P3.0为串行输入口
  • P3.1为串行输出口
  • P3.2为外部中断0输入口
  • P3.3为外部中断1输入口
  • P3.4为定时器0外部输入口
  • P3.5为定时器1外部输入口
  • P3.6为写选通输出口(用于与外部存储器通信时)
  • P3.7为读选通输出口(用于与外部存储器通信时)
  • Pin18-Pin19为时钟电路引脚,可选择接入外部时钟或晶振电路,如下图:

  • Pin20为电源地。

  • Pin21-Pin28为P2口,内部带上拉电阻的8位准双向IO口。同时当与外部存储器通信时,它复用为高8位地址线。

  • Pin29为外部程序存储器读选通信号,低电平有效。CPU从外部存储器获取指令。

  • Pin30为地址锁存允许,单片机正常上电时以时钟频率的1/6输出脉冲信号。当与外部存储器通信时,用于控制锁存器锁存P0口低8位地址,以实现P0口低8位地址线与8位数据线的复用。

  • Pin31为程序存储器地址允许输入端:

  • 高电平时,CPU执行片内ROM指令,但当PC(程序计数器)的值超过0FFFH(因为这里ROM为4KB)时,自动跳转到外部程序存储器,地址空间允许范围为1000H—FFFFH(因为PC为32位寄存器,寻址空间为64KB)。
  • 低电平时,CPU执行外部程序存储器指令,地址空间允许范围为0000H—FFFFH。
  • Pin32-Pin39为P0口,漏极开路的8位准双向口,内部无上拉电阻,所以做IO口使用时,必须外接上拉电阻。同时当与外部存储器通信时,它复用为低8位地址线和数据线。
  • Pin40为电源端,接+5V。
二. 80C51系列单片机内部结构

80C51单片机采用的是冯诺依曼体系结构框架,即把程序也当做数据来看待。其内部主要包括:

  • 一个8位CPU
  • 一个时钟电路
  • 4KB程序存储器
  • 128B数据存储器(这里指的是内部数据RAM区大小,不包括SFR(专用寄存器)区,所以这里指的是内部RAM低128个单元,00H-7FH)
  • 两个16位定时/计数器
  • 64KB扩展总线控制电路。为什么是64KB?因为扩展电路时P0口和P2口分别用作地址低八位和高八位,总共16位寻址空间,即64KB
  • 4个8位并行IO端口
  • 1个可编程串行接口
  • 5个中断源(2个定时器,2个外部中断,1个串行通信中断),包括两个中断优先级嵌套
三. 80C51内部RAM,低128单元为内部数据RAM区(00H-0FH),高128单元为SFR区(80H-FFH)
  1. 内部低128个单元(可采用直接或间接寻址方式进行数据传送):
  • 00H—1FH为通用寄存器组区,共4组,每组为R0—R7八个8位寄存器单元。寄存器组的选取通过程序状态寄存器PSW的RS1、RS0位确定。
  • 20H—2FH为位寻址区,可对单元里的每一位进行位操作,也可作为一般的RAM区进行字节操作
  • 30H—7FH为堆栈区、数据缓冲区,即用户RAM区。栈顶位置由SP指针确定,堆栈地址空间是向上增长的,一般将SP初始化设置为大于30H。
  1. 内部高128单元,21个SFR离散分布(只能使用直接寻址的方式)
  • E0H为8位寄存器—累加器ACC或A,最常用,既可存放操作数,也可存放中间结果。
  • F0H为8位寄存器—B,主要用于乘除运算。
  • 乘法:运算时,保留乘数;运算后,保留结果的高八位。
  • 除法:运算时,保留除数;运算后,保留余数
  • D0H为8位寄存器—程序状态字PSW,保留着程序运行时的状态信息。
  • D7—CY进位借位标志位,也是位处理器的位累加器C;加减运算时当操作结果最高位有进位或借位时,自动置1否则清零。
  • D6—AC辅助进位借位标志位,加减运算时,低4位向高4位进位或借位时,自动置1否则清零。
  • D5—F0用户标志位,软件置位复位。
  • D4、D3—RS1、RS0寄存器组选择位,通过组合选择通用寄存区组的组别:00-11对应第0-3组。
  • D2—OV溢出标志位
    a) 带符号的加减运算时,结果超出8位范围,OV=1,否则OV=0。
    b) 乘法时,OV=1表示结果大于255,分别存在B,A寄存器;否则OV=0,结果小于 255,只存在A寄存器中。
    c) 除法时,除数为0,OV=1;否则OV=0。
  • D0—P奇偶标志位,表示操作结果是奇数还是偶数个’1’。
  • 81H为堆栈指针SP,里面存放了堆栈数据区栈顶的地址。
  • 82H-83H为数据指针低8位和高8位,通常在访问外部数据存储器时作为地址指针使用,寻址范围为64KB。
  • 87H为电源控制及波特率选择控制寄存器,只能字节寻址。
  • D0—IDL为待机方式位,为1时进入待机方式。
  • D1—PD为掉电保护位,为1时进入掉电保护方式。
  • D3、D2—GF1、GF0为通用工作标志位,用户自由使用。
  • D7—SMOD波特率加倍位,为1波特率加倍,否则不加倍。
  • 80H、90H、A0H、B0H为P0 ~ P3,是并行IO口P0~P3的数据锁存器。
  • 99H为串行口数据缓冲寄存器SBUF,用来存放已发送或接受到的数据。
  • 8AH-8BH为定时器1的计数器低8位和高8位
  • 8CH-8DH为定时器0的计数器低8位和高8位
  • 88H为定时器控制寄存器TCON,存放了定时器及外部中断标志位,以及控制外部中断方式位
  • TF1,TF0:定时器溢出时,自动置1,并进入中断服务函数,硬件自动置0,或查询方式下置0。
  • TR1,TR0:置1打开定时器,置0关闭定时器。
  • IT1,IT0:置1时外部中断引脚下降沿触发,置0时低电平触发。
  • IE1,IE0:收到中断触发标志(下降沿或低电平)后,自动置1,并进入中断服务函数,下降沿触发模式硬件自动置0,低电平触发模式输入高电平。
  • 89H为定时器方式选择寄存器TMOD,低4位控制定时器0,高4位控制定时器1。
  • M0,M1选择工作方式
    a) 00为13位定时器/计数器
    b) 01为16位定时器/计数器
    c) 10为自动重装载定时器/计数器
    d) 11—当是定时器0时分为两个8位计数器;当是定时器0时停止计数。
  • C/T为时钟选择控制位
    a) 0时为定时器功能,选择晶振频率12分频作为时钟信号源
    b) 1时为计数器功能,选择外部输入引脚P3.4与P3.5的输入脉冲作为时钟信号源
  • GATE为计时器门控制位,用来决定定时/计数器是否受外部输入引脚控制,常用于测试输入高电平脉冲宽度
    a) 为0时,只要TCON的TRx位为1,即开始工作
    b) 为1时,CON的TRx位为1且外部输入引脚为高电平,才开始工作
  • 98H为串行口控制寄存器SCON,串口中断标志位,自动置位手动复位
  • TI是串口发送数据中断请求标志位
  • RI是串口接收数据中断请求标志位
  • SM0,SM1为串行口工作方式控制位,00-11表示工作方式0-3
    a) 方式0:用作同步移位寄存器,波特率是晶振频率12分频
    b) 方式1:8位数据UART,波特率由定时器控制
    c) 方式2:9位数据UART,波特率为晶振频率32或64分频
    d) 方式3:9位数据UART,波特率由定时器控制
  • SM2为多机通信控制位
    a) 在方式0时,不设置,置0
    b) 在方式1时,置1则收到有效停止位数据才有效;置0则数据都有效。
    c) 方式2和方式3,置1则当第9位数据为1时,数据有效,将前8位送入SBUF;置0则任何情况都将前8位送入SBUF。
  • TB8为要发送的第9位数据,软件写入,只有方式2和3使用。
  • RB8为接收到的第9位数据,在方式0中不使用,方式1中表示停止位。方式2和3,当SM2=0可做奇偶校验位,SM2=1可做区别数据帧和地址帧的标志。
  • REN为允许串行接收控制位,为1允许,为0禁止。
  • A8H为中断允许控制寄存器IE
  • EA是全局中断使能位,为1允许各个中断,为0禁止所有中断。
  • ES是串口中断使能控制位
  • ET1,ET0是定时器中断使能控制位
  • EX1,EX0是外部中断使能控制位
  • B9H为中断优先控制寄存器IP,置1为高级中断,置0为低级中断
  • PS是串口中断优先级设置位
  • PT1,PT0是定时器中断优先级设置位
  • PX1,PX0为外部中断优先级设置位

四. 80C51内部ROM
  • 80C51内部ROM为4KB(0000H—1000H),程序从0000H开始运行,接下来的地址空间是:
  • 0003H—000AH:外部中断0中断地址区
  • 000BH—0012H:定时/计数器0中断地址区
  • 0013H—001AH:外部中断1中断地址区
  • 001BH—0022H:定时/计数器1中断地址区
  • 0023H—002AH:串行中断地址区
  • 注意:因为每个中断只有8B,所以通常是在此处进行无条件转移指令,使程序运行到真正的中断程序地址入口。所以002BH开始才是用户可以随意使用的程序存储器。
以上是我看书后对80C51引脚功能及片内RAM、片内ROM总结,不足之处请在评论区指出。

80C51引脚功能及片内RAM、片内ROM简介相关推荐

  1. 如何通过8051单片机与片外存储器的连接来解决8051片内RAM和ROM容量不够用的问题

    系列文章目录 上期文章回归: <你真的熟悉8051单片机的引脚功能及其使用吗?> 提示:读本文前可先阅读上期文章回归下51单片机的引脚,以便更好的阅读本文. 文章目录 系列文章目录 前言 ...

  2. Xilinx FPGA 引脚功能详细介绍

    Xilinx FPGA 引脚功能详细介绍 注:技术交流用,希望对大家有所帮助. IO_LXXY_# 用户IO引脚 XX代表某个Bank内唯一的一对引脚,Y=[P|N]代表对上升沿还是下降沿敏感,#代表 ...

  3. 你真的熟悉8051单片机的引脚功能及其使用吗?

    系列文章目录 今天来说说8051单片机的引脚功能 提示:大家对文章中有不懂的可以在评论区留言,感觉你对本文的支持. 文章目录 系列文章目录 前言 一.基本工作条件引脚 (1)电源引脚 (2)复位引脚 ...

  4. 【ZYNQ】从入门到秃头07 FPGA 片内 RAM ROM 读写测试实验

    文章目录 FPGA 片内RAM读写测试实验 实验原理 创建Vivado工程 RAM的端口定义和时序 测试程序编写 Verilog IO约束 Testbeach simulation仿真 板上验证 添加 ...

  5. stc15w4k32s4芯片引脚图片_单片机引脚功能初识及提高(3)

    40个接口我们已经了解了29个了,在开始我们 今天的内容之前,我们先对之前的内容总结一下. 图片来源网络 最小系统 电源部分(20脚GND,40脚VCC[+5v]) 复位部分(9脚,给高电平进行复位) ...

  6. ZYNQ之FPGA 片内RAM读写测试实验

    文章目录 前言 一.添加RAM IP核 二.编写测试程序 三.添加ILA 四.分配管脚 五.Simulator仿真 六.硬件调试 总结 前言 本实验的主要内容是介绍如何使用 FPGA内部的RAM以及程 ...

  7. Quartus 平台 FPGA 片内 RAM 使用

    Quartus 平台 FPGA 片内 RAM 使用 本文将以 Quartus 自带的 RAM:2-PORT 为例,介绍 EP4CE6E22C8 On Chip Memory 的使用 一.在 IP Ca ...

  8. 详解T507 核心板引脚功能修改指引-飞凌嵌入式

    FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频:GPU为G31 MP2:核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android.Ubuntu ...

  9. tl494c封装区别_TL494的特点与引脚功能

    TL494的特点与引脚功能 来源:华强电子网 作者:华仔 浏览:4008 时间:2016-08-10 14:18 标签: 摘要: ;;; 1.特点;;; TL494县有以下特点:①PWM控制电路功能完 ...

最新文章

  1. webpack-dev-server 和webapck --watch的区别
  2. html 第三次作业
  3. js修改地址栏url_在gulp、create-react-app中css,js中的文件路径
  4. 洛谷P2995奇数偶数
  5. 针对access数据库的增删改查
  6. Flask入门之上传文件到服务器
  7. fastjson jsonobject 转bean失败_FastJson是如何导致App Crash的
  8. 【0304】密码分类
  9. pta 计算圆周率(C语言实现)
  10. 制作一个简单HTML公司官网网页设计(HTML+CSS)
  11. ASF文件格式详解(1)
  12. 【第38题】2019年OCP认证12C题库062考试最新考试原题
  13. Excel的写入与读取(openpyxl)
  14. 小知识------SATA
  15. salesforce与微信集成(一)-- 如何配置微信和salesforce
  16. checkm基因组_checkm8漏洞利用的技术分析
  17. java 时间戳验证_时间戳校验问题
  18. 矩阵/向量/标量间相互求导
  19. JavaScript基础语法(VS Code)
  20. [转]情侣相处最佳模式

热门文章

  1. 那个叫鲁迅的人终于从教科书里滚蛋了
  2. Python表白妙招,把情书写进她的照片里
  3. 概念:伪随机数、种子以及C中的随机函数
  4. 编程中常用的英文单词
  5. 19、控件使用之图标旋转指示仪表盘显示
  6. JavaSE 实战 中奖判断
  7. iOS常见错误8-Missing iOS Distribution signing identity for “XXXXX”. Xcode can request one for you.
  8. fatal: Incorrect username or password ( access token ) 鉴权失败
  9. 【计组】偏移地址、段地址和寻址方式
  10. 【每日学习】深度学习相关知识