-
简介
单片机即单片机微型单片机,是将单片机主机(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内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
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:片内振荡电路输入/输出线
- ALE/PROG :地址锁存允许/编程线
配合P0口引脚的第二功能使用 ,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器
在不访问片外存储器时,MCS-51自动在 ALE线上输出频率为fosc/6的脉冲序列。 该脉冲序列可用作外部时钟源或作为定时脉 冲源使用。
它可以在对8751片内EPROM编程/校验时传送5ms宽的负脉冲。
- EA/VPP:允许访问片外存储器/编程电源线
控制MCS-51使用片内ROM还是使用外ROM。 若=1,则允许使用片内ROM; 若=0,则只能使用片外ROM。
对8751的EA/VPP用于在片内EPROM编程/ 校验时输入21V或12.5V编程电源。
- PSEN:片外ROM选通线
执行访问片外ROM的指令MOVC时, 自动在线上产生一个负脉冲,用于为片外 ROM芯片的选通(相当于读信号RD)。其 他情况下,线均为高电平*状态。
- RST/VPD:复位/备用电源线
使CPU处于复位(即初始化)工作状态。 复位有上电自动复位和人工按钮复位两种
RST/VPD的第二功能是作为备用电源输入端。 当主电源VCC,发生故障而降低到规定低电平 时,RST/VPD线上的备用电源自动投入,以保证片内RAM中信息不丢失。
- XTAL1和XTAL2:
片内振荡电路输入/输出线,这两个端子用来外接石英晶体和微调电容,即用来连接片内 OSC的定时反馈回路,
-
单片机的工作方式
复位方式:
单片机在开机时都需要复位,以便CPU以及 其他功能部件都处于一个确定的初始状态, 并从这个状态开始工作,RST引脚是复位信号的输入端,复位信号是高电平有效,持续时间要有24个 时钟周期以上,若时钟频率为12MHz,则复位脉冲宽度至少 应为2µS。
程序执行方式:单步执行方式 、连续执行方式
单步执行方式是指按一次单步执行键就执行一 条用户指令的方式。 单步执行方式常常用于用户程序的调试。 单步执行方式是利用单片机外部中断功能实现的。
连续执行方式是单片机都需要的一种工作方式 被执行程序可以放在片内或片外ROM中,由于复位后程序计数器PC=0000H,可以预先在0000H处放一条转移指令,以便跳转到 0000H~0FFFFH中的任何地方执行程序。
节电方式:待机方式 、掉电保护方式
EPROM的编程和校验方式