单片微机原理与应用-第二版-罗印升-总结-河南城建课件_第1页
单片微机原理与应用-第二版-罗印升-总结-河南城建课件_第2页
单片微机原理与应用-第二版-罗印升-总结-河南城建课件_第3页
单片微机原理与应用-第二版-罗印升-总结-河南城建课件_第4页
单片微机原理与应用-第二版-罗印升-总结-河南城建课件_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

总复习7/23/20231第1章微型计算机基础知识

1.1微型计算机系统概述

1.2计算机中的数制与编码

1.3计算机中数的表示与编码7/23/20232微型计算机系统----硬件系统+软件系统(操作系统和应用软件等)一、微型计算机系统的组成图1-2微型计算机系统的组成1.1微型计算机系统概述7/23/20233存储器I/O接口输入设备I/O接口地址总线AB输出设备CPU数据总线DB控制总线CBI/O接口AB:AddressBus,DB:DataBus,CB:ControlBus1.中央处理单元二、微型计算机的硬件组成7/23/202342.存储器存储器是用来存放指令、数据、运算结果和各种需要保存信息的器件或设备。存储器通常包括三类:

--用于存放当前正在执行的程序和数据的主存储器(内存储器);

--为解决CPU与主存储器间的数据传输率差异而设计,以提高系统处理效率的高速缓冲存储器;

--为增大计算机系统存储容量而设置的磁盘存储器和光盘存储器(外存储器)。存储器的单位:KB/MB/GB,1个字节=8个二进制位。1KB=1024字节,1MB=1024KB,1GB=1024MBRAMROM7/23/202353.总线总线是微型计算机系统中各部件之间传递信息的信号线的集合。按总线的功能可分为:地址总线(AddressBus,AB)、数据总线(DataBus,DB)和控制总线(ControlBus,CB)。地址总线:传送由CPU发出的地址信号,用于选择要访问部件的地址。地址总线是单向的,只能计算机向外送出。地址总线的数目决定可直接访问的存储单元的数目。7/23/202363.总线数据总线:用于计算机系统内部各部件,及与外部存储器之间或与I/O接口之间传送数据。数据总线是双向的。数据总线的位数与CPU处理数据的字长一致。控制总线:传送保证计算机同步和协调的定时和控制信号。对于一条具体的控制信号线来说,其传送方向是单向的,但由不同方向的控制信号线组合的控制总线则是双向的。(如读/写选通线、中断请求线、中断响应线等)7/23/20237第2章:51系列单片机的结构及原理

2.151系列单片机的结构原理2.2

51系列单片机的存储器组织2.3

51系列单片机的输入/输出口2.4

51系列单片机的时钟电路与时序2.551系列单片机的复位电路2.6低功耗工作方式与看门狗定时器7/23/202381.一个8位CPU;2.4KB片内程序存储器;3.128个字节的片内数据存储器;4.4个8bit并行I/O口P0~P3;5.2个16位定时器/计数器T0、T1;6.1个全双工串行I/O接口,可多机通信。7.片内中断处理系统:5个中断源,2级中断优先级;8.时钟电路。

89C52的变化,8KFlashROM代替4kROM,RAM增加到256B,增加了一个16bit定时/计数器(T2)。2.1.151系列单片机的基本组成7/23/202391.中央处理单元CPU

CPU是单片机的控制指挥中心,由运算器和控制器两大部分组成。一个8位CPU;(1)运算器:以算术/逻辑运算单元ALU为核心,由累加器ACC(简称A)、寄存器B和程序状态字寄存器PSW等部件组成。主要完成:算术运算(加、减、乘、除等)、逻辑运算(与、或、异或)、位运算(位置“1”、置“0”和取反)和数据传送等操作,运算结果的状态由PSW保存。

2.1.251系列单片机的内部结构7/23/202310(2)控制器由程序计数器PC、指令译码器ID、指令寄存器IR、数据指针DPTR、堆栈指针SP

、缓冲器和定时控制电路等部件组成。主要任务是识别指令,产生相应的操作时序和控制信号,协调单片机各部分正常工作。

2.数据存储器RAM

51系列单片机存储器空间有程序存储器和数据存储器两个独立的空间,这种形式为哈佛结构(分别独立编址)。

51系列单片机有128B的片内数据存储器RAM、片外可扩展64KB;RAM用来存储单片机运行期间的工作变量、运算中间结果、数据暂存和标志位等。2.1.251系列单片机的内部结构7/23/2023113.程序存储器ROM51系列单片机有4KB可在系统编程的程序存储器ROM,片外可扩展到64KB。8031无此部件。用来存储程序。4.I/O接口51系列单片机有4个8位并行I/O接口:P0口、P1口、P2口和P3口。CPU通过内部总线对I/O接口中的寄存器进行读写。5.定时器/计数器

51系列单片机有2个16位定时器/计数器T0、T1(52子系列有3个),4种工作方式。6.串行口1个全双工的异步串行I/O口,具有4种工作方式。可进行串行通信,扩展并行I/O口,还可与多个单片机构成多机系统。另外,还有中断系统、时钟电路。

2.1.251系列单片机的内部结构7/23/202312

40只引脚双列直插封装(DIP)44只引脚方形封装方式(4只无用)2.1.351系列单片机引脚及功能

40只引脚按功能分为3类:(1)电源及时钟引脚:

Vcc、Vss;XTAL1、XTAL2。4根(2)控制引脚:、

ALE、、RESET

(即RST)。4根

(3)输入/输出I/O口引脚:P0、P1、P2、P3,为4个8位I/O口引脚。

32根7/23/202313电源及时钟引脚Vcc(+5V)电源输入端电源引脚(2根)(1)Vcc,(第40引脚):电源端,接+5V电源。(2)Vss(第20引脚):接地引脚,有时标记为GND。Vss(GND)共用接地端7/23/202314电源及时钟引脚1、当使用内部振荡电路时,XTAL1(第19引脚)和XTAL2(第18引脚)分别用做晶体振荡电路的反相器输入端和输出端。这两个端子用来外接一个石英晶体或陶瓷振荡器,构成一个自激振荡器。常用的时钟电路有两种方式:内部时钟方式和外部时钟方式。7/23/202315单片机XTAL1XTAL21918C1C2电容C1、C2通常选20~30PF左右振荡频率1.2MHz~12MHz晶振内部时钟方式电路C1、C2取值对振荡频率输出大小、稳定性及振荡电路的起振速度有一定的影响。通常外接一个晶振两个电容内部时钟方式7/23/202316CHMOS型2、当采用外部振荡器时,可直接将外部振荡脉冲接入XTALl或XTAL2。HMOS和CHMOS单片机外时钟信号接入方式不同,如表所示。HMOS型外部时钟方式7/23/2023172.控制引脚(4根)(1)RST/VPD(RESET,9脚)RST为复位信号输入端,高电平有效;正常工作时,此脚电平应≤0.5V。VPD为内部RAM的备用电源输入端。当主电源Vcc一旦发生断电或电压降到一定值时,可通过VPD为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使单片机上电后能继续正常运行。出现持续时间大于2个机器周期以上的高电平时,单片机复位注意:单片机复位后,程序计数器PC的内容为0000H(该单元存放一条跳转指令,跳向主程序入口地址)。7/23/202318复位可分为上电复位、按键复位两种方式。利用电容器的充放电,加给RST引脚一个短的高电平信号来实现的。为保证系统可靠复位,RST引脚上的高电平必须维持足够长的时间。RST引脚上的高电平持续时间取决于电容C充电时间。通常时钟频率为6MHz时,C取22μF,R取1KΩ。上电复位电路按键复位的电路7/23/202319EA/VPP(31)PSEN(29)名称功能片外ROM读选通信号输出引脚,输出低电平有效。通过P0口读回指令或常数。常与片外ROM的OE(输出允许)引脚相连内外ROM选择控制引脚/编程电压EA=0时,选片外ROM;1,地址小于4k时,选片内ROM地址大于4k时,选片外ROMP0口是数据/地址复用口P0口传输数据信息P0口输出地址信息锁存地址ALE/PROG(30)地址锁存允许信号输出引脚/编程脉冲输入端如8031芯片该引脚接地其他3个控制引脚为数据总线/低8位地址总线为高8位地址总线P0口P2口7/23/2023203.输入/输出引脚(32根)(1)P0口(P0.0~P0.7,第39~32引脚)作双向I/O口使用或者作为低8位地址总线/数据总线分时复用。第一功能:是一个8位的双向I/O口,这时P0口可看成用户的数据总线;第二功能:当外扩存储器及I/O接口芯片时,P0口作为低8位地址总线及数据总线的分时复用端口。在访问外部存储器时,先用做地址总线,再用做数据总线。7/23/202321(2)P1口(P1.0~P1.7,第1~8引脚):P1口的第一功能是作为准双向I/O口使用。第二功能用户可通过编程自定义。(3)P2口(P2.0~P2.7,第21~28引脚):P2口作为一般的准双向I/O口使用或者高8位地址总线输出引脚。第一功能:一个内部带上拉电阻的8位准双向I/O口。第二功能:当外扩存储器或I/O接口芯片时,P2口作为高8位地址总线使用。和P0口一起组成16位片外存储器的地址总线,可访问64KB存储空间。作为输入口时,应先向该口写入“1”7/23/202322(4)P3口(P3.0~P3.7,第10~17引脚):P3口一般作为准双向I/O口使用或者第二功能引脚。P3口通常使用其第二功能。7/23/202323引脚第二功能符号第二功能描述P3.0(10)RxD串行通信数据接收引脚P3.1(11)TxD串行通信数据发送引脚P3.2(12)外部中断0请求信号输入引脚,低电平有效P3.3(13)外部中断1请求信号输入引脚,低电平有效P3.4(14)T0定时/计数器0外部计数脉冲输入引脚P3.5(15)T1定时/计数器1外部计数脉冲输入引脚P3.6(16)外部数据存储器写选通信号,低电平有效P3.7(17)外部数据存储器读选通信号,低电平有效P3口的第二功能

7/23/202324小结RST/VPDP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0RXDTXDINT0

INT1

T0

WRRDT1

XTAL2XTAL1VssVcc51系列40393837363534333231302928272625242322211234567891011121314151617181920P0口:I/O口或数据总线/低8位地址总线复用口P1口:I/O口P3口:I/O口或第2功能口P2口:I/O口

或高8位地址总线控制总线控制总线EA/VPPALE/PROGPSEN时钟复位引脚40个引脚介绍完毕,应熟记每一引脚功能,对系统硬件电路设计十分重要!7/23/2023252.251系列单片机的存储器组织2.2.1程序存储器的地址空间

2.2.2数据存储器的地址空间

2.2.3特殊功能寄存器简介【重点与难点】重点是51系列单片机的存储器的结构。难点是内部数据存储器的结构及高128B数据存储单元与SFR区域的区别与使用方法。字节地址和位地址的区别。7/23/2023262.251系列单片机的存储器组织

51系列单片机的存储器从物理位置看,有4个存储器空间,即片内数据存储器(简称片内RAM)、片内程序存储器(片内ROM)、片外数据存储器(片外RAM)和片外程序存储器(片外ROM),如图所示

。51系列单片机存储器的物理位置

64KB64KBROM和RAM分别独立编址128B4KB7/23/202327从寻址空间的角度来看,51系列单片机的存储器空间又可分为3个部分,如图所示。

2.251系列单片机的存储器组织

程序存储器内部数据存储器外部数据存储器

片内外独立编址片内外统一编址64KB7/23/2023282.2.1程序存储器CPU访问片内和片外ROM,由引脚上的电平决定。

(a)ROM空间地址分布片内外统一编址的64KB程序存储器空间,地址范围0000H~0FFFFH。7/23/2023292.2.1程序存储器(b)ROM低地址中断入口单元

在程序存储器的开始部分,定义了6个具有特殊功能的地址段,用作程序起始和各种中断服务程序的入口地址。6个单元组的入口地址均存放一条无条件转移指令。转向主程序入口转向中断服务子程序入口7/23/202330

2.2.2数据存储器52系列的高128BRAM区和特殊功能寄存器区SFR重叠。采用不同的寻址方式予以区分。(a)片内RAM和SFR空间分布(b)片外RAM空间单元直接或间接寻址7/23/202331

2.2.2数据存储器

51系列单片机的数据存储器RAM主要用来存放中间运算结果、数据暂存和缓冲、标志位等。AT89S51的片内RAM有128B,对应地址范围是00H~7FH。AT89S52的片内RAM有256B,对应地址范围是00H~FFH。片外最大扩展64KB,片内外独立编址。地址范围是0000H~FFFFH。片内/外RAM的低地址0000H~00FFH是重复的,通过不同的指令访问以区分它们。从外部RAM读数据MOVXA,@Ri

向片外RAM写数据MOVX@Ri,A7/23/2023322.2.2数据存储器—内部低128B1.通用工作寄存器区:共4组,每组8个寄存单元,32个单元,暂存运算数据和中间结果。字节地址为00H~1FH。2.位寻址区:字节地址为20H~2FH,既可作RAM,也可位操作。共有16个单元,共128位,位地址为00H~7FH。(字节寻址或位寻址)3.用户RAM区:80个单元,地址为30H~7FH,只能字节寻址,在一般应用中常作堆栈区及数据缓冲区。7/23/202333(1)工作寄存器区工作寄存器也称为通用寄存器,供用户编程时使用,用于临时存储8位数据信息。工作寄存器地址为00H~1FH的32个单元,并分成4个工作寄存器组,每个组有8个工作寄存器,名称为R0~R7。工作寄存器和RAM地址的对应关系如表所示。只能有一组工作寄存器被选为CPU的当前工作寄存器,通过改变程序状态字寄存器(PSW)中的RS1、RS0两位来实现。7/23/202334表2-3表2-4工作寄存器区位寻址区用户RAM区字节地址位地址7/23/202335

2.2.3

特殊功能寄存器共21个单元,其中字节地址的末位是0H或8H可位寻址(11个)。

下面介绍SFR块中的某些寄存器。7/23/202336

2.2.3

特殊功能寄存器(1)

累加器ACC(E0H8位)用于存放操作数或运算中间结果的8位专用寄存器,是CPU中使用最频繁的寄存器,可写为Acc。其物理地址为0E0H,也可使用ACC代表物理地址。对ACC可进行位寻址,通常用ACC.n(n=0~7)表示。(2)寄存器B(F0H8位)

与累加器A配合执行乘、除运算,并存放运算结果。在无乘除运算时,它可作为内部RAM的一个单元。如ACC中位地址三种表示形式:ACC.1~(E0H).1~E1H7/23/202337

2.2.3特殊功能寄存器PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CYACF0RS1RS0OVF1P(3)

程序状态字PSW(D0H8位)PSW是可位寻址的8位寄存器,主要用于存储当前指令执行后的程序状态,供程序查询和判断。各位定义如下:进位标志位辅助进位标志位用户自定义状态标志位工作寄存器组选择位溢出标志位奇偶校验标志位7/23/202338

2.2.3特殊功能寄存器(4)堆栈指针SP。SP是8位专用寄存器,作为堆栈指针它始终指向堆栈的顶部。

51系列单片机的堆栈是为子程序调用和中断操作而设,主要作用:保护断点和现场保护。所谓堆栈是一个连续的数据存储区域,其存取原则为“后进先出”,或“先进后出”。堆栈的操作有两种:进栈和出栈。51系列单片机的堆栈是向上生成型(向地址增大的方向生成),进栈操作过程是SP先加1,然后数据压入;出栈过程是SP指向的数据从中弹出,然后SP减1。

AT89S51单片机复位后,SP的内容为07H,此时堆栈实际上是从08H单元开始的,而08H~1FH是工作寄存器组区,所以,通常在片内数据存储区的30H~7FH设置堆栈,一般在初始化时将SP设置成60H。7/23/202339

(5)数据指针DPTR。DPTR是16位专用地址指针寄存器,用来存放读片外ROM或读/写片外RAM的16位地址。既可作为16位寄存器使用,也可作为两个独立的8位寄存器DPH和DPL来使用。其中DPH是DPTR的高8位,DPL是DPTR的低8位。对于AT89S51来说,DPTR就是DP0。

例如:当对片外RAM寻址时,DPTR可作为间接寻址寄存器使用:从外部数据存储器取数MOVXA,@DPTR送数到外部数据存储器MOVX@DPTR,A

2.2.3特殊功能寄存器7/23/202340(6)程序计数器PC(ProgramCounter)PC是16位的二进制计数器,专门用于存储CPU要执行的下一条指令在ROM中的地址,控制程序的执行顺序。PC没有地址,是不可寻址的,用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其值,以实现程序的转移。单片机复位时,PC中内容为0000H,从0000H单元取转移指令,转到主程序开始执行。

2.2.3特殊功能寄存器7/23/202341注意事项1、访问SFR寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器单元地址。2、ROM与RAM片内外地址重叠,但不会产生操作混乱。因为它们由不同的操作指令和EA信号控制来自动区分重叠空间的。(指令MOVC专用访问ROM,EA信号控制片内外ROM,指令MOVX专用访问片外RAM)。3、片外RAM与I/O端口统一编址。所有外围I/O端口的地址均占用RAM单元地址,使用与访问外部RAM相同的传送指令。(7)并行I/O口P0~P3均为8位,可实现数据在端口的输入和输出。分别是I/O端口P0~P3的锁存器,可进行位寻址。所有访问RAM单元的指令,都可用来访问I/O端口。7/23/202342下图为各类存储器在存储器空间的位置总结7/23/2023432.3.1P0口的工作原理及应用

2.3.2P1口的工作原理及应用

2.3.3P2口的工作原理及应用

2.3.4P3口的工作原理及应用【重点与难点】重点是四个I/O口的功能及应用方法。难点是四个I/O口的工作原理。

2.351系列单片机的输入/输出口7/23/20234451系列单片机有4个8位并行I/O端口P0~P3。每个端口都有8根I/O口线,每根线都能独立的作为输入或输出。具有字节寻址和位寻址功能。

P0口是一个三态双向I/O口,可作为地址/数据总线使用,也可作为通用I/O口使用。可驱动8个LS型TTL负载。(1)用作通用I/O口(当系统无外扩展存储器时)

①用作输出口。需要外接10KΩ上拉电阻。

②用作输入口。有两种读入方式:“读锁存器”和“读引脚”。当执行“读引脚”指令前,需人为的在锁存器中写入“1”。(2)用作地址/数据总线(当系统外扩展存储器时)

P0口作为地址/数据总线使用时是一个真正的双向口,而作为通用I/O口使用时属于准双向口。7/23/202345P1口作为通用I/O使用,属于准双向口。作为输出时,无需再接上拉电阻,每个引脚可驱动4个LSTTL门电路。作输入口时,必须先向锁存器写“1”。P2口作为通用I/O或高8位地址总线使用。(1)作通用I/O口(当片外只扩展256BRAM且无外扩ROM时)特点同P1口(2)作高8位地址总线(当外扩RAM>256B或外扩ROM时)P2口中只有某几根口线作地址使用时,剩下的口线不能作为通用I/O口线使用,可作为RAM或I/O口的片选信号;P3口(1)P3口用作第一功能(通用I/O口)特点同P1口(2)P3口第二功能P3口的某些口线作第二功能时,剩下的口线可以单独作为通用I/O口线使用。7/23/2023462.4.1片内振荡器及时钟信号的产生

2.4.2时序及有关概念

2.4.3指令的取指令/执行时序

2.4.4访问片外存储器的操作时序【重点与难点】重点是时钟电路的设计、时序有关的几个概念及指令执行时序。难点是访问片外存储器的操作时序。

2.4时钟电路与时序7/23/202347时钟电路有两种方式:内部时钟方式和外部时钟方式时钟周期(节拍)、状态、机器周期、指令周期时钟周期:Tosc=1/fosc1个机器周期=6个状态周期=12个时钟周期1条指令周期=1、2、4个机器周期指令的取指/执行时序CPU执行任何一条指令都分为取指令和执行指令两个阶段。

ALE信号是用于锁存地址的选通信号,由时钟频率的1/6。通常,在每个机器周期内ALE信号出现两次,时刻为S1P2-S2P1和S4P2-S5P1。每出现一次ALE信号,CPU进行一次读指令操作,但并不是每条指令在ALE信号生效时都能有效地读取指令。

2.4时钟电路与时序7/23/2023482.5.1复位与复位电路介绍

2.5.2单片机复位后的状态【重点与难点】重点是复位电路和复位后各寄存器的初始状态。难点是复位后各寄存器的初始状态。

2.551系列单片机的复位电路

7/23/202349复位是一种操作,就是使CPU和系统中的其它部件都置为一个确定的初始状态,并从这个初始状态开始工作。

复位可以使死机状态下的单片机重新启动。

2.551系列单片机的复位电路

1.复位与复位电路

复位可分为上电复位、按键复位(外部复位)和内部复位。外部复位就是使RST端上保持2个机器周期以上的高电平,内部复位就是WDT产生的复位。

7/23/202350

2.551系列单片机的复位电路

上电复位和按键复位的电路

2.单片机复位后的状态

单片机复位后,所有的内部SFR和一些引脚都被赋予默认值,SFR状态如下表所示。ALE和PSEN引脚输出高电平,即ALE==1,PC=0000H,单片机从起始地址0000H开始执行程序。晶振为6MHz7/23/202351寄存器复位状态寄存器复位状态PC0000HTH000HACC00HTL000HB00HTH100HPSW00HTL100HSP07HTH200HDP00000HTL200HDP10000HTMOD00HP0~P3FFHT2MOD00HSCON00HTCON00HIP×××0000BT2CON00HIE0×××0000BRCAP1H00HWDTRST××××××××BRCAP2H00HAUXR×××00××0BAUXR1×××××××0B表2-7复位后片内SFR的状态7/23/202352第3章:指令系统和程序设计方法

3.1指令系统概述3.2寻址方式3.3数据传送类指令3.4算术运算类指令

3.8汇编语言程序设计3.5逻辑运算类指令3.6位操作类指令3.7控制转移类指令7/23/20235351系列单片机的指令系统有七种寻址方式:立即寻址:MOVA,#30H;(A)←30H直接寻址:MOVA,30H;(A)←(30H)寄存器寻址:MOVA,Rn;(A)←(Rn)间接寻址:MOVA,@Ri;(A)←((Ri))位寻址:SETBPSW.3;(PSW.3)←1

变址寻址:

MOVCA,@A+PC/MOVCA,@A+DPTR相对寻址:JZrel

7/23/202354片内RAM数据传送类指令:

1.以累加器A为目的操作数的指令(4条)

MOVA,Rn;(A)←(Rn),(n=0~7) MOVA,direct;(A)←(direct) MOVA,@Ri;(A)←((Ri)),(i=0、1) MOVA,#data;(A)←data

2.以寄存器Rn为目的操作数的指令(3条)

MOVRn,A;(Rn)←(A),(n=0~7)MOVRn,direct;(Rn)←(direct),(n=0~7)

MOVRn,#data;(Rn)←data,(n=0~7)

4.以间接地址为目的操作数的指令(3条)

MOV@Ri,A;((Ri))←(A)MOV@Ri,direct;((Ri))←(direct)MOV@Ri,#data;((Ri))←data

3.3数据传送类指令7/23/202355片内RAM数据传送类指令:

3.以直接地址为目的操作数的指令(5条)

MOVdirect,A;(direct)←(A)MOVdirect,Rn;(direct)←(Rn),(n=0~7)MOVdirectl,direct2;(direct1)←(direct2)MOVdirect,@Ri;(direct)←((Ri)),(i=0、1)MOVdirect,#data;(direct)←data5.十六位数据的传递指令(1条)

MOVDPTR,#data16;(DPTR)←data16

指令功能:将16位立即数送入DPTR,高8位送入DPH,低8位送入DPL。7/23/202356访问外部RAM数据传送指令:

MOVXA,@Ri;(A)←((Ri))读操作MOVX@Ri,A;((Ri))←(A)写操作MOVXA,@DPTR;(A)←((DPTR))读MOVX@DPTR,A;((DPTR))←(A)写程序存储器向A传送数据指令:共有2条,又称为查表指令属于变址寻址指令,用于从ROM中查找数据。指令的格式为:MOVCA,@A十DPTR;(A)←((A)十(DPTR))MOVCA,@A十PC;(PC)←(PC)十1,(A)←((A)十(PC))7/23/202357堆栈操作指令:

共有2条,对应进栈和出栈两种操作指令的格式为:PUSHdirect;(SP)←(SP)+1,(SP)←(direct)POPdirect;(direct)←(SP),(SP)←(SP)-1堆栈操作特点是“先进后出”主要作用是保护断点和恢复现场。数据交换指令1.字节交换指令(XCH,Exchange

3条)

XCHA,Rn;(A)←→(Rn)XCHA,@Ri;(A)←→((Ri))XCHA,direct;(A)←→(direct)2.半字节交换指令(1条)

XCHDA,@Ri;(A)3~0←→((Ri))3~03.累加器A高低半字节交换指令(1条)

SWAPA;(A)7~4←→(A)3~0

7/23/202358算术运算类指令:共有24条,包括加、减、乘、除4种基本算术运算指令,运算的结果将使PSW的相应标志位置1或清0。

加法指令1.不带进位位的加法指令(ADD,Addition4条)

ADDA,Rn ;(A)←(A)+(Rn) ADDA,direct ;(A)←(A)+(direct) ADDA,@Ri;(A)←(A)+((Ri)) ADDA,#data;(A)←(A)+#data

3.4算术运算类指令7/23/202359使用加法指令时,运算结果对PSW中各标志位的影响:(1)如果位7有进位,则进位标志Cy置1,否则Cy清0。(2)如果位3有进位,辅助进位标志Ac置1,否则Ac清0。(3)如果位6有进位,而位7没有进位,或者位7有进位,而位6没有进位,则溢出标志位OV置1,否则OV清0。2.带进位加法指令(ADDC,4条)ADDCA,Rn;(A)←(A)+(Rn)+(CY)ADDCA,direct;(A)←(A)+(direct)+(CY)ADDCA,@Ri;(A)←(A)+((Ri))+(CY)ADDCA,#data;(A)←(A)+data+(CY)说明:指令运行对于标志位的影响与不带进位加法指令相同。

带进位加法指令ADDC常用于完成“多字节运算”7/23/2023603.增量指令(INC,Increase5条)INC A ;(A)←(A)+1影响PINC Rn ;(Rn)←(Rn)+1INC direct;(direct)←(direct)+1INC @Ri ;((Ri))←((Ri))+1INC DPTR ;(DPTR)←(DPTR)+14.十进制调整指令(DecimalAdjustforAddition

1条)DAA注意:(1)这条指令必须紧跟在ADD或ADDC指令之后,对加法指令的结果进行调整,且这里的ADD或ADDC的操作是对压缩的BCD码表示的数进行运算。(2)DA指令不影响溢出标志。7/23/2023611.带借位减法指令(SUBB,SubtractwithBorrow4条)SUBBA,#data;(A)←(A)-data-CySUBBA,Rn;(A)←(A)-(Rn)-CySUBBA,direct;(A)←(A)-(direct)-CySUBBA,@Ri;(A)←(A)-((Ri))-Cy2.减1指令(DEC,

Decrease4条)DECA;(A)←(A)-1DECRn;(Rn)←(Rn)-1DECdirect;(direct)←(direct)-1DEC@Ri;((Ri))←((Ri))-1对标志位的影响和ADD相同。7/23/202362

功能:A和B中数相乘,乘积的低8位存于A中,高8位存于B中。指令执行后对PSW的影响如下: (1)若乘积大于255,OV=1;否则OV=0; (2)Cy总是为“0”。P受累加器A中的内容影响。乘法指令(MUL,Multiplication) MUL AB;(B)(A)←(A)×(B)功能:A中的数除以B中数,商放在A中,余数放在B中。指令执行对PSW的影响如下:(1)Cy、OV,均清“0”(2)若(B)=0(即除数为0时),则存放结果的A、B中的内容不定,则溢出标志位OV置1。P随累加器A中的内容变化。

除法指令(DIV,Division)DIVAB;(A)←(A/B)的商,(B)←(A/B)的余数)7/23/202363

逻辑运算指令共24条,涉及累加器A时,影响P,但对AC、OV及CY没有影响。1.累加器清“0”(CLR,Clear1条) CLRA;(A)←02.累加器按位取反指令(CPL,Complment1条) CPLA;(A)←(/A)3.循环移位指令(4条)RLA;将A的内容循环左移1位RRA;循环右移1

RLCA;带Cy循环左移1RRCA;带Cy循环右移1位3.5逻辑运算类指令7/23/202364

1.逻辑“与”操作指令(6条)具有对某位清0的作用ANL A,Rn ;(A)←

(A)∧(Rn)ANL A,direct ;(A)←

(A)∧(direct)ANL A,@Ri ;(A)←

(A)∧((Ri))ANL A,#data ;(A)←

(A)∧dataANL direct,A ;(direct)←

(direct)∧(A)ANLdirect,#data;(direct)←(direct)∧data2.逻辑“或”操作指令(6条)具有对某位置1的作用ORL A,Rn ;(A)←

(A)∨(Rn)ORL A,direct ;(A)←

(A)∨(direct)ORL A,@Ri ;(A)←

(A)∨((Ri))ORL A,#data ;(A)←

(A)∨dataORL direct,A ;(direct)←

(direct)∨(A)ORL direct,#data;(direct)←

(direct)∨data7/23/202365

3.逻辑异或指令(6条)对某些位进行取反,其它位保持不变的作用;与“1”相异或对相应位取反;与“0”相“异或”则保留相应位不变。XRL A,Rn ;XRL A,direct ;XRL A,@Ri ;XRL A,#data ;XRL direct,A ;XRL direct,#data;

位变量传送指令有互逆的2条,可实现进位位C与某直接寻址位bit间内容的传送。MOV C,bit ;(CY)←

(bit)MOV bit,C ;(bit)←

(CY)7/23/202366位变量逻辑操作指令:位变量逻辑“与”和逻辑“或”,共有4条指令。

ANLC,bit ;(Cy)←(Cy)∧(bit)ANLC,/bit ;(Cy)←(Cy)∧(/bit)ORLC,bit ;(Cy)←(Cy)∨(bit)ORLC,/bit ;(Cy)←(Cy)∨(/bit)注意:位变量逻辑运算中无逻辑异或(XRL)。CPLbit;SETBC;SETBbit;

CLRC;CLRbit;CPLC;位变量修改指令分别是对位进行清0、置1和取反指令。7/23/2023673.7控制转移类指令

转移类指令的共同特点是可以改变程序执行的顺序,使CPU转移到另一处执行程序,或者是继续顺序地执行程序。无论是哪一类指令,执行后都将改变程序计数器PC的值。

转移类指令分为四类:无条件转移、条件转移、调用指令及返回指令,共计有21条指令,另外还有一条NOP指令。除NOP指令执行时间为一个机器周期外,其它转移指令的执行时间都是两个机器周期。7/23/2023683.7.3调用与返回指令3.返回指令(2条)(1)子程序的返回 RET;PC15~PC8←(SP),(SP)←(SP)-1 ;PC7~PC0←(SP),(SP)←(SP)-1

功能:RET(Return)指令从堆栈中取出16位断点地址送回PC,使子程序返回主程序。(2)中断返回指令 RETI;PC15~PC8←(SP),(SP)←(SP)-1 ;PC7~PC0←(SP),(SP)←(SP)-1

功能:RETI(ReturnforInterrupt)将堆栈顶部2字节的内容送到PC中,该指令用于中断服务程序的末尾。与RET指令不同之处,RET1指令清除了中断响应时被置1的相关内部寄存器的状态。7/23/2023691.ORG(ORiGin)汇编起始地址命令格式:ORG16位绝对地址或表达式功能:规定程序块或数据块存放的起始地址。例如:ORG2000HSTART:MOVA,#00H ┋规定标号START代表地址为2000H开始。在一个源程序中,可多次使用ORG指令,来规定不同的程序段的起始地址。但是,地址必须由小到大排列,地址不能交叉、重叠。如程序段前无ORG伪指令,则汇编得到的目标程序将从0000H开始。

1.汇编起始地址例如: ORG2000H ┇ORG2500H ┇ORG3000H ┇错误:ORG 2500H┇

ORG 2000H┇

ORG 3000H

7/23/202370END(ENDofassembly)汇编终止命令格式:END功能:汇编语言源程序的结束标志,用于终止源程序的汇编工作。在整个源程序中只能有一条END命令,且位于程序的最后。如果END出现在程序中间,其后的源程序,将不进行汇编处理。2.汇编结束命令

7/23/202371格式:[标号:]DB8位字节数据表功能:用于从指定的地址开始,在程序存储器连续单元中定义字节数据。常用于存放数据表格。说明:字节数据可以是1个字节的常数或字符,或用逗号分开的字符串,或用引号括起来的字符串。例如:ORG 2001HDB 40H,24,“C”,“B”;汇编后(2001H)=40H(2002H)=18H(十进制数24)(2003H)=43H(字符“C”的ASCII码)(2004H)=42H(字符“B”的ASCII码)显然,DB功能是从指定单元开始定义(存储)若干字节,十进制数自然转换成十六进制数,字母按ASCII码存储。3.定义字节命令7/23/202372第4章:中断系统

4.1中断系统概述4.251系列单片机的中断系统4.3

中断处理过程4.4中断系统应用7/23/2023734.1中断系统概述引起中断的原因称为中断源。中断源提出的服务请求称为中断请求。原来正在运行的程序称为主程序,主程序被断开的位置(地址)称为断点。中断处理包括4个步骤:中断请求、中断响应、中断处理和中断返回。CPU响应中断请求时,将先把断点处的PC值压入堆栈保存起来,这个过程称为保护断点。(恢复断点:执行RETI指令)在中断服务程序开始,由用户把相关寄存器和标志位的状态也压入堆栈保存起来,这称为保护现场。(恢复现场)7/23/2023744.251系列单片机的中断系统7/23/202375中断控制(1)定时器控制寄存器TCON(2)

温馨提示

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

评论

0/150

提交评论