Download presentation
Presentation is loading. Please wait.
1
2. MCS-51单片机的组成及结构分析 2.1 MCS-51单片机的内部结构及结构特点
1)在RAM区有一个寄存器工作区(4×8个工作寄存器), 专门功能寄存器SFR(完成定时器、串行口、中断逻辑等控制)。 2)程序存储器与数据存储器在空间上分开。 有不同的地址指针PC、DPTR。 3)有32个I/O引脚,部分I/O引脚具有第二功能。 4)内部有一个全双工的串行接口,可同时发送和接收, 以实现双机和多机通讯。 5)具有多个中断源,具有两级优先权控制。 6)内部有专门的位处理机。 7)可对内部程序加密。
4
2.2 MCS-51单片机的引脚及封装 图2-1 MCS-51系列产品的引脚及封装
9
MCS-51单片机的总线工作方式 P0 P2 WR ALE RD 锁存器 (74HC373) D[0..7] A[0..7]
10
2.3 I/O端口及其锁存器 8051单片机有四个双向8位I/O口:P0—P3口,每一个口部由口锁存器(特殊功能寄存器)、输入三态缓冲器/输出驱动器所组成。 1)P0口 P0口为三态双向I/O口, 可以驱动8个LSTTL电路。 P0口作为地址/数据总线口使用,分时输出外部存贮器的低8位地址A0—A7和传送数据D0—D7。如果不作为系统扩展的地址/数据总线口,它也可以作为输入/输出口使用。
11
D Q P0锁存器 CL Q VCC & 地址/数据 控制 读锁存器 读引脚 内部总线 写锁存器 引 脚
12
3)P2口 P2口为准三态双向I/O口, 可以驱动3个LSTTL电路。 CPU访问外部的程序存贮器时,P2口输出程序存贮器的高8位地址A8—A15,该地址来源于内部的程序计数器PC的高8位;当CPU以16位地址指针DPTR访问外部RAM/IO的时候,P2口输出的地址来源于DPH,其它情况下,P2口作为一般的I/O口 使用。
13
D Q P0锁存器 CLK Q VCC 地址 控制 读锁存器 读引脚 内部总线 写锁存器 引 脚
14
2) P1口:为准双向口,它的每一位可以分别定义为输线 或 输出线。它可以驱动3个LSTTL电路。
D Q P0锁存器 CL Q VCC 读锁存器 读引脚 内部总线 写锁存器 引脚
15
4)P3口:多功能口,它的第一功能为准三态双向I/O口,
第二功能为特殊输入/输出线。 D Q P0锁存器 CLK Q VCC 读锁存器 读引脚 内部总线 写锁存器 引脚 & 选择输出功能
16
2.4 MCS-51的存储空间及存储器 3.4.1 程序存储器 通过EA引脚来选择内部或外部程序存储器
程序存储器 通过EA引脚来选择内部或外部程序存储器 若选择外部程序存储器(EA=0),则P0、P2自动设置为数据、地址工作方式。 目前,由于大容量内部程序存储器芯片的生产,采用外部程序存储器的设计越来越少了。 通过开关,也可混合使用,如设计PLC时,在PLC处于编程方式时使用片内程序,将外部程序存储器设计成数据存储器,将用户所编写的程序写入外部程序存储器,在PLC处于运行方式时则执行外部程序存储器中的用户程序
17
P0 P2 WR ALE RD 锁存器 (74HC373) D[0..7] A[0..7] A[8..15] PSEN EA & VCC + 单片机 存储器
18
数据存储器 MCS-51系列弹片机除了具有片内数据存储器以外,还可以通过外部端口来扩展64KB的外部数据存储器(或I/O)。但这些数据必须用外部操作指令MOVX将其读入内部RAM或寄存器中才能进行数据运算和处理 P0 P2 WR ALE RD 锁存器 (74HC373) D[0..7] A[0..7] A[8..15] 单片机 存储器
19
3.4.2 数据存储器 FFFFh FFh 外部扩展 I/O空间 64KB 用MOVX 指令 间接寻址 操作 SFR 128B 直接寻址
数据存储器 FFFFh FFh 外部扩展 I/O空间 64KB 用MOVX 指令 间接寻址 操作 SFR 128B 直接寻址 通用RAM 128B 间接寻址 80h 7Fh 通用RAM 128B 可直接或 间接寻址 52(32)以上 型号单片机 00h 0000h
20
片内低128BRAM: 7Fh 堆栈或数据缓冲器 30h 位寻址区 16Byte (128bit 00h~7Fh) 20h 工作寄存器区3
工作寄存器区0 工作寄存器区1 工作寄存器区2 工作寄存器区3 00h 08h 10h 18h 20h 30h 7Fh 16Byte (128bit 00h~7Fh) 工作寄存器区R0~R7 地址由PSW中的RS1和RS2决定 不用的区域可用作堆栈或数据缓冲器
21
特殊功能寄存器 MCS-51系列单片机具有数十个特殊功能寄存器,使用内部高128B的地址空间,只能用直接寻址的方式,才能操作这些寄存器. 在这些特殊功能寄存器中,位于x0H和x8H的寄存器,还支持位操作. 每个特殊功能寄存器和可位操作的每一位,都有自己的名字(助记符),在汇编语言程序设计时,可直接使用其名称,不用去记其具体的地址. PSW: CY AC F0 RS1 RS0 OV F1 P
22
外部数据存储器(I/O)的扩展 锁存器和触发器 D Q LE OE D Q CLK OE 锁存器 触发器 D D LE CLK Q Q OE
高阻 Q 高阻 OE OE
23
利用CPLD/FPGA扩展I/O QA 74374 P0 74373 QB ALE A[0..7] A[8..15] P2 PA 译码电路
WR RD 单片机 CPLD/FPGA 译码电路 74374 74244 OE 选通 控制 Swr0 Swr1 Q0 PA PB PC QA QB
24
译码电路 完全译码和不完全译码 完全译码:利用所有地址线。用于端口多的复杂系统 不完全译码:利用部分地址线。一个引脚占用多个地址
例:上图中,若: Swr0=WR + !(A7 & !A0) 占用地址:~xx1xxxxxx0 Swr1=WR + !(A7 & A0) 占用地址:~xx1xxxxxx1 写0080h 0090h…00F0h … FF80h…FFF0h,则输出到同一端口 OE= RD + !A7; Q0= A7 & !A1 & !A0 & PA + A8 & !A1 & A0 & PB + A7 & A1 & !A0 & PC; 则:读0080h…00F0h … … FFF0h 都是读PA端口
25
2.5 MCS-51单片机工作时序 CPU取出一条指令至该指令执行完所需的时间称为指令周期,指令周期是以机器周期为单位的。8051的一个机器周期由六个状态(S1,S2,…,S6)组成,每一个状态为2个时钟周期(时相P1,P2)。一个机器周期有12个时钟周期(S1P1,S1P2,S2P1,S2P2,…,S6P1,S6P2),若晶振为12MHz ,则一个机器周期为1s。
26
MCS-51的工作时序图
Similar presentations