《单片机原理》第二章.ppt
《《单片机原理》第二章.ppt》由会员分享,可在线阅读,更多相关《《单片机原理》第二章.ppt(159页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系第第2章章MCS-51指令系统与汇编语言程序设计指令系统与汇编语言程序设计2.1概述概述2.2寻址方式寻址方式2.3MCS-51指令系统指令系统2.4汇编语言程序设计汇编语言程序设计2.5高级语言高级语言KeilC51简介简介2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.1概述概述单片机程序设计语言的种类单片机程序设计语言的种类汇编语言指令格式及常用伪指令汇编语言指令格式及常用伪指令MCS-51指令的分类指令的分类MCS-51指令中常用的符号指令中常用的符号2/12/202
2、3目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.1概述概述单片机程序设计语言的种类单片机程序设计语言的种类按照语言的结构及其功能可以分为三种:按照语言的结构及其功能可以分为三种:(1)机器语言机器语言(MachineLanguage)直接用机器码(直接用机器码(0、1代码)编写程序、能够为计算机直代码)编写程序、能够为计算机直接执行的机器级语言。接执行的机器级语言。机器码是一串由二进制代码机器码是一串由二进制代码“0”和和“1”组成的二进制组成的二进制数据,其执行速度快,但是可读性极差。机器语言一般只在数据,其执行速度快,但是可读性极差。机器语言一般只在简单的开发装置中使
3、用,简单的开发装置中使用,程序的设计、输入、修改和调试都程序的设计、输入、修改和调试都很麻烦。很麻烦。机器语言机器语言汇编语言汇编语言高级语言高级语言2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.1概述概述(2)汇编语言汇编语言(AssemblyLanguage)指用指令助记符代替机器码的编程语言。指用指令助记符代替机器码的编程语言。汇编语言程序结构简单,汇编语言程序结构简单,执行速度快,程序易优化,编执行速度快,程序易优化,编译后占用存储空间小,是单片机应用系统开发中最常用的程序译后占用存储空间小,是单片机应用系统开发中最常用的程序设计语言。设计语言。
4、汇编语言的缺点是可读性比较差,只有熟悉单片机汇编语言的缺点是可读性比较差,只有熟悉单片机的指令系统,并具有一定的程序设计经验,才能研制出功能复的指令系统,并具有一定的程序设计经验,才能研制出功能复杂的应用程序。杂的应用程序。单片机程序设计语言的种类单片机程序设计语言的种类按照语言的结构及其功能可以分为三种:按照语言的结构及其功能可以分为三种:机器语言机器语言汇编语言汇编语言高级语言高级语言2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.1概述概述(3)高级语言高级语言(High-LevelLanguage)在汇编语言的基础上用接近人的自然语言的语句来编写在
5、汇编语言的基础上用接近人的自然语言的语句来编写程序,例如程序,例如PL/M-51、C51等,等,程序可读性强,通用性好程序可读性强,通用性好,适用于不熟悉单片机指令系统的的用户。适用于不熟悉单片机指令系统的的用户。高级语言是面向过程而独立于机器的通用语言。缺点是高级语言是面向过程而独立于机器的通用语言。缺点是实时性不高,结构不紧凑,编译后实时性不高,结构不紧凑,编译后占用存储空间比较大占用存储空间比较大,这,这一点在存储器有限的单片机应用系统中没有优势。一点在存储器有限的单片机应用系统中没有优势。单片机的汇编语言不但单片机的汇编语言不但不会被高级语言完全取代,不会被高级语言完全取代,甚至还将继
6、续占据重要地位。甚至还将继续占据重要地位。2.1单片机程序设计语言的种类单片机程序设计语言的种类按照语言的结构及其功能可以分为三种:按照语言的结构及其功能可以分为三种:机器语言机器语言汇编语言汇编语言高级语言高级语言2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.1概述概述汇编语言指令格式及常用伪指令汇编语言指令格式及常用伪指令1、常用单位与术语、常用单位与术语位(位(bit):):位是计算机所能表示的最小的、最基位是计算机所能表示的最小的、最基本的数据单位,通常是指一个二进制本的数据单位,通常是指一个二进制位。位。字节(字节(Byte):):一个连续的一
7、个连续的8位二进制数码称为位二进制数码称为一个字节,即一个字节,即1Byte=8bit。字(字(Word):):通常由通常由16位二进制数码组成,即位二进制数码组成,即1Word=2Byte。字长:字长:字长是指计算机一次处理二进制数码位的字长是指计算机一次处理二进制数码位的多少。多少。MCS-51型单片机是型单片机是8位机,即它的字长为位机,即它的字长为8位。位。2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2、汇编语言指令格式、汇编语言指令格式 标号标号:操作码操作码 操作数操作数,操作数操作数;注释注释 2.1概述概述汇编语言指令格式及常用伪指令汇编语
8、言指令格式及常用伪指令其中:其中:项是可选项。项是可选项。标号:指本条指令起始地址的符号,也称为指令的符号地标号:指本条指令起始地址的符号,也称为指令的符号地 址。代表该条指令在程序编译时的具体地址。址。代表该条指令在程序编译时的具体地址。操作码:又称助记符,它是由对应的英文缩写构成的,是操作码:又称助记符,它是由对应的英文缩写构成的,是 指令语句的关键。它规定了指令具体的操作功指令语句的关键。它规定了指令具体的操作功 能,是一条指令中不可缺少的内容。能,是一条指令中不可缺少的内容。操作数:它既可以是一个具体的数据,也可以是存放数据操作数:它既可以是一个具体的数据,也可以是存放数据 的地址。的
9、地址。Start:MOVA,#0FH;将循环次数初值送累加器将循环次数初值送累加器2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系3、常用伪指令、常用伪指令2.1概述概述汇编语言指令格式及常用伪指令汇编语言指令格式及常用伪指令伪指令(也称为汇编程序的控制命令)是程序员发给伪指令(也称为汇编程序的控制命令)是程序员发给汇编程序的命令,用来设置符号值、保留和初始化存储空汇编程序的命令,用来设置符号值、保留和初始化存储空间、控制用户程序代码的位置。间、控制用户程序代码的位置。伪指令只出现在汇编前的源程序中,仅提供汇编用的伪指令只出现在汇编前的源程序中,仅提供汇编用的
10、某些控制信息,不产生可执行的目标代码,是某些控制信息,不产生可执行的目标代码,是CPU不能执不能执行的指令。行的指令。2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系 (2)结束汇编伪指令)结束汇编伪指令END 格式:格式:标号标号:END 表达式表达式 功能:放在源程序的末尾,表明源程序的汇编到此结束。功能:放在源程序的末尾,表明源程序的汇编到此结束。2.1概述概述 (1)定位伪指令)定位伪指令ORG 格式:格式:ORG n 其中:其中:n为绝对地址,可以是十六进制数、标号或表达式。为绝对地址,可以是十六进制数、标号或表达式。例例 ORG 1000HSTAR
11、T:MOVA,#20HMOVR0,#30H MOVXDPTR,AEND3、常用伪指令、常用伪指令汇编语言指令格式及常用伪指令汇编语言指令格式及常用伪指令2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系(3)赋值伪指令)赋值伪指令EQU格式:字符名称格式:字符名称xEQU赋值项赋值项n功能:将赋值项功能:将赋值项n的值赋予字符名称的值赋予字符名称x。2.1概述概述ORG1000HLEDMAP:DB3fh,06h,5bh,4fh,66h,6dh,7dh,07hDB7fh,6fh,77h,7ch,39h,5eh,79h,71h;LEDBuf EQU 60h ;显示缓
12、冲显示缓冲(4)定义字节伪指令)定义字节伪指令DB 格式:格式:标号标号:DB x1,x2,xn 功能:将功能:将8位数据(或位数据(或8位数据组)位数据组)x1,x2,xn顺序存放顺序存放 在从当前程序存储器地址开始的存储单元中。在从当前程序存储器地址开始的存储单元中。2.13、常用伪指令、常用伪指令汇编语言指令格式及常用伪指令汇编语言指令格式及常用伪指令2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系1、按指令字节数分类、按指令字节数分类单字节指令、双字节指令和三字节指令。单字节指令、双字节指令和三字节指令。2.1概述概述字字节节执执 行行 时时间间单字节
13、指令单字节指令49条条1个机器周期指令个机器周期指令64条条双字节指令双字节指令46条条2个机器周期指令个机器周期指令45条条三字节指令三字节指令16条条4个机器周期指令个机器周期指令2条条2.1.3MCS-51指令的分类指令的分类MCS-51指令系统有指令系统有111条指令,可按下列条指令,可按下列3种方式分类:种方式分类:2、按指令执行时间分类、按指令执行时间分类单机器周期指令、双机器周期指令和四机器周期指令。单机器周期指令、双机器周期指令和四机器周期指令。2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系1、按指令字节数分类、按指令字节数分类2.1概述概述
14、2、按指令执行时间分类、按指令执行时间分类3、按指令功能分类、按指令功能分类序号序号功功能能数量数量1数据传送指令数据传送指令28条条2算术运算指令算术运算指令24条条3逻辑运算与移位指令逻辑运算与移位指令25条条4控制转移指令控制转移指令17条条5位操作指令位操作指令17条条2.12.1.3MCS-51指令的分类指令的分类MCS-51指令系统有指令系统有111条指令,可按下列条指令,可按下列3种方式分类:种方式分类:2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.1.4指令中的常用符号指令中的常用符号Rn(n=07):):表示当前工作寄存器表示当前工作寄
15、存器R0R7中的任一个。中的任一个。Ri(i=0或或1):):表示当前寄存器组中用于间址的表示当前寄存器组中用于间址的R0或或R1。#data:表示表示8位立即数。位立即数。#data16:表示表示16位立即数。位立即数。direct:表示片内表示片内RAM的的8位单元地址。位单元地址。addr11:表示表示11位目的地址,用于位目的地址,用于ACALL和和AJMP指令中。指令中。addr16:表示表示16位目的地址,用于位目的地址,用于LCALL和和LJMP指令中。指令中。rel:用补码形式表示的用补码形式表示的8位二进制地址偏移量,取值范围位二进制地址偏移量,取值范围为为 128+127,
16、主要用于相对转移指令。,主要用于相对转移指令。2.1概述概述2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系bit:表示片内表示片内RAM的位寻址区,或者是可以位寻址的的位寻址区,或者是可以位寻址的SFR的位地址。的位地址。A(或(或ACC)、)、B:表示累加器、表示累加器、B寄存器。寄存器。C:表示表示PSW中的进位标志位中的进位标志位Cy。:在间接寻址方式中,是间址寄存器指针的前缀标志。在间接寻址方式中,是间址寄存器指针的前缀标志。$:表示当前的指令地址。表示当前的指令地址。(X):):表示由表示由X所指定的某寄存器或某单元中的内容。所指定的某寄存器或某单
17、元中的内容。(X):表示由表示由X间接寻址单元中的内容。间接寻址单元中的内容。2.1.4指令中的常用符号指令中的常用符号 2.1概述概述2.12/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系寄存器寻址寄存器寻址直接寻址直接寻址立即数寻址立即数寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址2.2寻址方式寻址方式 在指令的在指令的操作数位置操作数位置上,用于上,用于表征表征寻找操作数的方法寻找操作数的方法定定义为义为“寻址方式寻址方式”。正确地理解、掌握寻址方式,是学习、使用指令的关键正确地理解、掌握寻址方式,是学习、使用指令的关键。
18、在。在MCS-51单片机中,共使用了以下单片机中,共使用了以下7种寻址方式种寻址方式2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.2.1寄存器寻址寄存器寻址指令中含有一个存有操作数的指令中含有一个存有操作数的寄存器寄存器Rn(n=07)2.2寻址方式寻址方式【特点】寄存器寻址方式的指令大多是单字节指令。【特点】寄存器寻址方式的指令大多是单字节指令。寄存寄存器的器的3位代码位代码与操作码与操作码OP共同占用一个指令字节。共同占用一个指令字节。例:例:MOVA,Rn;将寄存器将寄存器Rn中的内容送累加器中的内容送累加器A中中MOVRn,A;将累加器将累加器A
19、中的数据送寄存器中的数据送寄存器Rn 以以MOV A,R7为例,使用为例,使用R7寄存器,所以寄存器,所以 r r r=111,即指令的机器码为:即指令的机器码为:0EFH1 1 1 0 1 r r r操作码操作码OP寄存器代码寄存器代码111E8HEFHMOVA,RnROM的的一个字节一个字节2.22/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.2.2直接寻址直接寻址指令本身指令本身直接直接给出操作数在给出操作数在RAM中存放的中存放的地址地址。2.2寻址方式寻址方式MOVA,direct;将内存地址将内存地址direct中的内容送入累加器中的内容送入累
20、加器MOVdirect1,direct2;将内存地址将内存地址direct2的内容送入的内容送入direct1中中例如:例如:MOV A,30H;将将RAM 30H单元数据送累加器单元数据送累加器A【特点】直接寻址方式的指令为【特点】直接寻址方式的指令为23字节指令。每个字节指令。每个直接地址直接地址 自身占用一个指令字节。自身占用一个指令字节。程序程序ROMOP30H数据数据RAM操作数操作数xnn+130H累加器累加器AX2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系使用直接寻址应注意的两个问题:使用直接寻址应注意的两个问题:1、当地址恰好在当地址恰好在
21、SFR区域时,地址也可用寄存器名来表示。区域时,地址也可用寄存器名来表示。2.2.2直接寻址直接寻址2.2寻址方式寻址方式 如:如:MOV A,80H 可以写成可以写成 MOV A,P0 后者用后者用SFR中寄存器的名字取代它的物理地址中寄存器的名字取代它的物理地址80H。后者更容易阅读和交流,所以后者更容易阅读和交流,所以提倡使用提倡使用SFR中寄存器名称中寄存器名称来代替直接地址来代替直接地址。如:如:MOV A,SBUF ;串口数据缓冲器数据送;串口数据缓冲器数据送A MOV TH1,#0FEH ;为定时器;为定时器1赋初值赋初值2/12/2023目录目录单片机课程单片机课程大连理工大学
22、电气系大连理工大学电气系MOVA,00H;将将RAM中中00H单元数据送累加器单元数据送累加器AMOVA,R0;将工作寄存器将工作寄存器R0的内容送累加器的内容送累加器A返回2.2.2直接寻址直接寻址2.2寻址方式寻址方式2、当直接地址是在、当直接地址是在工作寄存器区工作寄存器区中时,可以使用两种寻中时,可以使用两种寻址方式来访问。如:址方式来访问。如:使用了不同的寻址方式,指令的结构与字节数也不相同。使用了不同的寻址方式,指令的结构与字节数也不相同。前者是:前者是:11100101(0E5H)、00000000(00H)双字节。双字节。后者是:后者是:11101000(0E8H)单字节单字节
23、;最好用寄存器寻址方式来访问最好用寄存器寻址方式来访问类似的还有累加器类似的还有累加器A:INCA寄存器寻址方式(单字节);寄存器寻址方式(单字节);INCACC直接寻址方式(双字节);直接寻址方式(双字节);INC0E0H直接寻址方式(双字节)。直接寻址方式(双字节)。2.22/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.2.3立即寻址立即寻址指令中直接含有所需要的指令中直接含有所需要的操作数操作数data。2.2寻址方式寻址方式MOVA,#data;将;将8位立即数送累加器位立即数送累加器AMOVDPTR,#data16;16位立即数送位立即数送DPT
24、R寄存器寄存器【特点特点】立即数寻址的指令长度为立即数寻址的指令长度为2或或3个字节。个字节。90H20H00HROMDPTR例:例:MOVDPTR,#2000Hnn+1n+2注:对于注:对于16位立即数指令,汇编时高位立即数指令,汇编时高8位在前,低位在前,低8位在后。位在后。2/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系【注意注意】MOVA,#30H与与MOVA,30H两者的区别。两者的区别。74H30Hnn+1ROM累加器累加器AMOV A,#30HE5H30Hnn+1ROM累加器累加器AMOV A,30HXX30HRAM2.2.3立即寻址立即寻址2.
25、2寻址方式寻址方式2.22/12/2023目录目录单片机课程单片机课程大连理工大学电气系大连理工大学电气系2.2.4寄存器间接寻址寄存器间接寻址指令中含有指令中含有保存操作数地址的保存操作数地址的寄存器寄存器(Ri或或DPTR)。)。CPU首先从寄存器中找到操作数首先从寄存器中找到操作数地址地址,然后再从该地址中,然后再从该地址中找到操作数找到操作数。2.2寻址方式寻址方式MOVA,Ri;MOVXA,Ri;MOVXDPTR,A寻址范围:寻址范围:内部内部RAM低低128B(只能使用(只能使用R0或或R1作间址寄存器)、作间址寄存器)、外部外部RAM。对于外部低。对于外部低256单元单元RAM的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理 单片机 原理 第二
限制150内