80C51单片机的基本结构

基本组成

  • CPU

  • 存储器

    • RAM
    • ROM
  • 并行I/O口

    用于检测和控制

  • 定时器/计数器

  • 定时电路及元件

80C51单片机的引脚及功能

  1. 电源与晶振

​ Vcc:运行与检验时接电源正端

​ Vss:接地

  1. I/O

​ P0P_0P0​ : 8位,漏极开路的双向I/O口

​ P1P_1P1​ : 8位,准双向I/O口

​ P2P_2P2​ : 8位,准双向I/O口

​ P3P_3P3​ : 8位,准双向I/O口,具有内部上拉电路

  1. 串行口

    P3.0P_{3.0}P3.0​ : RXD串行输入口

    P3.1P_{3.1}P3.1​ : TXD串行输出口

  2. 中断

    P3.2P_{3.2}P3.2​ : INT0‾\overline{INT0}INT0 外部中断0输入

    P3.3P_{3.3}P3.3​ : INT1‾\overline{INT1}INT1 外部中断1输入

  3. 定时器/计数器

    P3.4P_{3.4}P3.4​ : T0T_0T0​ 定时器/计数器0的外部输入

    P3.5P_{3.5}P3.5​ : T1T_1T1​ 定时器/计数器1的外部输入

  4. 数据存储器或I/O选通

    P3.6P_{3.6}P3.6​ : WR‾\overline{WR}WR 低电平有效,I/O口写选通

    P3.7P_{3.7}P3.7​ : RD‾\overline{RD}RD 低电平有效,I/O口读选通

  5. 控制线

    RST

    • 复位输入信号,高电平有效
    • 在RST上作用两个机器周期以上的高电平后,复位

    EA‾\overline{EA}EA /Vpp

    • 为1时,选择片内程序存储器
    • 为0时,程序存储器在片外

80C51单片机CPU的结构和特点

CPU

  • PC(程序计数器)
  • 程序地址寄存器
  • 指令寄存器(IR)
  • 指令译码器
  • 条件转移逻辑电路及定时电路
  1. PC

    • 存放下一条将要从程序员存储器中取出的指令的地址
    • 取出数作为指令地址后,自动加1,指向下一条指令地址
    • 16位计数器,对63KB程序存储进行寻址
    • 执行条件转移/无条件转移,PC将植入转移的目的地址
  2. DPTR(数据指针)

    • 作为片外数据存储器或I/O寻址用的地址寄存器(间址)

      MOV A,@DPTR ;读

      MOV @DPTR, A ;写

    • 可作为访问程序存储器时的基址寄存器

      MOVC A ,@A+DPTR

      JMP @A+DPTR

    PC与DPTR的区别

  3. 相同

    与地址有关的16位地址寄存器

    均通过P0P_0P0​ 与P1P_1P1​ 口输出

  4. 区别

    ① PC与程序存储器有关

    ​ DPTR与数据存储器或I/O地址有关

    ② PC输出与ALE及PSEN‾\overline{PSEN}PSEN 信号有关

    ​ DPTR输出,与ALE,WR‾\overline{WR}WR ,RD‾\overline{RD}RD 信号有关

    ③ PC仅作为16位寄存器,不可访问,不属于特殊功能寄存器

    ​ DPTR可作为16/8位寄存器,可访问,PDL与DPH均位与特殊功能寄存器区中

    指令执行过程:取指令 -> 指令译码 -> 执行指令

运算器

  • 算术逻辑运算单元(ALU)
  • 累加器(ACC)
  • 暂存寄存器
  • B寄存器
  • 程序状态标志寄存器(PSW)
  • BCD码运算修正电路
  1. 寄存器B

    在乘法和除法指令作为ALU的输入之一

  2. 程序状态字(PSW)

    • 字节地址为D0H
    • 主要为算数逻辑运算单元(ALU)的输出

    ① P(PSW.0)—— 奇偶校验位

    ​ 表示累加器A中值为1的个数的奇偶性

    ​ 1的个数为奇数(奇校验)

    ​ 1的个数为偶数(偶校验)

    ② OV(PSW.2)—— 溢出标志位

    ​ OV = C6C_6C6​ ⨁\bigoplus⨁ C7C_7C7​ (CiC_iCi​为位i向位i+1有进位)

    ③ RS1RS_1RS1​ , RS0RS_0RS0​ (PSW.4,PSW.3)—— 工作寄存器选择控制位

    ​ 实现对主程序的现场保护的作用

    RS1RS_1RS1​ RS0RS_0RS0​ 组号 寄存器R0R_0R0​ ~R7R_7R7​地址
    0 0 0 00H~07H
    0 1 1 08H~0FH
    1 0 2 10H~17H
    1 1 3 18H~1FH

    ④ AC(PSW.6)—— 辅助进位

    ​ 低4位向高4位数发生进位/借位

    ⑤ CY(PSW.7)—— 进位标志位

    ​ 结果中高位是否有进位或者借位

时钟电路及CPU的工作时序

时序定时单位

  1. 节拍P

    振荡脉冲的周期

  2. 状态S

    一个状态包含2个节拍

  3. 机器周期

    一个机器周期的宽度为6状态,并依次表示为S1S_1S1​~S6S_6S6​

  4. 指令周期

    执行一条指令所需要的时间,是最大的时序定时单位 ,可包含一、二、四个机器周期

  5. 80C51指令时序

    按照长度可分为单字节指令、双字节指令和三字节指令

    单字节单机器周期指令、单字节双机器周期指令、双字节单机器周期指令和双字节双机器周期指令

    三字节指令嗾使双机器周期指令

    单字节乘除指令则均为四机器周期指令

80C51单片机存储器结构与地址空间

采用Harvad结构:程序存储器与数据存储器分开

  1. 程序存储器

采用16位程序计数器(PC)和16位的地址总线,可扩展的地址空间位64KB,且为空间地址是连续、统一的

程序存储器某些单元保留为特定的程序入口地址

复位 0000H
外部中断0 00003H
计时器T0T_0T0​溢出 000BH
外部中断1 0013H
计数器T1T_1T1​溢出 001BH
串行口中断 0023H
  1. 片内数据存储器(IRAM)

    ①只有8位,最大寻址范围位256字节

    ② DPTR为16位的寄存器,从而具有64KB数据存储扩展的功能

    ③ 寄存器R0R_0R0​、R1R_1R1​通常用作间接寻址时的地址指针

    位寻址区

    片内数据存储区的32~47(20H ~ 2FH)的16个字节单元,共128位 => 既可以字节寻址,又可以直接进行位寻址

    字节寻址

    48 ~ 127(30H ~ 7FH),共80个字节单元,可直接字节寻址

    堆栈区及堆栈指示器(SP)

    堆栈指示器是一个在80C51中存放当前的堆栈栈顶所指存储的单元地址的8位寄存器

    80C51堆栈为向上生成,及进栈时SP内容增加,出栈减少

    特殊功能寄存器(SFR)

    设有128B片内数据存储器结构的特殊功能存储器空间区

    80C51共定义了20个特殊功能寄存器

    序号 标识符 名称 字节地址 位地址
    1 ACC 累加器 E0H E0H~E7H
    2 B B寄存器 F0H F0H~F7H
    3 PSW 程序状态字 D0H D0H~D7H
    4 SP 堆栈指针 81H
    5 DPTR 数据指针(DPH、DPL) 83H、82H
    6 P0 P0口 80H 80H~87H
    7 P1 P1口 90H 90H~97H
    8 P2 P2口 A0H A0H~A7H
    9 P3 P3口 B0H B0H~B7H
    10 IP 中断优先级控制寄存器 B8H B8H~BFH
    11 IE 中断允许控制寄存器 A8H A8H~AFH
    12 TMOD 定时器/计数器方式控制寄存器 89H
    13 TCON 定时器/计数器控制寄存器 88H 88H~8FH
    14 TH0 定时器/计数器0(高位字节) 8CH
    15 TL0 定时器/计数器0(低位字节) 8AH
    16 TH1 定时器/计数器1(高位字节) 8DH
    17 TL1 定时器/计数器1(低位字节) 8BH
    18 SCON 串行口控制寄存器 98H 98H~9FH
    19 SBUF 串行数据缓冲器 99H
    20 PCON 电源控制及波特率选择寄存器 87H

    片外数据存储器

    只能用间址寻址,所用寄存器为DPTR、R0、R1,指令助记符MOVX

    R0,R1为8位寄存器,最大范围位256B

    用DPTR时,最大寻址范围为64KB

80C51单片机I/O口

并行I/O表

I/O P0口 P1口 P2口 P3口
性质 真正双向口 准双向口 准双向口 准双向口
功能 I/O口替代功能 I/O口替代功能 I/O口替代功能 I/O口替代功能
SFR字节地址 80H 90H A0H B0H
位地址范围 80H~87H 90H~97H A0H~A7H B0H~B7H
驱动能力 8个TTL负载 4个TTL负载 4个TTL负载 4个TTL负载
替代功能 程序存储器、片外数据存储器低8位地址及8位数据 程序存储器、片外数据存储器高8位地址 串行口:RXD、TXD 中断:INT0‾\overline{INT0}INT0、INT1‾\overline{INT1}INT1 CTC0、1:T0、T1 片外数据存储器:WR‾\overline{WR}WR、RD‾\overline{RD}RD
  1. P0口

    字节访问:80H

    位访问:80H~87H

    ① p0口的输出上拉电路导通和戒指受呢不控制信号和地址/数据信号同时控制

    ② 当内部信号置1时,多路开关接通地址/数据输出端

    ③ 当内部信号置0时,多路开关接通输出锁存器的Q‾\overline{Q}Q​端

    功能

    作为I/O口使用:双向口,输出锁存,输入缓冲

    与其他口的区别:输出时为漏极开路输出,与NMOS的电路接口时必须用电阻上拉,才有高电平输出

  2. P1口

    字节访问:90H

    位访问:90H~97H

    特点

    ① 输出锁存器,输出无条件

    ② 输入缓冲,需先将该口设为输入状态,先输出1

    ③ 同一时刻仅处于一态,不是输入即输出(无高阻悬浮状态)

    读引脚操作和读锁存器操作

    ① 响应CPU输出的读引脚信号,本身引脚的电平值通过缓冲器BUF1进入内部总线

    ② 执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2读入内部进入修改,然后重新写道锁存器中

  3. P2口

    字节访问:A0H

    位访问:A0H~A7H

    一般作为地址使用

    功能

    ① 作I/O口使用,为准双向口,与P1相同

    ② 作地址输出,输出程序存储器或片外数据存储器的高8位,与P0输出的低地址一起构成16位地址线,分别寻址64KB的程序或片外数据存储器

  4. P3口

    字节访问:B0H

    位访问:B0H~B7H

    功能

    ① 可作为I/O口使用

    ​ 既可作为位操作,又可字节操作;8位口操作,逐位定义口线位输入/输出先线

    ② 作为替代功能的输入输出

80C51单片机位处理器

位处理器系统

① 位累加器

​ 借用进位标志位CY,用JC rel或者JNC rel转移状态

② 位寻址寄存器

​ SFR中可以位寻址的位

③ 位寻址的RAM

​ 内部RAM位寻址区中的0~127位(20H ~ 2FH)

④ 位寻址的I/O口

​ 并行I/O口中可以位寻址的位

⑤ 位操作指令系统

​ 位操作指令可实现对位的置位、清0、取反、位状态跳转、传送、位逻辑运算、位输入/输出等操作

80C51单片机的工作方式

  • 复位
  • 程序执行
  • 低功耗
  • 编程和校验
  1. 复位

    程序运行出错或操作错误使系统封处于死锁状态时,将PC初始化为0000H

    寄存器 复位时内容 寄存器 复位时内容
    PC 0000H TCON 0x000000B
    ACC 00H TL0 00H
    B 00H TH0 00H
    PSW 00H TL1 00H
    SP 07H TH1 00H
    DPTR 0000H SCON 00H
    P0~P3 FFH SBUF 不定
    TMOD xx000000B PCON 0xxx0000B

    在复位期间,ALE和PSEN‾\overline{PSEN}PSEN信号无效 = > ALE = 1,PSEN‾\overline{PSEN}PSEN = 1

    方式

    • 上电自动复位
    • 按键电平复位
    • 外部脉冲复位:需要大于2个机器周期
  2. 程序执行方式

  3. 低功耗方式

    • 待机方式

      使PCON寄存器IDL位置1,则80C51进入待机方式 => 向CPU提供时钟的电路被阻断 => CPU不能工作 => 采用中断方式或硬件复位来退出

    • 掉电保护方式

      PCON寄存器的PD位控制单片机进入掉电保护方式

      一切工作均停止,只有内部RAM内容保护

      只有靠复位退出掉电保护模式

80C51单片机的基本信息相关推荐

  1. 单片机位寻址举例_单片机基础及应用 | 04 80C51单片机指令系统

      点击蓝字关注我们 一.单片机指令系统概述 1.指令概述指令:是CPU根据人们的意图来执行某种操作的命令.指令系统:是计算机所能够执行的全部指令的集合.程序:是按人们的要求所编制的指令操作序列.本章 ...

  2. 80C51单片机的最小系统

    目录 80C51单片机的最小系统 电源 时钟脉冲 复位电路 存储器设置电路 最小系统图 80C51单片机的最小系统 电源 时钟脉冲 复位电路 存储器设置电路 最小系统图

  3. 单片机位寻址举例_基于80C51单片机位寻址编程

    80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式.所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0. 位寻址的范围,也就是 ...

  4. 单片机c语言交通灯源程序,基于80C51单片机的交通灯C语言源程序

    <基于80C51单片机的交通灯C语言源程序>由会员分享,可在线阅读,更多相关<基于80C51单片机的交通灯C语言源程序(5页珍藏版)>请在人人文库网上搜索. 1.include ...

  5. 万年历设计单片机c语言,数字万年历设计(80c51单片机、时钟芯片ds1320).pdf

    数字万年历设计(80c51单片机.时钟芯片ds1320) 德州科技职业学院青岛校区 2006 级毕业论文 多功能数字万年历设计 摘 要 : 本设计是一种基于 AT89C52 单片机控制的数字万年历设计 ...

  6. 80C51单片机复习资料(一)

    什么是单片机?其主要特点? 单片机是把CPU.存储器(ram和rom)/输入.输出接口电路以及定时器.计数器等集成在一起的集成电路芯片. 它具有体积小.价格低.可靠性高和易于嵌入式应用等特点,还具有控 ...

  7. C51汇编语言寻址方式,80C51单片机指令系统的7种寻址方式

    寻址方式就是寻找操作数或指令地址的方式.寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令.调用指令).寻址方式是计算机性能的具体体现,也是编写汇编语言程序的基础,必须非常熟悉 ...

  8. 80C51单片机:5.独立键盘、矩阵键盘检测

    80C51单片机系列 80C51单片机 点亮第一个发光二极管,及流水灯案例 数码管显示及封装与消隐 中断.定时器 独立键盘.矩阵键盘检测 文章目录 80C51单片机系列 前言 独立键盘 独立键盘封装 ...

  9. 80c51单片机通用I/O口

    80C51单片机并行输入/输出口         80C51单片机含有4 个8位并行I/O口P0.P1.P2和P3.每个口有8个引脚,如图2-1所示,共有32个I/O引脚,每一个并行I/O口都能用作输 ...

  10. 单片机双机通信c语言实验心得,80C51单片机双机通信与多机通信的使用方法

    80C51单片机之间的串行通信主要可分为双机通信和多机通信,本节举例说明双机通信与多机通信的使用方法. 1.双机通信硬件电路如果两个80C51单片机系统距离较近,那么就可以将它们的串行口直接相连,实现 ...

最新文章

  1. Vbox在Linux 5上安装Oracle 11gR2 RAC
  2. Replication主要配置项
  3. 代码大全--防御试编程
  4. 【MM配置】Batch Determination 批次决定
  5. 【bzoj4566】[Haoi2016]找相同字符【后缀自动机】
  6. C++ 查看输入流中的下一个字符
  7. iOS nav加角标
  8. springboot 关于第三方包 打包问题
  9. javascript - 你不容错过的es6模板写法
  10. Weakness and Poorness
  11. delphi制作上下开幕效果_显示产业国际盛会开幕,广州新型显示产值将突破2500亿...
  12. 0—1背包问题,回溯实现
  13. Activiti流程实例管理
  14. Python UI自动化 编程(一) UIAutomation
  15. 单片机简易计算机设计实物,单片机设计的带余数的简易计算器
  16. 软件学报zotero文献格式
  17. 而立之年,时间都去哪儿
  18. 推荐一款高效的处理延迟任务神器
  19. IPv6动态地址DNS解析
  20. 安装linux软件包

热门文章

  1. python 天天向上求几天数_Python十题(第2课)
  2. [GUET-CTF2019]BabyRSA(p,q灵活应用)
  3. It's only too late if you decide it is. Get busy living, or get busy dying(转)
  4. html圣诞效果,HTML5实现圣诞树效果
  5. 英雄联盟祖安服务器要维护多久,英雄联盟祖安大区到底有多凶残?手速慢了必然赢不了对面!...
  6. mysql 只读_MySQL设置只读模式
  7. Linux下Valgrind的使用概述 来源:Linux社区 作者:dndxhej
  8. c语言中calloc函数,C 库函数 – calloc()
  9. pycharm typo
  10. 微信小程序动态加载组件