第2章 51系列单片机指令系统
第02章 MCS-51单片机的结构
CY
AC
F0
RS1 RS0
OV
/
P
PSW位地址
D7H D6H D5H D4H CY AC F0 RS1
D3H RS0
D2H D1H OV
D0H P
CY:进位标志。用于表示Acc.7有否向更高位进位。 加减运算时,保存最高位进位、借位状态。 AC:半进位标志。用于表示Acc.3有否向Acc.4进位。 例:78H+97H 0111 1000 +1001 0111 1 0000 1111
ALU
定时与控制 程序地址寄存器AR
CPU
。
2.2.2 控制器
控制器由程序计数器PC、指令
寄存器和指令译码器、定时和控
制逻辑电路。
相对控制器而言,运算器接受控 制器的命令而进行动作。
1).程序计数器PC
※ PC不属于特殊功能寄存器,不可访问,在物理结构 上是独立的。 ※ 16位的地址寄存器,用于存放下一字节指令的地址, 可寻址64KB的程序存储器空间。 ※ PC的基本工作方式有:
⑴ 自动加1。CPU从ROM中每读一个字节,自动执行 PC+1→PC; ⑵ 执行转移指令时,PC会根据要求修改地址; ⑶ 执行调用子程序或发生中断时,CPU会自动将当前 PC值压入堆栈,将子程序入口地址或中断入口地址装入 PC;子程序返回或中断返回时,恢复原有被压入堆栈的 PC值,继续执行原顺序程序指令。
用示波器检测该引脚来判断单片机是否损坏。
② PROG功能:片内有EPROM的芯片,在EPROM编程 期间,此引脚输入编程脉冲。
⑵ PSEN:片外程序存储器读选通信号输出端。 在向片外程序存储器读取指令或常数期间,每个机
器周期该信号两次有效(低电平)作为片外ROM的
单片机第二章MCS-51系列单片机硬件结构
3. P1口(P1.0~P1.7,1脚~8脚)
P1口仅用作I/O使用,它也是自带上拉电阻的8 位准双向I/O接口,每一位可驱动4个LSTTL负载。 当P1口作为输入接口时,应先向口锁存器写“1”。 4. P3口(P3.0~P3.7,10脚~17脚)
除了和P1口的功能一样外, P3口的每一引脚还具有第二功能。
第二章 单片机的硬件结构
2.1 MCS-51单片机的总体结构
2.2 微处理器 2.3 MCS-51存储器 2.4 MCS-51基本电路及引脚电路 2.5 实例演练
2.1MCS-51单片机的总体结构
一,8031芯片实照
二,MCS-51单片机外形是一个40脚的双列直插式集成块:
P10 P1.1 P12 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 Vss 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Vcc P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VPP ALE/PROG PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
ALE地址锁存使能信号输出端。存取 片外存储器时,用于锁存低8位地址。 PROG是对于EPROM型单片机,在 EPROM编程期间,此引脚用于输入编 程脉冲。
ALE/ PROG (30脚)
控制 引脚
单片机原理 第2章 MCS-51单片机体系结构
2.4.2 MCS-51单片机数据存储器
2.4.2 MCS-51单片机数据存储器
1. 工作寄存器区
字节地址为00H~1FH的32个单元是4组通用工作寄存器区,每组占用8个 字节,都标记为R0~R7。在某一时刻,CPU只能使用其中的一组工作寄存 器,工作寄存器的选择由程序状态字寄存器PSW中RS1、RS0两位来确定 ,如表2-3所示。
2. 数据总线DB 数据总线宽度为8位(D0~D7),由P0提供。
3. 控制总线CB 控制总线由P3口的第二功能状态和4根独立控制线RESET、 和ALE组成。
2.3 MCS-51单片机的中央处理器
• 8051系列单片机的中央处理器CPU是单片机 的指挥中心和执行机构,它的作用是产生合适的 时序,读入和分析每条指令代码,根据每条指令 代码的功能要求,指挥并控制单片机的有关部件 和器件,具体执行指定的操作。
2.2.3 并行I/O引脚
3. P2口
P2口,为准双向I/O口,具有内部上拉电阻。一共8位,有P2.0~P2.7共8 条引脚。当8051系列单片机扩展外部存储器及I/O接口芯片时,P2口作为 地址总线(高8位),和P0输出的低8位地址一起构成16位地址,可以寻址 64KB的地址空间。
P2口位结构图如图2-3 (c)所示,它比P1口多了 一个转换控制部分,当P2 与P0配合作为“地址/数据总 线”方式下的高8位数据线 (A8~A15)时,CPU将写 控制信号“1”使MUX切换到 右边,在“地址/数据总线” 方式下,无论P2口剩余多 少地址线,均不能被用于 普通I/O操作。
(2)控制引脚—— 、
第2章MCS-51单片机基本结构
2.1.4
复位和复位电路
单片机在重新启动时都需要复位,MCS-51 系列单片机有一个复位引脚输入端RST。 1. MCS-51系列的单片机复位方法为:在RST上加
一个维持两个机器周期(24个时钟周期)以上
的高电平,则单片机被复位。 2. 复位时单片机各部分将处于一个固定的状态。
复位后单片机各单元的初始状态
R2 2 00
2 2u F
R S T/VP D
R1 1K
V ss
GND
未稳压电源
WDI R1 PFI MR R2 MAX813L P1.0
RESET
WDO
﹠
RST MCS-51
“看门狗”复位电路
2.1.5 MCS-51单片机的引脚功能
MCS-51单片机采用40脚双列直插式封装形式,主要包括以 下几个部分: 1. 电源引脚Vcc和Vss Vcc(40脚):电源端,为十5V; Vss(20脚):接地端 ,GND。 2. 时钟电路引脚XTAL1和XTAL2 XTAL1为内部振荡电路反相放大器的输入端 。 XTAL2为内部振荡电路反相放大器的输出端 。 3. 控制信号引脚RST、ALE、PSEN和EA 4. I/O(输入/输出)端口P0、P1、P2和P3 5. MCS-51单片机P3口的第二功能
单片机各种周期的关系图
机器周期 S1 S2 S3 S4 S5 S6 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
时钟周期 状态周期
1个机器周期=6个状态周期=12个时钟周期
4、指令周期: 它是指CPU完成一条操作所需的全部
时间。 每条指令执行时间都是有一个或几个机器周
期组成。MCS - 51 系统中, 有单周期指令、双周期指
MCS51单片机指令系统
第一条指令为远查表指令,可以在64K的程序存储器空间寻 址。基地址寄存器为DPTR,其意思为,DPTR里面存放的是 程序存储器中数据表格的首地址,A为数据地址的偏移量。
这条指令执行以后,以 (A)+(DPTR)的数值为地址数 据就送进A里面来了,也就是从表格首地址开始以后的第(A) 个数据被送进A了。(举例子说明)
编写好的程序都放在程序存储器中,由于一个存储地址所 指示的存储单元只能存放一字节的数据。所以,在存放指令时, 必须将指令拆分成一个一个字节进行连续存放。
比如: 实现“累加器加10H”这条指令,其机器语言为 0111010000010000, 占用了两个字节,就必须拆成两个字节 进行连续存储。
但是,用二进制来表示比较麻烦,因此,也常用十六进制来 表示如:74H 10H来表示以上这条机器语言。可见,用十六进 制表示指令比较简单,但是,指令系统有上百条指令,不易记 住。所以,一般采用容易记住的一些缩写符号来表示机器语言,
2. 在指令中直接给出操作数的地址, 这种寻址方式就属
于直接寻址方式。在这种方式中, 指令的操作数部分直接 是操作数的地址。
比如:MOV A,30H;将30H里面的数送到A里面 MOV 21H,30H;将30H里面的数存放到21H里面 在MCS -51 单片机指令系统中, 直接寻址方式中可
以访问 3 种存储器空间: (1) 内部数据存储器的低 128 个字节单元(00H~
7. 位寻址 指按照位进行的寻址操作,(前面讲的都是按字节进
行的寻址操作)。该种寻址方式中, 操作数是内部RAM单元 中20H到2FH的128个位地址以及SFR中的11个可进行 位寻址的寄存器中的位地址寻址。
比如:MOV C,20H;就是将RAM中位寻址区中20H位地 址中的内容送给C。区别与MOV A,20H;这个是将内部 RAM中20H单元的内容送给A。
第2章 MCS-51单片机结构与时序_110905
2.3.1 运算部件及专用寄存器组
运算部件以算术逻辑单元ALU为核心,包括一个位处理器和 两个8位暂存寄存器(不对外开放),它能实现数据的算术运 算、逻辑运算、位变量处理和数据传输操作。 累加器ACC 寄存器B 专用寄存器组 程序状态字PSW 程序计数器PC 堆栈指针SP 数据指针寄存器DPTR
锁 存 器
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 VCC VSS
地 址 总 线 (AB)
数 据 总 线 (DB)
VCC VSS
ห้องสมุดไป่ตู้(a)
(b)
MCS-51系列单片机引脚及总线结构
2.3 微 处 理 器
Program State Word
accumulator
ALU --Arithmetic and Logic Unit
图2.1 MCS-51单片机内部结构框图
1.算术逻辑单元ALU与累加器ACC、寄存器B
算术逻辑单元不仅能完成8位二进制的加、减、乘、除、加 1、减1及BCD加法的十进制调整等算术运算,还能对8位变量进 行逻辑"与"、"或"、"异或"、循环移位、求补、清零等逻辑运 算,并具有数据传输、程序转移等功能。 累加器(ACC,简称累加器A,地址E0H)为一个8位寄存器, 它是CPU中使用最频繁的寄存器。进入ALU作算术和逻辑运算的 操作数多来自于A,运算结果也常送回A保存。 寄存器B(地址F0H )是为ALU进行乘除法运算而设置的。 若不作乘除运算时,则可作为通用寄存器使用。
第2章MCS--51系列单片机的结构及原理
(4)工作寄存器组选择位RS1、RS0(PSW.4,
PSW.3): RS1、RS0与工作寄存器组的对应关系
如下:
RS1 RS0 工作寄存器组 片内RAM地址
00
第0组
00H~07H
01
第1组
指令执行后,A=D1H最高位无进位,故C=0;低半字节有进位,AC=1; OV=0 1=1,发生溢出;A中1的个数为偶数,故P=0。
CPU时序
一.振荡器
CPU执行指令的一系列动作是在时序电路的控制下一拍一拍进行的。 其节拍信号由振荡器产生,MCS--51系列单片机的内部有一个高增益的反 相放大器。外接晶体后可构成自激振荡器产生节拍信号,接法见图2-1, 也可使用片外振荡器,采用不同工艺制造的单片机芯片接法不同:
RST/VPO:双功能引脚,在单片机工作期间, 当此引脚上出现连接2个机器周期的高电平时可 实现复位操作,详见2.4节。
在Vcc掉电期间,若该引脚接备用电源 (+5v),可向片内RAM供电,以保存片内RAM中 的信息。
2.2 MCS—51系列单片机的微处理器与CPU时序
运算器由算逻运算单元ALU、累加器A、B寄存器、暂存器1、 暂存器2、及程序状态字PSW构成。程序状态字PSW是1个8位 的专用寄存器,用于存放程序运行中的各种状态信息,可 进行位寻址,
P
图2—3 程序状态字各位的含义
(1)进位标志C(PSW.7);很多算术逻辑运算指令执行 后都会影响进位标志C。例如加减运算,若运算结果有进 位或借位,则C=1,若无,则C=0。可用专门的指令或硬件 将C置位或清零,在进行位操作时,C又起着位累加器的作 用,类似于累加器A。
第2章 MCS-51单片机
(4)可寻址外部程序存储器和数据存储器,各64KB;
(5)两个16位定时器/计数器; (6)32位可编程并行I/O口; (7)一个可编程全双工串行I/O口; (8)二十多个特殊功能寄存器; (9)5个中断源,两个优先级嵌套中断结构。
2. 微处理器 8051微处理器的组成如下所示:
累 加 器 ACC( Accumulator) 程 序 状 态 字 寄 存 器 PSW( Program Status Word) 运算器 暂存寄存器 CPU 寄存器B 指 令 寄 存 器 IR 控制器 指 令 译 码 器 ID 程 序 计 数 器 PC
(2)位寻址区
内部RAM的0x20~0x2F为位寻址区,这16个字节的每
一位都对应一个8位地址,位地址范围为0x00~0x7F。该区 域可按字节读写,也可按位读写,位地址从0x20单元最低位 开始,共有16×8位,即128个位地址。 如果系统需要位操作,最好保留0x20~0x2F单元的部分
或全部,作为位存储区,以支持位处理操作。位寻址区的每
一位都可以直接进行位操作。通常把各种程序状态标志位控 制变量,设在位寻址区内,同时,位寻址区的RAM单元也 可以作一般的数据缓冲器使用。RAM寻址区位地址映象如 表2-5所示。
位 寻 址 区 地 址 映 象
(3)缓冲器区
内部RAM的0x30~0x7F的地址区,可作为数据缓冲器 使用,存放数据,由于该区有丰富的操作指令,使用十分 方便。 2.外部数据存储器 在51系列中,允许用户扩展外部数据存储器和I/O接口, 用户可以通过P0、P2口最多扩展连接64K个外部单元(每
片机系统。
MCS-51的典型产品是8051、8031、8751。8051是ROM型单片 机,内部有 4KB 掩膜 ROM ; 8031 无片内 ROM , 8751 片内有
第2章 MCS-51单片机的硬件结构
(2)通用I/O接口功能
P2口作准双向口使用,与P1口相同,也有输入、 输出、端口操作三种工作方式。
3.P2口负载能力
4个LSTTL负载,输出电流≥ 400uA
三、P3口
1. P3口1位结构原理图如图所示
P 奇偶标志
A中1的个数若为奇数P=1,否则P=0
例如:MOV A, #7FH ADD A, #4FH 0111,1111B + 0100,1111B 1100,0110B
结果:(A)=C6H, C=0,AC=1,OV=1,P=0
2.控制器 3.片内存储器
4.4个I/O接口
5.串行接口
6.定时/计数器
先片内、后片外,片内片外连续,二者 一般不作重叠。 EA=0,只访问片外程序存储器 EA=1,先访问片内程序存储器。当PC >0FFFH(51子系统)或PC>1FFFH(52子系统) ,再去访问片外程序存储器。
存储器编址图如下图所示
0000H
片内ROM /EA=1 0FFFH 0FFFH 1000H 片外ROM 0000H 片外ROM /EA=0 00H 7FH 80H FFH 片外RAM 片内RAM 0000H
有5个中断源
11.111条指令,含乘、除法,有很强
的位处理能力 12.片内采用单总线结构,单一+5V
电源
52系列主要有8032、8052两种机型。 与51系列不同在于:片内数据存储器增 至256个字节,3个16位定时/计数器,6 个中断源。
二、内部结构
MCS-51系列单片机的内部结构如 下图所示:
1 2 . . .
第2章 MCS-51系列单片机的内部结构
第2章 MCS-51系列单片机的内部结构单片机就是将构成计算机最基本的功能部件集成在一块芯片上的集成芯片。
本章主要介绍MCS-51系列单片机芯片内的硬件结构、性能特性,特别是存储器结构及并行I/O接口结构和工作原理。
只有了解了单片机的存储结构和所能提供的内部资源,才能合理地使用单片机。
2.1 MCS-51系列单片机内部结构和引脚说明MCS-51系列单片机是Intel公司于20世纪80年代初推出的系列8位单片机,经过30多年的发展,目前已发展到十多种产品,属于这一系列的单片机有多种,包括51子系列(如8051/8751/8031)和52子系列(如8052/8752/8032)。
在制造上,MCS-51系列单片机按照两种工艺生产。
一种是HMOS工艺,即高密度短沟道MOS工艺。
另一种是CHMOS工艺,即互补金属氧化物的HMOS工艺。
CHMOS是HMOS和CMOS的结合,既保留了HMOS高速度和高密度的特点,还具有CMOS的低功耗特点。
HMOS芯片的电平与TTL电平兼容,而CHMOS芯片的电平既与TTL电平兼容,又与CMOS电平兼容。
产品型号中凡带有字母“C”的芯片即为CHMOS芯片(如80C51等),不带字母“C”的芯片即为HMOS芯片(如8051等)。
在功能上,MCS-51系列单片机有基本型和增强型两类,以芯片型号的末位数字来区分,“1”为基本型,“2”为增强型。
如8051/8751/8031、80C51/87C51/80C31为基本型,而8052/8752/8032、80C52/87C52/80C32为增强型。
MCS-51系列单片机在片内程序存储器的配置上有3种形式,即掩膜ROM、EPROM 和片内无程序存储器。
如在基本型中,8051内有4KB的掩膜ROM,8751内有4KB的EPROM,而8031片内无程序存储器,使用时需在单片机外部扩展程序存储器。
另外,属于MCS-51系列的单片机还有8044/8744/8344,这类单片机增加了串行接口单元(SIU),专门负责串行通信管理,使单片机的组网功能大大增强。
第二章 MCS-51系列单片机结构与工作
2.3.1运算器 2.3.1运算器
• 4.程序状态字寄存器PSW • 程序状态字寄存器PSW是8位寄存器,用来存储当前指令执行后的状 态,便于程序查询和判别。程序状态字寄存器各位的定义如表2-2。
• (1)进位标志位C:又名CY,在加法和减法运算时, 表示运算结果 最高位的进位或借位情况。
2.3.1运算器 2.3.1运算器
2.2.1 MCS-51系列单片机的引脚与功能 MCS-51系列单片机的引脚与功能
• (8)XTAL2(18脚):片内振荡电路反向放大器的输出端,采用外 部时钟时该引脚为振荡信号的输入端。 • (9)P0口:P0.0~P0.7依次为第39~32脚,P0口除了可以作普通 的双向I/O口使用外,也可以在访问外部存储器时用作低8位地址线和 数据总线。 • (10)P1口:P1.0~P1.7依次为第1~8脚,P1口是带内部上拉电 阻的双向I/O口,向P1口写入“1” 时,P1口被内部上拉为高电平, 可用作输入口。当作为输出脚时,被外部拉低的P1口会因为内部上拉 电阻的存在而输出电流。
MCS-51单片机指令系统教程(2)
片外数据 存储器 64KB
1,访问片内RAM20H存储单元; MOV A,20H
2,访问片外RAM存储单元; MOV R0,#20H MOVX A,@R0
0000H
3,尽管片内与片外的RAM单元 的00H-FFH地址相重叠但由 于指令的不同不会发生地址
混乱。
片外数据存储器 64KB个字节
返回
2.2.5 变址寻址
由操作码和操作数(或操作数地址)构成指令的结构。
举例:MOV A,#0FFH
ADD A,R0
返回
2.1.2 指令的三种表示形式:
指令的表示形式是识别指令的标志。
1,二进制的表示形式:(以“累加器的内容+08H”为例) 00100100B 操作码 OP (加法) 00001000B 操作数DATA(08H)
乘法指令 16位寄存器DPTR加一
从表中可见,指令的字节数与指令周期不是对等的关系 返回
2.1.4 指令的分类
MCS-51单片机的指令如果按功能划分可以分为五类: 1,数据传送类指令:完成数据在单片机内部之间的传送。
分为8位数和16位两种。除了奇偶位外,指令的执行对 PSW无影响。
2,算术运算指令:用于操作数之间的加、减、乘除运算。 【特点】:多数情况下:操作数之一在累加器A中,结果 也保留在A中,运算结果要影响PSW(进位标志、奇偶和 溢出标志等)。
“机器码”后才能为CPU所识别和执行。 3,三种不同的表示方法适用于不同的场合。
返回
本章内容都以汇编的形式介绍指令系统。
2.1.3 指令的字节数
在MCS-51单片机的指令系统中,因指令操作码和操作数 的不同,指令(在存储器中)长度也各不相同。
分为单字节、双字节和三字节。
51系列单片机指令系统
MOV DPTR,#1000H MOVX A,@DPTR INC DPTR, MOVX @DPTR,A 7、程序存储器向累加器A传送指令 MOVC A,@A+DPTR MOV DPTR,#100H MOV A,R0 MOVC A,@A+DPTR ORG 0100H. DB 0,1,4,9,16,25 8、堆栈操作指令 PUSH direct POP direct 第一条指令称之为入栈指令,就是将direct中的内容 送入堆栈中,第二条指令称之为弹出指令,就是将堆栈 中的内容送回到direct中。
位寻址时,操作数是二进制数的某一位,其位地 址出现在指令中,例如指令 • SETB bit ;(bit) ← l • 51系列单片机可用于位寻址的空间是内部RAM的可 位寻址区和SFR区中的字节地址可以被8整除(即地址以 “0”或“8”结尾)的寄存器所占空间,寻址方式如表 2-2所示。
表2-2 寻址方式一览表
寻 址 方 式
寻 址 范 围
R0-R7 ,DPTR ACC,B,C(CY位)
内部RAM 00H-7FH 特殊功能寄存器 80H-FFH 内部RAM位寻址区 (20H-2FH): 位地址00H-7FH 可寻址的特殊功能寄存器: 位地址 80H-F7H 以数据指针表示操作数 内部RAM 00H-7FH 外部RAM或I/O端口 00H-FFH / 0000H-FFFFH
图2-3 寄存器间接寻址
图2-4 立即寻址
4、立即寻址
•
立即寻址时,指令中直接给出操作数。例如指令 MOV A,#76H ;数据76H送累加器 A。 • 立即数寻址过程如图2-4所示。
5、变址寻址
•
变址寻址时,指定的变址寄存器的内容与指令中 给出的偏移量相加,所得的结果作为操作数的地址。 例如指令MOVC A, @A+DPTR ;((A)+(DPTR))送 A。变址寻址过程如图2-5所示。 不论用DPTR或PC作为基址指针,变址寻址方式都 只适用于51系列单片机的程序存储器,通常用于读取 数据表也就是将程序存储器中的数送入A中。因此也称 为查表指令,常用此指令来查一个已做好在程序存储 器中的表格,这条指令采用变址寻址。
第二章.MCS-51单片机结构和原理
* 由于T1的作用,不需外接上拉电阻。
②输入数据
类似于读引线
控制:C=0,MUX下通,与门4输出为0。T1截止,预臵Q=1, T2截止。 P0.X→三态门2→内总线
二、P1口
通用8位准双向端口。 ⑴ 输出:Q→FET(反相)→P1.X
* 有内部上拉电阻,不必外接。
⑵ 输入: 读引线:预臵Q=1,FET截止,P1.X→下三态门→内部总线 读锁存器:Q→上三态门→内部总线
3
ATmega8 RISC,SPEED,power,a/d,spi,i2c,uart,pwm,内时钟 C8051F310 debug,speed,power,ram,外设 PIC16F87X 指令,存储器,外设,a/d
MC68HC908JB16 i/o,usb,mul&div
ADuC812 12bit a/d 凌阳SPCE061A
㈢.P2.0-P2.7:P2端口
⑴.无外存:通用准8位双向I/O口(有内部上拉电阻)
⑵.有外存:地址总线高8位
*EPROM编程时,接收地址高8位
㈣.P3.0-3.7:P3端口
⑴.通用8位准双向I/O口(有内部上拉电阻)
⑵.专用功能:
串行口: P3.0-RXD,接收 P3.1-TXD, 发送 中断申请:P3.2- INT0 P3.3-INT1 CTC: P3.4-T0 , CTC0时钟输入 P3.5-T1 , CTC1时钟输入 读写控制: P3.6- WR, 外部RAM写 P3.7- RD, 外部RAM读.
三. I/O接口电路:
并行口:4个8位端口 P0-P3,32根I/O线 串行口:1个
四.CTC:
16位CTC 2个/3个(52)
五.中断功能:
MCS-51系列单片机的指令系统
51系列单片机指令系统包含5种功能类型的指令,7 种寻址方式,共有111条指令。
addr16 16位目标地址,片外数据存储器或程序存储器以及外 部芯片的地址,用于LCALL和LJMP指令中;
addr11 11位目标地址,片内数据存储器或程序存储器的地址, 用于ACALL和AJMP指令中;
rel 相关地址,8位带符号偏移量,一般是程序存储器字节地址, 通常在跳转类指令中使用,其对应的十进制范围为-128~+127;
立即寻址就是直接给出操作数。
取指令时,即可由程序存储器中直接取得操作数据。51单 片机中除了一条指令(MOV DPTR,#data16)是16位长 的立即数外,其余都是8位的立即数。
例如:MOV A,#30H;无论执行之前A中的内容是多少, 则执行后A=30H。
值得注意的一点是:在立即数寻址中立即数前面必须要加 上一个“#”号,“#”表示其后面内容为立即数而不是一个 字节单元地址。
bit 位地址,针对片内数据存储器中的可位寻址的位使用; DPTR 数据指针,可用做16位的地址寄存器; (X) X指寄存器或十六进制数,则(X)为指向以X寄存器中的内
容为目标地址的单元或以十六进制数据为目标地址的单元; ← 数据传送的方向,将左边的内容送入右边; A 累加器; ACC 直接寻址方式的累加器; B 寄存器B; C 进位标志位,是布尔处理机的累加器,也称为位累加器。
任何一种处理器都必须经过设计人员对
第2章 MCS-51系列单片机的结构及原理
2.3 引脚功能——封装形式
40P6-PDIP
单 片 机 技 术
2.3 引脚功能——引脚含义
P1. 0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD/ P3. 0 TXD/ P3.1 INT0/ P3.2 INT1/ P3.3 T0/ P3.4 T1/ P3.5 WR/ P3.6 RD/ P3.7 XTAL2 XTAL1 VSS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 24 22 21 VCC P0. 0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA ALE PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0
2mcs51系列单片机的内部总体结构88微处理器运算部件b数据存储器ramp0口p2口程序存储器特殊功特殊功能寄存器sfrromepromvccvss图21mcs51单片机的基本结构控制部件p1口p3口串行口定时计数器中断系统88xtal1xtal2psenaleeareset端口0驱动器端口2驱动器ram地址锁存器ram1288端口0锁存器端口2锁存器rom4k8b寄存器程序地址寄存器缓冲器寄存器vcc5vvss堆栈指针spacctmp2tmp1p00p07p20p27图22mcs51片内总体结构框图rstpc1寄存器pcdptr指针p10p17psw端口3锁存器端口1锁存器端口1驱动器端口3驱动器scontl0tmodth1iepconth0sbuftxrx中断串行口和定时器逻辑tcontl1iposcp30p37alepsenxtal2xtal1alu指令寄存器定时与控制指令译码器返回本节2
第二章 MCS-51 单片机基本知识
CPU
特殊功能寄存器SFR 特殊功能寄存器 (Special Function Register) )
MCS-51单片机的引脚功能 2.1.2 MCS-51单片机的引脚功能
MCS-51单片机芯片共40脚 I/O端口引脚32条 端口引脚32 MCS-51单片机芯片共40脚,I/O端口引脚32条、控制引 单片机芯片共40 电源引脚2 时钟引脚2 如图2 脚4条、电源引脚2条、时钟引脚2条,如图2-1、2-4 所示。 所示
通用I/O I/O口 无片外存储器时,P2口可作通用I/O口使用 口可作通用I/O口使用; ① 通用I/O口:无片外存储器时,P2口可作通用I/O口使用; ② 地址口:在访问外部存储器时,传送ROM/RAM高低8位地址。 地址口:在访问外部存储器时,传送ROM/RAM高低8位地址。 ROM/RAM高低
CPU
算术逻辑单元ALU 算术逻辑单元ALU (Arithmetic Logic Unit) 定时控制器 定时控制器 程序计数器PC 程序计数器PC Counter) (Program Counter) 累加器ACC 累加器ACC (Accumulator) (Accumulator) 程序状态字PSW 程序状态字PSW Word) (Program Status Word) 堆栈指针SP 堆栈指针SP Pointor) (Stack Pointor) 数据指针DPTR 数据指针DPTR Pointer) (Data Pointer) 寄存器B 寄存器B
中央处理单元CPU 2.1.1 中央处理单元CPU
算术逻辑单元ALU 算术逻辑单元ALU (Arithmetic Logic Unit) 加法器 2个暂存器TMP1和TMP2 个暂存器TMP1和 TMP1 布尔处理器 定时控制逻辑 定时控制器 定时控制器 指令寄存器IR 指令寄存器IR (Instruction Register ) 振荡器OSC 振荡器OSC (Oscillator) 特殊功能寄存器 特殊功能寄存器SFR (Special Function Register) )
第2章 MCS-51单片机
• 外部数据存储器
在单片机内部数据存储器容量不够的情况下,可 扩展外部数据存储器。 ① 用于存放随机读写的数据。 ② MCS-51外部数据存储器和外部I/O口统一编址。
③ MCS-51最大扩展空间为64KB,地址范围为 0000H~FFFFH。
2.3.5 特殊功能寄存器 MCS-51单片机共有21个字节的特殊功能寄 存器SFR (Special Fuction Register)。 1.用途:
1. 运算器
算术运算:加、减、乘、除、加1、减1、比较 BCD码十进制调整等 逻辑运算:与、或、异或、求反、循环等逻辑操 作 位操作:内部有布尔处理器,它以进位标志位C 为位累加器,用来处理位操作。可对位置 “1” 、对位清零 、位判断等。 操作结果的状态信息送至状态寄存PSW。
2.程序计数器PC 程序计数器PC是16位的寄存器,用来存放即将 要执行的指令地址,可对64KB程序存储器直接寻 址。执行指令时,PC内容的低8位经P0口输出,高 8位经P2口输出。
例:单片机外接晶振频率12MHZ时的各种时序 单位: 振荡周期=1/fosc=1/12MHZ=0.0833us
状态周期=2/fosc=2/12MHZ=0.167us
机器周期=12/fosc=12/12MHZ=1us 指令周期=(1~4)机器周期=1~4us
2.5
复位状态与复位电路
2.5.1 复位状态
各个引脚的功能:
2.2.1 电源引脚 GND:接地端。 Vcc:电源端,接+5V。 2.2.2 时钟信号引脚 XTAL1,XTAL2: 接外部晶体或外部时钟。
2.2.3 控制信号引脚 RST/VPD: ①复位信号输入。 ②接备用电源,VCC掉电后,在低功耗条件下保持内部RAM中 的数据。 PSEN:程序存储器允许。输出读外部程序存储器的选通信号。 ALE/PROG: ①ALE 地址锁存允许。 ALE输出脉冲的频率为振荡频率的 1/6。 ②PROG 对8751单片机片内 EPROM 编程时,引入编程脉冲。 EA/VPP: ① EA =0,单片机只访问外部程序存储器。 EA =1,单片机访问内部程序存储器。 ②在8751片内EPROM编程期间,引入21V编程电源VPP。
第2章 MCS-51单片机的结构和原理
89C51/S51单 片机 内部结构图
RAM地址 寄存器
存储器
P0.0-P0.7 P0驱动器
P2.0-P2.7 I/O接口
P2驱动器
128B RAM
P0锁存器
P2锁存器
4KBROM
程序地址 寄存器
B寄存器 运算器
暂存器1
暂存器2
ACC
SP 缓冲器
ALU
PC增1 中断、串行口和定时器 PSW PC
DPTR
DSP芯片的诞生及发展对近20年来通信、计算机、控制
等领域的技术发展起到十分重要的作用。
典型的DSP算法
Algorithm Finite Impulse Response Filter Equation
y(n)
a
k 0
M
M
k
x( n k )
Infinite Impulse Response Filter
8051片内有ROM(程序存储器,只能读)和RAM(数据存储器, 可读可写)两类,它们有各自独立的存储地址空间,与一般微机
的存储器配臵方式不同。
8051有四个8位并行接口,即P0-P3.它们都是双向端口,每 个端口各有8条I/O线,均可输入/输出。P0-P3口四个锁存器同 RAM统一编址,可以把I/O口当作一般特殊功能寄存器来寻址
冯· 诺曼(Van Neuman)结构
控制命令 程序存储器 地址线
CPU
数据存储器
数据线
哈佛结构 控制命令 地址线 程序总线 程序存储器
CPU
控制命令 地址线 数据总线
数据存储器
8051/8751/8031芯片的外部引脚和指令系统完全兼容,其 内部结构除ROM/EPROM不同外,其余完全相同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SETB 0D4H CLR 0D3H
将D4设置为1 将D3设置为0
17
寄存器寻址举例
将第2组工作寄存器中的R2内的数
据送入累加器 1、选择工作寄存器 2、用MOV指令送数据 CLR 0D4H SETB 0D3H MOV A,R2
7
在 MCS -51单片机指令系统中, 有以下 7种
寻址方式: (1) 立即寻址; (2) 直接寻址; (3) 寄存器寻址; (4) 寄存器间接寻址; (5)变址寻址(基址寄存器加变址寄存器 间接寻址); (6) 相对寻址; (7) 位寻址。
8
2.1
寻址方式
SP,#60H A,#64H B,#80H ACC B B ACC
36
利用堆栈还可以进行数据传输程序如 下: MOV 50H,#12H MOV 60H,#23H PUSH 50H PUSH 60H POP 50H POP 60H
37
2.2.2 数据交换指令 1、字节交换 XCH A,Rn XCH A,@Rn XCH A,direct XCH A,R2 2、半字节交换 XCHD A,@R1 3、高4位和低4位交换 SWAP A
40
3、带借位的减法指令 SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data 注意:没有不带借位的减法指令, 如果需要做不带位的减法指令(在做 第一次相减时),只要将CY清零即可。
41
4、乘法指令 MUL AB 此指令的功能是将A和B中的两个8位无符号 数相乘,最终结果用1个16位数来表达,其 中高8位放在B中,低8位放在A中。在乘积 大于FFFFFH(65535)时,OV置1(溢出), 否则OV为0,而CY总是0。例如: MOV A,#4EH MOV B,#5DH, MUL AB 乘积是1C56H,所以在B中放的是1CH,而A 中放的则是56H。
50
(2)循环右移 RR A ;累加器A中的内容右移一位
46
运算指令综合举例
1. 双字节数(R3R4)乘单字节数(R2),
结果保存在 R3R4 R5
2. 单字节BCD码转十进制数
BCD码在A中,结果保存在R2R3中
47
2.3.3
ANL
逻辑运算指令
1、逻辑与指令
A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data 逻辑或指令为ORL
32
与外部存储器RAM进行数据传输的只有累
加器A。
内部RAM间可以直接进行数据的传递,而
外部则不行.
例如,要将外部RAM中某一单元(设为
1000H单元的数据)送入另一个单元(设 为1001H单元),也必须先将1000H单元中 的内容读入A,然后再送到1001H单元中去。
33
将外部数据存储器1000H单元的数据复制到 1001H单元: MOV DPTR,#1000H MOVX A,@DPTR INC DPTR ;DPTR加1 MOVX @DPTR,A
18
目的操作数和源操作数
目的操作数:保存传送或指令结果 源操作数:被转送的数据 例如:
MOV
A,R2
目的:A
源:R2
两个操作数都有各自的寻址方式
19
4、寄存器间接寻址
寄存器间接寻址:将寄存器内容作为操作
数的地址 例如:MOV A,@R0
;A←((R0))
@符号表示将寄存器内容作为地址
;A←(R0) 51系列可用寄存器寻址的空间是:
R0-R7:工作寄存器组
A:累加器 CY(位):PSW中的进位标志 DPTR:数据指针寄存器 B
工作寄存器组由PSW中的D4、D3决定
14
16进制形 式的指令
助记符形 式的指令
寄存器寻址方式工作原理示意图
15
如何确定工作寄存器组位置
42
5、除法指令 DIV AB 此指令的功能是将A中的8位无符号 数除了B中的8位无符号数(A/B)。 商放在A中,余数放在B中。 CY和OV都是0。 如果在做除法前B中的值是00H,也 就是除数为0,那么OV=1。
43
6、加1指令 INC A INC Rn INC direct INC @Ri INC DPTR INC不影响PSW位
51系列单片机用R0或R1间接寻址片内或片
外RAM的256字节范围 用DPTR或PC间接寻址64K字节外部RAM或ROM SP也可看成寄存器间接寻址 间接寻址的过程如图所示。
20
MOV A,@R0
①
内存
②
寄存器间接寻址
21
5、变址寻址
变址寻址:DPTR或PC的内容加上累加器A的内容
为操作数地址
例如:MOVC
A,@A+DPTR ;((A)+(DPTR)) 送 A。变址寻址过程如图2-5所示。
变址寻址只适用于访问程序存储器 用于将程序存储器中的数送入A,称为查表指令
22
举例:查表程序
有一个数在R0中,要求用查表的方法确定它的平
方值(此数的取值范围是0-5)
MOV MOV
可存储数据的存储区:
内部RAM
外部RAM
特殊功能寄存器SFR
程序存储器ROM
不同存储区中数据的地址表示方式不同
9
1、立即寻址
立即寻址:在指令中直接给出操作数
例如:
MOV A,#76H ;数据76H送累加器A
立即数寻址过程下图所示。
10
图 立即寻址
11
2、直接寻址
SETB CLR
bit bit
;置1 ;清0
位寻址的空间是内部RAM的可位寻址区和
SFR区中的字节地址可以被8整除(即地址 以“0”或“8”结尾)的寄存器所占空间
27
2.2.1 数据传输指令 1、 以累加器为目的操作数的指令 Rn:R0~R7 MOV A,Rn
MOV MOV MOV
图2-5 变地址寻址原理
24
6、相对寻址
相对寻址:指令转移地址为程序计数器
PC加指令中提供的偏移量rel
例如: SJMP
rel
;
PC←(PC)+2+rel
如图2-6所示。
25
SJMP 08H
PC
图2-6相对寻址
26
7、位寻址
位寻址:操作数是二进制数的某一位,
在指令中直接给出地址 例如
第2章 51系列单片机指令系统
2.1 寻址方式
2.2 数据传送与交换指令
2.3 算术、逻辑运算指令
2.4 2.5 控制转移指令 位操作指令
1
第2章 51系列单片机指令系统
指令:指挥机器完成操作的命令
指令系统:机器可识别的全部指令
2
第2章 51系列单片机指令系统
一条汇编语言指令中最多包含 4 个区段, 如
38
2.3
ADD
ADD
算术运算类指令
如 如
如
1、不带进位的加法指令
A,#data A,Rn
A,@Ri
ADD
ADD
A,#10H
A,10H
A,direct 如
ADD
ADD
ADD
ADD
A,R7
A,@R0
功能:将A中的值与其后面的值相加,最
终结送回到A中
39
2、带进位位的加法指令 ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data 功能:将A中的值和其后面的值相加, 并且加上进位位C中的值。 说明:用于实现多字节加法。
A,direct A,@Ri A,#data
direct:直接地址 Ri:R0、R1 data:立即数
28
2、以寄存器Rn为目的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 这组指令功能是把源地址单元中 的内容送入工作寄存器,源操作数不 变。
29
3、以直接地址为目的操作数的指令 MOV 20H,A MOV direct,Rn MOV direct1,direct2 MOV direct,@Ri MOV direct,#data 4、以间接地址为目的操作数的指令 MOV @R0,A MOV @Ri,direct MOV @Ri,#data
30
5、十六位数的传递指令 将一个16位的立即数送入DPTR中去。 其中高8位送入DPH,低8位送入DPL, 如: MOV DPTR,#1234H 相当于下面两条指令: MOV DPH,#12H MOV DPL,#34H
31
6、累加器A与片外RAM之间的数据传递类指 令 MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A
6
2.1
寻址方式
所谓寻址方式, 就是寻找操作数地址的方式, 在 用汇编语言编程时, 数据的存放、传送、 运 算都要通过指令来完成。 编程者必须自始至 终都要十分清楚操作数的位置, 以及如何将它 们传送到适当的寄存器去参与运算。每一种
计算机都具有多种寻址方式。寻址方式的多
少工作寄存器组在内存中的位置 每组8个字节,分别对应R0~R7
地址范围
第3组 第2组 第1组 第0组
18H~1FH
10H~17H
08H~0FH 00H~07H
注意R0和 R7地址
16
选择工作寄存器组
修改PSW的D4、D3