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、相对寻址
相对寻址是为实现程序的相对转移而设计。