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

80C51引脚功能及片内RAM、片内ROM简介

  1. Pin1-Pin8为P1口,内部带上拉电阻的8位准双向IO口

  2. Pin9为复位口,高电平有效(持续两个机器周期)。

  3. Pin10-Pin17为P3口,内部带上拉电阻的8位准双向IO口,同时还有特殊功能。
    a) P3.0为串行输入口
    b) P3.1为串行输出口
    c) P3.2为外部中断0输入口
    d) P3.3为外部中断1输入口
    e) P3.4为定时器0外部输入口
    f) P3.5为定时器1外部输入口
    g) P3.6为写选通输出口(用于与外部存储器通信时)
    h) P3.7为读选通输出口(用于与外部存储器通信时)

  4. Pin18-Pin19为时钟电路引脚,可选择接入外部时钟或晶振电路,如下图:
    a) 80C51引脚功能及片内RAM、片内ROM简介

  5. Pin20为电源地。

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

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

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

  9. Pin31为程序存储器地址允许输入端:
    a) 高电平时,CPU执行片内ROM指令,但当PC(程序计数器)的值超过0FFFH(因为这里ROM为4KB)时,自动跳转到外部程序存储器,地址空间允许范围为1000H—FFFFH(因为PC为32位寄存器,寻址空间为64KB)。
    b) 低电平时,CPU执行外部程序存储器指令,地址空间允许范围为0000H—FFFFH。

  10. Pin32-Pin39为P0口,漏极开路的8位准双向口,内部无上拉电阻,所以做IO口使用时,必须外接上拉电阻。同时当与外部存储器通信时,它复用为低8位地址线和数据线。

  11. Pin40为电源端,接+5V。

二. 80C51系列单片机内部结构

  1. 80C51单片机采用的是冯诺依曼体系结构框架,即把程序也当做数据来看待。其内部主要包括:
    a) 一个8位CPU
    b) 一个时钟电路
    c) 4KB程序存储器
    d) 128B数据存储器(这里指的是内部数据RAM区大小,不包括SFR(专用寄存器)区,所以这里指的是内部RAM低128个单元,00H-7FH)
    e) 两个16位定时/计数器
    f) 64KB扩展总线控制电路。为什么是64KB?因为扩展电路时P0口和P2口分别用作地址低八位和高八位,总共16位寻址空间,即64KB
    g) 4个8位并行IO端口
    h) 1个可编程串行接口
    i) 5个中断源(2个定时器,2个外部中断,1个串行通信中断),包括两个中断优先级嵌套

  2. 80C51内部RAM,低128单元为内部数据RAM区(00H-0FH),高128单元为SFR区(80H-FFH)
    a) 内部低128个单元(可采用直接或间接寻址方式进行数据传送):
    i. 00H—1FH为通用寄存器组区,共4组,每组为R0—R7八个8位寄存器单元。寄存器组的选取通过程序状态寄存器PSW的RS1、RS0位确定。
    ii. 20H—2FH为位寻址区,可对单元里的每一位进行位操作,也可作为一般的RAM区进行字节操作
    iii. 30H—7FH为堆栈区、数据缓冲区,即用户RAM区。栈顶位置由SP指针确定,堆栈地址空间是向上增长的,一般将SP初始化设置为大于30H。
    80C51引脚功能及片内RAM、片内ROM简介
    b) 内部高128单元,21个SFR离散分布(只能使用直接寻址的方式)
    i. E0H为8位寄存器—累加器ACC或A,最常用,既可存放操作数,也可存放中间结果。
    ii. F0H为8位寄存器—B,主要用于乘除运算。

  3. 乘法:运算时,保留乘数;运算后,保留结果的高八位。

  4. 除法:运算时,保留除数;运算后,保留余数
    iii. D0H为8位寄存器—程序状态字PSW,保留着程序运行时的状态信息。

  5. D7—CY进位借位标志位,也是位处理器的位累加器C;加减运算时当操作结果最高位有进位或借位时,自动置1否则清零。

  6. D6—AC辅助进位借位标志位,加减运算时,低4位向高4位进位或借位时,自动置1否则清零。

  7. D5—F0用户标志位,软件置位复位。

  8. D4、D3—RS1、RS0寄存器组选择位,通过组合选择通用寄存区组的组别:00-11对应第0-3组。

  9. D2—OV溢出标志位
    a) 带符号的加减运算时,结果超出8位范围,OV=1,否则OV=0。
    b) 乘法时,OV=1表示结果大于255,分别存在B,A寄存器;否则OV=0,结果小于255,只存在A寄存器中。
    c) 除法时,除数为0,OV=1;否则OV=0。

  10. D0—P奇偶标志位,表示操作结果是奇数还是偶数个’1’。
    iv. 81H为堆栈指针SP,里面存放了堆栈数据区栈顶的地址。
    v. 82H-83H为数据指针低8位和高8位,通常在访问外部数据存储器时作为地址指针使用,寻址范围为64KB。
    vi. 87H为电源控制及波特率选择控制寄存器,只能字节寻址。

  11. D0—IDL为待机方式位,为1时进入待机方式。

  12. D1—PD为掉电保护位,为1时进入掉电保护方式。

  13. D3、D2—GF1、GF0为通用工作标志位,用户自由使用。

  14. D7—SMOD波特率加倍位,为1波特率加倍,否则不加倍。
    vii. 80H、90H、A0H、B0H为P0P3,是并行IO口P0P3的数据锁存器。
    viii. 99H为串行口数据缓冲寄存器SBUF,用来存放已发送或接受到的数据。
    ix. 8AH-8BH为定时器1的计数器低8位和高8位
    x. 8CH-8DH为定时器0的计数器低8位和高8位
    xi. 88H为定时器控制寄存器(这名字?)TCON,存放了定时器及外部中断标志位,以及控制外部中断方式位

  15. TF1,TF0:定时器溢出时,自动置1,并进入中断服务函数,硬件自动置0,或查询方式下置0。

  16. TR1,TR0:置1打开定时器,置0关闭定时器。

  17. IT1,IT0:置1时外部中断引脚下降沿触发,置0时低电平触发。

  18. IE1,IE0:收到中断触发标志(下降沿或低电平)后,自动置1,并进入中断服务函数,下降沿触发模式硬件自动置0,低电平触发模式输入高电平。
    xii. 89H为定时器方式选择寄存器TMOD,低4位控制定时器0,高4位控制定时器1。

  19. M0,M1选择工作方式
    a) 00为13位定时器/计数器
    b) 01为16位定时器/计数器
    c) 10为自动重装载定时器/计数器
    d) 11—当是定时器0时分为两个8位计数器;当是定时器0时停止计数。

  20. C/T为时钟选择控制位
    a) 0时为定时器功能,选择晶振频率12分频作为时钟信号源
    b) 1时为计数器功能,选择外部输入引脚P3.4与P3.5的输入脉冲作为时钟信号源

  21. GATE为计时器门控制位,用来决定定时/计数器是否受外部输入引脚控制,常用于测试输入高电平脉冲宽度
    a) 为1时,只要TCON的TRx位为1,即开始工作
    b) 为0时,CON的TRx位为1且外部输入引脚为高电平,才开始工作
    xiii. 98H为串行口控制寄存器SCON,串口中断标志位,自动置位手动复位

  22. TI是串口发送数据中断请求标志位

  23. RI是串口接收数据中断请求标志位

  24. SM0,SM1为串行口工作方式控制位,00-11表示工作方式0-3
    a) 方式0:用作同步移位寄存器,波特率是晶振频率12分频
    b) 方式1:8位数据UART,波特率由定时器控制
    c) 方式2:9位数据UART,波特率为晶振频率32或64分频
    d) 方式3:9位数据UART,波特率由定时器控制

  25. SM2为多机通信控制位
    a) 在方式0时,不设置,置0
    b) 在方式1时,置1则收到有效停止位数据才有效;置0则数据都有效。
    c) 方式2和方式3,置1则当第9位数据为1时,数据有效,将前8位送入SBUF;置0则任何情况都将前8位送入SBUF。

  26. TB8为要发送的第9位数据,软件写入,只有方式2和3使用。

  27. RB8为接收到的第9位数据,在方式0中不使用,方式1中表示停止位。方式2和3,当SM2=0可做奇偶校验位,SM2=1可做区别数据帧和地址帧的标志。

  28. REN为允许串行接收控制位,为1允许,为0禁止。
    xiv. A8H为中断允许控制寄存器IE

  29. EA是全局中断使能位,为1允许各个中断,为0禁止所有中断。

  30. ES是串口中断使能控制位

  31. ET1,ET0是定时器中断使能控制位

  32. EX1,EX0是外部中断使能控制位
    xv. B9H为中断优先控制寄存器IP,置1为高级中断,置0为低级中断

  33. PS是串口中断优先级设置位

  34. PT1,PT0是定时器中断优先级设置位

  35. PX1,PX0为外部中断优先级设置位

80C51引脚功能及片内RAM、片内ROM简介

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

相关文章:

  • 2021-10-22
  • 2021-09-01
  • 2021-10-12
  • 2021-11-22
  • 2021-06-24
猜你喜欢
  • 2021-09-17
  • 2021-10-22
  • 2021-09-16
  • 2021-11-30
  • 2022-01-21
  • 2021-10-16
  • 2021-12-25
相关资源
相似解决方案