单片机基础(02)
2.1 MCS51单片机的型号与组成
MCS-51系列单片机最早是美国Intel公司在1980年推出的,当时包含51和52 两个子系列型号。
51系列,主要有8031、8051、8751三种型号,它们的指令系统与芯片引脚完全兼容,仅是片内的程序存储器容量有所不同。
- 8031芯片不带任何ROM
- 8051芯片带4kB(OTP) PROM(一次性写入)
- 8751芯片带4kB EPROM(紫外线可擦除)。
52系列,有8032、8052、8752 三种机型。52子系列与51子系列相比大部分相同,不同之处在于:片内数据存储器增至256个字节;
- 8032芯片不带ROM,
- 8052芯片带8kB PROM,
- 路8752芯片带8kB EPROM;
MCS-51单片机型号命名规则
MCS-51系列单片机的结构原理
它由中央处理器(CPU)、定时器,并行口等八部分组成
MCS-51系列单片机的中央处理器(CPU)
1. 运算部件
运算部件以一个8位算术逻辑运算单元ALU为核心,包含累加器ACC、B寄存器、标志寄存器PSW等部件,能实现算术运算、逻辑运算、位运算、数据传输等处理。
51单片机的ALU还有一个位运算器,它可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑“与〞、“或〞等处理,这对于控制方面很有用。
累加器ACC(Accumulator简称为A)是CPU中使用最频繁的寄存器,ALU进行运算时,数据绝大多数时候都来自于累加器A,运算结果也通常送回累加器A。
寄存器B称为辅助寄存器,它是为乘法和除法指令而设置的。
标志寄存器PSW (Program Status Word) 是一个8位的寄存器,它用于保存指令执行结果的状态。
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|
C | AC | F0 | RS0 | RS0 | OV | | P |
RS1、 RSO ( Register Select):寄存器组选择位.
RS1 | RS0 | 工作寄存器组 |
---|
0 | 0 | 0组 (00H-07H) | 0 | 1 | 1组 (08H-OFH) | 1 | 0 | 2组 (10H-17H) | 1 | 1 | 3组 (18H-1FH) |
C(Carry) | 进位标志位 |
---|
AC(Auxilary Carry. | 辅助进位标志位 | FO (Flag Zero | 用户标志位 | Ov(Over flow) | 溢出标志位 | P(Parity) | 奇偶标志位 |
2. 控制部件
控制部件是单片机的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器PC ( Por gram Counter)、堆栈指针SP(Stack Pointer)、数据指针DPTR(Data Pointer Register ) 等。
它先以振荡信号为基准产生CPU的时序,从ROM中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。
2.2 MCS-51单片机的程序存储器结构
MCS-51单片机存储器结构与一般微机的存储器种类不同,分为:程序存储器ROM和数据存储器RAM。
程序存储器ROM
存放单片机工作时的程序,单片机上电工作时,程序指令指导单片机完成设定的功能,没有ROM存储器,单片机不能工作。
MCS51单片机专门设置一个16位的程序计数器(PC),用于指示下一时刻CPU将要所执行的程序在ROM空间中的地址位置,由于PC指针长度为16位,即51单片机的程序存储器空间大小为64kB,最大地址从0000-FFFFH
MCS-51单片机的程序存储器,从物理结构上分为:
- 片内程序存储器ROM(不同型号的容量不同)
- 片外程序存储器ROM(64kB地址空间,外部通过总线访问)
- 片外程序存储器ROM(64kB地址空间,外部通过总线访问)
程序存储器的编址与访问
在MCS-51系列中,不同型号机型的程序存储器
- 8031和8032内部没有ROM,
- 8051片内有4kBROM,8751内部有4kB EPROM(0000H-0FFFH)
- 8052片内有8kB ROM,8752内部有8kB EPROM(0000H-1FFFH).
程序存储器的7个特殊地址
MCS-51系列单片机复位后PC的内容为0000H,故单片机复位后将从0000H单元开始执行程序。程序存储器的0000H单元地址是系统程序的启动地址。这里一般放一条绝对转移指令。
中断源 | 入口地址 |
---|
外部中断0 | 0003H | 定时/计数器0 | 000BH | 外部中断1 | 0013H | 定时/计数器1 | 001BH | 串行口 | 0023H | 定时/计数器2(仅52子系列有) | 002BH |
6个中断源的地址之间仅隔8个单元,存放中断服务程序往往不够用,这是通常放一条绝对转移指令,转到真正的中断服务程序,真正的中断服务程序放到后面。
数据存储器RAM
数据存储器(RAM)存储单片机运行期间所需要的数据和临时生成的 数据,需要能够快速读出和写入数据。此类存储器掉电后,存储的数据 会丢失,不能永久保存。
由千数据存储器包含单片机工作时所需要的多种用途的存储器,各部分存储器特性不同,访问方式也不同。
从物理结构上分为片内数据存储器和片外数据存储器。
- 片内数据存储器RAM(片内连线访问,不同型号大小不同)
- 片外数据存储器RAM (64kB地址空间,外部通过16位地址总线访问)
片内数据存储器
-
工作寄存器组区 OOHI—1FH单元为工作寄存器组区,共32个字节。工作寄存器也称为通用寄存器,用于临时寄存8个信息。工作寄存器共有4组,称为、1、23组,每组用RO~R7表示 -
位寻址区 20F一2FE为位寻址区,共16字节,128位。这128位每位都可以按位方式使用,一位都有一个位地址,位地址范围为00H—7FH -
一般RAM区 30H一7FH是一般RAM区,也称为用户RAM区,共80字节,对于52子系列,般RAM区从30H—FFH单元。另外,对于前两区中未用的单元也可作为用户RAM单元使用。 -
堆栈区与堆栈指针 堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。MCS-51单片机中,堆栈是用片内数据存储器的一段区域,一般设在2FH以后的单元,使用时应避开工作寄存器、位寻址区。 MCS-51单片机的堆栈是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。入栈和出栈数据是以字节为单位。 为实现堆栈的先入后出、后入先出的数据处理,专门设置了一个堆栈指针SP(Stack Pointer)。
- 入栈(Push)时,SP指针的内容先自动加1,再把数据存入到SP指针指向的单元;
- 出栈(Pop)时,先把sP指针指向的单元的数据取出,然后再把SP指针的内容自动城l。
向上生长型堆栈 -
特殊功能寄存器 特殊功能寄存器(SFR,Special Function Register)专门用于控制、管理片内算术逻辑部件、并行I/0口、串行口、定时/计数器、中断系统等功能模块的工作,用户在编程时可以给其设定值,但不能移作它用。分布在80H—FFH地址空间,与片内数据存储器统一编址,除PC外,51子系列有18个特殊功能寄存器,52子系列有21个特殊寄存器。 它们的分配情况如下: CPU专用寄存器:累加器A(EOH),寄存器B(FOH),程序状态寄存器PSW(DOE),堆栈指针SP(81H),数据指针DPTR (82H1、 83H)
片外数据存储器
单片机片内RAM存储器不够使用时,单片机可以通过外部总线扩展的片外数据存储器获得更大的存储空间,由于外部地址总线宽度为16位,所以片外RAM扩展最多64KB,地址范围为0000H—0FFFFH。
2.3 MCS-51单片机外部引脚及总线接口
MCS-51系列单片机的引脚及功能说明
一、输入/输出引脚
-
P0口(39-32脚):P0.0~P0.7统称为P0口。在不接片外存储器与不扩展I/0口时,作为双向输入/输出口。在接有片外存储器或扩展I/0口时,P0口分时复用为低8位地址总线和双向数据总线。 -
P1口(1-8脚):P1.0~P1.7统称为P1口,可作为双向I/O口使用。 -
P2口(21-28脚):P2.0~P2.7统称为P2口,一般可作为双向I/O口使用;在扩展片外存储器时,P2口用作高8位地址总线。 -
P3口(10-17脚):P3.0~P3.7统称为P3口。除作为准双向I/0口使用外,还可以将每一位用于第二功能。
P3口 | 第二功能 |
---|
P3.0 | RXD 串行口输入端 | P3.1 | TXD 串行口输出端 | P3.2 | INTO 外部中断0请求输入端,低电平有效 | P3.3 | INT1 外部中断1请求输入端,低电平有效 | P3.4 | T0定时/计数器0外部计数脉冲输入端 | P3.5 | T1定时/计数器0外部计数脉冲输入端 | P3.6 | WR 外部数据存储器写信号,低电平有效 | P3.7 | RD外部数据存储器读信号,低电平有效 |
二、控制线
- ALE(Adress Lock Enable (30脚):地址锁存信号输出端。
- PSEN(Peripherals Select Enable)(29脚):片外程序存储器读选通信号输出端。
- RST(Reset)(9脚):当单片机振荡器工作时,该引脚上出现持续10 ms以上的高电平,就可实现复位操作,使单片机回复到初始状态。
- EA (31脚):EA为片外程序存储器选用端。该引脚低电平时,选用片外程序存储器,高电平或悬空时选用片内程序存储器。
三、主电源引脚
- VCC(40脚):接+5V电源。
- GND(20脚):接地。
冯·诺依曼结构和哈佛结构
冯·诺依曼
该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
哈佛结构
该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合千实时的数字信号处理。
从物理空间来说,MCS-51系列单片机有4个相对独立的存储器寻址空间,分别是:
- 片内程序存储器ROM 片内数据存储器RAM
- 片外程序存储器ROM 片外数据存储器RAM
64kB的程序存储器和64kB的片外数据存储器地址空间都为0000H一OFFFFH,地址空间是重叠的,它们如何区分呢?
Mcs-51单片机是通过不同的信号来对片外数据存储器和程序存储器进行读、写的,片外数据存储器的读、写通过RD和WR信号来控制,而程序存储器的读通过PSEN信号控制,通过用不同的程序指令来实现。
2.4 MCS51单片机并行IO口工作原理
MCS-51系列单片机有4个8位的并行I/O接口:P0、P1、P2和P3口。它们既可以作输入,也可以作输出,既可按8位处理,也可按位方式使用。输出时具有锁存能力,输入时具有缓冲功能。
本课程将根据4个IO口功能的由简单到复杂的关系,按照P1、P3、P2、P0的顺序讲解各IO口的工作原理。
-
P1口 P1口是准双向口,它只能作通用I/O接口使用。 当P1口输出时,可以提供电流负载。P1口具有驱动4个TTL负载芯片。IO口读入之前,先输出1,再读入。 -
P3口 P3口的位结构如图,作为普通IO口工作时,与P1口原理相同。 P3口除了作为准双向通用I/O口使用外,它的每一根线还具有第二种功能。
P3口 | 第二功能 |
---|
P3.0 | RXD 串行口输入端 | P3.1 | TXD 串行口输出端 | P3.2 | INTO 外部中断0请求输入端,低电平有效 | P3.3 | INT1 外部中断1请求输入端,低电平有效 | P3.4 | T0定时/计数器0外部计数脉冲输入端 | P3.5 | T1定时/计数器0外部计数脉冲输入端 | P3.6 | WR 外部数据存储器写信号,低电平有效 | P3.7 | RD外部数据存储器读信号,低电平有效 |
P3口除了作为准双向通用I/0口使用外,它的每一根线还具有第二种功能。
当P3口作为第二功能时,锁存器的Q输出端必须为高电平。
-
P2口 P2口也是准双向口,它有两种用途:通用I/O接口和高8位地址线。它的1位的结构如图,与P1口相比,它只在输出驱动电路上比P1口多了一个模拟转換开关MUX和反相器3。
当CPU发出控制信号低电平“0”,使多路开关MUX倒向锁存器,P2口作为通用I/0口使用,与P1口类似。
当CPU发出控制信号高电平“1”,使多路开关MUX倒内部地址线,P2口作为高8位地址总线使用。
- P0口
P0口是一个三态双向口,可作为地址/数据分时复用口,也可作为通用的VO接口。 它包括一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成,它的一位结构如图:
当控制信号应为低电平“0”,P0口作为通用I/O口使用。
当控制信号为高电平“1”,PO口作为地址/数据分时复用总线用。
当P0口作通用I/O接口时,应注意以下两点:
- 在输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号正常输出,必须外接上拉电阻。
- P0口作为通用I/0口输入使用时,在输入数据前,应先向PO口写“1”,此时锁存器的Q端为“0“,使输出级的两个场效应管V1、V2均截止,引脚处于悬浮状态,才可作高阻输入。
2.5 MCS51单片机的工作周期和时序
MCS-51系列单片机的外部引脚及片外总线
外接晶体引脚
XTALI、XTAL2(19、18脚):当使用单片机内部振荡电路时,这两个引脚用来外接石英晶体和微调电容。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部时钟时,对于HMOS单片机,XTAL1引脚接地,XTAL,2接片外振荡脉冲输入;
对于CHMOS单片机,XTAL2引1脚接地,XTALI接片外振荡脉冲输入。
MCS-51系列单片机的工作方式
复位方式
在时钟电路工作以后,当外部电路使得RST端出现2个机器周期以上的高电平,系统内部复位。复位有两种方式:上电自动复位和手动按钮复位。
MCS-51系列单片机的时序
机器周期:机器周期是单片机的基本操作周期,每个机器周期包含S1、S2、…S66个状态,每个状态包含2拍P1和P2,每一拍为一个时钟周期(振荡周期)。因此,个机器周期包含12个时钟周期。依次可表示为S1P1、 S1P2、 S2P1、 S2P2、 。。。、 S6P1、S6P2。
指令周期:计算机工作时不断的取指令和执行指令。计算机取一条指令至执行完该指令需要的时间称为指令周期,不同的指令,指令周期不同。
单片机的指令周期以机器周期为单位。MCS-51系列单片机中,大多数指令的指令周期由一个机器周期或两个机器周期组成,只有乘法、除法指令须要4机器周期指令。
|