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

2019-04-15 14:48发布

  • 简介

单片机即单片机微型单片机,是将单片机主机(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字节程序存储器 数据存储器 从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位):用于寄存程序运行的状态信息。 标志位功能: 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的编程和校验方式