第二章 80C51单片机基础知识_第1页
第二章 80C51单片机基础知识_第2页
第二章 80C51单片机基础知识_第3页
第二章 80C51单片机基础知识_第4页
第二章 80C51单片机基础知识_第5页
已阅读5页,还剩178页未读 继续免费阅读

下载本文档

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

文档简介

第二章80C51单片机的基础知识§2.280C51单片机的微处理器§2.380C51单片机的存储器配置§2.180C51单片机的内部结构与引脚功能

§2.480C51单片机的寻址方式§2.5

80C51单片机的指令系统思考与练习§2.180C51单片机的内部结构与引脚功能一、80C51单片机的构成及结构特点二、80C51单片机的引脚及其功能一、80C51单片机的构成及结构特点1.80C51构成8位CPU、128字节RAM存储器、21个专用寄存器(亦称特殊功能寄存器SFR)、4K字节ROM存储器、4个8位并行口、1个全双工的串行口、2个16位的定时器/计数器、一个处理能力较强的中断系统。80C51内部结构框图如下:一、80C51单片机的构成及结构特点首页一、80C51单片机的构成及结构特点2.80C51单片机的结构特点★片内RAM的低端开辟了一个工作寄存器区,共有4组,每组有8个8位的工作寄存器,还有21个专用寄存器,使CPU控制灵活、编程方便。一、80C51单片机的构成及结构特点2.80C51单片机的结构特点★把程序存储器与数据存储器在空间上严格分开:采用不同的寻址方式;使用不同的控制信号;使用两个不同的地址指针,用PC指向程序存储器,用DPTR指向数据存储器。一、80C51单片机的构成及结构特点2.80C51单片机的结构特点★片内I/O口多,有4个8位多功能且可按位控制的并行口和一个全双工的串行口,串行口有多种工作方式,可实现多机通讯,易构成集中分布式的控制系统。首页一、80C51单片机的构成及结构特点2.80C51单片机的结构特点★扩展能力强,当片内的存储器或I/O口不够用时,可以很方便地通过片内并行口(这时作为总线口)进行扩展,最大可扩展至64K字节程序存储器和64K数据存储器。首页一、80C51单片机的构成及结构特点2.80C51单片机的结构特点★芯片采用条状结构,制造商很容易按照用户的要求,设计出多种指令系统和引脚都完全兼容的专用的单片机。如80C52就是在80C51上加了128字节RAM、4K字节ROM和一个16位的定时器/计数器,并增加相应的SFR。首页一、80C51单片机的构成及结构特点2.80C51单片机的结构特点★80C51单片机内含有一个布尔处理器,它实际上是一个完整的1位微处理器,这个1位机有自己的CPU、位寄存器、I/O口和指令集。所以80C51单片机把8位机和1位机复合在一起,发挥各自的长处,这是它的一大优点。首页二、80C51单片机的引脚及其功能80C51系列单片机有40个引脚,用CHMOS工艺制造,芯片采用双列直插式封装。首页80C51单片机芯片引脚图二、80C51单片机的引脚及其功能1.主电源引脚VCC:接+5V电源正端VSS:接+5V电源地端一般VCC和VSS之间应接高频和低频滤波电容。

首页二、80C51单片机的引脚及其功能2.外接晶体引脚XTAL1:芯片内部振荡电路(单级反相放大器)输入端XTAL2:芯片内部振荡电路(单级反相放大器)输出端首页二、80C51单片机的引脚及其功能2.外接晶体引脚80C51单片机的振荡器有内部和外部两种方式。首页内部方式振荡电路二、80C51单片机的引脚及其功能2.外接晶体引脚80C51单片机的振荡器有内部和外部两种方式。外部方式振荡电路二、80C51单片机的引脚及其功能3.控制信号线复位信号:时钟电路工作后,该引脚上出现持续24个振荡周期(即两个机器周期)以上的高电平,单片机就可完成复位操作。RST/VPD:复位/掉电时内部RAM的备用电源输入端首页复位二、80C51单片机的引脚及其功能首页复位电路:上电复位电路上电复位和开关复位组合电路3.控制信号线RST/VPD:复位/掉电时内部RAM的备用电源输入端复位上电复位电路首页(80C51)上电复位和开关复位组合电路首页(80C51)(80C51)二、80C51单片机的引脚及其功能3.控制信号线复位首页RST/VPD:复位/掉电时内部RAM的备用电源输入端复位状态:80C51复位后内部寄存器状态特殊功能寄存器初始状态特殊功能寄存器初始状态ACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPL00HTL100HDPH00HSCON00HP0~P30FFHSBUF不定IPXXX00000BPCON0XXX0000BIE0XX00000BTMOD00HPC0000H二、80C51单片机的引脚及其功能3.控制信号线首页RST/VPD:复位/掉电时内部RAM的备用电源输入端掉电时内RAM备用电源输入。二、80C51单片机的引脚及其功能3.控制信号线ALE/PROG:地址锁存允许/编程脉冲输入。①用ALE锁存从P0口输出的低8位地址②在对片内EPROM编程时,编程脉冲由此输入。首页二、80C51单片机的引脚及其功能3.控制信号线PSEN:外部程序存储器读选通信号。首页二、80C51单片机的引脚及其功能3.控制信号线EA/VDD:访外允许/编程电压输入①80C31中EA必须接地。②80C51/87C51中

EA=1,单片机使用片内ROM/EPROM;EA=0,单片机片内程序存储器失效,而使用片外程序存储器。③对片内EPROM编程时,此脚接编程电压。首页§2.280C51单片机的微处理器一、运算器微处理器又称CPU,由运算器和控制器两大部分组成。

首页二、控制器一、运算器

以算术逻辑单元ALU为核心,含累加器ACC、暂存器、程序状态字PSW、B寄存器等许多部件。首页如右图所示:一、运算器

1、算术逻辑单元能完成带进位位加法、不带进位位加法、带借位位减法、加1、减1、逻辑与、逻辑或、逻辑异或、循环移位以及数据传送、程序转移等操作。首页一、运算器

2、累加器ACC和寄存器B累加器ACC是最常用的专用寄存器。进入ALU作算术操作和逻辑操作的操作数很多来自ACC,操作的结果也常送回ACC。首页寄存器B在乘、除指令中作为一个操作数寄存器,其它情况下,可作为一个通用寄存器用。

一、运算器

3、程序状态字程序状态字PSW是一个8位寄存器,它包含了许多程序状态信息,其各位的含义如图所示:首页Cy

AC

FORS1RS0

OV

P一、运算器

3、程序状态字Cy

AC

FORS1RS0

OV

P①进位标志Cy:加法(减法)时最高位D7有进(借)位,则Cy=1,否则Cy=0;位处理时,它起着“位累加器”的作用。

首页一、运算器

3、程序状态字Cy

AC

FORS1RS0

OV

P②辅助进位标志AC:加(减)法运算时,如果低半字节的最高位D3有进(借)位,则AC=1,否则AC=0;AC在作BCD码运算而进行二~十进制调整时有用。首页一、运算器

3、程序状态字Cy

AC

FORS1RS0

OV

P③用户标志FO:是用户定义的一个状态标志。可通过软件对它置位、清零;在编程时,也常测试其状态进行程序分支。首页一、运算器

3、程序状态字Cy

AC

FORS1RS0

OV

P④工作寄存器区选择位RS1、RS0:可借软件置位或清零,以选定4个工作寄存器区中的一个区投入工作。首页一、运算器

3、程序状态字Cy

AC

FORS1RS0

OV

PRS1RS0寄存器区000区011区102区113区首页一、运算器

3、程序状态字Cy

AC

FORS1RS0

OV

P⑤溢出标志OV:作有符号数加法、减法时由硬件置位或清除,以指示运算结果是否溢出。首页一、运算器

3、程序状态字Cy

AC

FORS1RS0

OV

P⑥奇偶标志P:每执行一条指令,单片机都能根据A中1的个数的奇偶自动令P置位或清零:奇为1,偶为0。此标志对串行通信的数据传输非常有用,通过奇偶校验可检验数据传输的正确与否。首页二、控制器

1.控制器的结构控制器是CPU的大脑中枢,它以定时控制逻辑为中心,还包括指令寄存器、译码器、数据指示器DPTR、程序计数器PC、堆栈指针SP、以及RAM地址寄存器、16位地址缓冲器等。首页二、控制器

1.控制器的结构首页PC:16位的地址指针,专门用来控制程序运行的顺序,其中的内容总是下一条要执行的指令的地址。复位时,PC=0000H,使程序从0单元开始执行。通常单片机每取一个字节机器码,PC就自动加1,从而保证了指令的顺序执行。转移指令可强行改变PC的内容。

二、控制器

1.控制器的结构首页DPTR:它是由DPH、DPL两个8位专用寄存器组成的16位的地址指针,用于访问单片机外部数据存储器或扩展的I/O口。二、控制器

1.控制器的结构首页SP:80C51单片机的堆栈建在内RAM区中,8位地址指针SP总是指向栈顶的位置。复位时,(SP)=07H,可以通过MOV指令对SP赋值。80C51单片机的堆栈是向上生成的:压栈时,使SP的内容增1后作压入操作;出栈时,先把栈顶的数据弹出,然后使SP的内容减1。二、控制器

2.CPU操作时序80C51单片机每个机器周期包含6个状态周期,每个状态周期包含两个振荡周期(2个节拍P1、P2),若采用6MHz的晶体振荡器,则每个机器周期为2μs。首页时序概念:二、控制器2.CPU操作时序一条指令执行的时间称为指令周期,80C51单片机的指令周期为1~4个机器周期。首页时序概念:下面介绍几种典型指令的取指/执行时序二、控制器

3.布尔处理机布尔处理机是单片机CPU中运算器的一个重要组成部分。它有相应的指令系统,可提供17条位操作指令,硬件有自己的“累加器”(进位位C)和自己的位寻址RAM和I/O空间,所以是一个独立的位处理机。首页三、80C51单片机的低功耗工作方式80C51有两种低功耗方式:待机方式和掉电方式。它们比正常运行方式的功耗大大降低,下表列出80C31单片机三种工作方式下的功耗。三、80C51单片机的低功耗工作方式低功耗单片机的内部结构如下图所示:80C51低功耗方式的内部结构三、80C51单片机的低功耗工作方式低功耗方式是由电源控制寄存器PCON控制的。PCON格式如下:SMODGF1GF0PDIDL1,波特率加倍1,进入待机方式1,进入掉电方式通用标志位0通用标志位1三、80C51单片机的低功耗工作方式1、待机方式

待机方式的进入:用指令使PCON中的IDL位置1,80C51便进入待机方式,CPU停止工作,振荡器仍运行,并向中断系统、串行口、定时器提供时钟。三、8051单片机的低功耗工作方式1、待机方式

待机方式的退出:退出待机方式有中断和硬件复位两种方法。任何已开放的中断提出中断请求,都会引起硬件对IDL位清“0”,从而结束待机方式。硬件复位也将结束待机方式。三、8051单片机的低功耗工作方式2、掉电方式:

掉电方式的进入:PCON中的PD位置“1”,单片机进入掉电方式,此时单片机的一切工作停止,只有内部RAM的内容被保存。掉电方式的退出:唯一的方法是复位。三、8051单片机的低功耗工作方式待机和掉电方式下引脚的状态如下表所示:§2.380C51单片机的存储器配置四、外部数据存储器首页一、80C51单片机存贮器结构特点二、程序存贮器三、内部数据存贮器一、80C51单片机存贮器结构特点程序存贮器和数据存贮器的地址空间严格分开,用不同的地址指针、寻址方式和控制信号将这两种存储空间分开。

存在4个物理上相互独立的存贮器空间:片内、外程序存贮器片内、外数据存贮器

首页一、80C51单片机存贮器结构特点从逻辑上看,存在三个独立的空间:片内片外的程序存贮器,地址从0000H~FFFFH,共有64K字节;片内数据存贮器,地址为00H~FFH,共128/256字节;片外数据存贮器(含扩展I/O),地址为0000H~FFFFH,共64K。

首页●●●存储器的配置图(a)80C51/87C51(b)80C52/87C5280C51二、程序存贮器程序存贮器用来存放程序,其地址指针PC是16位的寄存器,所以可寻址的空间有64K字节,但片内的容量比较有限,对于51系列的80C51/87C51/89C51片内只有4K字节ROM/EPROM/FLASH,80C31内部无程序存储器。

首页二、程序存贮器如果要让单片机执行片内ROM/EPROM/FLASH中的程序(地址在0000~0FFFH之间),必须将单片机的EA引脚接高电平,否则当PC<1000H时,单片机只会到片外程序存储器中取指。首页二、程序存贮器单片机到片外程序存储器中取指时,以PC的内容作为地址,以PSEN作为控制信号,读取相应单元的指令码,经数据总线传送到指令寄存器。

首页三、内部数据存贮器

80C51单片机内部有128/256字节RAM存储器,地址从00~7FH/FFH,可供CPU随机按字节或位(部分)进行读写操作,内部RAM可作为数据缓冲区、堆栈区使用。1.内部数据RAM首页RAM空间分配示意图三、内部数据存贮器1.内部数据RAM三、内部数据存贮器工作寄存器区:00~1FH共32个单元还作为工作寄存器区,划分为四个小区,每个小区有8个工作寄存器R0~R7,某一时刻用户使用其中的一个小区,可以通过设置程序状态字PSW中的RS0和RS1

的状态确定使用哪一个小区。1.内部数据RAM首页三、内部数据存贮器

位地址区:字节地址20~2FH共16个单元,CPU可按字节访问,也可按位寻址,其位地址为00~7FH。1.内部数据RAM首页

内部RAM位地址空间三、内部数据存贮器1.内部数据RAM位地址区:三、内部数据存贮器

80C51单片机有21/26个SFR,用来管理内部各个功能部件。它们离散地分布在80H~FFH地址范围内。它们有些反映有关逻辑部件的工作状态,有些则是有关功能单元的控制命令字,均可由单片机按字节地址访问,而其中一部分(凡是字节地址能被8整除)还可按位寻址,如下图所示。2.特殊功能寄存器SFR首页首页三、内部数据存贮器2.特殊功能寄存器SFR特殊功能寄存器位地址§2.4

80C51单片机的寻址方式寻址方式即寻找操作数、产生操作数的地址的方式。中心任务是如何在寻址范围内灵活方便地找到所需的操作数或操作数的地址。自然,寻址方式越多,计算机的功能越强,灵活性越大。80C51单片机有七种寻址方式。首页七种寻址方式首页寄存器寻址方式直接寻址方式寄存器间接寻址方式立即寻址方式基址加变址的间接寻址方式相对寻址方式位寻址方式一、寄存器寻址

操作数存放在某一寄存器中,指令中给出相应的寄存器。寄存器寻址主要是对工作寄存器R0-R7进行操作,用指令操作码的低3位指明所使用的寄存器。

首页一、寄存器寻址例如:MOVA,R6

;(A)←(R6)

INC

R3

;(R3)←(R3)+1

首页一、寄存器寻址首页一、寄存器寻址

这种寻址方式除了可以对R0~R7进行操作外,还可以对A、B、C(位)、AB、DPTR进行操作。首页二、直接寻址

存放操作数的单元地址直接出现在指令中,即指令中直接给出操作数的地址。

首页二、直接寻址例如:ANL

70H,#48H;(70H)←(70H)∧48HMOV

A,70H;(A)←(70H)

首页二、直接寻址首页二、直接寻址内部RAM的低128字节;

例如:MOVA,78H;(A)←(78H)

ORLA,77H;

(A)←(A)∨(77H)首页这种寻址方式使用的变量是direct,可访问的存储空间有:

二、直接寻址2.专用寄存器;

例如:

MOV

TCON,A;(TCON)←(A)首页这种寻址方式使用的变量是direct,可访问的存储空间有:

二、直接寻址3.位地址空间;

例如:

MOV

C,7EH;(Cy)←(7EH)

SETB

EA

;(EA)←1首页这种寻址方式使用的变量是direct,可访问的存储空间有:

三、寄存器间接寻址

寄存器中的内容不是操作数本身,而是操作数的地址。即操作数的地址是以寄存器中的内容间接给出的。

首页三、寄存器间接寻址例如:ANL

A,

@R0

;(A)←(A)∧((R0))MOV

A,@R0;(A)←((R0))

首页三、寄存器间接寻址首页三、寄存器间接寻址适用的存储空间有:

1.内部RAM,使用的变量为@R0、@R1、@SP;例如:MOV

@R0,76H;

((R0))←(76H)

PUSH

PSW;

(SP)←(SP)+1,((SP))←(PSW)首页三、寄存器间接寻址适用的存储空间有:

2.内部RAM的低半字节,使用的变量是@R0

、@R1。

例如:

XCHD

A,@R1;首页三、寄存器间接寻址适用的存储空间有:

3.外部RAM(或I/O口),使用的变量是@R0、@R1、@DPTR。例如:

MOVX@R0,A

;((R0))←(A)

MOVXA,@DPTR

;(A)←((DPTR))首页四、立即寻址操作数直接出现在指令码中,即指令的操作码后面的一个字节就是实际的操作数(立即数)。

首页四、立即寻址例如:MOVDPTR,#3456H;(DPH)←34H,(DPL)←56H

MOV

A,#20H

;(A)←20H首页四、立即寻址首页四、立即寻址立即寻址方式只能适用于程序存储器。

首页五、基址加变址的间接寻址以程序计数器PC或数据指示器DPTR中的内容为基地址,加上累加器A(变址寄存器)中的内容作为操作数的地址。

首页五、基址加变址的间接寻址例如:MOVC

A,@A+DPTR

;(A)←((A)+(DPTR))MOVC

A,@A+PC

;(A)←((A)+(PC))首页五、基址加变址的间接寻址首页五、基址加变址的间接寻址首页这种寻址方式仅适用于程序存储器空间六、相对寻址以PC的内容作为基地址,加上指令中提供的偏移量作为转移的目标地址。

注意:该偏移量rel是一字节带符号数。

首页六、相对寻址例如:JC

80H

;

C=0,顺序执行

,即(PC)←(PC)+2

;

C=1,转移,(PC)(PC)+2,(PC)(PC)+80H首页六、相对寻址首页六、相对寻址相对寻址方式只能适用于程序存储器空间。

首页七、位寻址操作对象是位,指令中直接给出位地址。这种寻址方式也可以归并于直接寻址方式,但它提供的是直接的位地址。

首页七、位寻址例如:SETB

20H;(20H)1

CLREA;(EA)0

首页位寻址方式只能适用于位地址空间。

首页80C51中的寻址方式与寻址空间§2.5

80C51单片机的指令系统111条指令按功能分为五大类:首页位操作类指令17条数据传送类指令28条算术运算类指令24条逻辑运算类指令25条控制转移类指令17条§2.5

80C51单片机的指令系统

111条指令中单字节49条单周期64条双字节45条双周期45条三字节17条四周期2条首页常用符号说明Rn:8个工作寄存器R0~R7@Ri:间接寻址寄存器R0或R1#data:8位二进制立即数#data16:16位二进制立即数direct :直接地址rel:相对地址偏移量,一字节带符号数首页常用符号说明首页addr11:11位二进制数的目的地址addr16:16位二进制数的目的地址Bit:位地址(x):表示x地址单元中的内容((x)):表示以x地址单元中的内容为地址的单元中的内容:数据传送方向一、数据传送指令1.内RAM低128字节的数据传送2.内RAM高128字节的数据传送3.专用寄存器的数据传送4.外部数据存储器(包括扩展I/O口)的数据传送5.从程序存储器中取数6.不同存储空间之间的数据传送首页1.内RAM低128字节的数据传送⑴可用寄存器寻址MOVA,Rn;(A)←(Rn)MOVRn,A;(Rn)←(A)MOVRn,#data;(Rn)←dataMOVdirect,Rn;(direct)←(Rn)

首页1.内RAM低128字节的数据传送⑵可用直接寻址

MOVA,direct;(A)←(direct)MOVRn,direct;(Rn)←(direct)MOV@Ri,direct;((Ri))←(direct)MOVdirect1,direct2;(direct1)←(direct2)机器码85,direct2,direct1首页1.内RAM低128字节的数据传送

MOVA,@Ri;(A)←((Ri))MOVdirect,@Ri;(direct)←((Ri))

⑶可用寄存器间接寻址首页1.内RAM低128字节的数据传送堆栈操作指令也属于寄存器间接寻址方式,所用的指针是SP。

PUSHdirect;(SP)←(SP)+1,((SP))←(direct)POPdirect;(direct)←((SP)),(SP)←(SP)-1⑶可用寄存器间接寻址2.内RAM高128字节的数据传送只能用寄存器间接寻址方式,可用的地址指针有:@R0、@R1、@SPMOVR0,#85HMOVA,@R0

首页3.专用寄存器的数据传送只能用直接寻址方式(注:其中的A、B、DPTR亦可用寄存器寻址)MOVA,P1;(A)←(P1)MOVTMOD,#data;(TMOD)←data

其中,P1和TMOD都是专用寄存器,通常编程时用符号表示,汇编成机器码时用直接地址代之。

首页4.外部数据存储器的数据传送只能用寄存器间接寻址,地址指针可以是@R0、@R1,@DPTR,共有6条指令:MOVXA,@R0

;(A)←((R0))MOVX@R0,A;((R0))←(A)MOVXA,@R1

;(A)←((R1))MOVX@R1,A;((R1))←(A)MOVXA,@DPTR;(A)←((DPTR))MOVX@DPTR,A;((DPTR))←(A)

首页5.从程序存储器中取数⑴立即寻址数据传送指令MOVA,#data;(A)←dataMOVRn,#data;(Rn)←dataMOV@Ri,#data;((Ri))←dataMOVdirect,#data;(direct)←dataMOVDPTR,#data16

;(DPTR)←data16

5.从程序存储器中取数⑵程序存储器中的数据往往是按表格形式存放着,因此,程序存储器中的这类数据是用查表指令提取。

首页5.从程序存储器中取数MOVCA,@A+DPTR;(A)←((A)+(DPTR))MOVCA,@A+PC;(A)←((A)+(PC))(A)是一字节无符号数,PC是指当前的PC,指令执行后PC、DPTR的内容不变。以PC为基址时需加上一个附加的偏移量。首页两条查表指令:5.从程序存储器中取数

例如:在LED显示器接口中,需将字符代码转换成字形码,可通过查表法实现软件译码。对于共阴级7段LED显示器,如果要显示字符“0”,则须向显示器提供段码3FH;如果要显示字符“1”,则须向显示器提供段码06H;…………首页两条查表指令:5.从程序存储器中取数MOVA,#XXHMOVDPTR,#TABMOVCA,@A+DPTR……TAB:3FH06H……5.从程序存储器中取数MOVA,#XXHADDA,#01HMOVCA,@A+PCRETTAB:3FH06H……6.不同存储空间之间的数据传送⑴有的允许直接传送

MOVR5,#0FFH;(R5)←0FFHMOV@R0,#3AH;((R0))←3AHMOVDPTR,#03FFH;(DPTR)←03FFHMOV@R1,P1;((R1))←(P1)MOVP3,30H;(P3)←(30H)首页6.不同存储空间之间的数据传送⑵有的不能直接传送,可通过累加器A实现中转。80C51单片机指令系统中有四组与A交换数据的指令:

首页①XCH:源操作数与A的字节交换

如:XCHA,Rn;(A)(Rn)

XCHA,direct;(A)(direct)

XCHA,@Ri;(A)((Ri))6.不同存储空间之间的数据传送②XCHD:源操作数与A的低半字节交换

XCHDA,@Ri;

首页⑵有的不能直接传送,可通过累加器A实现中转。80C51单片机指令系统中有四组与A交换数据的指令:

6.不同存储空间之间的数据传送③MOVX:用于A与外RAM间的数据传送(双向),共有六条指令。首页⑵有的不能直接传送,可通过累加器A实现中转。80C51单片机指令系统中有四组与A交换数据的指令:

6.不同存储空间之间的数据传送④MOVC:将程序存储器中的数向A传送,有2条查表指令。首页⑵有的不能直接传送,可通过累加器A实现中转。80C51单片机指令系统中有四组与A交换数据的指令:

二、算术运算指令1.加法指令

2.减法指令

3.乘法指令

4.除法指令首页1.加法指令首页1.加法指令首页1.加法指令首页1.加法指令十进制数加法调整DAA:当要进行十进制数加法运算时,该指令用在加法指令(ADD、ADDC)之后,会对相加结果进行调整,确保结果也是BCD码。(P62)首页2.减法指令首页2.减法指令首页3.乘法指令MULAB(A)、(B)中为两个单字节无符号数,乘积为双字节数,高字节在B中,低字节在A中。首页当乘积的高字节非“0”时,OV=1;任何情况下,Cy总是清“0”。4.除法指令DIVAB两个单字节无符号数除法,被除数送A,除数送B,执行后商在A中,余数在B中。首页若除数为0,则指令执行后A、B的内容不定,且OV=1;任何情况下,Cy总是清“0”。三、逻辑运算指令1.单操作数2.双操作数首页CPLA;(A)←(A)

CLRA;(A)←0

RLA

RLCA

RRA

RRCA;

SWAPA

;1.单操作数,指定在A中首页CAACAAA2.双操作数,可进行与、或、异或操作首页:2.双操作数,可进行与、或、异或操作首页2.双操作数,可进行与、或、异或操作这组指令可直接对接口进行操作:

ANLP1,#01111100B

ORLP1,#00110010B

XRLP1,#31H首页四、控制转移指令作用:通过改变PC的内容以控制程序的走向。分类:

无条件转移

条件转移

中断首页四、控制转移指令1.无条件转移指令2.条件转移指令1.无条件转移指令(1)相对转移SJMPSJMPrel;(PC)←(PC)+2,(PC)←(PC)+rel

机器码:80rel例:

0100H

80rel

SJMPAAA

0102H

00

NOP

0123H

00

AAA:NOP首页1.无条件转移指令(1)相对转移SJMPrel是一字节的偏移量,编程时通常用目标地址标号代替,如本例中AAA,汇编时才计算出偏移量rel,计算方法是:

rel=目标地址-(本指令地址+02H)

=0123H-(0100H+02H)

=21H首页1.无条件转移指令(1)相对转移SJMP又例:

00FFH

00

FIRST:NOP

0100H

80rel

SJMPFIRST

rel=目标地址-(本指令地址+02H)

=00FFH-(0100H+02H)

=00FFH-0102H

=FFFDH=FDH首页1.无条件转移指令(2)短跳转AJMPAJMPaddr11;(PC)←(PC)+2,PC←

PC15~11a10a9a8a7a6a5a4a3a2a1a0机器码2字节格式:首页a10a9a800001a7a6a5a4a3a2a1a01.无条件转移指令(2)短跳转AJMP例:

0138H

1100H

KEYB:ACALLDISUP

030AH

2138H

AJMPKEYB

首页1.无条件转移指令(2)短跳转AJMP执行AJMP指令时,(PC)=030CH=0000001100001100B,

由机器码2138H,知a10a9a8=001B,a7…a0=38H

所以(PC)=00000

001

00111000

B=0138H首页1.无条件转移指令(3)长跳转LJMPLJMPaddr16;(PC)←addr15~0

机器码:02addr15~8addr7~0首页1.无条件转移指令(4)散转JMPJMP@A+DPTR;(PC)←(A)+(DPTR)(A)是无符号数,指令执行后,不影响累加器和DPTR中的内容,也不影响任何标志。

本指令根据A中的内容可实现多个分支,故称散转指令。

首页1.无条件转移指令(4)散转JMP例:在某键盘处理程序中,假定命令键的读数(0AH、0BH、0CH、0DH中之一)在A中,利用散转指令便可根据A中的内容实现正确的转向,程序如下:首页1.无条件转移指令(4)散转JMPKEYB:MOVDPTR,#JMPTBL

CLRC

SUBBA,#0AH

RLA

JMP@A+DPTR

JMPTBL:AJMPAAA;AJMPBBB

AJMPCCC

AJMPDDD首页两字节指令,执行后转相应命令处理程序1.无条件转移指令(5)子程序调用与返回(ACALL、LCALL、RET)1.ACALLaddr11;;(PC)←(PC)+2,

;(SP)←(SP)+1,((SP))←(PC7~0)

;(SP)←(SP)+1,((SP))←(PC15~8)

;PC←PC15~11a10a9…a0机器码2字节格式:

a10a9a810001a7a6a5a4a3a2a1a01.无条件转移指令(5)子程序调用与返回(ACALL、LCALL、RET)2.LCALLaddr16;;(PC)←(PC)+3,

;(SP)←(SP)+1,((SP))←(PC7~0)

;(SP)←(SP)+1,((SP))←(PC15~8);(PC)←addr16

机器码:12addr15~8addr7~0首页1.无条件转移指令(5)子程序调用与返回(ACALL、LCALL、RET)3.RET;

;(PC15~8)←((SP)),(SP)←(SP)-1

;(PC7~0)←((SP)),(SP)←(SP)-1

机器码:22H首页2.条件转移指令首页条件转移指令是指当满足某种条件时程序才转移,而条件不满足时程序继续执行下一条指令。条件主要指PSW中的标志。80C51单片机指令对标志的影响如下表:指令标志指令标志COVACCOVACADD×××CLRC0ADDC×××CPLC×SUBB×××ANLC,bit×MUL0×ANLC,/bit×DIV0×ORLC,bit×DA×ORLC,/bit×RRC×MOVC,bit×RLC×CJNE×SETBC12.条件转移指令首页注:①对PSW的按位操作也将影响相应的标志位。②任何一条改变累加器A的内容的指令都将影响P标志。③80C51单片机隐含一个零标志位(Z),当(A)=0时Z置“1”,MOV指令可能影响Z标志。2.条件转移指令(1)根据8位数据运算处理的结果确定是否转移①根据进位标志:

JCrel

;当C=1时转移,(PC)←(PC)+2,(PC)←(PC)+relJNCrel;当C=0时转移,(PC)←(PC)+2,(PC)←(PC)+rel首页2.条件转移指令(1)根据8位数据运算处理的结果确定是否转移②根据零标志:JZrel

;当(A)=0时转移,(PC)←(PC)+2,(PC)←(PC)+relJNZrel

;当(A)≠0时转移,(PC)←(PC)+2,(PC)←(PC)+rel首页2.条件转移指令(1)根据8位数据运算处理的结果确定是否转移③比较不相等,则转移:CJNEA,#data,rel;

CJNEA,direct,rel;

CJNE@Ri,#data,rel;

CJNERn,#data,rel;首页3字节指令,当第一操作数=第二操作数时不转,(PC)←(PC)+3,否则转移,(PC)←(PC)+3+rel,本指令还影响Cy,当第一操作数≥第二操作数时,Cy=0,因此可实现程序的三分支。2.条件转移指令(1)根据8位数据运算处理的结果确定是否转移首页③比较不相等,则转移:例如:CJNEA,30H,NOTEQ;(A)≠(30H),转EQ:;(A)=(30H)NOTEQ:JCLITTER;(A)<(30H),转LITTER:┋┋┋2.条件转移指令(1)根据8位数据运算处理的结果确定是否转移④减1不为0则转移:

DJNZRn,rel

;(PC)←(PC)+2,(Rn)←(Rn)-1

当(Rn)=0时,不转移,

当(Rn)≠0时转移,(PC)←(PC)+rel

首页DJNZdirect,rel;(PC)←(PC)+3,(direct)←(direct)-1

当(direct)=0时,不转移,

当(direct)≠0时转移,(PC)←(PC)+rel2.条件转移指令(2)根据对某一位测试确定是否转移(均为3字节指令)JBbit,rel;(bit)=1转移;即(PC)←(PC)+3,(PC)←(PC)+relJNBbit,rel;(bit)=0转移

JBCbit,rel;(bit)=1转移,且(bit)←0首页3.中断返回指令RETI;(PC)←(PC)+1;(PC15~8)←((SP)),(SP)←(SP)-1

首页;(PC7~0)←((SP)),(SP)←(SP)-1

4.空操作指令NOP;(PC)←(PC)+1这是一条单字节、单周期指令,它不作任何操作,只将(PC)+1,常用于延时或给程序留空。首页五、位操作指令80C51单片机中有一个位处理器,以进位位Cy作为位累加器,可完成以下操作:1.位数据传送2.位状态控制3.位逻辑操作首页1.位数据传送指令位数据传送必须经过位累加器Cy,而不能在可寻址位之间传送。MOVC,bit;(Cy)←(bit)

MOVbit,C;(bit)←(Cy)首页1.位数据传送指令例:内部RAM20H的内容为11001100B,25H的内容为00100101B,执行下列程序后,20H、25H、Cy的内容各是什么?MOVC,00H;(Cy)←(20H.0),即(Cy)←0

MOV28H,C;(25H.0)←(Cy),即(25H.0)←0

MOVC,07H;(Cy)←(20H.7),即(Cy)←1

MOV2FH,C;(25H.7)←(Cy)结果:(Cy)=1,(20H)不变,(25H)=10100100B=A4H首页2.位状态控制指令位状态控制有置1和清零两种,每种有两条指令,如下:SETBC;(Cy)←1

SETBbit;(bit)←1

CLRC;(Cy)←0

CLRbit;(bit)←0首页3.位逻辑操作指令位逻辑操作有与、或、取反三种。与、或操作时以位累加器Cy作为第一操作数,第二操作数为位地址,操作结果在Cy中。取反可以对每个位地址内容直接进行。3.位逻辑操作指令ANLC,bit;(Cy)←(Cy)∧(bit)

ANLC,/bit;(Cy)←(Cy)∧(bit)

ORLC,bit;(Cy)←(Cy)∨(bit)

ORLC,/bit;(Cy)←(Cy)∨(bit)

CPLC;(Cy)←(Cy)

CPLbit;(bit)←(bit)思考与练习1.80C51单片机片内包含哪些主要逻辑功能部件?2.80C51单片机结构上有哪些主要特点?3.80C51单片机EA引脚的作用是什么?在下列情况下,EA引脚应接何种电平?(1)只有片内ROM(2)只有片外ROM(3)有片内ROM,也有片外ROM(4)有片内ROM/EPROM,但不用或不能用了4.说明80C51单片机复位条件、复位状态,画出常用的复位电路。思考与练习5.详细描绘80C51单片机的存储器配置图。6.80C51单片机是通过哪些方法将程序存储器和数据存储器严格分开的?7.什么是单片机的特殊功能寄存器?80C51/80C52各有几个特殊功能寄存器?这些特殊功能寄存器占有的地址范围?8.80C51单片机有哪些可直接寻址的位?9.简述80C51单片机的并行口P0~P3的基本结构和功能。10.画出80C51和80C31单片机最小应用系统逻辑电路图。思考与练习11、80C51指令系统有哪几种寻址方式?如果要对特殊功能寄存器进行操作将使用哪种寻址方式?12、80C51程序段中,怎样识别位地址和字节地址?13、怎样区分内部RAM高128个字节地址以及特殊功能寄存器的地址?14、80C51指令系统按其操作功能分几大类?15、分别用两条查表指令编写一段子程序,功能为:根据累加器A中的数(0~9之间)查找平方表,求出相应的平方数,放在内部RAM的30h单元中。思考与练习16、如图所示的显示器接口电路,请编写一显示子程序,它能将代码存于RAM20H中的字符显示在共阴极七段LED显示器上。80C51思考与练习17.在下表中填上各种存贮空间所适用的寻址方式及其使用的变量思考与练习18、若要完成以下的数据传送,应如何用80C51指令来实现?R7内容传送到R4外部RAM2000H单元内容送R0ROM2000H单元内容送R2外部RAM0456H的内容送外部RAM0078H单元。思考与练习19、已知(A)=7AH,(R0)=30H,(30H)=A5H,(PSW)=80H,问执行下列各指令的结果(每条指令相互独立)。⑴XCHA,R0 ;(A)= ;(R0)=⑵XCHA,30H;(A)= ;(30H)=⑶XCHA,@R

温馨提示

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

评论

0/150

提交评论