51单片机汇编语言教程(精华版本).ppt

上传人:牧羊曲112 文档编号:5413917 上传时间:2023-07-05 格式:PPT 页数:521 大小:22.34MB
返回 下载 相关 举报
51单片机汇编语言教程(精华版本).ppt_第1页
第1页 / 共521页
51单片机汇编语言教程(精华版本).ppt_第2页
第2页 / 共521页
51单片机汇编语言教程(精华版本).ppt_第3页
第3页 / 共521页
51单片机汇编语言教程(精华版本).ppt_第4页
第4页 / 共521页
51单片机汇编语言教程(精华版本).ppt_第5页
第5页 / 共521页
点击查看更多>>
资源描述

《51单片机汇编语言教程(精华版本).ppt》由会员分享,可在线阅读,更多相关《51单片机汇编语言教程(精华版本).ppt(521页珍藏版)》请在三一办公上搜索。

1、第1章单片机基础知识概述,1.1 单片机概述1.2 单片机学习的预备知识,第1章 单片机基础知识概述,1.1 单片机概述 1、什么是单片机?2、为什么要学单片机?3、怎样学习单片机?1.2 单片机学习的预备知识1.3 Proteus软件简介,1.什么是单片机?,从微型计算机技术的两大发展分支谈起,第1章 单片机基础知识概述,单片计算机(Single Chip Microcomputer),SCM将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统,第1章 单片机基础知识概述,单片机应用范例,第1章 单片机基础知识概述,单片机的发展:,从1976年起,Intel公司先后推出MCS

2、-48(4位)、MCS-51(8位)和MCS-96(16位)三大系列单片机。迄今为止,世界各地厂商已相继研制出大约50个系列300多个品种的单片机产品。单片机的发展趋势是高集成度、高性能、高性价比、低功耗微控制器(Micro Compuer Unit)增强功能的单片机,8位的51内核单片机仍然是目前主流机型。,第1章 单片机基础知识概述,第1章 单片机基础知识概述,单片机应用实例抽油机自动间抽控制技术,第1章 单片机基础知识概述,游梁式抽油机石油开采设备,3、怎样学习单片机,各组成部分既相对独立,又相互交叉,80C51型单片机,教学目标掌握单片机原理与应用系统设计技能需要具备单片机硬件、软件、

3、接口三方面知识,第1章 单片机基础知识概述,硬件结构(RAM,IO,T/C,INT,UART),存储器,输入/输出单元,定时/计数器,中断系统,串行通信,第1章 单片机基础知识概述,第1章 单片机基础知识概述,1.1 单片机概述1.2 单片机学习的预备知识 1、数制定义 2、数制转换 3、有符号数 4、位-字节-字,1.数制定义,单片机常用的数制有十进制、二进制、十六进制。,例如:,第1章 单片机基础知识概述,二进制:0、1;规则:逢二进一,后缀为B。一般表达式为:,其中,基数为2,各位加权数为0,1。,例如:,第1章 单片机基础知识概述,十六进制:09、AF。规则:逢十六进一,后缀为H。一般

4、表达式为:,其中,基数为16,各位加权数为09、AF。,例如:,第1章 单片机基础知识概述,2.数制转换,(1)二进制转换成十进制转换规则:按进制的表达式展开,然后按照十进制运算求和。,例如:,第1章 单片机基础知识概述,(2)十六进制转换成十进制转换规则:按进制的表达式展开,然后按照十进制运算求和。,例如:,第1章 单片机基础知识概述,(3)二进制与十六进制数之间的转换,从低位起由右到左,每四位二进制数对应一位十六进制数。例如:,(最后一组不足时左边添0凑齐4位),转换规则:,第1章 单片机基础知识概述,(4)十进制整数转换成二、十六进制整数 转换规则:“除基取余”。十进制整数不断除以转换进

5、制基数,直至商为0。每除一次取一个余数,从低位排向高位。,例如:,第1章 单片机基础知识概述,4.位-字节-字,位(bit):二进制数中的一位,其值不是“1”,就是“0”。字节(byte):一个8位的二进制数为一个字节。字节是计算机数据的基本单位。字(word):两个字节就是一个字,又叫双字节。另外,有时还会用到“半字节”,即4位二进制。例如:1000 1110 1100 1011B=8E CDH,第1章 单片机基础知识概述,80C51单片机的内部资源主要包括:,8位中央处理器(CPU);片内振荡器和时钟电路;4KB片内程序存储器(ROM);128字节的片内RAM;4个8位并行的双向I/O口;

6、2个16位定时器/计数器;1个全双工串行口;时钟电路,第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.1.1 MCS-51单片机的内部结构 2.1.2 MCS-51引脚及功能2.2 MCS-51的存储器结构 2.3单片机的复位、时钟与时序 2.4并行I/O口,P3口线的第二功能为多功能引脚,其8个引脚均具有专门的第二功能。,VCC,VSS,XTAL2XTAL1,RST,P0.0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7,P1.0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7,P2.7 P2.6 P2.5 P2.

7、4 P2.3 P2.2 P2.1 P2.0,ALE,P3.0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7,(2)、时钟电路:XTAL1、XTAL2,(3)、复位引脚:RST,(4)、并行口:P0、P1、P2、P3,(7)、ALE:地址锁存控制信号,(1)、电源引脚:VCC(+5V)、VSS(地),1、管脚图,MCS51单片机信号引脚简介,(1)电源及晶振引脚,VCC(40脚):+5V电源引脚VSS(20脚):接地引脚,XTAL1(19脚);外接晶振引脚(内置放大器输入端)XTAL2(18脚):外接晶振引脚(内置放大器输出端),第2章 单片机结构及原理,(2)控制引脚,AL

8、E/PROG(30)为地址锁存使能输出/编程脉冲输入,RST/VPD(9)为复位/备用电源引脚,PSEN(29):输出访问片外程序存储器读选通信号,EA/VPP(31):外部ROM允许访问/编程电源输入,第2章 单片机结构及原理,(3)并行I/O口引脚,共计48=32 个引脚,其中:P0.0P0.7(3932脚)P0口;P1.0P1.7(18脚)P1口;P2.0P2.7(2128脚)P2口;P3.0P3.7(1017脚)P3口。,P0P3是单片机对外联络的重要通道,第2章 单片机结构及原理,P3口的特殊功能,第2章 MCS-51单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-

9、51的存储器结构 2.3单片机的复位、时钟与时序 2.4并行I/O口,2.1 MCS-51单片机结构 2.1.1 MCS-51单片机的内部结构 2.1.2 MCS-51引脚及功能2.2 MCS-51的存储器结构 2.3单片机的复位、时钟与时序 2.4并行I/O口,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 1.存储器划分方法 2.程序存储器 3.数据存储器2.3单片机的复位、时钟与时序 2.4并行I/O口,第2章 单片机结构及原理,MCS-51系列单片机存储器配置如图:,共有四个物理存储空间,或三个逻辑存储空间。,第2章 单片机结构及原理,POM

10、作用:存放程序、表格或常数(非易失性掉电保存),RAM作用:存放程序运行结果字长:8位数量:256B,30H,低128B(00H7FH)为普通RAM区高128B(80HFFH)为特殊功能寄存器区,第2章 单片机结构及原理,(1)低128字节的区域 工作寄存器区(00H-1FH)可位寻址区(20H-2FH)用户RAM区(30H-7FH),第2章 单片机结构及原理,区共有32个字节单元(00H1FH),分为4组,每组8个单元,命名为工作寄存器R0R7)。任一时刻CPU只能选用一组工作寄存器为当前工作寄存器组。,当前工作寄存器组通过PSW中的RS1和RS0标志位(工作寄存器组指针)进行设置。,第2章

11、 单片机结构及原理,注意:CPU复位后RS1和 RS0默认值为0,即默认第0组为当前工作寄存器组。,第2章 单片机结构及原理,区共有16个字节单元(20H2FH),又可划分为128个位地址单元(00H 7FH),可按两种方式存取数据。,第2章 单片机结构及原理,区共有80个字节单元(30H7FH),是用户RAM区,但只能按字节进行数据存取操作。,在此区内用户可以作为为堆栈区和中间数据存储区。,第2章 单片机结构及原理,(2)高128字节RAM区,在80HFFH的高128字节RAM区中,离散地分布有21个特殊功能寄存器(Spetial Function Register),又称为特殊功能寄存器区

12、。,30H,第2章 单片机结构及原理,具有标准的SFR名称和符号、字节地址和位地址,前述的Acc、PSW、DPL、DPH等几个寄存器都属于SFR,其余寄存器将在以后章节中结合应用进行介绍。,第2章 单片机结构及原理,字节地址末位是0或8的SFR,都具有位地址。,SFR之外的其它存储单元用户均不可用(系统留用)。,第2章 单片机结构及原理,41,8051的内部结构,8051芯片按功能结构,CPU,控制器,程序计数器PC数据指针寄存器DPTR,运算器,累加器A寄存器B程序状态寄存器PSW,存储器,数据存储器RAM程序存储器ROM,定时计数器:,2个16位定时器T0,T1,I/O接口:,P0、P1、

13、P2、P3四个8位口,一个全双工串行口,5个中断源,单片机CPU=控制器+运算器,第2章 单片机结构及原理,作用:统一指挥和控制计算机协调工作,1、控制器,(1)程序计数器(Program CounterPC),指令地址寄存器,永远存放着下一条指令的地址,PC的变化规律决定着程序的流程,第2章 单片机结构及原理,(2)数据指针寄存器(Data Pointer DPTR),16位字长,可寻址范围216(64KB)用于表示存储器数据地址的指针可拆为2个8位的独立寄存器DPL和DPH,35H,77H,F4H,94H,9EH,DPTR指针,xxH,xxH,xxH,xxH,xxH,ROM,RAM,DPL

14、,DPH,第2章 单片机结构及原理,2、运算器,作用:对数据进行算术运算和逻辑操作功能:(1)对暂存器中的数据进行运算(2)结果保存在ACC中(3)运行状态反映在PSW中,第2章 单片机结构及原理,(1)累加器(AccumulaterA),累加器A是一个8位寄存器,用来存放操作数或中间运算结果;它是CPU中使用最频繁的寄存器。,第2章 单片机结构及原理,(2)程序状态字寄存器(Program State WordPSW),PSW是一个8位的专用寄存器,用于存放程序运行过程中的各种状态信息。PSW中的各位信息通常是在指令执行过程中自动形成的,但也可以由传送指令加以改变。PSW各位的定义:,按位置

15、定义的名称,按功能定义的名称,第2章 单片机结构及原理,(2)程序状态字寄存器(Program State WordPSW),PSW是一个8位的专用寄存器,用于存放程序运行过程中的各种状态信息。PSW中的各位信息通常是在指令执行过程中自动形成的,但也可以由传送指令加以改变。PSW各位的定义:,按位置定义的名称,按功能定义的名称,第2章 单片机结构及原理,CY(PSW.7)进位标志在进行加或减运算时,如果操作结果最高位有进位或借位时,CY由硬件置“1”,否则清“0”。,用途:1、根据CY判断加减运算时有无进位或借位;2、在位操作中CY可作为位累加器用。,举例,第2章 单片机结构及原理,AC(PS

16、W.6)辅助进位标志在进行加或减运算时,如果操作结果的低四位数向高四位产生进位或借位时,将由硬件置“1”,否则清“0”。,举例,用途:1、根据AC判断加减运算时有无半进位或半借位;2、在BCD码调整运算中要用到AC标志,第2章 单片机结构及原理,F0(PSW.5)和F1(PSW.1)用户标志位可作为用户自行定义的一个状态标记,第2章 单片机结构及原理,RS1和 RS0(PSW.4和 PSW.3)工作寄存器组指针用于选择CPU当前工作寄存器组,第2章 单片机结构及原理,OV(PSW.2)溢出标志在有符号数运算或乘除运算中若有异常结果,OV置1,否则清0。根据运算过程中的D6和D7位的变化由硬件自

17、动形成OV值,用途:判断有符号数运算或乘除运算的结果是否正常。,第2章 单片机结构及原理,P(PSW.0)奇偶标志位该位始终跟踪累加器A中含“1”个数的奇偶性如果A中有奇数个“1”,则P置“1”,否则置“0”,举例 若A=10011111,则P=0 若A=11000001,则P=1,用途:用于串行通讯中的数据校验,判断是否存在传输错误。,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3单片机的复位、时钟与时序 1.复位与复位电路 2.时钟电路 3.CPU时序2.4并行I/O口,第2章 单片机结构及原理,复位使单片机恢复原始默认状态的操作。,第2

18、章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3单片机的复位、时钟与时序 1.复位与复位电路 2.时钟电路 3.CPU时序2.4并行I/O口,时序是计算机指令执行时各种微操作在时间上的顺序关系,其作用是保证CPU中各种微操作有序运行。,(1)时序的概念,第2章 单片机结构及原理,时序定时单位共有4个参数:拍(振荡周期、时钟周期)P、状态周期S、机器周期、指令周期,一个状态(S)包含2个拍(P);一个机器周期由6个S或12个P组成;一个指令周期约为14个机器周期。,第2章 单片机结构及原理,例:外接晶振为12MHz时,MCS

19、-51单片机的四种时序周期的具体值为:,更正:P.30,振荡周期=1/12 us状态周期=1/6 us机器周期=1 us指令周期=14 us,振荡周期=1/24 us状态周期=1/12 us机器周期=1 us指令周期=14 us,振荡周期是机器周期的1/12,正,误,(正),机器周期是振荡周期的1/12,(误),第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3单片机的复位、时钟与时序 1.复位与复位电路 2.时钟电路 3.CPU时序2.4并行I/O口,CPU微操作必须在统一的时钟控制下才能正确进行。,内部时钟方式,微调

20、电容:C1、C2 30pF 晶振:石英晶体封裝,MCS-51时振荡频率为612MHZ。,外部时钟方式,第2章 单片机结构及原理,P1口的结构组成,P1.n=1个锁存器+1个场效应管驱动器V+2个三态门缓冲器,第2章 单片机结构及原理,P1口具有输出、读引脚、读锁存器三种工作方式。,输出时:D端=1/Q=0V截止P1.n=1 D端=0/Q=1V导通P1.n=0读引脚时:P1.n读引脚三态门1内部总线读锁存器:Q端读锁存器三态门2内部总线,V,2,1,第2章 单片机结构及原理,V的状态会影响P1.n的状态:如V导通P1.n电平0(钳位)读引脚可能出错为正确读出P1.n引脚电平,需要读引脚前应先使T

21、截止 令D=1/Q=0V截止读P1.n不会出错,可见,P1口作为输入口时是有条件的(应先写1),而输出时无条件,因此,称P1口为准双向口。,V,第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3 单片机的复位、时钟与时序 2.4 并行I/O口 1、P1口 2、P3口 3、P0口 4、P2口,P3口的结构组成,P3.n=1个锁存器+2个三态缓冲器+1个第二功能控制单元+1个输出驱动单元,第2章 单片机结构及原理,P3口具有P1的三种工作方式+第二功能方式,输出时:D端=1Q=1V截止P1.n=1 D端=0Q=0V导通P1.

22、n=0读引脚时:P1.n读引脚三态门1内部总线(需先写1)读锁存器:Q端读锁存器三态门2内部总线,3,4,1,2,第二输入功能,V,第二输出功能=“1”(与非门开锁),第2章 单片机结构及原理,P3口的第二功能方式:,输出时:第二输出功能=1与非门输出0V截止P3.n=1 第二输出功能=0与非门输出1V导通P3.n=0输入时:P3.n三态门4第二输入功能,D端 写“1”(与非门开锁),(第二输出功能先写“1”),3,4,1,2,第二输入功能,V,第2章 单片机结构及原理,P3口第二功能定义,第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51

23、的存储器结构 2.3 单片机的复位、时钟与时序 2.4 并行I/O口 1、P1口 2、P3口 3、P0口 4、P2口,P0口的结构组成,P0.n=1个锁存器+2个三态缓冲器+1个输出控制电路(非门 X+与门A+电子开关MUX)+1个输出驱动电路(场效应管V2+V1),P0口既可以作为通用I/O口实现输入/输出功能,也可作为单片机地址/数据线实现外设扩展功能。,第2章 单片机结构及原理,漏极开路与上拉电阻的概念,封锁与门A0 地址/数据端与A输出无关,控制端=0MUX下通/Q与V1栅极直通,V2截止V1漏极开路,第2章 单片机结构及原理,为使漏极开路的V1有效,必须通过上拉电阻与电源接通,上拉电

24、阻的阻值一般为4.710k。,注意:P1、P2、P3口无需外接上拉电阻(已有内部上拉电阻),第2章 单片机结构及原理,P0口的通用IO工作方式(控制端=0),输出时:D端=1Q反端=0V1截止P0.n=1 D端=0Q反端=1V1导通P0.n=0读引脚时:P0.n读引脚三态门1内部总线(需要先写“1”)读锁存器:Q端读锁存器三态门2内部总线,第2章 单片机结构及原理,P0口的地址/数据分时复用方式(控制端=1),“地址/数据”端无条件输入/输出,是严格意义上的双向口“地址/数据”方式下没有漏极开路问题,无需外接上拉电阻,第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片

25、机结构 2.2 MCS-51的存储器结构 2.3 单片机的复位、时钟与时序 2.4 并行I/O口 1、P1口 2、P3口 3、P0口 4、P2口,P2口的结构组成,P2.n=1个锁存器+2个三态缓冲器+1个输出控制单元+1个输出驱动单元,V,第2章 单片机结构及原理,P2口可以实现通用I/O口和地址输出口两种功能,输出时:D端=1Q端=1V截止P2.n=1 D端=0Q端=0V导通P2.n=0读引脚时:P2.n读引脚三态门内部总线(需要先写“1”)读锁存器:Q端读锁存器三态门内部总线,P2作为通用I/O口时(控制端=0),V,第2章 单片机结构及原理,输出时:地址端=1V截止P2.n=1 地址端

26、=0V导通P2.n=0,P2作为地址输出口时(控制端=1),V,第2章 单片机结构及原理,P0P3小结,1.结构,第2章 单片机结构及原理,本章小结,1、单片机的CPU由控制器和运算器组成,在时钟电路和复位电路的支持下,按一定的时序工作。单片机的时序信号包括振荡周期、时钟周期、机器周期和指令周期。2、51单片机采用哈佛结构存储器,共有3个逻辑存储空间和4个物理存储空间。片内低128字节RAM中包含4个工作寄存器组、128个位地址单元和80个字节地址单元。片内高128字节RAM中离散分布有21个特殊功能寄存器。3、P0P3口都可作为准双向通用I/O口,其中只有P0口需要外接上拉电阻;在需要扩展片

27、外设备时,P2口可作为其地址线接口,P0口可作为其地址线/数据线复用接口,此时它是真正的双向口。,第2章 单片机结构及原理,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 1.汇编语言指令格式 2.描述操作数的简记符号 3.寻址方式3.2指令系统简介 3.3汇编语言的编程方法,计算机中全部指令的集合称为指令系统。MCS-51单片机指令系统共有111条指令,按功能可划分为四大类:数据传送与交换类 算术运算类 逻辑运算类 转移控制类,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程

28、序设计,寻址方式寻找操作数所在地址单元的方式。,寻址方式越多,计算机的功能就越强。51单片机共有七种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址、相对寻址。,可以先跳过这一节,待学完指令系统后再返回学习可能会易于理解。,第3章单片机的汇编语言与程序设计,(1)直接寻址,MOVA,68H;A(68H),机器码为E568H,对于片内低128字节单元可在指令中直接给出单元地址(如MOV A,68H),但对于特殊功能寄存器(位于高128字节区)除了可用其单元地址给出外,还可用它们的符号形式给出。如:,MOV A,0D0H;A(0D0H),机器码为E5D0HMOV A,PS

29、W;APSW,机器码为E5D0H,它们的形式虽然不同,但汇编后的机器码是完全一样的,均为E5D0H。为增强所编程序的可读性,一般提倡尽量采用后者方式。,(2)寄存器寻址,指令中以通用寄存器的形式表示操作数的寻址方式称为寄存器寻址,这里的通用寄存器特指:A、B、DPTR、R0R7和CY。,MOVA,R1;AR1MULAB;BAAB,乘积高位存B,低位存AINC DPTR;DPTRDPTR+1,第3章单片机的汇编语言与程序设计,注意:B寄存器仅在乘法和除法指令中属于寄存器寻址,在其它指令中则属于直接寻址。此外,除上面所指出的几个寄存器外,其它特殊功能寄存器也一律为直接寻址,寄存器间接寻址是二次寻找

30、操作数地址的寻址方式。,(3)寄存器间接寻址,由指令指出某一个寄存器的内容作为操作数地址的寻址方式,称为寄存器间接寻址方式。计算机执行这类指令时,它首先根据指令中的寄存器名称找到所需要的操作数地址,再由操作数地址找到操作数,并完成相应操作。,第3章单片机的汇编语言与程序设计,寄存器间接寻址使用的寄存器叫做间址寄存器,用R0、R1和DPTR表示。,MOVA,R0;寻址范围为256B,MOVXA,DPTR;寻址范围为64KB,第3章单片机的汇编语言与程序设计,MOVA,#0E2H;A#0E2HMOV DPTR,#2000H;DPTR#2000H,(4)立即寻址,如果操作数在指令中直接给出,并与操作

31、码的机器码一起存放在程序存储器内,则程序执行时便可立即得到,而不需要另外寻找,故称为立即寻址。该操作数称为立即数,并在其前冠以“#”号,以表示非地址。立即数可以是8位或16位二进制数,一般用十六进制数表示,汇编语言规定,凡以字母开始的十六进制数(立即数或地址),在最高位前要加0以便与变量名区分,因而上述数据E2H要写为0E2H。,第3章单片机的汇编语言与程序设计,MOVCA,A+DPTR;A(A+DPTR)MOVCA,A+PC;A(A+PC)JMP A+DPTR;PC(A+DPTR),(5)变址寻址,变址寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的

32、内容相加形成操作数的实际地址。51指令集中采用变址寻址的指令共有三条:,A为偏移量寄存器,DPTR或PC为变址寄存器。程序执行时,A中的无符号数先与DPTR或PC中的内容相加,形成访问地址,再通过寄存器间接寻址方式取得实际操作数。其中前两条是程序存储器读指令,后一条是无条件转移指令。,第3章单片机的汇编语言与程序设计,MOVC,7FH;Cy(7FH),其中,7FH是位地址MOVC,2FH.7;Cy(7FH),其中,2FH.7是位地址MOVC,ACC.7;CyACC.7,其中,ACC.7是位地址,(6)位寻址,51单片机片内RAM里的部分存储单元和某些特殊功能寄存器除了具有字节地址外,还具有位地

33、址。这些单元既可以采用字节方式访问,也可采用位地址方式访问。指令中直接给出操作数所在单元位地址的寻址方式称为位寻址,例如:,第3章单片机的汇编语言与程序设计,SJMP START;PCPC+2+rel,(7)相对寻址,相对寻址方式是为了程序的相对转移而设计的,它以PC的内容为基址,与指令中给出的偏移量rel进行合成,得到转移目的地址,进而改变PC值实现程序的跳转功能。,该指令的功能是将PC值修改为START语句行所在的首地址,从而使程序从START语句继续执行,该指令的的原形是SJMP rel。注意,由于rel只能形成-128+127字节的跳转,故编程时必须考虑当前行与被跳转行之间的地址范围不

34、能超限。,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 1.汇编语言指令格式 2.描述操作数的简记符号 3.寻址方式3.2指令系统简介 3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计,汇编语言是用助记符形式表示指令的一种计算机语言,其中助记符由约定的英文字母组成,而指令则是完成特定动作所需的指示和命令。汇编语言程序需要经过编译程序翻译成机器码,让计算机执行。汇编语言编程的优点是代码精炼、执行速度快,但不便于编写较复杂的程序。本章学习目的是了解汇编语言的规则,要求借助指令手册能读懂一般汇编程序。,一条汇编语言指令中最多包含四个区段,其一般格式为:标号:操作码 操作数;注释,汇

35、编语言指令格式,第3章单片机的汇编语言与程序设计,标号区段由用户定义的16个字符组成,以英文字母开始(不区分大小写),冒号结尾。,标号代表当前指令的首字节在存储器单元中的存放地址,可以省略。,标号:操作码 操作数;注释,第3章单片机的汇编语言与程序设计,操作数区段是指令要操作的对象。根据指令的不同功能,操作数可以是3个、2个、1个或没有操作数;操作数大于1时,操作数之间用英文逗号隔开,不区分大小写。,START:MOV A,#12H;立即数12HA SETB P1.0;P1.01 CJNE A,R0,START;若AR0,转START,举例:,第3章单片机的汇编语言与程序设计,3.1汇编语言概

36、述 1.汇编语言指令格式 2.描述操作数的简记符号 3.寻址方式3.2指令系统简介 3.3汇编语言的编程方法,单片机指令手册中,每条指令的操作数都以简记符号表示。,第3章单片机的汇编语言与程序设计,操作数的简记符号,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 1.数据传送与交换类指令 2.算术运算类指令 3.逻辑运算及移位类指令 4.控制转移类指令 5.伪指令3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 1.数据传送与交换类指令 2.算术运算类

37、指令 3.逻辑运算及移位类指令 4.控制转移类指令 5.伪指令3.3汇编语言的编程方法,数据传送与交换类指令可实现RAM、SFR和ROM之间的数据互传或交换,共31条。,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,数据传送类指令的基本通式为:,它表示将源单元(src)的内容传送给目的单元(dest),传送后源单元中内容不变。transfer是传送指令的操作码:MOV在片内RAM范围内传送 MOVX在片外RAM范围内传送 MOVC在全部ROM范围内传送,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,举例:将立即数A6H送入累加器A,第3章单片机的汇编

38、语言与程序设计,举例:将立即数A6H送入累加器AMOV A,#0A6H;,第3章单片机的汇编语言与程序设计,举例:将立即数68H送入片内20H,第3章单片机的汇编语言与程序设计,举例:将立即数68H送入片内20HMOV 20H,#68H;,用指令实现下述功能。(1)内部RAM30H单元内容送R0。(2)将立即数10H送入内部RAM30H单元。,第3章单片机的汇编语言与程序设计,举例1:分析如下程序段并指出运行后20H和21H单元的结果 MOV R0,#20H MOV R0,#38H MOV 21H,#48H,结果:(20H)=38H,(21H)=48H,将data送入Ri的内容所指向的单元中(

39、寄存器间接寻址)R0=20H MOV R0,#38H 等价于MOV 20H,#38H,第3章单片机的汇编语言与程序设计,举例2:已知片内RAM 38H单元中的数为12H,试分析如下程序段并指出其功能,注意:片内RAM 38H单元中数不能直接传送到外部RAM的1818H单元,必须经过累加器A的转传。,MOV R0,#38H MOV DPTR,#1818HMOV A,R0MOVX DPTR,A,;Rndata;DPTR data16;A(Ri);(DPTR)A,R0=38HDPTR=1818HA(38H)=12H(1818H)=12H,例:设内部RAM(30H)=40H,(40H)=10H,(10

40、H)=00H,端口(P1)=CAH.分析下面程序执行后各单元及存储器、P2口的内容。MOV R0,#30H;MOV A,R0;MOV R1,A;MOV B,R1;MOV R1,P1;MOV P2,P1;MOV 10H,#20H;结果:(R0)=30H,(R0)(A)40 H,(B)=10H,(40H)=(P1)=(P2)=CAH,(10H)=20H,第3章单片机的汇编语言与程序设计,举例3:试分析如下程序段并指出其功能,MOV DPTR,#120H MOV A,#5 MOV 30H,A,;DPTR data16;Adata;(30H)A,;DPTR=120H;A=5;(30H)A,第3章单片机

41、的汇编语言与程序设计,传送类指令中的两类特殊指令 交换类使操作数的内容互换(XCH、XCHD、SWAP)堆栈类使操作数的内容进出堆栈(PUSH、POP),0-3,4、若(R0)=30H,(30H)=4AH,(A)=28H,1 XCH A,R0;2 XCHD A,R0;3 SWAP A;A=82H,堆栈操作类指令,PUSH direct;SP(SP)+1,(SP)(direct)/PUSH指令把数据压入堆栈:首先(SP)+1(SP),指向栈顶上的一个空单元;然后把直接寻址单元的内容压入所指单元。POP direct;(direct)SP,(SP)(SP)-1/POP 指令把堆栈顶的数据弹出到直接

42、寻址指定的单元中,恢复片内RAM 128)或SFR的内容:首先(SP)direct,然后把(SP)-1SP,形成新的栈顶指针。,1 MOV R0,30H2 MOV 30H,#10H3 MOV A,R0MOV R1,A4 MOV DPTR,#3000HMOVX A,DPTRMOV 30H,A,已知内部RAM中,(30H)40H,(40H)50H,(50H)5AH,(5AH)60H,ROM中(125AH)88H,试分析下面程序的运行结果,并指出每条指令的源操作数寻址方式。MOV A,50H;MOV R0,A;MOV P1,0F0H;MOV R0,30H;MOV DPTR,1200H;MOVX DP

43、TR,A;MOVC A,ADPTR;MOV 40H,50H;MOV P2,P1;,程序执行后,P2=F0H;(40H)=5AH;(A)=88H;(1200H)=5AH;(5AH)=40H,已知(30H)=38H,请分析以下各是什么指令,说明源操作数的寻址方式以及执行结果。MOV A,40H;MOV R0,A;MOV P1,#0F0H;MOV R0,30H;MOV DPTR,#3848H;MOV 40H,38H;MOV R0,30H;MOV P0,R0;MOV 18H,#30H;MOV A,R0;MOV P2,P1;,MOV A,40H;直接寻址(40H)A MOV R0,A;寄存器寻址(A)R

44、0 MOV P1,#0F0H;立即数寻址0F0P1 MOV R0,30H;直接寻址(30H)(R0)MOV DPTR,#3848H;立即数寻址 3848HDPTR MOV 40H,38H;直接寻址(38H)40H MOV R0,30H;直接寻址(30H)R0 MOV P0,R0;寄存器寻址(R0)P0 MOV 18H,#30H;立即数寻址30H18H MOV A,R0;寄存器间接寻址(R0)A MOV P2,P1;直接寻址(P1)P2,最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(

45、38H)=40H,(40H)=40H,(48H)=38H注意:左边是内容,右边是单元,设(R1)31H,内部RAM31H的内容为68H,32H单元的内容为60H,(A)10H。MOV A,R1;MOV R1,32H;MOV 32H,A;MOV R1,45H;,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 1.数据传送与交换类指令 2.算术运算类指令 3.逻辑运算及移位类指令 4.控制转移类指令 5.伪指令3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计,算术运算类指令共有24条,包括加、减、乘、除和增减1运算等。,第3章单片机的汇编语言与程序设计,执行下面

46、程序,分析PSW有关标志位内容,MOV A,#7AH;MOV R0,#65H;ADD A,R0;,设,(R0)=7EH,(7EH)=FFH,(7FH)=40H,执行下列程序,分析结果 INC R0;INC R0;INC R0;,第3章单片机的汇编语言与程序设计,举例5:试解读如下程序并说明其功能,MOVA,#34H ADD A,#0E7H MOV40H,A MOVA,#12H ADDCA,#0FH MOV41H,A,;A 34H;A=A+data;(40H)A;A 12H;A=A+data+CY;(41H)A,A=34HA=1BH;C=1H(40H)=1BHA=12HA=21H(41H)=22

47、H,功能:1234H与0FE7H两个16位数相加,结果为221BH。第一步先对低8位相加,结果存入40H单元;第二步再对高8位相加,结果存入41H单元,其中第二步为带进位相加。,注意:对于用十六进制数表示的数字或地址,若其最高位是AF,则需在最高位前加零(与“标号”或“标示符”区分)。,设(R0)=7EH,(7EH)=FFH,(7FH)=38H,(DPTR)=10FEH P.58,INC R0;INC R0;INC R0;INC DPTR;INC DPTR;INC DPTR;,设(A)=13H,(R0)=0FFH,(00H)=34H,(DPTR)=1235H执行以下程序后,结果为多少?INC

48、A;INC R0;INC R0;INC DPTR;,第3章单片机的汇编语言与程序设计,若 CY=1,执行下面程序,说明PSW有关标志位内容,MOVA,#85H;MOV54H,#0AEH;SUBB A,54H;,第3章单片机的汇编语言与程序设计,举例6:试解读如下程序并说明其功能,CLRCMOVA,#34HSUBBA,#0E7HMOV 40H,AMOVA,#12HSUBBA,#0FHMOV41H,A,注意:运算时需要首先清理CY位。,第3章单片机的汇编语言与程序设计,举例6:试解读如下程序并说明其功能,CLRCMOVA,#34HSUBBA,#0E7HMOV 40H,AMOVA,#12HSUBBA

49、,#0FHMOV41H,A,;CY位清零;A 34H;AA-0E7H-CY;(40H)A;A 12H;AA-0FH-CY;(41H)A,C=0A=34HA=4D;C=1;(40H)=4C;A=12H;A=03H;(41H)=03H,注意:运算时需要首先清理CY位。,编程,进行两个16位数的减法:6F5DH-13B4H,结果存入内部RAM的30和31H单元,30H存低八位。CLR CMOV A,#5DH;被减数的低8位AMOV R2,#B4H;减数低8位R2SUBB A,R2;被减数减去减数,差AMOV 30H,A;低8位结果30HMOV A,#6FH;被减数的高8位AMOV R2,#13H;减

50、数高8位R2SUBB A,R2;被减数减去减数,差AMOV 31H,A;高8位结果30H,第3章单片机的汇编语言与程序设计,设(A)=00H,(R3)=19H,(40H)=5FH,(R0)=34H,(34H)=0FFH,分析,DEC A;DEC R3;DEC 40H;DEC R0;,第3章单片机的汇编语言与程序设计,设(A)=00H,(R3)=19H,MULAB,第3章单片机的汇编语言与程序设计,举例7:试解读如下程序并说明其功能,MOVA,#17HMOVB,#68HMULABMOV30H,AMOV31H,B,;A17H;B68H;ABBA;(30H)A;(31H)B,;A=17H;B=68H

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号