AT89S51单片机原理与基本应用系统_第1页
AT89S51单片机原理与基本应用系统_第2页
AT89S51单片机原理与基本应用系统_第3页
AT89S51单片机原理与基本应用系统_第4页
AT89S51单片机原理与基本应用系统_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章章 AT89S51单片机原理单片机原理与基本应用系统与基本应用系统 本章主要内容1、单片机的内部结构与引脚功能、单片机的内部结构与引脚功能2、单片机存储器空间配置与功能、单片机存储器空间配置与功能 3、汇编语言指令格式与内部、汇编语言指令格式与内部RAM的操作的操作 指令指令 4、单片机、单片机I/O端口结构及工作原理端口结构及工作原理 5、单片机基本应用系统、单片机基本应用系统关于关于51和和52两个子系列两个子系列 ROM RAMMCS-51系列单片机系列单片机 C/T 中断源中断源51子系列子系列- 8031 8051 8751 HMOS 4KB 128B 2 5(基本型)(基本

2、型) 80C31 80C51 87C51 CHMOS 52子系列子系列- 8032 8052 8752 HMOS 8KB 256B 3 6(增强型)(增强型) 80C32 80C52 87C52 CHMOS 无无ROM ROM 掩膜掩膜ROM EPROMROM EPROMAT89C51、 AT89C52-极限工作频率是极限工作频率是24M AT89S51、 AT89S52-最高工作频率为最高工作频率为33MHz , ISP在线编程功能在线编程功能 ,内部内部集成看门狗计时器集成看门狗计时器 、双数据指示器、双数据指示器DPTR 、全新的加密算法、全新的加密算法 、向下完全、向下完全兼容兼容51

3、全部字系列产品全部字系列产品 、烧写寿命更长、烧写寿命更长 AT89C2051flash ROM-89SXX CHMOS-CHMOS-工艺较先进,综合了工艺较先进,综合了HMOSHMOS的高速度和的高速度和CMOSCMOS的低功耗特点的低功耗特点 MCS-51MCS-51系列可分为系列可分为5151和和5252两个子系列,并以芯两个子系列,并以芯片型号的最末位数字作为标志。片型号的最末位数字作为标志。 其中其中5151子系列是基本型而子系列是基本型而5252子系列则是增强型。子系列则是增强型。5252子系列功能增强的具体表现为:子系列功能增强的具体表现为: 片内片内ROMROM从从4KB4KB

4、增加到增加到8KB8KB 片内片内RAMRAM从从128128字节增加到字节增加到256256字节字节 定时器定时器/ /计数器计数器从从2 2个增加到个增加到3 3个个 中断源中断源从从5 5个增加到个增加到6 6个个 除了这些增强之外除了这些增强之外,52,52子系列与子系列与5151子系列在其它子系列在其它方面是相同的。(包括结构和指令)方面是相同的。(包括结构和指令)一般只针对一般只针对5151子系列的内容进行讲授。子系列的内容进行讲授。 不同型号不同型号MCS-51MCS-51单片机的单片机的CPUCPU处理能力和指令系处理能力和指令系统完全兼容,只是存储器和统完全兼容,只是存储器和

5、I/OI/O接口的配置有所不同接口的配置有所不同。目前常用目前常用: :AT89C51、 AT89C52、 AT89S51、 AT89S52、AT89C2051-flash ROM一、一、AT89S51单片机内部结构单片机内部结构(1)一个)一个8位的位的CPU;(2)一个片内振荡器及时钟电路;)一个片内振荡器及时钟电路;(3)4KB的的Flash ROM;(4)128B的内部的内部RAM(5)可扩展)可扩展64KB外部外部ROM和外部和外部 RAM的控制电路;的控制电路;(6)两个十六位的定时)两个十六位的定时/计数器;计数器;(7)26个特殊功能寄存器(双数据个特殊功能寄存器(双数据 指针

6、);指针);(8)4个个8位的并行口;位的并行口;(9)一个全双工的串行口;)一个全双工的串行口;(10)5个中断源,两个外部中断,个中断源,两个外部中断, 三个内部中断;三个内部中断;(11)内部硬件看门狗电路;)内部硬件看门狗电路;(12)一个)一个SPI串行接口,用于芯片串行接口,用于芯片 的在线系统编程(的在线系统编程(ISP)。)。1、电源电源 VCC(P40)芯片电源,接+5V。 VSS(P20) 接电源地。二、二、AT89S51单片机引脚功能单片机引脚功能2、时钟时钟XTAL1(P19)晶体振荡电路的反相器 输入端XTAL2(P18)晶体振荡电路的反相器 输出端。 a. 使用内部

7、振荡电路时,使用内部振荡电路时,X1、X2引脚外接石英晶体和补偿电容。引脚外接石英晶体和补偿电容。b. 使用外部振荡输入时,使用外部振荡输入时, HMOSHMOS型型DPJDPJ, 从从X2X2输入,输入,X1X1接地接地; ; CHMOS CHMOS型型DPJDPJ, 从从X1X1输入,输入,X2X2悬空。悬空。3、控制控制 控制引脚有4个,先学习其中的两个。 (1)RST/VPD复位复位/备用电源 RST复位功能是单片机正常工作必不可少的,因复位功能是单片机正常工作必不可少的,因为复位可以使单片机从程序的开头运行,使单片机按为复位可以使单片机从程序的开头运行,使单片机按照人们设计的程序运行

8、,在单片机系统上电开始工作,照人们设计的程序运行,在单片机系统上电开始工作,或单片机系统由于外界干扰偏离正常运行,都需要复或单片机系统由于外界干扰偏离正常运行,都需要复位。位。AT89S51单片机是高电平复位,只要在该引脚上单片机是高电平复位,只要在该引脚上保持一段时间(保持一段时间(两个机器周期以上两个机器周期以上)的高电平的高电平,单片,单片机就复位。在正常运行程序时该引脚为低电平。机就复位。在正常运行程序时该引脚为低电平。 V VPDPD功能是在功能是在V VCCCC掉电情况下,该引脚接备用电源,向片内掉电情况下,该引脚接备用电源,向片内的的RAMRAM供电,使供电,使RAMRAM中的数

9、据不丢失。中的数据不丢失。 3、控制、控制(2)EAEA/VPP内外内外ROMROM选择选择/EPROM编程电源 在通常的应用中在通常的应用中EAEA功能是作为内部和外部功能是作为内部和外部ROMROM的的选择端。当选择端。当EA=1EA=1,CPUCPU从芯片内部的从芯片内部的ROMROM中取指令运中取指令运行,但超过行,但超过4KB4KB范围的程序,也从外部扩展的范围的程序,也从外部扩展的ROMROM中中取得。反之当取得。反之当EA=0EA=0时,只从芯片外部扩展的时,只从芯片外部扩展的ROMROM中取中取指令运行。在绝大多数的应用中,指令运行。在绝大多数的应用中,4KB4KB空间范围足够

10、空间范围足够存放程序,一般都选择内部存放程序,一般都选择内部ROMROM,将,将EAEA接高电平。接高电平。 VPPVPP功能是在我们要把程序下载到内部功能是在我们要把程序下载到内部ROMROM中才用中才用到的功能,只有设计制造编程器时考虑,一般情况到的功能,只有设计制造编程器时考虑,一般情况用不到。用不到。 4、I/O口口 AT89S51单片机有4个8位的并行口,分别称为P0口、P1口、P2口和P3口,共32个引脚 。 单片机就是通过这些口线对外部单片机就是通过这些口线对外部电路进行控制和检测。它们的详细结电路进行控制和检测。它们的详细结构原理和功能在本章第三节中介绍。构原理和功能在本章第三

11、节中介绍。控制信号引脚控制信号引脚 RST/VPD RST 复位信号输入端复位信号输入端(当出现两个机器周期高电平时,单片机复位) VPD 内部备用电源的输入端内部备用电源的输入端(片内片内RAM) ALE/ PROG ALE 低低8位地址锁存使能位地址锁存使能/允许输出端允许输出端 PROG 8751内部内部EPROM编程时的编程脉冲输入端编程时的编程脉冲输入端 PSEN 外部程序存储器外部程序存储器ROM读选通信号的输出端读选通信号的输出端 EA/VPP EA 访问外部程序存储器访问外部程序存储器ROM的控制信号。的控制信号。 VPP 875l EPROM的的2l V编程电源输入端。编程电

12、源输入端。 并行并行I/O口口P0P3端口引脚端口引脚 P0 ( P 0.7 -P0. 0) 8位漏极开路的双向位漏极开路的双向I/O通道通道 P1(P1.7 P1.0) 带有内部上拉电阻的带有内部上拉电阻的8位准双向位准双向I/O通道通道 P2 ( P2.7 P2.0 ) 同上同上 P3 ( P3.7 P3.0 ) 同上同上三、三、AT89S51单片机存储空间配置单片机存储空间配置 AT89S51单片机存储器结构采用的是单片机存储器结构采用的是哈佛型结构,程序存储器(哈佛型结构,程序存储器(ROMROM)和数据存)和数据存储器(储器(RAMRAM)是分开的,有各自的寻址系统)是分开的,有各自

13、的寻址系统和控制信号,分别用不同的指令操作。和控制信号,分别用不同的指令操作。ROMROM用来存放我们编写的程序和常数表格。数用来存放我们编写的程序和常数表格。数据存储器用来存放程序运行的数据和结果。据存储器用来存放程序运行的数据和结果。ROMROM和和RAMRAM都分为内部和外部。都分为内部和外部。 51存储器的特点存储器的特点1.程序和数据存储器各自独立程序和数据存储器各自独立普林斯顿结构:普林斯顿结构:程序和数据共用一个存储器逻辑空间,程序和数据共用一个存储器逻辑空间, 统一编址。统一编址。哈佛结构:哈佛结构:程序与数据分为两个独立存储器逻辑空间,程序与数据分为两个独立存储器逻辑空间,

14、分开编址分开编址。内部ROM(4KB)EA=1外部ROM(4KB)EA=0外部ROM(60KB)内部RAM128BSFR(26个)外部RAM(64KB)0000H0000H0000H0FFFH0FFFH1000HFFFFHFFFFHFFH00H7FH80HMOVC指令操作指令操作MOV指令操作指令操作MOVX指令操作指令操作ROM地址空间地址空间RAM地址空间地址空间2.物理空间与逻辑空间物理空间与逻辑空间 物理物理上上4 4个存储器地址空间:个存储器地址空间: 片内片内/ /片外片外程序存储器程序存储器空间空间 片内片内/ /片外片外数据存储器数据存储器空间空间 逻辑逻辑上上3 3个存储器地

15、址空间个存储器地址空间: :(从用户使用的角度(从用户使用的角度) ) 64KB 64KB 程序存储器(程序存储器(00000000FFFFHFFFFH) 256B 256B 片内数据存储器(片内数据存储器(0000FFHFFH) 64KB 64KB 片外数据存储器(片外数据存储器(00000000FFFFHFFFFH) 51单片机存储空间单片机存储空间 物理物理上分为:上分为:4个空间,即个空间,即 片内片内ROM、片外、片外ROM 片内片内RAM、片外、片外RAM 逻辑逻辑上分为上分为: 3个空间,即个空间,即 程序存储器(片内、外)统一编址程序存储器(片内、外)统一编址 MOVC 片内数

16、据存储器片内数据存储器 MOV 片外数据存储器片外数据存储器 MOVX 程序存储器用来存放编制好的、始终保留的固定程序和表程序存储器用来存放编制好的、始终保留的固定程序和表格常数。程序存储器以程序计数器格常数。程序存储器以程序计数器PCPC作地址指针,通过作地址指针,通过1616位地址总线,可寻址的地址空间为位地址总线,可寻址的地址空间为64K64K字节。字节。 在在80C5180C51内部有内部有4K4K字节的程序存储器字节的程序存储器ROMROM,也可在此基础,也可在此基础上外接上外接EPROMEPROM,使程序存储器的容量扩展到,使程序存储器的容量扩展到64K64K字节。字节。5151单

17、单片机中,片机中,64K64K字节程序存储器的地址空间是统一的。对于字节程序存储器的地址空间是统一的。对于有内部有内部ROMROM的单片机,在正常运行时,应把的单片机,在正常运行时,应把EAEA引脚接高电引脚接高电平,使程序从内部平,使程序从内部ROMROM开始执行。当开始执行。当PCPC值超出值超出1000H-FFFFH1000H-FFFFH时时, ,会自动转向外部程序存储器空间。会自动转向外部程序存储器空间。ROM的用途与配置的用途与配置1、程序存储器程序存储器(ROM) CPUCPU是根据是根据PCPC(程序计数器)(程序计数器)值从值从ROMROM中取指中取指令来执行的。令来执行的。C

18、PUCPU每从每从ROMROM中读取一个字节,自动中读取一个字节,自动执行(执行(PCPC)+ 1PC+ 1PC,即,即PCPC指向下一个地址空间,指向下一个地址空间,一般情况下一般情况下CPUCPU是按是按ROMROM地址空间顺序从小到大依地址空间顺序从小到大依次执行。只有执行的指令是转移类指令,才根据次执行。只有执行的指令是转移类指令,才根据转移类指令所指示的新地址,调整转移类指令所指示的新地址,调整PCPC值,然后根值,然后根据新的据新的PCPC值从对应的地址空间中取指令来执行。值从对应的地址空间中取指令来执行。 当调用子程序或中断发生时,当调用子程序或中断发生时,PCPC值也会改变。值

19、也会改变。 寻址范围:寻址范围:0000H FFFFH 容量容量64KB,即即地址指针:地址指针:PC PC 长度:长度:16位位 1EA ,寻址内部,寻址内部ROM;0EA ,寻址外部,寻址外部ROM。 当当PC值超过片内值超过片内ROM容量时会自动转向外部存储器空间。容量时会自动转向外部存储器空间。EA8031单片机单片机接低电平接低电平作作 用:用: 存放程序及程序运行时所需的常数。存放程序及程序运行时所需的常数。-ROM-ROM程序存储器程序存储器程序存放空间程序存放空间 复位后,复位后,PCPC的内容为的内容为0000H0000H,因此系统从,因此系统从0000H0000H单单元开始

20、取指并执行程序,它是系统执行程序的起元开始取指并执行程序,它是系统执行程序的起始地址。通常在该单元中存放一条跳转指令,令始地址。通常在该单元中存放一条跳转指令,令CPUCPU跳过跳过0003H-002FH0003H-002FH,转至主程序(它的首址可,转至主程序(它的首址可由用户指定,真正的用户程序从跳转地址开始存由用户指定,真正的用户程序从跳转地址开始存放)。放)。 5151单片机规定单片机规定0003H-002FH0003H-002FH为中断源处理程序入口。为中断源处理程序入口。七个具有特殊含义的单元是:七个具有特殊含义的单元是: 0000H 0000H 系统复位,系统复位,PCPC指向此

21、处;指向此处; 0003H 0003H 外部中断外部中断0 0入口入口 000BH 000BH T0 T0溢出中断入口溢出中断入口 0013H 0013H 外中断外中断1 1入口入口 001BH 001BH T1T1溢出中断入口溢出中断入口 0023H 0023H 串口中断入口串口中断入口 002BH 002BH T2 T2溢出中断入口溢出中断入口 不管是内部的还是外部的不管是内部的还是外部的ROMROM,开头的,开头的0003H-002FH0003H-002FH空间地址空间地址是中断源的入口地址区,是专用单元,一般情况下用户不能用来是中断源的入口地址区,是专用单元,一般情况下用户不能用来存放

22、其它程序。存放其它程序。1.1. 寻址范围寻址范围( (容量容量) ):64KB-264KB-21616受地址线的根数限制受地址线的根数限制2. 2. 编址范围:编址范围:0000H-0FFFFH 0000H-0FFFFH 3. 3. 地址指针:地址指针:PCPC1616位,具有自动加位,具有自动加1 1的功能,指的功能,指示程序顺序执行示程序顺序执行; ; 上电或复位时,上电或复位时,PC=0000HPC=0000H4. EA4. EA管脚:管脚: EAEA0 0,从片外,从片外0000H 0000H 开始执行程序(将片外第开始执行程序(将片外第一地址视作一地址视作0000H0000H)如如

23、80C3180C31构成的系统;构成的系统; EAEA1 1,从片内,从片内0000H 0000H 开始执行程序,执行到开始执行程序,执行到0FFFH0FFFH后,后, 程序自动跳到片外程序自动跳到片外1000H1000H继续执行,继续执行, 如由如由AT89S51AT89S5187518751构成的系统。构成的系统。5. 5. 访问指令:访问指令:MOVC MOVC PSENPSEN管脚管脚数据存储器数据存储器 用途用途: : 存放程序运算的中间结果、状态标志位等存放程序运算的中间结果、状态标志位等 数据存储器数据存储器: : 由由RAMRAM构成构成, ,掉电时数据消失掉电时数据消失. .

24、 RAMRAM分为分为: : 片内片内RAM-256B, RAM-256B, 00-FFH 00-FFH MOVMOV 片外片外RAMRAM64KB, 64KB, 0000H-FFFFH0000H-FFFFH MOVXMOVX 片外数据存储器可对外扩展片外数据存储器可对外扩展64KB64KB空间,地址指针空间,地址指针DPTRDPTR为为1616位位 内、外地址的重叠内、外地址的重叠 (00H-FFH) (00H-FFH) 通过不同指令来区分通过不同指令来区分. . 片内片内RAMRAM是最活跃、最灵活的存储空间,是最活跃、最灵活的存储空间,5151指令系统寻址方式及指令系统寻址方式及应用程序

25、大部分是面向内部应用程序大部分是面向内部RAMRAM的的。 5151系列单片机系列单片机内部有内部有256B256B的的RAMRAM。其中。其中 低低128B128B(00H(00H一一7FH)7FH)为用户为用户RAMRAM区域,用来暂存数据及区域,用来暂存数据及数据处理的中间结果;数据处理的中间结果; 高高128B128B (80H-FFH)(80H-FFH)为特殊功能寄存器区域为特殊功能寄存器区域(SFR)(SFR),2121个特殊功能寄存器散布其中,其余空间用户无法使用个特殊功能寄存器散布其中,其余空间用户无法使用. .片内数据存储器片内数据存储器2、内部数据存储器(内、内部数据存储器

26、(内RAM) AT89S51单片机内部低128B字节RAM划分为三部分:工作寄存器区、位寻址区和数据缓冲区。 CyACF0RS1 RS0 OVF1P0区区1区区2区区3区区位寻址位寻址区区数据数据缓冲缓冲区区工作寄存器区工作寄存器区8位整体操作位整体操作位寻址区位寻址区8位整体操作、位操作位整体操作、位操作堆栈与数据缓冲区堆栈与数据缓冲区8位整体操作位整体操作0007H080FH1017H181FH202FH位地址位地址D7D0PSW07H 06H 05H 04H03H 02H 01H 00HD7D020H(字节地址)(字节地址)(R0R7)307FH1. 片内片内RAM工作寄存器区工作寄存器

27、区:字节地址:字节地址:00H1FH位寻址区位寻址区:字节地址:字节地址:20H2FH位地址为:位地址为:00H7FH数据缓冲区数据缓冲区/堆栈区堆栈区:字节地址:字节地址:00H7FH一般使用一般使用30H7FH(1)工作寄存器区工作寄存器区 从从00H00H1FH1FH共共3232个单元为工作寄存器区,个单元为工作寄存器区,每每8 8个一组,分为个一组,分为4 4个区,依次为:个区,依次为: 0区(区(00H07H) 1区(区(08H0FH) 2区(区(10H17H) 3区(区(18H1FH) 在任一时刻只有一个区作为当前的工作寄在任一时刻只有一个区作为当前的工作寄存器区,相应的空间单元作

28、为工作寄存器使用。存器区,相应的空间单元作为工作寄存器使用。工作寄存器区的选择可通过程序状态字工作寄存器区的选择可通过程序状态字PSWPSW中的中的D4D4、D3D3位实现。不是当前工作寄存器区的可以作位实现。不是当前工作寄存器区的可以作为一般的为一般的RAMRAM空间使用。空间使用。 操作方式:操作方式:8 8位整体操作。位整体操作。 这这3232个单元为内部数据存储器(即片内个单元为内部数据存储器(即片内RAMRAM)的的00H00H1FH1FH存贮空间,这与普通微机中的通存贮空间,这与普通微机中的通用寄存器基本相同,所不同的是,普通微机用寄存器基本相同,所不同的是,普通微机的通用寄存器只

29、有名称,不占有的通用寄存器只有名称,不占有RAMRAM空间,因空间,因此只有名字,没有对应的地址;而此只有名字,没有对应的地址;而5151单片机单片机的工作寄存器的工作寄存器R0R0R7R7既可以用名字也可以用既可以用名字也可以用它的地址来表示。它的地址来表示。其中其中R0R0、R1R1寄存器除做工寄存器除做工作寄存器外还常做间址寻址的地址指针。作寄存器外还常做间址寻址的地址指针。(2)位寻址区位寻址区 20H2FH共计共计16个单元为位寻址区,每个单元个单元为位寻址区,每个单元的的8位又有位操作,如位的置位又有位操作,如位的置1、清、清0、取反以及判断、取反以及判断等操作,各位有自己的位地址

30、等操作,各位有自己的位地址 。 位地址的范围:位地址的范围:007FH。(要注意和内。(要注意和内RAM空间单元地址的区别)空间单元地址的区别) 位寻址区空间单元操作的有两种方法,即可以位寻址区空间单元操作的有两种方法,即可以象其它象其它RAM空间一样进行空间一样进行8位整体操作,也可以通过位整体操作,也可以通过位地址对这些空间单元的某一位操作。位地址对这些空间单元的某一位操作。字节地址位 地 址D7D6D5D4D3D2D1D02FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH

31、67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH

32、0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H位寻址区的位地址映象表位寻址区的位地址映象表位寻址区的位地址形式有两种:位寻址区的位地址形式有两种:位地址和位编号位地址和位编号位地址07H 06H 05H 04H03H 02H 01H 00HD7D020H(字节地址) 如如20H单元的单元的8个位个位位地址位地址为:为:00H07H位编号位编号为:为:20H.020H.7 它们的含义是一致的,都表示它们的含义是一致的,都表示20H单元的位地址,单元的位地址,在应用中可以互换,位编号更便于记忆。在应用中可以互换,位编号更便于记忆。(3)堆栈与数据缓

33、冲区堆栈与数据缓冲区 30H30H7FH7FH为数据缓冲区,用于存放数据和中间结为数据缓冲区,用于存放数据和中间结果,起到数据缓冲的作用,这些空间数据的操作是果,起到数据缓冲的作用,这些空间数据的操作是8 8位的整体操作位的整体操作 。3、特殊功能寄存器(、特殊功能寄存器(SFR) 51系列单片机的状态字、并行口、串行口、定时器系列单片机的状态字、并行口、串行口、定时器和中断系统的寄存器等,是一些有专门用途的寄存器,和中断系统的寄存器等,是一些有专门用途的寄存器, 称为特殊功能寄存器称为特殊功能寄存器SFR,离散地分布在,离散地分布在80HFFH地址地址范围内。范围内。 SFR操作同内部操作同

34、内部RAM的操作,其中字节地址能被的操作,其中字节地址能被8整除的特殊功能器,它们的每一位也有自己的位地址,整除的特殊功能器,它们的每一位也有自己的位地址,也可以进行位操作。字节地址不能被也可以进行位操作。字节地址不能被8整除的特殊功能寄整除的特殊功能寄存器,只能存器,只能8位的整体操作。位的整体操作。8位整体操作既可以对它们位整体操作既可以对它们的字节地址操作,也可以对它们的符号(名称)操作。的字节地址操作,也可以对它们的符号(名称)操作。 图3-5片内数据存储器的配置几个常用的特殊功能寄存器:几个常用的特殊功能寄存器: (1)累加器累加器ACC 累加器累加器ACC是是51系列单片机系列单片

35、机最常用的寄存器,许多指令都用到累加器,最常用的寄存器,许多指令都用到累加器,特别是算术运算都需要用到,在指令中特别是算术运算都需要用到,在指令中ACC简写为简写为A。(2)寄存器寄存器B 乘除法指令都要用到寄存器乘除法指令都要用到寄存器B,B也可以作为一般的寄存器使用。也可以作为一般的寄存器使用。 (3)程序状态字寄存器程序状态字寄存器PSW , PSW反映的反映的程序运行的程序运行的状态状态,其结构和含义如下表所,其结构和含义如下表所示。示。 位编号PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位地址D7HD6HD5HD4HD3HD2HD1HD0H位定义C

36、yACF0RS1RS0OVF1PCy进位标志。进位标志。 累加器累加器A在执行加减法运算中,如果最高在执行加减法运算中,如果最高位有进位或借位,位有进位或借位,Cy置置1,否则清,否则清0,用于无,用于无符号数运算。另符号数运算。另Cy还是位操作累加器,在指还是位操作累加器,在指令中简写为令中简写为C。 OV 溢出标志溢出标志。 累加器累加器A在执行加减法运算中,如果最高在执行加减法运算中,如果最高位和次高位只有一个进位或借位,位和次高位只有一个进位或借位,OV置置1,否则清否则清0,用于有符号数的运算。,用于有符号数的运算。AC 辅助进位标志辅助进位标志。 累加器执行加法运算时,低累加器执行

37、加法运算时,低4位向高位向高4位进位进位时置位时置1,否则清,否则清0。BCD码加法运算调整标码加法运算调整标志。志。P 奇偶标志。奇偶标志。 表示累加器表示累加器A中中“1”的个数的奇偶性。如的个数的奇偶性。如果果A中中“1”的个数为奇数,则的个数为奇数,则P置置1,否则清,否则清0 。F0、F1 用户标志用户标志。 与位寻址区的位地址功能相同。与位寻址区的位地址功能相同。RS1、RS0 工作寄存器区选择位。工作寄存器区选择位。 工作寄存器区有工作寄存器区有4个,每次只有一个区当个,每次只有一个区当作工作寄存器用,通过作工作寄存器用,通过RS1、RS0可以选择它可以选择它们中的一个。们中的一

38、个。 RS1、RS0=000区(区(00H07H) RS1、RS0=011区(区(08H0FH) RS1、RS0=102区(区(10H17H) RS1、RS0=113区(区(18H1FH)例例2-1 设设A中有下面的加法运算,分析中有下面的加法运算,分析PSW中有关中有关位的值,及其表示的含义。位的值,及其表示的含义。 0 1 1 0 0 1 1 1 + 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 最高位没有向更高位进位,因此最高位没有向更高位进位,因此Cy=0,表明如,表明如果我们把这两个数看作无符号数,它们的和没有超果我们把这两个数看作无符号数,它们的和没有超过过256

39、。 次高位向最高位进位,最高位没有进位,因此次高位向最高位进位,最高位没有进位,因此OV=1,表明如果我们把这两个数看作有符号数,表明如果我们把这两个数看作有符号数,它们的和超出了范围,显然两个正数相加,不可能它们的和超出了范围,显然两个正数相加,不可能得到负数。得到负数。 低低4位向高位向高4位进位,位进位,AC=1,表明如果把,表明如果把这两个数看作是这两个数看作是BCD码表示的数,需要在低码表示的数,需要在低4位加位加6调整才能得到结果仍是调整才能得到结果仍是BCD码的正确结码的正确结果。显然看作果。显然看作BCD码,两个分别是码,两个分别是67和和29,相,相加后得到加后得到96,低,

40、低4位加位加6可得可得96的的BCD码。码。 加法运算的结果是放在加法运算的结果是放在A中的,中的,8位中共有位中共有2个个“1”,因此,因此P=0,表明此时累加器中的数据,表明此时累加器中的数据满足偶校验。满足偶校验。 (4)数据指针数据指针DPTR0、DPTR1。 AT89S51单片机内部有两个数据指针(都是单片机内部有两个数据指针(都是16位),但在某一时刻只能使用其中一个作为数据指针位),但在某一时刻只能使用其中一个作为数据指针DPTR,由辅助寄存器,由辅助寄存器1 (AUXR1)的)的DPS位控制,位控制,DPS=0,选择,选择DPTR0的两个的两个8位的寄存器构成数据指针,位的寄存

41、器构成数据指针,DPS=1,选择选择DPTR1的两个的两个8位的寄存器构成数据指针位的寄存器构成数据指针。 统一用统一用DPH表示表示DPTR的高的高8 位,位,DPL表示低表示低8位。位。 可以十六位整体操作,也可以分开按可以十六位整体操作,也可以分开按8位操作。位操作。 在实际的应用中在实际的应用中DPTR一般用来一般用来存放存放ROM空间或空间或外部外部RAM空间的空间的地址地址。 21个特殊功能寄存器个特殊功能寄存器SFR 运算运算 A、 B 、PSW(CY、AC、OV、P、RS1、RS0 ) 指针指针 SP、DPTR(=DPH+DPL) 并行口并行口 P0P3 串行口串行口 SCON

42、、SBUF 定时器定时器/计数器计数器 TMOD、TCON、 T0=TH0+TL0 T1=TH1+TL1 中断中断 IE、IP 电源电源 PCON 各字节地址能被各字节地址能被8整的整的SFR的各位,均可位寻址。的各位,均可位寻址。 AUXR1(DPS)、)、 DPTR1=DPH1+DPL1、 WDTRST、 AUXRPSW程序状态字程序状态字 PSW(CY、AC、OV、P、RS1、RS0 ) CY 进进/借位标志借位标志 加减法产生进加减法产生进/借位时借位时,CY=1 AC 半进半进/借位标志借位标志 P 奇偶标志奇偶标志 A中中1的个数为奇数时,的个数为奇数时,P=1 RS1、RS0工作

43、寄存器组选择位工作寄存器组选择位 OV溢出标志溢出标志 有符号数有符号数运算运算 超出超出-128+127时,时,OV = 1 表示运算表示运算出错出错 无符号数乘除运算时无符号数乘除运算时 255时,时,OV=1 ,商为,商为0时,时,OV=1 B寄存器是一寄存器是一8位寄存器,主要用于乘法和除法位寄存器,主要用于乘法和除法运算。乘法运算时,运算。乘法运算时,B中先存放乘数,乘法操中先存放乘数,乘法操作后,乘积的高作后,乘积的高8位又存于位又存于B中;除法运算时,中;除法运算时,B中先存放除数,除法操作后,中先存放除数,除法操作后,B又存放余数。又存放余数。在其他指令中,在其他指令中,B寄存

44、器可作为一般寄存器使寄存器可作为一般寄存器使用,用于暂存数据。用,用于暂存数据。 AB B A A B :商:商A;余数;余数B一、汇编语言指令的基本格式一、汇编语言指令的基本格式 1、51系列单片机汇编语言指令格式由系列单片机汇编语言指令格式由4 4部分构成:部分构成: 标号标号: : 操作码操作码 目的操作数,源操作数目的操作数,源操作数 ;注释;注释 。(1)标号标号:为该指令的符号地址,根据需要设置。为该指令的符号地址,根据需要设置。 标号以字母开头,由字母、数字和下画线组成的标号以字母开头,由字母、数字和下画线组成的字符串,字符串的最后必须有字符串,字符串的最后必须有“:” ” ,系

45、统的保留,系统的保留字不能作为标号字不能作为标号 , ,一般不大于一般不大于8 8个字符。个字符。 标号是该指令的符号地址,它的实质是反映该指标号是该指令的符号地址,它的实质是反映该指令在令在ROMROM中的地址(存放位置),因此在同一个程序中的地址(存放位置),因此在同一个程序中标号不可重复。中标号不可重复。 标号在程序中主要是作为其它转移类指令的目的标号在程序中主要是作为其它转移类指令的目的地址,或子程序的名称。地址,或子程序的名称。 指令举例:LOP1:MOV A,20H;将20H单 ;元内容送 ;累加器A(2)操作码操作码 操作码是每条汇编语言指令都必须有的,它是操作码是每条汇编语言指

46、令都必须有的,它是5151系列单片机指令系统规定的助记符,规定某条指令系列单片机指令系统规定的助记符,规定某条指令的操作功能。的操作功能。 (3)操作数操作数 操作数是参与操作的数据或地址。不同功能的操作数是参与操作的数据或地址。不同功能的指令,操作数的个数是不同的,在指令,操作数的个数是不同的,在0-30-3个之间。在书个之间。在书写时操作数和操作码之间要留有空格,当有多个操作写时操作数和操作码之间要留有空格,当有多个操作数时,操作数之间要用数时,操作数之间要用“,”隔开,前面的操作数称隔开,前面的操作数称为目的操作数,后面的称为源操作数。为目的操作数,后面的称为源操作数。 (4)注释注释:

47、 是对该条指令的说明,便于阅读是对该条指令的说明,便于阅读和理解程序功能。必须以和理解程序功能。必须以“;”开始。开始。 二、51系列单片机汇编语言指令中系列单片机汇编语言指令中常用符号常用符号 即操作数的符号。即操作数的符号。(1)Rn:当前工作寄存器区的:当前工作寄存器区的8个工作寄存个工作寄存器器R0R7,n=07。(2)Ri:当前工作寄存器:当前工作寄存器R0和和R1, i=0,1。(3)direct:8位的直接地址,代表内部位的直接地址,代表内部RAM 00H7FH单元,以及特殊功能寄存器单元,以及特殊功能寄存器的字节地址或名称。的字节地址或名称。(4)Ri:8位的间接地址,也代表内

48、部位的间接地址,也代表内部RAM 00H7FH的某一单元,此时工作寄存的某一单元,此时工作寄存器器Ri的内容是多少,就代表相应的单元。的内容是多少,就代表相应的单元。 用间址寻址的优点之一是循环方便。用间址寻址的优点之一是循环方便。 (5)#data:8位的立即数,所谓立即数就是位的立即数,所谓立即数就是指令中直接参与操作的数据。指令中直接参与操作的数据。(6)#data16:16位的立即数。位的立即数。(7)bit:位地址。代表内部:位地址。代表内部RAM 位寻址位寻址区区 (20H2FH)中可寻址位以及)中可寻址位以及SFR中的中的可寻址位。具体的形式可以是位地址、位可寻址位。具体的形式可

49、以是位地址、位编号以及位定义。编号以及位定义。(8)addr16:十六位的目的地址。:十六位的目的地址。(9)addr11:11位的目的地址。位的目的地址。(10)rel:带符号的:带符号的8位偏移地址。范围是位偏移地址。范围是 +127 128。 X:某寄存器或某单元:某寄存器或某单元 (X):某寄存器或某单元中的内容。:某寄存器或某单元中的内容。 :指令执行后数据传送的方向。:指令执行后数据传送的方向。 操作数操作数在具体程序中是数字形式或在具体程序中是数字形式或标号,标号,direct、data、bit可以用二进制数、可以用二进制数、十进制数或十六进制数书写,用十六进制十进制数或十六进制

50、数书写,用十六进制数时,数时,如果高位是如果高位是A、B、C、D、E、F时,时,必须在数的前面加必须在数的前面加0,以便和标号区别开,以便和标号区别开来来。addr16、addr11、rel在程序中的形式在程序中的形式就是编程者所起的标号名称。就是编程者所起的标号名称。 三、内部内部RAM的操作指令的操作指令 1、内、内RAM间的数据传送指令间的数据传送指令 MOV 目的操作数目的操作数,源操作数源操作数 “MOV”是操作码,英语是操作码,英语MOVE的简的简写,功能就是把源操作数传送到目的操作写,功能就是把源操作数传送到目的操作数,源操作数保持不变,操作数就是我们数,源操作数保持不变,操作数

51、就是我们前面讲的前面讲的A、Rn、direct、Ri、data。(1)以累加器以累加器A为目的地址传送指令为目的地址传送指令1) MOV A,Rn ;ARn,Rn里的内容送里的内容送 ;到累加器;到累加器A2) MOV A,direct;A(direct),),direct ;单元里的内容送;单元里的内容送A3) MOV A,Ri ;A(Ri),内部),内部RAM ;某一单元里;某一单元里(以(以Ri里的里的 ;内容为地址的单元);内容为地址的单元) ;的内容送到累加器;的内容送到累加器A4) MOV A,#data ;Adata 8位的立即位的立即 ;数送到累加器;数送到累加器A例例3-13

52、-1:已知:已知( (7) =77H,7) =77H,(70H70H)= 88H= 88H,( (0) 0) =70H=70H,试写出以下指令的执行结果、指令代码及,试写出以下指令的执行结果、指令代码及源操作数的寻址方式。源操作数的寻址方式。 指令指令 执行结果执行结果 指令代码指令代码 寻址方式寻址方式 nMOV A,7 n MOV A,70HnMOV A,0nMOV A,#80H(A)=77H EFH 寄存器寻址寄存器寻址(A)=88H E5H 70H 直接寻址直接寻址(A)=88H E6H 寄间接寻址寄间接寻址(A)=80H 74H 80H 立即寻址立即寻址;书书放在放在甲甲抽屉中抽屉中

53、;甲甲抽屉的钥匙放在抽屉的钥匙放在乙乙抽屉中抽屉中;取取书书,A中中 20HMOV 30H,#20HMOV R0,#30HMOV A,R0 此例中,此例中,20H就当成是那本就当成是那本书书;30H就当成是就当成是甲甲抽屉;抽屉; R0就当成是就当成是乙乙抽屉,执行的结果就是将抽屉,执行的结果就是将20H这个立即数装入这个立即数装入A中。中。期间也经历了两次寻址,即间接寻址。期间也经历了两次寻址,即间接寻址。寄存器间接寻址寄存器间接寻址 指令中寄存器的内容作为操作数存放的地址,在工作上间指令中寄存器的内容作为操作数存放的地址,在工作上间接寻址寄存器前用接寻址寄存器前用“”表示前缀。表示前缀。例

54、如例如: “一本一本书书放在放在甲甲抽屉中,上了锁;其开锁的钥匙放在抽屉中,上了锁;其开锁的钥匙放在乙乙抽屉中,抽屉中,乙乙抽屉也上了锁。问如何才能取到哪本抽屉也上了锁。问如何才能取到哪本书书?” 这就是一个间接寻址的问题,要经过两次寻址才能找到这就是一个间接寻址的问题,要经过两次寻址才能找到哪本哪本书书。而寄存器间接寻址也是同样。而寄存器间接寻址也是同样。例如例如:(2)以工作寄存器以工作寄存器Rn 为目的地址传送指令为目的地址传送指令 1) MOV Rn,A ;RnA 2) MOV Rn,direct ;Rn(direct) 3) MOV Rn,#data ;Rndata注意:工作寄存器相

55、互间、注意:工作寄存器相互间、Rn与与Ri之间、之间、R0与与R1之间没有传送指令。之间没有传送指令。 例例3-23-2:已知:已知(A)=55H, (70H)=88H, (A)=55H, (70H)=88H, 试写出以下指令的执试写出以下指令的执行结果、指令代码及源操作数的寻址方式。行结果、指令代码及源操作数的寻址方式。 指令指令 执行结果执行结果 指令代码指令代码 寻址方式寻址方式 MOV RMOV R3 3,A A;MOV RMOV R7 7,70H70H;MOV RMOV R5 5,#0FA#0FA;(R(R3 3)=55H FBH )=55H FBH 寄存器寻址寄存器寻址(R(R7

56、7)=88H AFH 70H )=88H AFH 70H 直接寻址直接寻址(R(R5 5)=0FAH 7DH FAH )=0FAH 7DH FAH 立即寻址立即寻址(3)以以direct为目的地址传送指令为目的地址传送指令 1)MOV direct,A ;(;(direct)A 2)MOV direct,Rn ;(;(direct)Rn 3)MOV direct1,direct2;(;(d1) (d2) 4)MOV direct,Ri ;(;(direct)(Ri) 5)MOV direct,#data ;(;(direct)data 例例3-3:已知:已知(A)=55H, (70H)=88H

57、, (0 ) =70H,(R3 )=33H,试写出以下指令的执行结果、指令代码及源操作数的寻址方试写出以下指令的执行结果、指令代码及源操作数的寻址方式。式。 指令指令 指令结果指令结果 指令代码指令代码 寻址方式寻址方式MOV P1 , A;MOV 78H,3;MOV 30H,0;MOV 7EH,70H;MOV 10H,#50H; ;(P1)=55H F5H 90H 寄存器寻址寄存器寻址(78H)= 33H 8BH 78H 寄存器寻址寄存器寻址(30H)= 88H 86H 30H 寄间寻址寄间寻址(7EH)= 88H 85H 70H 7EH 直接寻址直接寻址(10H)= 50H 75H 10H

58、 50H 立即寻址立即寻址传送指令应用练习 例1 A5BH,R110H,R220H,R330H,(30H4FH,执行指令:MOV R1,A ;A送R1MOV R2,30H ;(30H)送R2 MOV R3,83H ;83H送R3执行后,R15BH,R24FH,R383H(4)以以Ri为目的地址传送指令为目的地址传送指令 1)MOV Ri,A ;(;(Ri)A2)MOV Ri,direct ;(;(Ri)(direct)3)MOV Ri,#data ;(;(Ri)data间址实例 例:例:MOV R1 , 76H 执行结果:执行结果: (R1) (76H) 。 若(若(76H)=0FH, (R1

59、)=23H,则:则:(23H)=0FH 例例3-43-4:已知:已知(A)=55H, (70H)=88H, (A)=55H, (70H)=88H, (0 0) =70H) =70H, (R(R1 1 )=33H )=33H,试写出以下指令的执行结果、指令代,试写出以下指令的执行结果、指令代码及源操作数的寻址方式。码及源操作数的寻址方式。 指令指令 执行结果执行结果 指令代码指令代码 寻址方式寻址方式 MOV MOV 0 0 , A, A;MOV MOV 1 1 , 70H, 70H;MOV MOV 1 1 , #78H, #78H;(70H(70H)= 55H F6H = 55H F6H 寄存

60、器寻址寄存器寻址(33H) = 88H A7H 70H (33H) = 88H A7H 70H 直接寻址直接寻址 (33H) = 78H 77H 78H (33H) = 78H 77H 78H 立即寻址立即寻址 例例2-2 分析下面程序运行的结果分析下面程序运行的结果MOV A,#30H ;A30H,即,即A=30HMOV R0,A ;R0A,即,即R0=30HMOV 70H,R0 ;(;(70H)R0, ;即(;即(70H)=30HMOV R0, #55H ;(;(R0)55H, ;即(;即(30H)=55HMOV R1,30H ;R1(30H),), ;即;即R1=(30H)=55HMOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论