单片机知识总结

单片机知识总结

单片机的硬件组成结构

  • 8 位微处理器(CPU):AT89S51 有一个 8 位 CPU, 包括运算器控制器
  • 数据存储器(128B RAM):片内共有 128B RAM
  • 程序存储器(4KB Flash ROM):内集成了 4KB 的 Flash 存储器,片外最多可增加 60KB Flash
  • 4 个 8 位并行I/O口(P0 口 ~ P3 口):
  • 1 个全双工异步串口
  • 2 个 16 位定时器/计数器
  • 1 个看门狗定时器 WDT:当 CPU 由于受到干扰导致程序陷入死循环或跑飞时,恢复到正常状态
  • 中断系统:5 个中断源、5 个中断向量,两级中断优先权
  • 特殊功能寄存器(SFR)26个
  • 低功耗的空闲模式和掉电模式
  • 3 个程序加密位

单片机引脚功能

ATS51 单片机多采用 40 个引脚的双列直插封装(DIP)

电源引脚

电源引脚:Vcc(40脚) 接 +5V 电源,Vss(20脚) 接地

时钟引脚

单片机要运行需要时钟驱动,采用内部振荡器需要一个晶振两个电容,采用外部振荡器直接外接振荡器

XTAL1(19脚):

XTAL2(18脚):

控制引脚

RST(RESET,9引脚)

复位引脚,高电平有效,在引脚上加上持续时间大于 2 个机器周期(2 us)的高电平,即可使单片机复位

EA*/Vpp(External Address/Voltage Pulse of Programming,31引脚)

当 EA* 接高电平时,在 PC 值不超过 0FFFH(4KB)地址时,单片机读片内程序存储器中程序,PC 值超过 0FFFH 地址时,会读取 1000H~FFFFH(60KB)程序存储器空间中的程序

当 EA* 接低电平时,只读取外部存储器中的内容,片内存储器无效,读取范围为:0000H~FFFFH(64KB)

Vpp 为该引脚的第二个功能,对片内 Flash 进行编程时,Vpp 引脚接入变成电压

ALE/PROG*(Address Latch Enable/PROGramming,30引脚)

ALE 为 CPU 访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低 8 位地址锁存在片外的地址锁存器中

PROG* 为该引脚的第二个功能,对片内 Flash 进行编程时,作为编程脉冲输入端

PSEN*(Program Storage Enable,29脚)

片外程序存储器的读选通信号,低电平有效

单片机并行 I/O 口的结构

4 个 8 位并行 I/O 端口,为 P0、P1、P2 和 P3,一共暂用 32 个口

P0

漏极开路的双向 I/O 口,可作为系统总线低 8 位地址总线数据总线分时复用端口

也可用作通用 I/O 口,需要加上拉电阻,此时为准双向口

P1 ~ P3

P1 准双向口 I/O 口,具有内部上拉电阻,准双向 I/O 口

AT89S51 CPU

运算器

算术逻辑运算单元 ALU

可以对 8 位变量进行逻辑与、逻辑或、逻辑异或、循环、求补和清 0 操作,还可以进行加、减、乘、除等运算

累加器 A

CPU 中使用最频繁的 8 位寄存器,累加器 A 是 ALU 单元的输入数据源之一,又是 ALU 运算结果的存放单元,相当于数据的中转站

程序状态字寄存器 PSW

位于单片机内 SFR 区,字节地址为 D0H~D7H,其中 4 位保存当前指令执行后的状态

image.png

  1. Cy 进位标志位:也可写为 C,在执行算术运算逻辑运算指令时,若有进位/借位时 Cy=1
  2. Ac 辅助进位标志位:Ac 标志位在 BCD 码运算时,用作十进制位调整,即当 D3 位向 D4 位产生进位或错位时 Ac=1
  3. F0 用户设定标志位:由用户使用的一个标志位,可用指令置 1 或 0,也可由指令测试该标志位,根据测试结果控制程序的流向
  4. RS1 和 RS0 工作寄存器选择控制位 1 和位 0 :用来选择片内 RAM 区的 4 组工作寄存器区中某一组为当前工作寄存区,对应关系如下表所示:
    单片机知识总结_第1张图片
  5. OV 溢出标志位:算数运算时,是否产生溢出,溢出时 OV=1
  6. PSW.1 位预留标志位:保留未使用
  7. P 奇偶校验位:指令执行完后,累加器 A 中数据二进制表示中 1 的个数是奇数还是偶数,可以用于奇偶校验检验数据的正确性

控制器

控制器的主要作用是识别指令,并根据指令的性质控制单片机各部件工作

程序计数器 PC:独立的 16 位计数器,记录的是下一条执行指令的地址,用户不可使用指令直接对其进行读/写,当单片机复位的时候,PC 中的内容为 0000H ,即 CPU 从程序存储器 0000H 单元取指令,开始执行程序

PC 决定了程序的执行流程,当顺序执行指令时自动加 1,当执行子程序中断子程序跳转时会自动更改

单片机内部存储器

16 位地址线,内部存储器结构特点之一是哈佛结构(数据和程序分开存储),对于不同的空间有各自的访问指令

单片机知识总结_第2张图片

程序存储空间(ROM)

分为分为片内和片外,片内是 4KB Flash,可以通过片内编程器对其编程,当片内空间不够后,可以外扩 60KB,程序存储空间最多到 64KB 存储器

寻址空间为:0000H~0FFFH,可以扩展到 0000H~FFFFH

可以通过 EA* 引脚进行控制,高电平时会根据 PC 值自动转换片内片外内存访问,低电平时只执行片外存储器程序,片内 Flash 无效

5 个特殊中断源的中断服务程序入口地址
单片机知识总结_第3张图片

两个中断源地址之间仅仅有 8 个单元,不足够存放程序,所有存放的是程序地址,根据程序地址跳向对应的子程序

数据存储空间(RAM)

AT89S51 分为片内与片外存储空间两部分,片内有 128B RAM 和 128B SFR,片内 RAM 不够用时,在片外可扩展至 64KB RAM

00H~1FH 为 4 组通用工作寄存器区,每区包含 8B,为 R7~R0,可用指令改变RS1、RS0 两位来选择

20H~2FH 为 16 个单元共 128 位,即可进行位寻址,也可进行字节寻址

30H~7FH 为 用户 RAM 区,只能进行字节寻址,用于存放数据堆栈数据

80H~FFH 单元组成高 128B 的专用寄存器区

单片机知识总结_第4张图片

特殊功能寄存器 SFR

各功能部件的控制寄存器及状态寄存器,SFR 综合反映了整个单片机基本系统内部实际的工作状态及工作方式

SP:堆栈指针寄存器,记录栈顶元素的地址,每次压入一字节数据 +1,出栈一字节数据 -1,单片机复位时为 07H,即从 08H 开始存放数据,为防止数据被覆盖建议设置为 60H 或更大的值,两个具体的作用为:保护断点程序中断

DPTR:数据指针寄存器,分为 DPH 和 DPL 两个 8 位寄存器组成
PSW:程序状态字寄存器

位地址空间

211 个可寻址位(bit),片内 RAM(共128位)+ SFR 区(共83位)

时钟电路与时序

执行指令时,CPU 首先从程序存储器取指令,然后译码,再由时序电路产生一系列控制信号完成指令所规定的操作

内部和外部时钟

周期与时序

时钟周期:单片机时钟控制信号的基本时间单位 时钟周期=1/晶振振荡频率
机器周期:单片机完成一条基本操作所需要的时间,一条汇编指令可能需要多个周期才能完成,每个周期完成一个基本操作,如:取指令、读和写,AT89S51 每 12 个时钟周期为一个机器周期
状态周期:一般情况下,一个机器周期由若干个状态周期组成,AT89S51 一个机器周期由 6 个状态周期组成,每个状态分为两拍,也就是说 一个机器周期=6个状态周期=12个时钟周期
指令周期:执行一条指令所需要的时间

复位操作和电路

当对 RST 引脚加上大于 2 个机器周期的高电平即可复位,复位后 PC 为 0000H,SP 为 07H,4 个 IO 端口(P0~P3)均为高电平

复位引脚 RST 通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个机器周期 S5P2,施密特触发器的输入电平由复位电路采样一次,才能得到内部复位操作所需要信号

复位电路通常采用上电自动复位按钮复位两种方式

  1. 上电自动复位:通过外部复位电路给电容 C 充电加至 RST 引脚一个短的高电平信号,需要持续足够长的时间
  2. 按键手动复位,有电平和脉冲两种方式,按键电平是把 RST 引脚经电阻与 Vcc 相连,脉冲复位是通过 RC 微分电路产生的正脉冲来实现的

低功耗模式

AT89S51 有两种低功耗模式:空闲模式掉电保持模式,尽可能降低系统功耗

两种低功耗节点模式可以通过指令对特殊功能寄存器 PCON 的位 IDL 和 PD 的设置来实现,PCON 的字节地址为 87H

image.png

SMOD :串行通信的波特率选择位
GF1、GF0 :通用标志位,供用户程序设计时使用
IDL :空闲模式控制位,IDL=1,进入空闲运行模式
PD :掉电保持模式控制位,PD=1,进入掉电保持模式

空闲模式

IDL 置为 1,把通往 CPU 的时钟信号关断,单片机进入空闲模式,振荡器仍然工作,但 CPU 进入空闲状态,外围电路(中断系统,串行口和定时器)仍继续工作,所有寄存器以及内部 RAM 和 SFR 内容均保持进入空闲模式的状态

退出空闲模式的方法:

  1. 响应中断请求:空闲模式下,任何一个允许的中断请求被响应时,IDL 位被片内硬件自动清零,退出空闲模式,执行完中断服务程序返回时,将从设置空闲模式指令的下一条指令开始继续执行程序
  2. 硬件复位:当使用硬件复位推出空闲模式时,有长达两个机器周期的时间,单片机从断点处继续执行程序,片内硬件会阻止对内部 RAM 的访问,但不会阻止对外部 RAM 的访问

掉电模式

PD 置为 1,进入掉电模式,进入时钟振荡器的信号被封锁,振荡器停止工作,此时内部部件没有时钟信号会停止工作,但片内的 RAM 和 SFR 原来的内容被保留,有关端口的输出状态被保存在对应的特殊功能寄存器中

退出空闲模式的方法:

  1. 硬件复位:重新初始化 SFR,但不改变片内 RAM 内容,硬件持续 10ms 即可退出
  2. 外部中断

你可能感兴趣的:(单片机)