单片机常识总结

单片机的硬件组成构造

  • 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 位保留以后指令执行后的状态

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

控制器

控制器的次要作用是辨认指令,并依据指令的性质管制单片机各部件工作

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

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

单片机外部存储器

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

程序存储空间(ROM)

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

寻址空间为:0000H~0FFFH,能够扩大到 0000H~FFFFH

能够通过 EA* 引脚进行管制,高电平时会依据 PC 值主动转换片内片外内存拜访,低电平时只执行片外存储器程序,片内 Flash 有效

5 个非凡中断源的中断服务程序入口地址

两个中断源地址之间仅仅有 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 的专用寄存器区

非凡性能寄存器 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

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. 内部中断