. ..
MCS-51单片机
8051单片机是8位单片机,有40个管脚,8根数据线,16根地址线。
单片机的八大组成部分:CPU 、ROM、RAM、I/O 、定时/计数器、串口、SFR、中断服务系统
一、MCS-51机的内存结构 (如图1所示)
60KB FFFFH
1000H
4KB 0FFFH 内部 0FFFH 4KB FFH
EA = 1 外部 EA = 0 外部ROM FFFFH 64KB 外部 RAM 特殊功能寄存器 80H 内部RAM 7FH
0000H 0000H 00H 0000H
7F
程序存储器 内部数据存储器 外部数据存储器
图1 MCS-51机的内存结构
物理上分为:4个空间, 片内ROM、片外ROM
片内RAM、片外RAM
逻辑上分为;3个空间, 程序内存(片内、外)统一编址 MOVC 数据存储器(片内) MOV 数据存储器(片外) MOVX
1、程序内存
寻址范围:0000H ~ FFFFH 容量64KB
EA = 1,寻址从内部ROM;EA = 0,寻址从外部ROM
地址长度:16位 存储器地址空间为64KB 作用: 存放程序及程序运行时所需的常数。
8051 单片机6个具有特殊含义的单元是:0000H —— 系统复位,PC指向此处;
. s ..
. ..
0003H —— 外部中断0入口 000BH —— T0溢出中断入口 0013H —— 外中断1入口 001BH ——T1溢出中断入口 0023H —— 串口中断入口
2、内部数据存储器
物理上分为两大区:00H ~ 7FH即128B内RAM 和 SFR区。如图2所示。
7FH
资料缓冲区
堆栈区 80字节 数据缓冲器用 工作单元
30H 2FH
位地址: 16字节
00H~7FH 128 可位寻址位
20H
1FH 3区 2区 1区 32字节 4组R0~R7工作寄存器 0区 00H
图2 内部数据存储器
二、 殊功能寄存器SFR
寻址空间离散分配在:80H ~ FFH ,
注意PC不在此范围内。地址末尾为0或8的SFR具有位寻址功能
1、 CPU是运算器加控制器 2、 算术运算寄存器 (1)累加器A(E0H)
(2)B寄存器:乘、除法运算用
(3)程序状态字PSW寄存器:包含程序运行状态信息。
PSW CY AC FO RS1 RS0 OV — P
CY(PSW.7) —— 进位/借位标志;位累加器。
AC (PSW.6)—— 辅助进/借位标志;用于十进制调整。 F0 (PSW.5) —— 用户定义标志位;软件置位/清零。 OV (PSW.2)—— 溢出标志; 硬件置位/清零。
P (PSW.0) —— 奇偶标志;A中1的个数为奇数 P = 1;否则 P = 0。
. s ..
. ..
RS1、RS0 ——寄存器区选择控制位。
0 0 : 0区 R0 ~ R7 0 1 : 1区 R0 ~ R7 1 0 : 2区 R0 ~ R7 1 1 : 3区 R0 ~ R7
2、指针寄存器
(1)程序计数器PC
PC的内容是指明即将执行的下一条指令的地址,16位,寻址64KB范围, 复位时PC = 0000H 具有自动加1功能 不可寻址即不能通过指令访问。 (2)堆栈指针SP
指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H (3)数据指针DPTR
R0、R1、DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。 DPTR = DPH + DPL,也可单独使用。没有自动加1功能 通过软件 INC DPTR 内容加1
时序
单片机内的各种操作都是在一系列脉冲控制下进行的,而各脉冲在时间上是有 先后顺序的,这种顺序就称为时序。
执令周期:即从取指到执行完,所需时间。
不同机器指令周期不一样;即使相同机器,不同的指令其指令周期也不一样。
机器周期:机器的基本操作周期。
一个指令周期含若干机器周期(单、双、四周期)
状态周期:一个机器周期分6个状态周期Si
每个状态周期含两个振荡周期,即相位P1、P2。
振荡周期:由振荡时钟产生。 振荡周期Tosc = 1/fosc
一个机器周期 = 12个振荡周期 = 12×1/fosc 。
例如,若fosc = 12MHz,则一个机器周期 = 1μs。 时钟的产生: 通过XTAL1(19)、XTAL(18)。这两个管脚外部加石英晶体和电容组成振荡器
系统复位
通过给RST管脚加高电平理论上大于两个机器周期,实际大于10ms,系统复后
除了SP=07H ,P0、P1、P2、P3为FFH外,所有的寄存器均为00H,PC=0000H,PSW=00H 工作
寄存器组R0~R7工作在0组。
并行I/O端口
并行I / O端口
. s ..
. ..
四个8位I/O口P0、P1、P2、P3 作为通用I / O使用, 是一个准双向口:
“读管脚在输入数据时应先把口置1,使两个FET都截止,引脚处于悬浮状态,可作高阻抗输入” MOV P1.#0FFH MOV A,P1
读端口数据方式是一种对端口锁存器中数据进行读入的操作方式,CPU读入的这个数据并非端口引脚的数据。(对端口进行读-修改-写类指令 列如 CPL P1.0是读端口锁存器而不是管脚)
一、P0口地址80H系统复位后P0=FFH
(1) P0口可作通用I / O口使用,又可作地址/数据总线口; (2)P0既可按字节寻址,又可按位寻址; (3)P0作为输入口使用时:是准双向口;
(4)作通用I / O 口输出时:是开漏输出;(外部管脚必须接上拉电阻)
(5)作地址/数据总线口时,P0是一真正双向口,分时使用,提供地址线 A0~A7由ALE控制信号锁存,数据线D0~D7
二、P1口地址90H地址90H系统复位后P1=FFH 2、特点
(1)无地址/数据口功能
. s ..
. ..
(2)可按字节寻址,也可按位寻址
(3)作I / O输入口时:是一准双向口,不是开漏输出(无需外接上拉电阻)。 三、P2口地址A0H系统复位后P2=FFH 2、特点
(1)当P2口作为通用I / O时,是一准双向口。 (2)从P2口输入数据时,先向锁存器写“1”。 (3)可位寻址,也可按字节寻址 (4)可输出地址高8位A8~A15。 四、P3口地址B0H系统复位后P3=FFH 2、特点
(1)作通用I / O时,是一准双向口,不是开漏输出(无需外接上拉电阻)。 (2)P3口具有第二功能
1、P0口:地址低8位与数据线分时使用端口, 2、P1口:按位可编址的输入输出端口, 3、P2口:地址高8位输出口
4、P3口:双功能口。若不用第二功能,也可作通用I / O 口。 5、按三总线划分:
地址线:P0低八位地址,P2高八地址; 数据线:P0输入输出8位数据;
. s ..