MCS-51单片机学习之路(1)

时间:2024-03-19 09:24:38
  • 简介

单片机即单片机微型单片机,是将单片机主机(CPU、 内存和I/O接口)集成在一小块硅片上的微型机。

单片机又称微控制器(MCU)。

单片机具有三高优势(集成度高、可靠性高、性价比高)。

  • 单片机的历史

第一阶段,初级单片 机阶段。以Intel公司的MCS-48为代表

第二阶段(1978~1983):高性能单 片机阶段。以MCS-51系列为代表

第三阶段(1988年~):8位单片机, 巩固、完善及16位单片机推出阶段。 以MCS-96系列为代表

  • 单片机的发展趋势

CPU的改进:采用双CPU结构,以提高处理能力。增加数据总线宽度。采用流水线结构。

存储器的发展:加大存储容量。片内EPROM开始FLASH化。程序保密化。

片内I/O的改进:增加并行口的驱动能力。增加I/O口的逻辑控制功能。通信及网络功能加强。

集成更多的外围电路

引脚的多功能:

功耗

专用型单机发展加快:

  • 单片机主要技术指标

字长:8位机、16位机、32位机。

内存容量:1K=2^10=1024,1M=2^20

运算速度:时钟频率、主频、每秒运算次数

内存存取周期:50nS 、70nS 、200nS 。

  • 单片机运算基础

  • MCS-51单片机的结构与原理

一个8位CPU;

片内振荡和定时电路;

128B内部RAM(00H~7FH);

4个8位并行I/O口;

2个16位可编程定时/计数器;

一个全双工串行口;

5个中断源(可编程为两个优先级);

22个SFR(除PC外,其余21个分散在 80H~FFH之间)

堆栈深度可达80B(30H~7FH);

16B(128位,20H~2FH)可位寻址区

  • CPU内部结构

算术逻辑运算单元ALU (8位)

寄存器阵列:

1、工作寄存器R0~R7 (8位):暂存运算数据和中间结果。4个工作寄存器区,工作寄存器0区~3区。每个区均 含8个寄存器R0~R7 。用PSW中的两位PSW.4和PSW.3来切换工作寄存器区,选用一个工作寄存器区进行读写操作

2、累加器Acc(8位):需要ALU处理的数据计算结果多数要经过A累加器。

3、寄存器B(8位):与A累加器配合执行乘、除运算。也可用作通用寄存器。

4、程序状态字PSW(8位):存放ALU运算过程的标志状态,Cy AC F0 RS1 RS0 OV — P

5、数据指针DPTR(16位):存放片外存储器地址,作为片外存储器的指针。可分成 两个8位寄存器DPH、DPL使用。

6、堆栈指针SP(8位):堆栈是按“先进后出”原则存取数据的存储区。MCS-51堆栈设在片内RAM区。数据入栈/出栈时, SP自动加1/减 1,其内容始终为栈顶地址。复位时 SP=07H。

7、程序计数器PC(16位):CPU总是按PC的指示读取程序。PC可自动加1。因此CPU执行程序一般是顺序方式。当发生转移、子程序 调用、中断和复位等操作,PC被强制改写,程序执行顺序也发生改变。复位时,PC=0000H。

  • 8051存储器结构

程序存储器

在MCS-51的指令系统仅有两条:

MOVC A,@A+DPTR
MOVC A,@A+PC

复位后,程序计数器PC的内容为0000H

MCS-51最多可外扩64K字节程序存储器

MCS-51单片机学习之路(1)

数据存储器

从00H~1FH的32B单元是4个工作寄存器组。

地址20H~2FH的16B共128位,是可位寻址的内部RAM区,它们既可字节寻址, 亦可位寻址

其他80B是只能按字节寻址的内部RAM区,为用户区。

MCS-51单片机的堆栈安排在内部RAM内,堆栈 的深度以不超过内部RAM的空间为限。

  • 堆栈

堆栈是一种只允许在其一端进行数据 插入和删除操作的一种数据结构。数据 存取为“后进先出” 。

堆栈功能:保护断点和现场信息。

堆栈的建立:MCS-51的堆栈是设置在内部RAM 30H~7FH空间中,栈底为低地址单元,堆栈指针为SP。

  • 特殊功能寄存器SFR

SFR区部分寄存器功能介绍如下:

程序计数器(PC、16位):存放将要执行的指令地址

累加器(ACC、8位):存放数据或中间结果。

B寄存器(8位):主要用于乘、除运算。

数据指针(DPTR、16位):存放外部数据存储器的地址。

程序状态字(PSW、8位):用于寄存程序运行的状态信息。

MCS-51单片机学习之路(1)

标志位功能:

CY:(1)执行算术运算时,最高位向前 进位或借位时,CY为1;否则,CY为0。(2)在位操作中,作“位”累加器。

AC:用于十进制调整。当低四位向高四位进位或借位时,AC为1;否则AC为0。

F0:供用户定义的标志位,可以用指令置位或复位,用以控制程序的转向。

OV:(1)在带符号数的加减运算中,结果产生溢出,OV=1;否则,OV=0。(2)在乘法运算中,乘积超过255,OV=1, 表示积存放在B与A中;否则,OV=0,表示积只存放在A中。(3)在除法运算中,当除数为0时,OV=1, 除法无意义。

P:累加器A中数的奇偶性,若A中“1”的 个数为奇数,则P=1;否则,P=0。

  • 对专用寄存器的两点说明

(1) 单片机的22个专用寄存器中,有21个 是可按字节寻址的(PC除外)。这些字 节地址不连续的分散在内部RAM存储空间 的高128B中,剩余的空闲地址不允许用户使用。

(2) SFR只能使用直接寻址方式来访问它们,书写时既可使用寄存器名,也可使用寄存器单元地址

  • 具有位寻址能力专用寄存器

在21个特殊功能寄存器中,有11个特殊功能寄存器具有位寻址能力,它们的字节地址正好能被8整除,其十六进制地址的末位, 只能是0H或8H。

  • 外部数据存储器

MCS-51外部数据存储器寻址空间为64KB

MCS-51同外部数据存储器的指令有4条:

MOVX A,@Ri
MOVX A,@DPTR
MOVX @Ri, A
MOVX @DPTR,A

R0,R1为8位寄存器,寻址范围256B,DPTR为16位的数据指针,寻址范围64KB。

  • I/O端口

MCS-51有4个双向的8位并行I/O口:P0~P3

每一个口都有一个8位的锁存器

复位后它们的初始状态为全“1”

P0口是三态双向口:既可作为并行I/O口,也可作为数据总线口。当外部扩展了存储器或I/O端口,则只能作数据 总线和地址总线低8位。

P1口是专门供用户使用的I/O口,是准双向接口

P2口是准双向接口,既可作为并行I/O口,也可作为地址总线高8位口。当外部扩展了存储器或I/O端口,则只能作地址总线高8位

P3口是准双向口,又是双功能口。该口的每一 位均可独立地定义为第二功能,作为第一功能使用时,口的结构与操作与P1口相同。

P1,P2,P3口内部均有上拉电阻,当它们用作输入方式时,对应的口锁存器必须先“置”1

P0口内部没有上拉电阻,当它作为通用I/O时, 外接上拉电阻,在用作地址/数据线时,不必外加上拉电阻

P0口的每位输出可驱动8个LSTTL负载,P1-P3 口可驱动4个LSTTL负载

  • 复位电路

复位后PC值为0000H,故复位后的程序入口地址为0000H;

复位后PSW=00H,使片内存储器中选择0区工作寄存器,用户标志为F0为0状态;

复位后SP=07H,设定推栈栈底为07H;

复位后的P1,P2,P3口锁存器全为1状态,使 这些准双向口皆处于输入状态;

内部RAM不受复位的影响。

复位电路的基本功能是:系统上电时提供复位信号,在加电瞬间,RST端出现一定时间的高电平, 直至系统电源稳定后,撤销复位信号。

  • CPU时序

MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1XTAL2分别是此放大器的输入端和输出端。

CPU执行一条指令的时间称为指令周期,它是 以机器周期为单位的,MCS-51典型的指令周 期为一个机器周期。

每个机器周期由6个状态周期组成,每个状态周期由2个振荡周期组成,状态周期即S1、S2、 S3、S4、S5、S6,而每个状态周期由两个节拍Pl,P2组成。

大多数8051指令执行时间为一个机器周期, MUL(乘法)和DIV(除法)需要4个机器周期

  • CPU引脚功能

双列直插式封装(DIP,Dual Inline Package

方形封装(PLCC,Plastic Leaded Chip Carrier

  • 引脚功能

端口线(4×8 = 32条)

1)P0.0-P0.7         2)P1.0-P1.7          3)P2.0-P2.7           4)P3.0-P3.7

电源线(2条):    VCC为+5V电源线,VSS为地线

控制线(6条):

ALE/PROG :地址锁存允许/编程线

EA/VPP:允许访问片外存储器/编程电源线

PSEN:片外ROM选通线

RST/VPD:复位/备用电源线

XTAL1和XTAL2:片内振荡电路输入/输出线

  1. ALE/PROG :地址锁存允许/编程线

配合P0口引脚的第二功能使用 ,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器

在不访问片外存储器时,MCS-51自动在 ALE线上输出频率为fosc/6的脉冲序列。 该脉冲序列可用作外部时钟源或作为定时脉 冲源使用。

它可以在对8751片内EPROM编程/校验时传送5ms宽的负脉冲。

  1. EA/VPP:允许访问片外存储器/编程电源线

控制MCS-51使用片内ROM还是使用外ROM。 若=1,则允许使用片内ROM; 若=0,则只能使用片外ROM。

对8751的EA/VPP用于在片内EPROM编程/ 校验时输入21V或12.5V编程电源。

  1. PSEN:片外ROM选通线

执行访问片外ROM的指令MOVC时, 自动在线上产生一个负脉冲,用于为片外 ROM芯片的选通(相当于读信号RD)。其 他情况下,线均为高电平*状态。

  1. RST/VPD:复位/备用电源线

使CPU处于复位(即初始化)工作状态。 复位有上电自动复位人工按钮复位两种

RST/VPD的第二功能是作为备用电源输入端。 当主电源VCC,发生故障而降低到规定低电平 时,RST/VPD线上的备用电源自动投入,以保证片内RAM中信息不丢失。

  1. XTAL1和XTAL2:

片内振荡电路输入/输出线,这两个端子用来外接石英晶体和微调电容,即用来连接片内 OSC的定时反馈回路,

  • 单片机的工作方式

复位方式:

单片机在开机时都需要复位,以便CPU以及 其他功能部件都处于一个确定的初始状态, 并从这个状态开始工作,RST引脚是复位信号的输入端,复位信号是高电平有效,持续时间要有24个 时钟周期以上,若时钟频率为12MHz,则复位脉冲宽度至少 应为2µS。

程序执行方式:单步执行方式 、连续执行方式

单步执行方式是指按一次单步执行键就执行一 条用户指令的方式。 单步执行方式常常用于用户程序的调试。 单步执行方式是利用单片机外部中断功能实现的。

连续执行方式是单片机都需要的一种工作方式 被执行程序可以放在片内或片外ROM中,由于复位后程序计数器PC=0000H,可以预先在0000H处放一条转移指令,以便跳转到 0000H~0FFFFH中的任何地方执行程序。

节电方式:待机方式 、掉电保护方式

 

EPROM的编程和校验方式