51单片机

1 单片机结构

一台计算机由一下几部分组成:CPU、RAM、ROM、I/O设备。在个人计算机这些部分在集成在多个芯片上, 而在单片机中这些都被集成到一块芯片中,单片机是一种控制芯片,一个微型的计算机。

1.1 单片机引脚

单片机的40个引脚大致可以分为4类:电源、时钟、控制、I/O引脚。

1、电源

VCC 芯片电源 +5V
VSS 接地端

2、时钟

XTAL1、XTAL2 晶体振荡电路反向输入端和输出端

3、控制线:控制线共有四根

a、ALE/PROG:地址锁存允许/片内EPROM编程脉冲
AEL功能:用来锁存P0口送出的低8位地址
PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲

b、PSEN:外ROM读选通信号

c、RST/VPD:复位/备用电源
RST功能:复位信号输入端
VPD功能:在VCC掉电情况下,使用备用电源

d、EA/Vpp:内部ROM选择/片内EPROM编程电源
EA功能:内外ROM选择端
Vpp功能:片内有EPROM芯片,在EPROM编程期间,施加编程电源Vpp

4、I/O线

80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共有32个引脚,P3还具有第二功能,用于特殊信号输入输出和控制信号(输入控制总线)。

1.2 特殊功能寄存器

在单片机中有一些独立的存储单元用来控制定时器/计数器,串行I/O口等器件,被称为特殊功能寄存器 (SFR)。特殊功能寄存器如下表:

符号 地址 功能
B F0H B寄存器
ACC E0H 累加器
PSW D0H 程序状态字
IP B8H 中断优先级控制寄存器
P3 B0H P3口锁存器
IE A8H 中断允许控制寄存器
P2 A0H P2口锁存器
SBUF 99H 串行口锁存器
SCON 98H 串行口控制寄存器
P1 90H P1口锁存器
TH1 8DH 定时器/计数器1(高8位)
TH0 8CH 定时器/计数器1(低8位)
TL1 8BH 定时器/计数器0(高8位)
TL0 8AH 定时器/计数器0(低8位)
TMOD 89A 定时器/计数器方式控制寄存器
TCON 88H 定时器/计数器控制寄存器
DPH 83H 数据地址指针(高8位)
DPL 82H 数据地址指针(低8位)
SP 81H 堆栈指针
P0 80H P0口锁存器
PCON 87H 电源控制寄存器

2 单片机寻址方式与指令系统

2.1 指令格式

在MCS-51指令中,一般指令主要由操作码、操作数组成。指令应该有如下功能:

1、操作码指明执行什么性质和类型的操作
2、操作数指明操作的数本身或者是操作数所在的地址
3、指定操作结果存放的地址

2.2 寻址方式

1、立即寻址

操作数以指令形式出现,称作立即数,用#号的8位或者16位数来表示。

MOV A, #60H    ;A <- #60H
MOV 30H, #40   ;30H单元 <- #40H

以上命令执行完成之后,累加器A中数据为立即数据60H,30H单元中数据为立即数40H。

2、直接寻址

指令中直接给出操作数的8位地址,能进行直接寻址的存储空间有SFR和片内RAM。

MOV PSW, #20H
PSW直接地址为D0H,在指令中可使用其名称
MOV A, 30H
30为直接给出的内部RAM地址。

3、寄存器寻址

INC DPTR    ;DPTR <- DPTR+1
ADD A, R2   ;A <- A+R2

4、寄存器间接寻址

以寄存器的内容为操作数的地址,在寄存器前加@用来区分。即以寄存器作为指针,可用来访问片内RAM 和片外RAM,不能访问SFR。能作为间接寻址的寄存器有R0、R1、DPTR、SP,其中R0、R1是指所选中的工作寄存器,SP仅用于堆栈操作。

MOV @R0, A
访问片内RAM

5、变址寻址

变址寻址只能对程序存储器中的数据进行读取访问,在指令符号上采用MOVC的形式。

6、相对寻址

相对寻址是为实现程序的相对转移而设计。