单片机原理及其接口技术 教学课件 ppt 作者 严洁 主编 第2章 8051编程结构

上传人:E**** 文档编号:89497420 上传时间:2019-05-25 格式:PPT 页数:25 大小:930.50KB
返回 下载 相关 举报
单片机原理及其接口技术 教学课件 ppt 作者 严洁 主编 第2章 8051编程结构_第1页
第1页 / 共25页
单片机原理及其接口技术 教学课件 ppt 作者 严洁 主编 第2章 8051编程结构_第2页
第2页 / 共25页
单片机原理及其接口技术 教学课件 ppt 作者 严洁 主编 第2章 8051编程结构_第3页
第3页 / 共25页
单片机原理及其接口技术 教学课件 ppt 作者 严洁 主编 第2章 8051编程结构_第4页
第4页 / 共25页
单片机原理及其接口技术 教学课件 ppt 作者 严洁 主编 第2章 8051编程结构_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《单片机原理及其接口技术 教学课件 ppt 作者 严洁 主编 第2章 8051编程结构》由会员分享,可在线阅读,更多相关《单片机原理及其接口技术 教学课件 ppt 作者 严洁 主编 第2章 8051编程结构(25页珍藏版)》请在金锄头文库上搜索。

1、2.1 累加器和工作寄存器组 2.2 程序状态字寄存器 2.3 数据地址指针 2.4 单片机存储器组织 2.5 堆栈及堆栈组织 2.6 位处理器和位寻址,2.1 累加器和工作寄存器组,2.1.1 寄存器,8051使用最频繁的一个8位寄存器:用于所有的算术和逻辑运算指令,访问外部数据存储器或访问程序存储器中的查表指令。,一、寄存器A(累加器ACC,Accumulator),专为乘法和除法操作设置的8位寄存器,常与累加器A配对使用,称为AB寄存器对。,二、寄存器B,三、工作寄存器R0R7,也是使用较多的8个8位寄存器。常用来存放数据、地址、运算的中间结果等,由于它们的功能及使用不做预先规定,因此也

2、称为通用寄存器。,MOV A ,#23H ;被加数23H送入A,相当变量赋初值 MOV R2,#47H ;加数47H送入R2,相当变量赋初值 ADD A ,R2 ; A= 6AH,两变量相加,和存入A,例2-1 加法计算,说明:,1、MOV 目的操作数 , 源操作数 ;传送指令,将源操作数复制到目的操作数,指令执行后,目的操作数具有和源操作数同样的内容,其原来的数据被覆盖。,2、ADD A , 源操作数 ;加法指令,完成1字节的源操作数和累加器A中数据相加并把结果存放到累加器A的功能。源操作数在指令执行前后不发生变化,而累加器A在指令执行前存放的是一个加数,指令执行后存放的是和。,操作数的寻址

3、方式:,1、立即寻址:前缀“#”,8位立即数记作 #data,是数值只能作为源操作数。,2、寄存器寻址:操作数由寄存器单元提供,其内容可以改变,既可作源操作数也可以做目的操作数。A和R0R7均是寄存器寻址。,MOV A ,#25H ;被乘数25H送入A,相当变量赋初值 MOV B ,#65H ;乘数65H送入B,相当变量赋初值 MUL AB ;AB=0E99H, B=0EH, A = 99H,例2-2 乘法计算,说明:,1、MUL AB ;乘法指令,乘法时AB中放两个8位无符号乘数,执行后积的低8位存A,积的高8位存B。,2、DIV AB ;除法指令,除法时A中放一个8位被除数,B中放一个8位

4、除数,均为无符号数;执行后商送入A而余数送入B,操作数的寻址方式:,操作数AB寄存器对是寄存器寻址。,2.1.2 工作寄存器和工作寄存器组,1、工作寄存器:指令当中R0R7这8个工作寄存器是8051的当前工作寄存器,8051共有32个工作寄存器。(在片内RAM中占用了32个单元(地址00H1FH),称此区域为工作寄存器区) 2、工作寄存器组:每8个工作寄存器为1组,称之为工作寄存器组(Register Banks)。工作寄存器区分4组,组号依次为0、1、2、3。 3、当前工作寄存器组:每组都有工作寄存器R0R7,在任意时刻只能使用其中的一组,这组正被使用的寄存器组就称为当前工作寄存器组。,4、

5、切换:用户可以通过指令改变程序状态字寄存器PSW中RS1(D4位)和RS0(D3位)的状态组合来切换工作寄存器组,使不同的程序段使用不同的寄存器组。这个功能为用户程序保护寄存器内容提供极大的方便,能实现快速现场保护功能, 对于提高程序的效率和响应中断的速度是很有利的。,2.2 程序状态字寄存器(Program Status Word),和其它的微处理器一样,8051的CPU也包含表明运算结果状态的标志寄存器,这个标志寄存器在8051中被称为程序状态字寄存器PSW,它是一个逐位定义的8位寄存器。,一、进位标志位CY(PSW.7):在执行加(减)法运算过程中指示最高位D7有无进(借)位。 二、辅助

6、进位标志位AC(PSW.6):指示加法运算过程中D3位到D4位有无进位。用于BCD码校正指令。 三、溢出标志位OV(PSW.2):进位标志位CY用于在无符号数算术运算中检查运算结果是否超出8位无符号数表示的数的范围(0255);溢出标志位只用于符号数算术运算中检查结果是否超出了8位带符号数表示的数的范围(128127)。当运算结果超出了计算机最大所能表示的符号数范围时,便产生溢出。此时的溢出标志位OV1。此外,在乘法运算中,OV=1表示乘积超过255,需要从寄存器B取出积的高字节;在除法运算中,OV=1表示除数为0。 四、奇偶标志位P(PSW.0):指示指令执行后累加器A中1的个数的奇偶性。,

7、AC=1,因为D3位向D4位产生进位,2.2 程序状态字寄存器(Program Status Word),例2-3 分析下列加法指令对标志位的影响,MOV A , #38H ADD A , #2FH,2.3 数据地址指针(Data Pointer),2.3.1 概述,16位的数据地址指针寄存器,指示数据地址的寄存器,简称数据指针。一般作为间址寄存器访问片外数据存储器用。 数据地址指针还可以与累加器A结合,访问程序存储器表格中的固定数据,作基址寄存器使用。 数据地址指针由两个8位寄存器拼装而成,分别是高字节的DPH(Data Pointer High)和低字节的DPL(Data Pointer

8、Low)。,2.3.2 操作,1、赋值,MOV DPTR,1000H ;给数据地址指针DPTR送入16位立即数1000H(按16位寄存 器操作),这是8051唯一的16位传送指令,其立即数在指令系统中以#data16描述。,或,MOV DPH,10H ;给DPH送入高字节8位立即数10H(按8位寄存器操作) MOV DPL,00H ;给DPL送入低字节8位立即数00H(按8位寄存器操作),2.3.2 操作,2、自增,INC DPTR,1000H ;DPTR = DPTR + 1,注意: 8051中的数据地址指针寄存器DPTR只有加1命令,没有减1命令。 数据指针自增操作的优点: 由于在数据存储

9、器中,数据一般是连续排放的,称数据块,相当高级语言中的数组。访问时先给出数据块首地址(地址指针赋值操作),即第一个数据的地址,相当高级语言定义的数组名。然后通过数据指针的递增修改(地址指针自增操作),逐一访问数据块中的每一数据,相当高级语言指针变量的加1的操作。这种访问模式比逐一给出每个数据的存储器的直接地址的访问模式节约存储空间,并且执行速度快。,2.3 数据地址指针(Data Pointer),2.4 单片机存储器组织,物理上有4个存储空间,片内ROM,片外ROM,片内RAM,片外RAM,逻辑上(用户使用的角度)有3个存储空间,片内外连续统一的ROM,片内RAM,片外RAM,存储器哈佛配置

10、ROM、RAM,片内集成、片外扩展,2.4.1 程序存储器,一、片内外连续统一ROM,程序存储器存放二进制的程序和常数,由PC(程序计数器、指令指针)寻址。,统一:16位地址的ROM空间(0000H0FFFFH),EA,引脚:External Access Enable外部访问允许,EA = 0,访问的是片外ROM 0000H0FFFH,EA = 1,访问的是片内ROM 0000H0FFFH,2.4.1 程序存储器,一、片内外连续统一ROM,程序存储器存放二进制的程序和常数,由PC(程序计数器、指令指针)寻址。,连续:16位地址的ROM空间(0000H0FFFFH),系统占用区,0003 H

11、0023H : 为ROM的系统占用区 不得被挪作它用,0000 H:放第一条指令(转移指令) 第二条指令放到0030H单元以后 (跳过系统保留区),2.4.1 程序存储器,二、程序存储器操作,(一)在程序存储器内定义数据表,1、字节定义伪指令DB(Define Byte) 功能:从指定的地址单元开始,定义若干个字节存储单元的内容。 标号: DB 8位二进制数据表,2、字定义伪指令DW(Define Word) 功能:从指定的地址单元开始,定义若干个字(16位)存储单元的内容。 标号: DW 16位二进制数据表,3、数据表首地址和项数 数据表首地址是数据表存放在ROM的起始地址,常用ORG伪指令

12、定义,以标号形式给出。 项数是此数据在数据表中的位置(以0起始计数),2.4.1 程序存储器,二、程序存储器操作,( 二)查表指令,MOVC A,A+DPTR ;远程查表指令 MOVC A,A+PC ;近程查表指令,功能:访问程序存储器(读操作),撷取表中常数(Move Code byte),说明:由于数据存储在程序存储器ROM中,它用指令MOVC表明是对程序存储器的访问,数据的传送是单向的。两条指令都是以基址寄存器DPTR或者PC的16位地址量为基准,加上变址寄存器A的内容为偏移量,形成的16位地址,就是存储在程序存储器中操作数(表格常数)的地址,从此地址取出操作数存入累加器A,这种寻址方式

13、称为变址寻址。使用中注意累加器A中的偏移量是8位无符号数(0255)。 基址寄存器PC的表格只能放在该条查表指令后面的 256 个单元之中,表格的大小受到限制,而且表格只能被一段程序所利用。 基址寄存器DPTR的表格位置可以在 64 KB程序存储器中任意安排的 256 个单元之中,并且一个表格可以为多个程序块所共用。,2.4.2 数据存储器,一、片内数据存储器,是8位地址的存储空间。保存数据、运算结果,做数据缓冲区等,用途广泛; 使用频繁。按照侧重的功能有4个功能分区:寄存器区、位寻址区、用户RAM区 和SFR区。,51子系列,52子系列,片内RAM:低128B 00H7FH,SFR区: 80

14、H0FFH,片内RAM:全部256B 00H0FFH,SFR区: 80H0FFH,片内RAM,SFR区,地址,地址,工作寄存器区,位寻址区,用户RAM区,00H,1FH,20H,2FH,30H,7FH,80H,FFH,注意:SFR区通常在片内RAM介绍,不计入片内RAM容量。,80H,FFH,52子系列 256B,51子系列 128B,SFR区,2.4.2 数据存储器,一、片内数据存储器,1、工作寄存器区(00H1FH),有4组8个工作寄存器,占32个单元。当前工作寄存器组的选择由PSW的RS1和RS0的位状态组合决定(缺省状态是0组,即RS1RS0=00)。此区域通常使用寄存器寻址方式:例如

15、MOV A,R0,此外还有其他两种寻址方式进行相同的操作。, 直接寻址 MOV A ,00H 将片内RAM的00H单元数据传送到累加器A中。操作数00H的寻址方式称为直接寻址。直接寻址方式中的直接地址以RAM单元地址的形式给出,其范围00H0FFH,通常直接地址记为direct。, 寄存器间接寻址 MOV R0 , #00H ;间址寄存器赋初值 MOV A , R0 是将工作寄存器R0中的内容作为地址,而将该地址中的,数据传送到累加器A中。执行完这条指令,累加器A中的值与工作寄存器R0中的值不同,而与以R0内容为地址的片内RAM中的值相同,操作数R0称为寄存器间接寻址;R0称作间址寄存器,也可

16、以使用R1作为间址寄存器。通常记作Ri。,2.4.2 数据存储器,一、片内数据存储器,2、位寻址区(20H2FH),占16个字节单元(字节地址20H2FH),共16B8b128b。,位地址(存储单元按位编址): 00H7FH,双重功能区,既可以字节操作(直接寻址、寄存器间接寻址)也可以位操作(位寻址),位寻址 MOV C ,20H 位累加器C是寄存器寻址,借用PSW中的进位位CY,位累加器在位操作中使用频繁。此指令将片内RAM的位地址为20H单元数据传送到位累加器C中。操作数20H的寻址方式称为位寻址。位寻址方式是在指令中直接给出位存储单元的地址即位地址。寻址方式类似于字节操作的直接寻址,注意的是直接寻址中的地址是字节地址,而位寻址中的地址是位存储单元的位地址,一个是字节操作

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号