共计 3716 个字符,预计需要花费 10 分钟才能阅读完成。
单片机常识总结
单片机的硬件组成构造
- 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 位保留以后指令执行后的状态
- Cy 进位标记位:也可写为 C,在执行 算术运算 和逻辑运算 指令时,若有进位 / 借位时
Cy=1
- Ac 辅助进位标记位:Ac 标记位在 BCD 码运算时,用作十进制位调整,即当 D3 位向 D4 位产生进位或错位时
Ac=1
- F0 用户设定标记位:由用户应用的一个标记位,可用指令置 1 或 0,也可由指令测试该标记位,依据测试后果控制程序的流向
- RS1 和 RS0 工作寄存器抉择管制位 1 和位 0:用来抉择片内 RAM 区的 4 组工作寄存器区中某一组为当前工作存放区,对应关系如下表所示:
- OV 溢出标记位:算数运算时,是否产生溢出,溢出时
OV=1
- PSW.1 位预留标记位:保留未应用
- 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,施密特触发器的输出电平由复位电路采样一次,能力失去外部复位操作所须要信号
复位电路通常采纳 上电主动复位 和按钮复位 两种形式
- 上电主动复位:通过内部复位电路给电容 C 充电加至 RST 引脚一个短的高电平信号,须要继续足够长的工夫
- 按键手动复位 ,有电平和脉冲两种形式, 按键电平 是把 RST 引脚经电阻与 Vcc 相连,脉冲复位 是通过 RC 微分电路产生的正脉冲来实现的
低功耗模式
AT89S51 有两种低功耗模式:闲暇模式 和掉电放弃模式,尽可能升高零碎功耗
两种低功耗节点模式能够通过指令对非凡性能寄存器 PCON 的位 IDL 和 PD 的设置来实现,PCON 的字节地址为 87H
SMOD:串行通信的波特率抉择位
GF1、GF0:通用标记位,供用户程序设计时应用
IDL:闲暇模式管制位,IDL=1,进入 闲暇运行 模式
PD:掉电放弃模式管制位,PD=1,进入 掉电放弃 模式
闲暇模式
IDL 置为 1,把通往 CPU 的时钟信号关断,单片机进入闲暇模式,振荡器依然工作,但 CPU 进入闲暇状态,外围电路(中断零碎,串行口和定时器)仍持续工作,所有寄存器以及外部 RAM 和 SFR 内容均放弃进入闲暇模式的状态
退出闲暇模式的办法:
- 响应中断请求:闲暇模式下,任何一个容许的中断请求被响应时,IDL 位被片内硬件主动清零,退出闲暇模式,执行完中断服务程序返回时,将从设置闲暇模式指令的下一条指令开始持续执行程序
- 硬件复位:当应用硬件复位推出闲暇模式时,有长达两个机器周期的工夫,单片机从断点处持续执行程序,片内硬件会阻止对外部 RAM 的拜访,但不会阻止对外部 RAM 的拜访
掉电模式
PD 置为 1,进入掉电模式,进入时钟振荡器的信号被封闭,振荡器进行工作,此时外部部件没有时钟信号会进行工作,但片内的 RAM 和 SFR 原来的内容被保留,无关端口的输入状态被保留在对应的非凡性能寄存器中
退出闲暇模式的办法:
- 硬件复位:从新初始化 SFR,但不扭转片内 RAM 内容,硬件继续 10ms 即可退出
- 内部中断