《单片机汇编语音程序设计.ppt》由会员分享,可在线阅读,更多相关《单片机汇编语音程序设计.ppt(41页珍藏版)》请在第壹文秘上搜索。
1、第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 MCS-51MCS-51系列单片机系列单片机汇编语言程序设计汇编语言程序设计第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 MCS-51 MCS-51单片机的编程语言可以是汇编语言也单片机的编程语言可以是汇编语言也可以是高级语言(如可以是高级语言(如C C语言),高级语言编程快捷,语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。
2、无论是高级语言能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。器语言)单片机才能执行。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 连接连接/定位器定位器L51汇编语言汇编语言源程序源程序汇编器汇编器A51符号转换程序符号转换程序OHS51绝对地址绝对地址目标程序目标程序 .BINC语言程序语言程序浮浮动动地地址址目目标标程程序序编译器编译器C51 HEX两种语言源程序转换成目标程序两种语言源程序转换成目标程序第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言
3、程序设计 汇编汇编:将汇编语言:将汇编语言源程序源程序转换成机器语转换成机器语言言目标目标程序的过程称为汇编。程序的过程称为汇编。 汇编程序汇编程序:能将汇编语言:能将汇编语言源程序源程序转换成转换成机器语言机器语言目标目标程序的系统软件称为汇编程程序的系统软件称为汇编程序。序。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 汇编方法汇编方法1.1.手工汇编手工汇编: 人工查指令表,查出程序中每条指令对应的人工查指令表,查出程序中每条指令对应的机器代码。早期的计算机使用。机器代码。早期的计算机使用。2.2.机器汇编机器汇编: 用计算机中的汇编程序对用户源程序进行汇用计算机
4、中的汇编程序对用户源程序进行汇编。编。 用机器汇编要提供给汇编一些信息,遵循汇用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定。这些由伪指令指定。编程序的一些约定。这些由伪指令指定。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 MCS-51MCS-51系列单片机汇编程序常用伪指令系列单片机汇编程序常用伪指令 伪指令是放在汇编语言源程序中用于伪指令是放在汇编语言源程序中用于指示指示汇编程序如何对源程序进行汇编的指令,它不汇编程序如何对源程序进行汇编的指令,它不同于指令系统中的指令,指令系统中的指令在同于指令系统中的指令,指令系统中的指令在汇编程序汇编时能够产生相应的
5、指令代码,而汇编程序汇编时能够产生相应的指令代码,而伪指令在汇编程序汇编时不会产生代码,只是伪指令在汇编程序汇编时不会产生代码,只是对汇编过程进行相应的对汇编过程进行相应的控制和说明控制和说明。 伪指令通常在汇编语言源程序中用于伪指令通常在汇编语言源程序中用于定义定义数据、分配存储空间、控制程序的输入输出等数据、分配存储空间、控制程序的输入输出等。MCS-51MCS-51汇编语言源程序相对于一般的微型计算汇编语言源程序相对于一般的微型计算机汇编语言源程序结构简单,伪指令数目少,机汇编语言源程序结构简单,伪指令数目少,常用的伪指令只有几条。常用的伪指令只有几条。第第3章章 MCS-51单片机汇编
6、语言程序设计单片机汇编语言程序设计 1 1起始指令起始指令ORGORG格式:格式: ORG ORG 地址地址(十六进制表示)(十六进制表示) 这条伪指令放于一段源程序或数据的前面,这条伪指令放于一段源程序或数据的前面,汇编时用于指明程序或数据从程序存储空间什么汇编时用于指明程序或数据从程序存储空间什么位置开始存放。位置开始存放。ORGORG伪指令后的地址是程序或数伪指令后的地址是程序或数据的起始地址。据的起始地址。例:例: ORG 1000HORG 1000HSTARTSTART:MOV AMOV A,#7FH#7FH 指明后面的程序从程序存储器的指明后面的程序从程序存储器的1000H1000
7、H单元单元开始存放。开始存放。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 2 2字节定义字节定义DBDB格式:格式: 标号:标号: DB DB 项或项表项或项表 DBDB伪指令用于定义字节数据,可以定义一伪指令用于定义字节数据,可以定义一个字节,也可定义多个字节,字义多个字节时,个字节,也可定义多个字节,字义多个字节时,两两之间用两两之间用逗号逗号间隔,定义的多个字节在存储间隔,定义的多个字节在存储器中是器中是连续存放连续存放的。定义的字节可以是一般的。定义的字节可以是一般常常数数,也可以为,也可以为字符字符,还可以是,还可以是字符串字符串,字符和,字符和字符串以字符
8、串以引号引号括起来,字符数据在存储器中以括起来,字符数据在存储器中以ASCIIASCII码码形式存放。形式存放。 在定义时前面可以带在定义时前面可以带标号标号,定义的标号在,定义的标号在程序中是起始单元的地址。程序中是起始单元的地址。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 12H34H35H41H61H62H63H3000H3001H3002H3003H3004H3005H3006H例:例: ORG 3000HORG 3000HTAB1TAB1: DB 12HDB 12H,34H34H DB 5 DB 5,AA,abcabc汇编后,各个数据在存储单元汇编后,各个数
9、据在存储单元中的存放情况如下:中的存放情况如下:第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 3 3字定义字定义DWDW格式:格式: 标号:标号: DW DW 项或项表项或项表 这条指令与这条指令与DBDB相似,但用于定义字相似,但用于定义字数据。项或项表指所定义的一个字在存数据。项或项表指所定义的一个字在存储器中占储器中占两个字节两个字节。汇编时,机器自动。汇编时,机器自动按高字节在前,低字节在后,即高字节按高字节在前,低字节在后,即高字节存放在低地址单元,低字节存放在高地存放在低地址单元,低字节存放在高地址单元。址单元。第第3章章 MCS-51单片机汇编语言程序设计
10、单片机汇编语言程序设计 12H34H56H78H3000H3001H3002H3003H例:例: ORG 3000HORG 3000H TAB2 TAB2:DW 1234HDW 1234H,5678H5678H汇编后,各个数据在存储单元汇编后,各个数据在存储单元中的存放情况如下:中的存放情况如下:第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 4 4保留字节保留字节DSDS格式:格式: 标号:标号: DS DS 数值表达式数值表达式 该伪指令用在存储器中保留一定数量的字节该伪指令用在存储器中保留一定数量的字节单元。保留存贮空间主要为以后存放数据。保留单元。保留存贮空间主要
11、为以后存放数据。保留的字节单元数由表达式的值决定。的字节单元数由表达式的值决定。12H34H-35H3000H3001H3002H3003H3004H3005H3006H例:例: ORG 3000HORG 3000H TAB1 TAB1: DB 12HDB 12H,34H34H DS 4H DS 4H DB 5 DB 5汇编后,存储单元中的汇编后,存储单元中的分配情况如下:分配情况如下:第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 5 5等值指令等值指令EQUEQU格式:格式: 符号符号 EQU EQU 项项 该伪指令的功能是将指令中的项的值赋予该伪指令的功能是将指令中
12、的项的值赋予EQUEQU前面的符号。项可以是常数、地址标号或表前面的符号。项可以是常数、地址标号或表达式。以后可以通过使用该符号使用相应的项。达式。以后可以通过使用该符号使用相应的项。例:例: TAB1 EQU 1000HTAB1 EQU 1000H TAB2 EQU 2000H TAB2 EQU 2000H 汇编后汇编后TAB1TAB1、TAB2TAB2分别等于分别等于1000H1000H、2000H2000H。程序后面使用程序后面使用1000H1000H、2000H2000H的地方就可以用符的地方就可以用符号号TAB1TAB1、TAB2TAB2替换。替换。 用用EQUEQU伪指令对某标号赋
13、值后,该符号的伪指令对某标号赋值后,该符号的值在整个程序中不能再改变。值在整个程序中不能再改变。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 6 6位定义位定义bitbit格式:格式: 符号符号 bit bit 位地址位地址 bitbit该伪指令用于给位地址赋予符号,该伪指令用于给位地址赋予符号,经赋值后可用该符号代替经赋值后可用该符号代替bitbit后面的位地址。后面的位地址。例:例: PLG bit F0PLG bit F0 AI bit AI bit P1.0 P1.0 定义后,在程序中位地址定义后,在程序中位地址F0F0、P1.0P1.0就就可以通过可以通过FL
14、GFLG和和AIAI来使用。来使用。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 7 7结束指令结束指令ENDEND格式:格式: ENDEND 该指令放于程序最后位置,用于指该指令放于程序最后位置,用于指明汇编语言源程序的结束位置,当汇编明汇编语言源程序的结束位置,当汇编程序汇编到程序汇编到ENDEND伪指令时,汇编结束。伪指令时,汇编结束。ENDEND后面的指令,汇编程序都不予处理。后面的指令,汇编程序都不予处理。一个源程序只能有一个一个源程序只能有一个ENDEND命令,否则就命令,否则就有一部分指令不能被汇编。有一部分指令不能被汇编。第第3章章 MCS-51单片机汇
15、编语言程序设计单片机汇编语言程序设计 汇编语言程序设计步骤汇编语言程序设计步骤一一. .确定方案和计算方法确定方案和计算方法二二. .了解应用系统的硬件配置、性能指标了解应用系统的硬件配置、性能指标三三. .建立系统数学模型,确定控制算法和操作步骤建立系统数学模型,确定控制算法和操作步骤四四. .合理分配存储器单元和了解合理分配存储器单元和了解I/O接口地址接口地址五五. 编制源程序编制源程序1.按功能设计程序,明确各程序之间按功能设计程序,明确各程序之间的相互关系的相互关系2. 用流程图表示程序结构和功能用流程图表示程序结构和功能开始开始1 YN?3.程序中用注释说明指令在程序中的程序中用注
16、释说明指令在程序中的作用,方便阅读、调试和修改作用,方便阅读、调试和修改第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 顺序程序设计顺序程序设计例例3-1 编程将外部数据存储器编程将外部数据存储器的的000EH和和000FH单元的内单元的内容相换。容相换。常用程序结构常用程序结构 顺序程序、分支程序、顺序程序、分支程序、循环程序、子程序循环程序、子程序000EH000FH000EH000FH000EH000FH000EH000FH分析分析: 外部数据存储器的数据操外部数据存储器的数据操作只能用作只能用MOVX指令,且只能指令,且只能和和A之间传送,因此必须用一个之间传送,因此必须用一个中间环节作暂存,设用中间环节作暂存,设用20H单元。单元。用用R0、R1指示两单元的低八位指示两单元的低八位地址,高八位地址由地址,高八位地址由P2指示。指示。编程过程如下:编程过程如下:000EH000FH000EH000FH000EH000FH第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0000H ORG 0000H MOV P2, #0H ;