第3章80C51系列单片机的硬件基础知识
第三章 80C51单片机汇编语言程序设计(本科)
![第三章 80C51单片机汇编语言程序设计(本科)](https://img.taocdn.com/s3/m/3d27781ac5da50e2524d7f70.png)
ORG START: CLR MOV MOVX MOV INC MOVX SUBB JNC XCH SJMP BIG1: MOVX BIGO: INC MOVX END
8000H C;进位清0 DPTR, #ST1; 设数据指针 A, @DPTR; A←((ST1)),取N1 R2, A; 暂存N1 DPTR; DPTR← ST2(指向N2单元) A, @DPTR; 取N2存于A中 A, R2;N1,N2比较(N2-N1,差在A中) BIG1;N2≥N1,转BIG1,N2<N1,顺序执行 A, R2;N1,N2互换,A ←N1 BIG0 A, @DPTR;A ←N2 DPTR; DPTR← ST3(指向N3单元) @DPTR, A;ST3 ←大数 返回
等、不相等等各种条件判断。
例:两个8位无符号二进制数比较大小。假设在外部RAM中有 ST1、ST2和ST3共3个连续单元(单元地址从小到大),其中ST1
、ST2单元中存放着两个8位无符号二进制数N1,N2,要求找出其
中的大数并存入ST3单元中。
解:(1)分析任务:比较两个数的大小
(2)算法:算术运算、控制转移 (3)程序结构:单分支 (4)数据类型:单字节、二进制、无符号数 (5)数据结构:单元地址升序排列
思考题
3) ORG MOV MOV MOVX ADD MOVX DEC DEC MOVX ADDC 1000H RO, R1, A, A, @R1, R0; R1; A, A, #52H;加数N1的低字节地址送地址指针R0 #55H;加数N2的低字节地址送地址指针R1 @R1; 取N2的低字节 @R0; N1、N2低字节相加 A; 保存N1、N2低字节和 修改加数N1的地址指针内容 修改加数N2的地址指针内容 @R1; 取N2的中间字节 @R0; N1、N2中间字节带低字节和进位相加
3_80C51单片机指令系统
![3_80C51单片机指令系统](https://img.taocdn.com/s3/m/170fa8906bec0975f465e257.png)
③特殊功能寄存器符号加位的表示方法。例如: MOV C,ACC.6 该指令是将累加器A位六的值赋给位累加器C。 ④位名称表示方法,特殊功能寄存器中的一些寻址 位是有名称的。例如: MOV C,F0 该指令等同于MOV C,PSW.5,因为PSW寄存器位 5为F0标志位。 ⑤利用伪指令定义位地址。有关伪指令的内容参见 4.1节。 位寻址方式是80C51单片机的特有功能,丰富的位操 作指令为逻辑运算、逻辑控制以及各种状态标志的设置提 供了方便。
相关寄存器
寻址空间 程序存储器 片内RAM低128B和SFR
R0~R7,A,B,DPTR, CY @R0,@R1,SP @R0,@R1,@DPTR @A+DPTR,@A+PC PC+rel CY,SFR 片内RAM 片外RAM 程序存储器 程序存储器 片内RAM的位寻址区 可以位寻址的特殊功能寄 存器
③注意直接地址和位地址之间的区别。例如: MOV A,30H MOV C,30H 第一条指令是将直接地址30H中的内容(8位二进制 数)送给累加器A;第二条指令是将位地址30H中的内容 (1位二进制数)送给进(借)位标志位CY。 ④直接寻址是访问特殊功能寄存器的惟一方法。
(3)寄存器寻址 此处的寄存器指R0~R7、累加器A、通用寄存器B、 数据指针寄存器DPTR和位累加位C(即进位标志位C)。 寄存器寻址是指在指令中将指定寄存器的内容作为 操作数。因此指定了寄存器就能得到了操作数。例如: MOV A,R0 此指令的功能是将R0中的内容送入累加器A中(如图 3-3所示),即 (A)←(R0) 如通用寄存器R0中的内容为80H,则执行该指令后, 累加器A中的内容为80H。
3 80C51单片机指令系统 单片机指令系统
3.1 概述
指令是计算机能够直接识别和执行的命令,一台计 算机所能执行的全部指令的集合称为指令系统。80C51系 列单片机完全继承了MCS-51的指令系统,共有111条指 令。
80c51单片机定时器计数器工作原理
![80c51单片机定时器计数器工作原理](https://img.taocdn.com/s3/m/0b3c93b7c9d376eeaeaad1f34693daef5ef71302.png)
80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。
以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。
定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。
2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。
计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。
3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。
例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。
在计数模式下,定时常数由外部事件发生的时间间隔决定。
4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。
中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。
5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。
6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。
为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。
80c51
![80c51](https://img.taocdn.com/s3/m/218b906a561252d380eb6e67.png)
ACC B
指令寄存器IR 指令译码器ID DPH
缓冲器 DPL ROM 4K字节
暂存器1
暂存器2
PC增量器 PSW ALU 振荡器 定时与控制 程序计数器PC 地址寄存器AR
XTAL2 VSS XTAL1 EA RST ALE PSEN
11
2.4.1 80C51的内部结构 一、80C51的微处理器(CPU) (1)运算器 累加器ACC ; 寄存器B ; 程序状态字寄存器PSW 。 (2)控制器 程序计数器PC ; 指令寄存器IR ; 定时与控制逻辑。
(3)在功能上,该系列单片机有基 本型和增强型两大类 基本型: 8051/8751/8031 80C51/87C51/80C31 增强型: 8052/8752/8032 80C52/87C52/80C32
1
(4)在片内程序存储器的配置上, 该系列单片机有三种形式,即掩膜ROM、 EPROM 和 ROMLess( 无 片 内 程 序 存 储 器)。如: ﹡80C51有4K字节的掩膜ROM; ﹡87C51有4K字节的EPROM ; ﹡80C31在芯片内无程序存储器。
23
2.5.1 80C51的程序存储器配置
PSEN 0000H EA=1 内部 0FFFH 1000H 外部 FFFFH FFFFH EA=0 外部
复位入口 INT0中断入口 T0中断入口 INT1中断入口 T1中断入口 串口中断入口
0000H 0003H 000BH 0013H 001BH 0023H ROM
80H
间接寻址 直接寻址 访问 访问 FFH
FFFFH RD WR
25
一、工作寄存器区
低端32个字节分成4个工作寄存器组,每组8个单 元。当前工作寄存器组的机制便于快速现场保护。
第3章 80C51系列单片机指令系统
![第3章 80C51系列单片机指令系统](https://img.taocdn.com/s3/m/b2057adbad51f01dc281f163.png)
变址寻址示图
内部ROM 内部RAM
3AH 0046H 65H
操作数
寄存器
目的地
3AH 0046H
A
DPTR PC
基址寄存器 0012H
变址寄存器 34H
MOVC A, @A+DPTR
• 6.位寻址方式
•
80C51具有位处理功能,可以对数据位进行操作。 位寻址指令中应直接使用位地址,它属于直接寻址方式, 因此与直接寻址执行过程基本相同,但参与操作的数据 是1位,而不是8位。
指令一般由两部分组成,即操作码(表示指令的操作功能)和 操作数(参加操作的数据或数据地址)。 •由于计算机只能识别二进制数,所以计算机的指令均由二进制 代码组成。为了阅读和书写方便,常把它写成十六进制形式, 通常称这样的指令为机器指令。
• 机器语言级指令格式: • 1、单字节指令:对于单字节指令有两种情况:一种是 操作码、操作数均包含在这一个字节之内;另一种情况 是只有操作码无操作数;格式为: • 操作码 • 如:“MOV A,R0”所对应的机器语言指令为“E8H”。 • 2、双字节指令:对于双字节指令,均为一个字节是操 作码,一个字节是操作数;格式为: • 操作码 操作数 • 如:“MOV A,20H”所对应的机器语言指令为“E520H”。 • 3、三字节指令:对于三字节指令,一般是一个字节为 操作码,二个字节为操作数;格式为: • 操作码 第一操作数 第二操作数 • 如:“MOV 20H,#46H”所对应的机器语言指令为 “E52046H”。()
• 为了便于记忆和使用,制造厂家对指令系统的每一条指令都 给出了助记符。助记符是根据机器指令不同的功能和操作对 象来描述指令的符号。由于助记符是用英文缩写来描述指令 的特征,因此它不但便于记忆,也便于理解和分类。这种用 助记符形式来表示的机器指令称为汇编语言指令。计算机的 指令一般用汇编语言指令来表示。 • 80C51汇编语言指令格式如下: • [标号:] 操作码 [目的操作数]
单片机原理与接口技术 80C51 单片机的硬件结构
![单片机原理与接口技术 80C51 单片机的硬件结构](https://img.taocdn.com/s3/m/c1930cc85f0e7cd185253664.png)
(2)控制器电路 控制器电路包括程序计数器PC、PC加1寄存器、指令
寄存器、指令译码器、数据指针DPTR、堆栈指针SP、 缓冲器以及定时与控制电路等。控制电路完成指挥控制 工作,协调单片机各部分正常工作。
2. 存储器 80C51单片机的存储器包括数据存储器和程序存储
任一时刻,cpu只能使用其中的一组寄存器,称为当 前工作寄存器组,由程序状态字寄存器PSW中的RS1, RS0位的组合来决定。没有选中的单元也可作为一般的 数寄据存缓器存:使用。系统上电复位时,默认选中第0组寄存器。 1、可用8位地址寻址; 2、在指令中既可用名称表示,也可以使用单元地址表示。
docin/sundae_meng
串行通信接口,可以同时发送和接收数据。
docin/sundae_meng
6. 中断控制系统
80C51共有5个中断源,即外中断2个,定时/计数中断2个, 串行中断1个。
7. 时钟电路
80C51芯片内部有时钟电路,但晶体振荡器和微调电容 必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的 频率范围为1.2MHz~33MHz,典型取值为6MHz。
器装备、飞机导航系统。 (6)计算机外部设备及电器方面:打印机、硬盘驱动器、
彩色与黑白复印机、磁带机等。 (7)多机分布式系统:可用单片机构成分布式测控系统,
它使单片机应用进入了一个全新的阶段。 (测控系统,智能仪表,智能玩具,计算机外设)
docin/sundae_meng
4.典型单片机产品简介 (1) MCS-51单片机系列
2、位寻址区 在工作寄存器后的16个数据单元(20H~2FH),它
们既可以作为一般的数据单元使用,又可以按位对每个单 元进行操作,因此这16个数据单元又称作位寻址区。位寻 址区共计128位,其位地址为00H~7FH。
第3章 80c51单片机教程
![第3章 80c51单片机教程](https://img.taocdn.com/s3/m/4b23f719a300a6c30c229f54.png)
•这组指令的功能是把源字节送入Ri内容为地址的 单元,源字节寻址方式为立即寻址、直接寻址和 寄存器寻址(因目的字节采用寄存器间接寻址, 故源字节不能是寄存器及其间址寻址)。 例:若(R1)=30H,(A)=20H,执行指令 MOV @R1,A 后,(30H)=20H。
3.3.2
特殊传送指令
特殊传送指令的操作符为: MOVC、MOVX、PUSH、POP、XCH、 XCHD和 SWAP。 功能分别为:ROM查表、外部RAM读 写、堆栈操作和交换指令
3.3.1 一般传 送指令
一、16位传送
这条指令的功能是将源操作数data16(通 常是地址常数)送入目的操作数DPTR中。源 操作数的寻址方式为立即寻址。 例如: 执行指令 MOV DPTR,#1234H 后 (DPH)=12H,(DPL)=34H。
二、8位传送
目的字节 A Rn direct @Ri --源字节 A Rn direct @Ri #data
3.2 80C51的寻址方式
• 是寻找操作数或指令的地址的方式。
• 80C51的寻址方式有七种。即:寄存器寻 址、直接寻址、寄存器间接寻址、立即寻 址、基址寄存器加变址寄存器变址寻址、 相对寻址和位寻址。 若不特别声明,我们后面提到的寻址方式 均指源操作数的寻址方式。
3.2.1
寄存器寻址
操作数存放在寄存器中,指令中直接给出该寄存器名称的 寻址方式。可以获得较高的传送和运算速度。 寄存器可以是:R0~R7;A;B(以AB寄存器对形式出 现);DPTR。
MOV
在5种源字节中,只有#data不能用作目的字节。 所以可以用4种目的字节为基础构造4类指令。相应 的源字节选择依据是: •源字节与目的字节不相同(除direct外); •寄存器寻址与寄存器间接寻址间不相互传送。
第三章-80C51单片机的指令系统
![第三章-80C51单片机的指令系统](https://img.taocdn.com/s3/m/7995e9391611cc7931b765ce0508763231127495.png)
第三章-80C51单片机的指令系统80C51单片机是一种常用的微控制器,广泛应用于嵌入式系统中。
其指令系统是该单片机的核心组成部分,决定了其功能和特性。
在本文中,我们将深入探讨80C51单片机的指令系统,包括其指令格式、指令集以及指令的执行过程。
一、指令格式80C51单片机的指令格式通常由若干个字节组成,每个字节又分为几个字段。
具体而言,一条指令通常包括操作码、目标操作数和源操作数等字段。
其中,操作码表示指令的类型和功能,目标操作数表示指令操作的目标寄存器或内存单元,源操作数表示指令操作的源寄存器或内存单元。
以MOV指令为例,其指令格式如下:| 操作码 | 目标操作数 | 源操作数 |其中,操作码为一个字节,表示MOV指令;目标操作数和源操作数也为一个字节,分别表示指令操作的目标和源。
二、指令集80C51单片机的指令集丰富多样,包括数据传送指令、算术运算指令、逻辑运算指令、分支指令等等。
这些指令可以实现各种功能,满足不同的应用需求。
1. 数据传送指令数据传送指令用于将数据从一个寄存器或内存单元复制到另一个寄存器或内存单元。
例如,MOV指令可以实现数据传送操作。
2. 算术运算指令算术运算指令用于进行加法、减法、乘法和除法等运算。
例如,ADD指令可以实现两个操作数的相加操作。
3. 逻辑运算指令逻辑运算指令用于进行与、或、非、异或等逻辑运算。
例如,AND 指令可以实现两个操作数的与运算。
4. 分支指令分支指令用于实现循环、条件判断和跳转等功能。
例如,JMP指令可以无条件跳转到指定的地址。
除了上述指令之外,80C51单片机还支持位操作指令、移位指令、输入输出指令等。
三、指令执行过程在80C51单片机中,指令的执行过程包括取指、译码、执行以及访问存储器等阶段。
1. 取指阶段取指阶段是指令执行的第一步,其目的是从存储器中读取指令。
取指的过程通常涉及到程序计数器的操作,确定下一条要执行的指令地址。
2. 译码阶段译码阶段是将取到的指令进行解码,将其转换为内部指令表示形式,以便后续的执行。
微机原理 单片机 第3章 80C51的指令系统
![微机原理 单片机 第3章 80C51的指令系统](https://img.taocdn.com/s3/m/26f6a3806529647d26285202.png)
(2)指令编码字节少。单字节指令有49 条,双字节指令有45条,三字节指令仅 有17条。 (3)位操作指令丰富,这使得80C51单 片机的控制功能方便灵活。
<
>
返回
三、指令编码格式
[标号]: 操作码 [目的操作数] [,源操作数] [;注释]
标号:表示指令的符号地址,可作为转移的目 标地址。 操作码:用来规定该指令要执行的操作性质, 如MOV,ADD,ORL,LJMP等,操作码通常可用1个 字节表示。 操作数:表示在执行过程中所完成的操作对象, 根据指令功能,可有0、1、2、3个操作数,用12个字节表示。 注释:方便用户阅读。
< > 返回
二、指令分类
80C51单片机系统共有111条指令,按指令 功能分为: ♦数据传送(28条) ♦算术运算(24条) ♦逻辑运算(25条) ♦控制转移(17条) ♦位操作指令(17条) 其指令系统的特点是: (1)执行时间短。单机器周期指令有64条,双 机器周期指令有45条,而四机器周期指令仅有 乘、除法2条。当主频为12MHz时,典型指令执 行时间为1us。
+5V C3 K R1 RST
89C51
相应程序:MOV P1,#00H;灯亮
ACALL delay ;延时 MOV P1,#01H;灯灭 ACALL delay
学习指导和要求
• 理解和掌握指令的 三种编码格式; • 熟练掌握七种寻址 方式; • 熟记各种类型的指 令格式及功能,并 能编写简单程序。
80C51的机器指令按编码的字节数可分为 如下三种指令编码格式:
1、单字节指令(49条)
7 0
opcode 7 opcode 3 2 reg 0 0 0 0 0 1 1 1 1
[计算机硬件及网络]第3章-80C51单片机的存储器结构
![[计算机硬件及网络]第3章-80C51单片机的存储器结构](https://img.taocdn.com/s3/m/f3c2bb685627a5e9856a561252d380eb629423b7.png)
般用于存放的是外部数据存储器和程序存储器的地 址(外部数据存储器的地址也是16位)。存储器结 构见图3-7所示。
图3-7 外部数据存储器结构
FFFFH
外部数据 储存器64K (SRAM)
0000H
3.3.3 特殊功能寄存器(SFR)
80C51系列单片机内的锁存器、定时器、 串行口、数据缓冲器及各种控制寄存器、状 态寄存器都以特殊功能寄存器(SFR)的形 式出现,它们离散地分布在高128位片内 RAM 80H~FFH中。51子系列共有18个特殊 功能寄存器,占用21个单元,其余107个单 元用户不好使用(AT89C51)。
★ 这32个单元可以使用“直接寻址” 方 式,也可使用“寄存器寻址”方式来进行访 问。
★ 4组中的R0和R1除了“直接寻址”和 “寄存器寻址”外,还可采用“寄存器间接 寻址”方式来访问。
(2) 位寻址区(20H~2FH)
这16个RAM 单元具有双重功能。它们既 可以像普通RAM 单元一样按字节存取,即 “直接寻址(direct)”也可以对每个RAM 单元中的任何一个二进制位单独存取,这就 是位寻址(bit),80C51单片机为这些区域专 门设置了位处理器(一个1位的CPU),用于 这些空间的访问,如图3-6所示。
在指令系统中对于这些空间的访问有以下方法:
● 可以采用“直接寻址”的方式去访问这16个单元; 如:MOV A , 20H (MOV A , direct)
● 也可以采用“位寻址(bit)”的方式去访问这128个二进 制位。
如:MOV C , 00H (MOV C , bit) 该指令就是把00H中的一个二进制数送到C中。 指令中“bit”,指的就是位地址“00H~7FH”。
第3章80C51系列单片机指令系统
![第3章80C51系列单片机指令系统](https://img.taocdn.com/s3/m/8a13a424a5e9856a56126035.png)
注意:
① 变址寻址方式只能对ROM(包括片外、片内)寻址,因 此只能用于读取数据,而不能用于存放数据,主要用 于查表性质的访问 ② 变址寻址指令有:(单字节两周期指令)
MOVC
MOVC
A,@A+PC
A,@A+DPTR
PC值不变
JMP
@A+DPTR
→PC值变
③ A中的数是无符号数,范围00H~FFH
寻址方式与相应的存储器空间
寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址 程序存储器ROM 片内RAM低128字节,特殊功能寄存器SFR,程序存储器ROM 工作寄存器R0~R7,A,AB,DPTR,Cy 片内RAM低128字节(@R0、@R1、SP),片外RAM(@R0、 @R1、@DPTR) 程序存储器(@A+PC,@A+DPTR) 程序存储器当前PC−128 B~+127 B(字节)范围(PC+rel)
7.bit
位地址。代表片内RAM中的可寻址位00H~7FH及SFR 中的可寻址位。
8.其他符号
DPTR:数据指针,可用作16位的地址寄存器。 A:累加器。 B:专用寄存器,用于乘、除指令中。 C:进位标志。 /bit:表示对该位取反操作。 (X):X中的内容。 ((X)):由X所指出的单元中的内容。
例如:下列指令均采用的是立即数寻址方式: MOV P1, #55H ;将立即数55H送到P1口 MOV 20H, #55H ;将立即数55H送到20H单元中 MOV A, #0F0H ;将立即数0F0H送到累加器A中 MOV R4, #0FH ;将立即数0FH送到寄存器R4中 MOV R0, #20H ;将立即数20H送到寄存器R0中 ANL A, #0FH ;累加器A的内容与立即数0FH进行逻辑“与”操作 ORL A, #0F0H ;累加器A的内容与立即数0F0H进行逻辑“或”操作
第3章 80C51单片机的寻址方式和指令系统
![第3章 80C51单片机的寻址方式和指令系统](https://img.taocdn.com/s3/m/cb4961f1941ea76e58fa04bc.png)
(2)算术运算类指令(24条);
(3)逻辑运算及移位类指令(24条); (4)控制转移类指令(17条); (5)位操作类指令(17条)。
6
本节内容
3.1.1 汇编语言指令格式 3.1.2 机器码的三种格式 3.1.3 指令中常用符号说明
7
3.1.1 汇编语言指令格式
3.4.1 加法指令 3.4.2 减法指令 3.4.3 乘、除法指令
3.5 逻辑运算及移位类指令(24条)
3.5.1 逻辑与运算指令 3.5.2 逻辑或运算指令
3
第2章:80C51系列单片机基本结构及原理
3.5.3 逻辑异或运算指令 3.5.4 累加器清零、取反指令 3.5.5 循环移位指令
目录
3.6 控制转移类指令(17条)
解:指令执行过程如图3-3,结果:(A)= 60H 。 指令在ROM中的机器码为E8H,指令对应的机器码是:E8H=1110 1000B,二进 制的后三位000就是隐含的R0寄存器的编码,如果是R7其编码为111。 由于寄存器在CPU内部,所以采用寄存器寻址可以获得较高的运算速度。
31
32
能实现这种寻址方式的寄存器有: (1)工作寄存器 R0~R7 (4组工作寄存器均可) (2)累加器A (注:使用A为寄存器寻址,使用ACC为直接寻址) (3)寄存器B (注:以AB寄存器对的形式出现时为寄存器寻址,单独出现
一条完整的汇编语言指令通常由标号、操作码、操作数 (一般包括目的操作数和源操作数)及指令的注释构成。 指令格式: [标号:] <操作码> [操作数] [,操作数][;注释]
说明:
①在一条指令中,方括号中的内容可有可无,尖括号中的内容 必须有。
80C51单片机内部结构和工作原理
![80C51单片机内部结构和工作原理](https://img.taocdn.com/s3/m/4ac785e6dc3383c4bb4cf7ec4afe04a1b071b0bf.png)
⒋ I/O线
80C51共有4个8位并行I/O端口:P0、P1、P2、 P3口,共32个引脚。P3口还具有第二功能,用于特 殊信号输入输出和控制信号(属控制总线)。
P3.0 —— RXD:串行口输入端; P3.1 —— TXD:串行口输出端; P3.2 —— INT0:外部中断0请求输入端; P3.3 —— INT1:外部中断1请求输入端; P3.4 —— T0:定时/计数器0外部信号输入端; P3.5 —— T1:定时/计数器1外部信号输入端; P3.6 —— WR:外RAM写选通信号输出端; P3.7 —— RD:外RAM读选通信号输出端。
度比一般内RAM要快,指令字节比一般直接寻址 指令要短,还具有间址功能,能给编程和应用 带来方便。
工作寄存器区分为4个区:0区、1区、2区、3 区。每区有8个寄存器:R0~R7,寄存器名称相 同。但是,当前工作的寄存器区只能有一个,由 PSW中的D4、D3位决定。
⒉ 位寻址区
⑴地址: 从20H~2FH共16字节(Byte,缩写为英文大写字
Intel MCS-52 子系列
8032 8052
8752
256
80C32 80C52 87C52 字节
(8K字节) (8K字节)
3x16
4x8位
1
6
1051(1K)/ 2051(2K)/ 4051(4K)
ATEML
(20条引脚DIP封装)
128
2
15
1
5
89C系列
(常用型)
89C51(4K)/ 89C52(8K) (40条引脚DIP封装)
04H
03H
80C51的基本结构
![80C51的基本结构](https://img.taocdn.com/s3/m/b42626687e21af45b307a864.png)
80C51的基本结构80C51的引脚封装时钟电路总线控制CPUROM/EPROM/FLASH4K 字节RAM 128字节 SFR 21个定时/计数器2个中断系统5中断源、2优先级串行口 全双工 2个并行口 4个RST EAALE PSENXTAL2XTAL1P0 P1 P2 P3V CCV SS一、80C51的内部结构:1.80C51的微处理器(CPU)(1)运算器:累加器ACC ;寄存器B ;程序状态字寄存器PSW 。
(2)控制器:程序计数器PC ;指令寄存器IR ;定时与控制逻辑2.80C51的片内存储器在物理上设计成程序存储器和数据存储器两个独立的空间:(1)内部ROM容量4K字节,范围是:000H~0FFFH(2)内部RAM容量128字节,范围是:00H~7FH3.80C51的I/O口及功能单元(1)四个8位的并行口,即P0~P3。
它们均为双向口,既可作为输入,又可作为输出。
每个口各有8条I/O线。
(2)有一个全双工的串行口(利用P3口的两个引脚P3.0和P3.1);(3)有2个16位的定时/计数器;(4)有1套完善的中断系统。
4.80C51的特殊功能寄存器(SFR)内部有SP,DPTR(可分成DPH、DPL两个8位寄存器),PCON,…,IE,IP等21个特殊功能寄存器单元,它们同内部RAM的128个字节统一编址,地址范围是80H~FFH。
增强型单片机的SFR有26个字节单元,所增加的5个单元均与定时/计数器2相关。
二、80C51的时钟与时序1.80C51的时钟产生方式可分为内部时钟和外部时钟2.80C51的时钟信号一个机器周期包含12个晶荡周期或6个时钟周期,指令的执行时间称作指令周期(单、双周期)。
各指令的微操作在时间上有严格的次序,这种微操作的时间次序我们称作时序。
三、80C51单片机的复位复位目的是使单片机或系统中的其它部件处于某种确定的初始状态。
复位有上电复位和上电复位和按键均有效的复位。
第3章 80C51系列单片机指令系统
![第3章 80C51系列单片机指令系统](https://img.taocdn.com/s3/m/7755d29551e79b896802262a.png)
⒉ 16位数据传送指令
⒊ 外RAM传送指令.
(2条)
(4条)
⒋ 读ROM指令
⒌ 堆栈操作指令
(2条)
(2条)
⒍ 交换指令
(5条)
23
⒋ 读ROM指令(2条)
① MOVC
② MOVC
A,@A+DPTR
A,@A+PC
;(A+DPTR)→A
;PC+1→PC,(A+PC)→A
24
如:MOVC A,@A+DPTR 设DPTR=2000H,A=E0H
A= R0=
20
⒊ 外RAM传送指令(4条)
① ② ③ ④ MOVX MOVX MOVX MOVX A,@Ri A,@DPTR @Ri,A @DATR,A ;(Ri)→A,i=0、1 ;(DPTR)→A ;A→(Ri),i=0、1 ;A→(DATR)
21
22
一、数据传送类指令
⒈ 内RAM数据传送指令 (15条)
SBR:MOV SP,#30H ;设栈底 PUSH A ;保护现场 PUSH B MOV A,#0 MOV B,#01 … ;恢复现场 POP B POP A RET
堆栈操作示意:
片内 RAM 34H × 33H × 32H × 56 31H × 02 30H ×
SP→ SP→ SP→
33
堆栈指令使用形式
⒊ 外RAM传送指令.
(2条)
(4条)
⒋ 读ROM指令
⒌ 堆栈操作指令
(2条)
(2条)
⒍ 交换指令
(5条)
29
⒌ 堆栈操作指令(2条)
① PUSH direct ;SP+1→SP,(direct)→(SP)
第3章 80C51系列单片机的硬件基础知识
![第3章 80C51系列单片机的硬件基础知识](https://img.taocdn.com/s3/m/eda55ae404a1b0717fd5dd66.png)
16:07
26
80C51单片机引脚功能总结:
1) 单片机功能多,引脚数少,致使许多引脚具有第二功能。 2) 单片机对外三总线的构成: 80C51单片机对外三总线构成如图3-8所示。由P2、P0组成16 位地址总线,P2作为高8位地址总线A8~A15,P0作为低8位 地址总线A0~A7。因是16位地址线,所以片外存储器的寻址 范围达到64K字节。 由P0分时复用为数据总线。 PSEN 、 EA 与P3口中引脚组成控制总线。 由ALE、RST、
16:07
单片机芯片的命名规则
11
3.1.3 80C51系列单片机的选择依据
不同型号的80C51单片机,内部资源或多或少有些 差异,我们在选择时,可从以下几个方面考虑: 1. 程序存储器 2. 数据存储器 3. 功耗 4. 体积
16:07
12
1. 程序存储器
程序存储器用于存放单片机应用系统的目标程序。通过 编程器或直接在系统编程(ISP)将目标程序写入单片机。
52子序列 (增强型)
在不同型号的MCS-51系列单片机中,除片内存储器(ROM、RAM) 容量与种类、定时器/计数器的个数、中断源的数量有所不同外, 指令系统和芯片引脚是完全兼容的。
16:07 5
它们的主要硬件特性: (1) 8位CPU。 (2) 片内带振荡器,振荡频率fosc范围为1.2~12MHz;可有时钟输出。
(14) 片内采用单总线结构。
(15) 用单一+5V电源。
16:07
7
早期的MCS-51系列单片机是采用HMOS工艺制造的,具有高速度、 高密度的特点,但功耗较大。
出于对降低功耗的要求,MCS-51系列单片机后来推出的产品采用
了CMOS和HMOS结合的CHMOS工艺。
第3章80C51单片微机的指令系统
![第3章80C51单片微机的指令系统](https://img.taocdn.com/s3/m/71b3d23267ec102de2bd89f2.png)
(4)以间接地址为目的操作数 MOV @Ri, direct MOV @Ri, #data MOV @Ri, A
累加器A direct 直接寻址 Rn data @Ri间址
32
2、外部数据传送指令(7条) (1)16位数据传送指令 MOV DPTR, #data16 (2)访问外部ROM的传送指令 MOVC A, @A+DPTR MOVC A, @A+PC 例:已知累加器A中有一个0~9之间的整数, 试用查表指令编写查找出该数平方值的程序。 解:确定平方表,并设其首地址为2000H, 如图所示。
Δ部分特殊功能寄存器SFR,如累加器A,通用 寄存器B、数据指针DPTR等。
INC Rn
15
PSW
RS1 RS0
片内RAM 00H
程序存储器
RS1RS0=10B
24H +1
INC R0
PC
00001rrr 000 0 1 000
10H 25H
rrr=000B
16
MOV A, #88H
程序存储器
A
9
(2)算术运算指令(24条) 功能:用于对两个操作数进行加、减、乘、除等 算术运算。在两个操作数中,一个应放在累加器A 中,另一个可以在某个寄存器或片内RAM单元中, 也可以存放在指令码的第二和第三字节中。 (3)逻辑操作和环移指令 逻辑操作指令用于对两个操作数进行逻辑乘、逻辑 加、逻辑取反和异或等操作,大多数指令也需要把 两个操作数中的一个预先放入累加器A,操作结果 也在累加器A中。 环移指令用于对累加器A中的数进行环移。环移指 令有左环移和右环移之分,也有带Cy和不带Cy之分。
8位带符号数,-128~127
(1)双字节转移类指令(6条) (2)三字节转移类指令(7条)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21:52
9
图3-8 80C51单片机对外三总线构成
21:52 10
四个I/O端口P0、P1、P2、P3的作用总结: P2口负责输出高8位地址, P0口以分时方式承担输出低8位地址信息和数据输入/输出的 双重任务。 P3口则作为和外设沟通的控制线, P1口可随意用作I/O口。 51系列单片机的对外三总线总结: AB(地址总线): P2口负责高8位地址, P0口输出低8位地址。 DB(地址总线): P0口作为8位数据输入/输出口。 CB(地址总线): P3口作为和外设沟通的控制线。
各个子系列所含有的芯片型号及其硬件资源的区别如表3-1所示。
片内 RAM 128B 128B 128B 256B 256B 定时器/计数 中断源数量 器 2×16位 2×16位 2×16位 3×16位 3×16位 5 5 5 6 6
MCS-51系列
型号 8031
片内ROM 无 4KB掩膜ROM 4KB EPROM 无 8KB掩膜ROM
51子序列 (基本型)
8051 8751 8032 8052
52子序列 (增强型)
在不同型号的MCS-51系列单片机中,除片内存储器(ROM、RAM) 容量与种类、定时器/计数器的个数、中断源的数量有所不同外, 指令系统和芯片引脚是完全兼容的。
21:52 1
80C51单片机引脚主要分为主电源引脚、外接晶体 引脚 、输入/输出引脚与控制引脚四类,以PDIP 封装的单片机为例,引脚介绍如下: 1. 主电源引脚(2条) 2. 外接晶体引脚(2条) 3. 输入/输出(I/O)引脚(32条) 4. 控制引脚(4条)
21:52
15
3. 并行输入/输出端口(I/O口)
80C51片内有4个8位的I/O接口:P0、P1、P2和P3,每个I/O接 口内部都有一个8位锁存器和一个8位驱动器,既可用作输出 口,也可用作输入口。 80C51单片机没有专门的I/O口操作指令,而是把I/O口当作寄 存器使用,通过传送指令实现数据的输入和输出操作。
21:52
8
80C51单片机引脚功能总结:
1) 单片机功能多,引脚数少,致使许多引脚具有第二功能。 2) 单片机对外三总线的构成: 80C51单片机对外三总线构成如图3-8所示。由P2、P0组成16 位地址总线,P2作为高8位地址总线A8~A15,P0作为低8位 地址总线A0~A7。因是16位地址线,所以片外存储器的寻址 范围达到64K字节。 由P0分时复用为数据总线。 PSEN 、 EA 与P3口中引脚组成控制总线。 由ALE、RST、
21:52 22
(3) 堆栈及数据缓冲区(30H~7FH) 51子系列的内部RAM的堆栈及数据缓冲区共有80个单元, 字节地址范围为30H~7FH,52子系列的内部RAM的堆栈 及数据缓冲区共有208个单元,字节地址范围为30H~FFH, 用于存放用户数据或作为堆栈区使用。 堆栈区是存储器中一个特殊的存储区,数据按照“先进后出”或 “后进先出”的方式进行存取操作。
21:52
23
(4) 特殊功能寄存器 特殊功能寄存器SFR(Special Function Register)也称专用寄存器 (不包括PC),主要用于管理片内和片外的功能部件,如定时器/ 计数器、中断系统、I/O接口等。 SFR的编址从80H~FFH,但是并没有128个,只有21个(51子系 列)或26个(52子系列),在80H-FFH之间离散分布。 每个SFR都分配有符号名和字节地址,可对其进行直接寻址。 表3-10是特殊功能寄存器一览表,其中字节地址能够被8整除的 SFR(字节地址的末位是0或8H)每一位都具有位名称和位地址, 能够进行位寻址。
PSW.0
— P
21:52
25
PSW.7 Cy AC F0 RS1 RS0 OV —
PSW.0 P
(1) 进位标志位 Cy(PSW.7) : 8 位加法(减法)运算时,如果运算结果 的最高位D7有进位(借位),则C=1,否则C=0 C也为位累加器 (2)辅助进位标志位Ac(PSW.6): 8位加法运算时,如果低半字节的最高位 D3有进位,则 AC=1,否则AC=0;8位减法运算时,如果D3有借位, 则AC=1,否则AC=0。 Ac在作BCD码运算时有用 (3)软件标志F0(PSW.5) :是用户定义的一个状态标志。
组, 每组有8个工作寄存器R0~R7, 共32个内部RAM单元。
21:52
19
同一时刻只有一个组工作,CPU根据程序状态字寄存器PSW中 的RS0和RS1的值(由用户设定)来选择当前的工作组,如表3-8 所示 。 表3-8 工作寄存器地址表
21:52
20
(2) 位寻址区(20H~2FH) 位寻址区共有16字节,128位,位地址为00H~7FH。 CPU能直接寻址这些位,进行置1、清0、求“反”、传送 和
21:52 11
3.3 80C51系列单片机的编程结构
编程结构,即是从编程人员角度所看到的单片机 内部结构,该结构便于人们从软件编程的角度去了 解单片机系统的操作和运行。 80C51系列单片机的编程结构包括中央处理器 (CPU)、 内部存储器(ROM、RAM)、并行I/O接口、片内外设 (定时器/计数器、中断系统、串行口)、振荡器等部 分,各部分之间通过片内总线进行连接。80C51系列 单片机内部采用单总线结构,地址、数据与控制信息 21:52 12 都通过一组总线流通。
21:52 24
1) 累加器A(Accumulator) A是8位寄存器,是最常用的寄存器。
2) 寄存器B
寄存器B是8位寄存器,是专门为乘除法指令设计的。 3) 程序状态字PSW (Program Status Word) 程序状态字PSW是8位寄存器,用于存放程序运行的状态信息。
PSW.7
Cy AC F0 RS1 RS0 OV
逻辑运算等位操作,这就是我们常说的80C51单片机所具有
的布尔处理功能。在程序设计时,还常常将这些位用作软件 标志位。
21:52
21
注意:
① 位寻址区的存储单元既有字节地址又有位地址,因 此既可作为一般存储单元进行字节寻址,也可对它 们进行位寻址。 ② 位寻址区的位地址范围为00H~7FH,字节地址范 围是20H~2FH,有地址重叠现象,进一步观察还可 发现,内部RAM低128个单元的字节地址范围也为 00H~7FH,整个存储区的地址都是重叠的,但 80C51单片机专门为位操作设置了一类指令,因此 在实际应用中可以通过指令的类型来区分字节地址 和位地址。
21:52 14
片内数据存储器为随机存取存储器,用于存放可读写的数据, 常称为片内RAM。80C51系列单片机的片内RAM共有128/256B。
片内程序存储器为只读存储器,用于存放程序指令、常数及数据 表格,常称为片内ROM。80C51系列单片机内部有0/4/8KB的 ROM。用于存放程序,也可以存放一些原始数据和表格等。
21:52 13
2. 内部存储器
80C51系列单片机的存储器有片内和片外之分。 片内存储器集成在芯片内部; 片外存储器(外部存储器)是专用的存储器芯片,需要通过单 片 机引脚提供的三总线(即AB、DB和CB)与80C51连接。 无论片内还是片外存储器,都可分为程序存储器和数据存储器。 由于80C51单片机采用哈佛结构,因此程序存储器和数据存储 器相互独立,有各自的寻址空间。
21:52
5
(3) P2口(21脚~28脚):P2口的8条引脚也有两种不同的 功能: 1) 准双向输入/输出接口,每一位也可独立控制。
2) 在接有片外存储器或扩展I/O接口时,P2口作为高8位地
址总线。
21:52
6
(4) P3口(10脚~17脚):P3口的8条引脚也有两种不同的功能: 1) 准双向输入/输出接口,每一位同样可独立控制。
21:52
2
1. 主电源引脚(2条)
VCC(40脚)和GND(20脚):分别接电源的正端和地端。 不同型号单片机接入对应电压的电源,常压为+5V、低压为 +3.3V。
2. 外接晶体引脚(2条)
XTAL1(19脚)、XTAL2(18脚):XTAL1为片内振荡电 路的输入端,XTAL2为片内振荡电路的输出端。80C51单片 机的时钟有两种方式,一种是片内时钟振荡方式,需在这两 个脚外接石英晶体和振荡电容;另一种是外部时钟方式,即 将XTAL1接地,外部时钟信号从XTAL2脚输入。
21:52
16
4. 片内外设
(1) 定时器/计数器 51子序列单片机中有两个16位的定时器/计数器,用于实现定 时或外部计数的功能。 (2) 中断系统 中断系统的主要作用是对来自单片机内部或外部的中断请求进 行处理,完成中断源所要求的任务。 51子系列共有5个中断源,其中外部中断源有2个,内部中断源 有3个:2个定时器/计数器中断源和1个串行口中断源。全部中 断可分为高级和低级两个优先级别。 (3) 串行口 80C51单片机有一个全双工可编程串行口,用于实现单片机与外 部设备之间的串行数据传送。
2) 作为低8位的地址/数据复用总线。
21:52
4
(2) P1口(1脚~8脚):分别为P1.0~P1.7,其中P1.7为最 高位,P1.0为最低位。P1口引脚也有两种不同的功能: 1) 作为准双向I/O口使用。
2) 对52子序列单片机,P1.0引脚的第二功能为T2定时器/计
数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装 触发,即T2的外部控制端。
1. 中央处理器 (CPU)
80C51系列单片机是8位CPU,它是整个单片机的核心部件, 主要完成运算和控制功能,由运算器和控制器组成。 (1) 运算器 运算器由算术逻辑单元(ALU)、累加器A(Accumulator )、 暂存器TMP以及程序状态字PSW组成,用于算术运算和逻辑 运算。 (2) 控制器 控制器由程序计数器PC(Program Counter)、指令寄存器 IR(Instruction Register)、指令译码器ID( Instruction Decoder) 、定时与控制电路等部分组成使单片机各部分协调工作,从而 完成指令规定的操作。