MCS51单片机汇编语言程序设计改.ppt

上传人:wuy****n92 文档编号:54700886 上传时间:2022-10-29 格式:PPT 页数:45 大小:564.50KB
返回 下载 相关 举报
MCS51单片机汇编语言程序设计改.ppt_第1页
第1页 / 共45页
MCS51单片机汇编语言程序设计改.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《MCS51单片机汇编语言程序设计改.ppt》由会员分享,可在线阅读,更多相关《MCS51单片机汇编语言程序设计改.ppt(45页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 单片机原理、接口及应用单片机原理、接口及应用单片机原理、接口及应用单片机原理、接口及应用第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 内内 容容 提提 要要伪伪指令指令汇编语言程序设计步骤汇编语言程序设计步骤顺序程序设计顺序程序设计分支程序设计分支程序设计循环程序设计循环程序设计位操作程序设计位操作程序设计子程序子程序小结小结第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 1.机器指令:指令系统中的全部指令。每条机器指令都机器指令:指令系统中的全部指令。每条机器指令都有对应的机器

2、代码,可以被有对应的机器代码,可以被CPU执行。执行。2.伪指令:伪指令:汇编控制指令,没有指令代码,只用于汇编汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。过程,为汇编程序提供汇编信息。一、汇编语言指令类型一、汇编语言指令类型 宏汇编功能:将需要反复多次执行的程序段定义成一个宏宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替指令名(宏定义)。编程时,可在程序中使用宏指令名来替代被定义的程序段(宏调用)。代被定义的程序段(宏调用)。伪指令伪指令第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 宏定义

3、过程宏定义过程:宏调用过程:宏调用过程:宏指令名宏指令名 实际参数实际参数 宏指令名宏指令名 实际参数实际参数宏指令名宏指令名 MACRO 形式参数形式参数 ;被定义的程序段;被定义的程序段 ENDM第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 二伪指令二伪指令 常用伪指令及功能:常用伪指令及功能:1.起始指令起始指令 ORG nn功能:定义程序或数据块的起始地址。功能:定义程序或数据块的起始地址。指示此语句后面的程序指示此语句后面的程序或数据块以或数据块以nn为起始地址,连续存放在程序存储器中。为起始地址,连续存放在程序存储器中。指令地址指令地址 机器码机器码源程序源

4、程序 ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6 MOV A,R0 ORG 3000H 3000H 23 TAB:DB 23H,100,A 3001H 64 3002H 41第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 2.字字节节定定义义 标标号号:DB(字字节节常常数数,或字符或表达式)或字符或表达式)功功能能:指指示示在在程程序序存存储储器器中中以以标标号号为为起起始始地地址址的的单单元元里里存存放放的的数数为为字字节节数数据据(八八位位二二进进制数)。制数)。例例如如 LN:DB 32,C,25H,-1;LNL

5、N+2 地地址址单单元元依依次次存存放放20H,43H,25H,FFH地址地址 数据数据LN20LN+143LN+225LN+3FF3.字定义字定义 标号:标号:DW(字常数或表达式(字常数或表达式)作用:作用:指示在程序存储器中以标号为起始地址指示在程序存储器中以标号为起始地址的单元里存放的数为字数据(即的单元里存放的数为字数据(即16位的二进制数),位的二进制数),例如:例如:GH:DW 1234H,5678H,08GH1234GH+25678GH+40008第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 5.等值指令等值指令 标号标号 EQU(数值表达式)(数值表达

6、式)表示表示EQU两边的量等值,用于为标号或标识符赋值。两边的量等值,用于为标号或标识符赋值。例如:例如:X1 EQU 2000H X2 EQU 0FH MAIN:MOV DPTR,#X1 ;DPTR=2000H ADD A,#X2 ;A=A+0FH4保留字节保留字节 标号:标号:DS(数值表达式)(数值表达式)作用:作用:指示在程序存储器中保留以标号为起始地指示在程序存储器中保留以标号为起始地址的若干字节单元,其单元个数由数值表达式指定。址的若干字节单元,其单元个数由数值表达式指定。例如例如 L1:DS 32;从从L1地址开始保留地址开始保留32个存储单元。个存储单元。第第3章章 MCS-5

7、1单片机汇编语言程序设计单片机汇编语言程序设计 6.位定义位定义 标号标号 BIT 位地址位地址 作用:作用:同同EQU指令,不过定义的是位操作地址。指令,不过定义的是位操作地址。例如例如 。7.汇编结束汇编结束 END作用:作用:指示源程序段结束。指示源程序段结束。END指令放在程序的最后。指令放在程序的最后。A51汇编程序还有一些其它的伪指令,列在教材表汇编程序还有一些其它的伪指令,列在教材表3-1中,以中,以备查阅。备查阅。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 汇编语言程序设计步骤汇编语言程序设计步骤一一.确定方案和计算方法确定方案和计算方法二二.了解应用

8、系统的硬件配置、性能指标了解应用系统的硬件配置、性能指标三三.建立系统数学模型,确定控制算法和操作步骤建立系统数学模型,确定控制算法和操作步骤四四.合理分配存储器单元和了解合理分配存储器单元和了解I/O接口地址接口地址五五.编制源程序编制源程序1.按功能设计程序,明确各程序之间按功能设计程序,明确各程序之间的相互关系的相互关系2.用流程图表示程序结构和功能用流程图表示程序结构和功能开始开始1 YN?3.程序中用注释说明指令在程序中的程序中用注释说明指令在程序中的作用,方便阅读、调试和修改作用,方便阅读、调试和修改第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 顺序程序设计

9、顺序程序设计例例3-1 编程将外部数据存储器编程将外部数据存储器的的000EH和和000FH单元的内单元的内容相换。容相换。常用程序结构常用程序结构 顺序程序、分支程序、顺序程序、分支程序、循环程序、子程序循环程序、子程序000EH000FH000EH000FH000EH000FH000EH000FH分析分析:外部数据存储器的数据操外部数据存储器的数据操作只能用作只能用MOVX指令,且只能指令,且只能和和A之间传送,因此必须用一个之间传送,因此必须用一个中间环节作暂存,设用中间环节作暂存,设用20H单元。单元。用用R0、R1指示两单元的低八位指示两单元的低八位地址,高八位地址由地址,高八位地址

10、由P2指示。指示。编程过程如下:编程过程如下:000EH000FH000EH000FH000EH000FH第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0000H MOV P2,#0H ;送地址高八位至送地址高八位至P2口口 MOV R0,#0EH ;R0=0EH MOV R1,#0FH ;R1=OFH MOVX A,R0 ;A=(000EH)MOV 20H,A ;(20H)=(000EH)MOVX A,R1 ;A=(000FH)XCH A,20H ;A=(000EH),(20H)=(000FH)MOVX R1,A MOV A,20H MOVX R0,A ;交换

11、后的数送各单元交换后的数送各单元 SJMP$END第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 3.3 顺序程序设计顺序程序设计顺序程序顺序程序(简单程序简单程序),程序走向只有一条路径,程序走向只有一条路径例例3-2:将:将R4R5双字节符号数求补程序。双字节符号数求补程序。ORG 0000H MOV A,R5;取低字节;取低字节 CPL A ADD A,#1 ;低字节变补;低字节变补 MOV R5,A MOV A,R4;取高字节;取高字节 CPL A ADDC A,#0;高字节变补;高字节变补 ORL A,#80H;恢复负号恢复负号 MOV R4,A END第第3章

12、章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 例例3-3 分解压缩式分解压缩式BCD码码,使其成为非压缩式使其成为非压缩式BCD码。码。ORG 0000HMOV R0,#40H;设指针;设指针MOV A,R0;取一个字节;取一个字节MOV R2,A;暂存;暂存ANL A,#0FH;清;清0高半字节高半字节INC R0MOV R0,A ;保存数据个位;保存数据个位片内片内RAM42H41H40H65MOV A,R2SWAP A ;十位换到低半字节;十位换到低半字节ANL A,#0FHINC R0MOV R0,A;保存数据十位;保存数据十位END05050606第第3章章 MCS-

13、51单片机汇编语言程序设计单片机汇编语言程序设计 地址数据TAB0TAB+11TAB+24TAB+39TAB+416HTAB+525H例例3-4 设变量放在片内设变量放在片内RAM的的20H单元单元,其值为其值为00H05H之间之间,要求编查表程序要求编查表程序,查出变量的平方值查出变量的平方值,并放入片内并放入片内RAM的的21H单元。单元。ORG 0000H MOV DPTR,#TAB MOV A,20H MOVC A,A+DPTR;查表查表 MOV 21H,A SJMP$TAB2:DB 00H,01H,04H,09H,16H,25H END分析分析:在程序存储器安排一张平方表,首地址为:

14、在程序存储器安排一张平方表,首地址为TAB,以,以DPTR指向表首址,指向表首址,A存放变量值,利用查表指令存放变量值,利用查表指令MOVC A,A+DPTR,即可求得。,即可求得。表中数据用表中数据用BCD码存放合乎人们的习惯码存放合乎人们的习惯.如果平方值为两个字节,程序应如何编。如果平方值为两个字节,程序应如何编。DPTRA第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0000H ORG 0000H MOV A,R2 ,N ;为正数?;为正数?CPL A ;负数变补;负数变补 INC A MOV R2,AN:SJMP$;结束;结束 3.4 3.4 分支程序

15、的设计分支程序的设计 由条件转移指令构成程序判断框部分,形成分支结构由条件转移指令构成程序判断框部分,形成分支结构3.5.1 3.5.1 单分支程序单分支程序一个判断决策框,两种分支结构图。一个判断决策框,两种分支结构图。条件满足条件满足?N影响条件影响条件Y处理段处理段条件满足条件满足?N影响条件影响条件Y处理处理1处理处理2例例1 1 求求8 8位有符号数的绝对值。位有符号数的绝对值。方法:正数不变,负数变补方法:正数不变,负数变补第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 多分支散转程序的设计多分支散转程序的设计 有一类分支程序有一类分支程序,它根据不同的输入条

16、件或不同的运算结果它根据不同的输入条件或不同的运算结果,转向不同的处理程序转向不同的处理程序,称之为散转程序。这类程序通常利用称之为散转程序。这类程序通常利用JMPA+DPTR间接转移指令实现转移。有如下两种设计方法:间接转移指令实现转移。有如下两种设计方法:1.查转移地址表查转移地址表:将将转移地址转移地址列成表格,将表格的内容作转移的目标地址。列成表格,将表格的内容作转移的目标地址。2.查转移指令表查转移指令表:将转移到不同程序的将转移到不同程序的转移指令转移指令列成表格,判断条件后查表,列成表格,判断条件后查表,转到表中指令执行转到表中指令执行,下面用两个例子说明。下面用两个例子说明。第

17、第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 当程序中的某些指令需要反复执行多次时,采用循环程当程序中的某些指令需要反复执行多次时,采用循环程序的方式,这样会使程序缩短,节省存储单元(并不节省序的方式,这样会使程序缩短,节省存储单元(并不节省执行时间)。执行时间)。循环次数的控制,有两种控制方式循环次数的控制,有两种控制方式:第一种方法第一种方法先判断再处理即先判断满不满足循环条件,如不满足,就先判断再处理即先判断满不满足循环条件,如不满足,就不循环,多以循环条件控制。不循环,多以循环条件控制。第二种方法第二种方法先处理再判断,即循环执行一遍后,下一轮还需不需要进先处理再

18、判断,即循环执行一遍后,下一轮还需不需要进行,多以计循环次数控制。循环可以有单重循环和多重循行,多以计循环次数控制。循环可以有单重循环和多重循环,在多重循环中,内外循环不能交叉,也不允许外循环环,在多重循环中,内外循环不能交叉,也不允许外循环跳入内循环。下面通过几个实例说明循环程序的设计方法。跳入内循环。下面通过几个实例说明循环程序的设计方法。3.5 循循 环环 程程 序序 设设 计计第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 例例 3-9 设计一个延时设计一个延时10ms的延时子程序,已知单片机使用的的延时子程序,已知单片机使用的晶振为晶振为6MHz。分析分析:延时

19、时间与两个因素有关延时时间与两个因素有关:晶振频率和循环次数。由于晶振频率和循环次数。由于晶振采用晶振采用6MHz,一个机器周期是,一个机器周期是2s,用单循环可以实现,用单循环可以实现1ms延时,外循环延时,外循环10次即可达次即可达10ms延时。延时。内循环如何实现内循环如何实现1ms延时呢,程序中可先以未知数延时呢,程序中可先以未知数MT代代替,从附录替,从附录A查每条指令机器周期计算程序的执行时间。查每条指令机器周期计算程序的执行时间。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0020H MOV R0,#0AH ;外循环;外循环10次次 DL2:MO

20、V R1,#MT ;内循环;内循环MT次次 DL1:NOP NOP ;空操作指令;空操作指令 DJNZ R1,DL1 DJNZ R0,DL2 RET内循环内循环DL1到指令到指令DJNZ R1,DL1的计算:的计算:(1+1+2)2SMT=1000S MT=125=7DH将将7DH代入上面程序的代入上面程序的MT,计算总的延时时间:,计算总的延时时间:1+1+(1+1+2)125+28102S若需要延时更长时间,可以采用多重循环。若需要延时更长时间,可以采用多重循环。内内外外第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 例例3-10 编写多字节数编写多字节数10程序。程

21、序。内部内部RAM以以20H为首址的一片单元中存放着一个多字为首址的一片单元中存放着一个多字节符号数,字节数存放在节符号数,字节数存放在R7中,存放方式为低位字节在低中,存放方式为低位字节在低地址,高位字节在高地址,要求乘地址,高位字节在高地址,要求乘10后的积仍存放在这一片后的积仍存放在这一片单元中。单元中。分析分析 用用R1作该多字节的作该多字节的地址指针,部分积的低位仍地址指针,部分积的低位仍存放于本单元,部分积的高存放于本单元,部分积的高位存放于位存放于R2,以便和下一,以便和下一位的部分积的低位相加。位的部分积的低位相加。以以R7作字节数计数。作字节数计数。编程如下:编程如下:345

22、 H 0A H 32 H 28 H 2B H 1E H 20B H第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0000H CLR C ;清进位位;清进位位C MOV R1,#20H ;R1指示地址指示地址 MOV R2,#00H ;存积的高八位寄存器;存积的高八位寄存器R2清清0S10:MOV A,R1 ;取一字节送;取一字节送A MOV B,#0AH ;10送送B PUSH PSW MUL AB ;字节乘;字节乘10 POP PSW ADDC A,R2 ;上次积高八位加本次积低八位;上次积高八位加本次积低八位 MOV R1,A ;送原存储单元;送原存储单元

23、MOV R2,B ;积的高八位送;积的高八位送R2 INC R1 ;指向下一字节;指向下一字节 DJNZ R7,S10 ;未乘完去;未乘完去SH10,否则向下执行,否则向下执行 MOV R1,B ;存最高字节积的高位;存最高字节积的高位 SJMP$第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 例如例如 12 23 65 09 89 比较大小比较大小不交换不交换(0)12 23 65 09 1912 23 65 09 19交换交换(1)12 23 09 65 19不交换不交换(0)交换交换(1)12 23 65 09 1912 23 09 19 65最大最大交换交换(1)

24、不交换不交换(0)12 23 09 19 65 12 09 23 19 65 交换交换(1)12 09 19 23 65不交换不交换(0)交换交换(1)12 23 09 19 6512 09 19 23 65最大最大12 09 19 23 6509 12 19 23 6509 12 19 23 6509 12 19 23 6509 12 19 23 65第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 MCS-51单片机有着优异的位逻辑功能单片机有着优异的位逻辑功能,可以方便的实现可以方便的实现各种复杂的

25、逻辑运算各种复杂的逻辑运算.这种用软件替代硬件的方法这种用软件替代硬件的方法,可以大可以大大简化甚至完全不用硬件大简化甚至完全不用硬件,但比硬件要多花运算时间。但比硬件要多花运算时间。例例3-17 编写一程序编写一程序,以实现图以实现图3-4中的逻辑运算电路中的逻辑运算电路.3.6 位操作程序设计位操作程序设计第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 其中和分别是端口线上的信息其中和分别是端口线上的信息,TF0和和IE1分别是定时器定分别是定时器定时溢出标志和外部中请求标志时溢出标志和外部中请求标志,25H和和26H分别是两个位地址分别是两个位地址,运算结果由端口线

26、输出。运算结果由端口线输出。图图3-4 硬件逻辑运算电路硬件逻辑运算电路第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 程序如下:程序如下:ORL C,TF0 MOV F0,C MOV C,IE1 ORL C,/25H ANL C,F0 ANL C,/26H MOV P1.3,C SJMP$第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 例例3-18 设累加器设累加器A的各位分别记为的各位分别记为X0X7,编制程序用软,编制程序用软件实现下式件实现下式:Y=X0X1X2+X0 X1 X2+X0X1X2X3+X4 X5 X6X7 X2 BIT ACC.

27、2 第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ORG 0000H MOV C,X0ANL C,X1ANL C,X2MOV 00H,C ;X0X1X2MOV C,X0ANL C,/X1 MOV 01H,C ;X0X1ANL C,/X2ORL C,00HMOV 00H,C MOV C,X2ANL C,01H ANL C,X3 ;X0X1X2X3 ORL C,/00H MOV 00H,C MOV C,X7ANL C,/X6ANL C,/X5ANL C,/X4 ;X4 X5 X6 X7ORL C,00H ;最终结果最终结果 YC SJMP$第第3章章 MCS-51单片机汇编

28、语言程序设计单片机汇编语言程序设计 子程序是构成单片机应用程序必不可少的部分,通过子程序是构成单片机应用程序必不可少的部分,通过ACALL和和LCALL两条子程序调用指令,可以十分方便地两条子程序调用指令,可以十分方便地用来调用任何地址处的子程序。用来调用任何地址处的子程序。子程序节省占用的存储单元,使程序简短、清晰,善子程序节省占用的存储单元,使程序简短、清晰,善于灵活的使用子程序,是程序设计的重要技巧之一。于灵活的使用子程序,是程序设计的重要技巧之一。子程序必须以子程序必须以RET指令结尾指令结尾.在调用子程序时,有以下几点应在调用子程序时,有以下几点应注意注意:3.7 子程序子程序 当一

29、段程序需多次应用当一段程序需多次应用,或为多人应用时或为多人应用时,这段程序编为子这段程序编为子程序程序.第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 1)保护现场。)保护现场。如果在调用前主程序已经使用了某些存储单元或寄存器,在调用时,如果在调用前主程序已经使用了某些存储单元或寄存器,在调用时,这些寄存器和存储单元又有其他用途,就应先把这些单元或寄存器这些寄存器和存储单元又有其他用途,就应先把这些单元或寄存器中的内容压入堆栈保护,调用完后再从堆栈中弹出以便加以恢复。中的内容压入堆栈保护,调用完后再从堆栈中弹出以便加以恢复。如果有较多的寄存器要保护,应使主、子程序使用不

30、同的寄存器组。如果有较多的寄存器要保护,应使主、子程序使用不同的寄存器组。2)设置入口参数和出口参数。)设置入口参数和出口参数。用之前主程序要按子程序的要求设置好地址单元或存储器(称为用之前主程序要按子程序的要求设置好地址单元或存储器(称为入口参数),以便子程序从指定的地址单元或存储器获得输入数据;入口参数),以便子程序从指定的地址单元或存储器获得输入数据;子程序经运算或处理后的结果存放到指定的地址单元或寄存器子程序经运算或处理后的结果存放到指定的地址单元或寄存器(称为出口参数),主程序调用后从指定的地址单元或寄存器读取(称为出口参数),主程序调用后从指定的地址单元或寄存器读取运算或处理后的结

31、果,只有这样,才能完成子程序和主程序间的数运算或处理后的结果,只有这样,才能完成子程序和主程序间的数据的正确传递。据的正确传递。第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 3)子程序中可包括对另外子程序的调用,称为子程序嵌套。)子程序中可包括对另外子程序的调用,称为子程序嵌套。例例3-19 用程序实现用程序实现c=a2+b2,设,设a,b均小于均小于10。a存放在存放在31H单元,单元,b存放在存放在32H单元,把单元,把c存入存入34H和和33H单元。(和要求为单元。(和要求为BCD码)码)。解解:因该算式两次用到平方值,所以在程序中采用把求平方:因该算式两次用到平

32、方值,所以在程序中采用把求平方编为子程序的方法。求平方采用查表法编为子程序的方法。求平方采用查表法,主程序和子程序编写如主程序和子程序编写如下:下:第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 主程序:主程序:ORG 0000H MOV SP,#3FH MOV A,31H ;取;取aLCALL SQR ;求求a方方 MOV R1,AMOV A,32H ;取;取bLCALL SQR ;求求b方方ADD A,R1 ;求和求和DA A ;调整;调整MOV 33H,A MOV A,#0ADDC A,0 MOV 34H,A SJMP$子程序:子程序:ORG 0030HSQR:IN

33、C A MOVC A,A+PC RETTAB:DB 00H,01H,04H DB 09H 16H,25H,DB 36H,49H64H,81H END第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 多字节无符号数加法多字节无符号数加法START:MOV A,R0MOV R5,AMOV A,R3MOV R7,ACLRCADDA:MOV A,R0ADDCA,R1MOV R0,AINCR0INCR1第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 DJNZ R7,ADDAJNCADDBINCR3MOV R0,#01HADDB:MOV A,R5MOV R0,AE

34、ND第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 双字节除法双字节除法DV:MOV R7,#8S0:CLRC MOV A,R5RLCAMOV R5,AMOV A,R6RLCA MOV 07H,CCLRCSUBB A,R4第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 JB07H,S1JNCS1 ADD A,R4MOV R4,A SJMP S2 S1:INC R5 S2:MOV R6,A DJNZ R7,S0 END第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 BCD数乘法数乘法MOV 63H,#00HMOV 62H,#00H

35、CLRALOOP:PUSH ACCMOV A,60HADDA,63HDAAMOV 63H,A第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 CLRAADDCA,62HDA AMOV62H,APOPACCADDA,#01HCJNEA,61H,LOOPSJMP$END第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 BCD除法除法MOV 62H,#00HCLRCMOV A,#8AHSUBB A,61HMOV R2,ALOOP:MOV A,60HCJNE A,61H,$+3JCDONEADDA,R2第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言

36、程序设计 DAAMOV60H,AMOVA,62HADDA,#01HDAAMOV62H,ASJMPLOOPDONE:MOVA,60HMOV63H,ASJMP$END第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 ARV:MOV R2,#00HMOV R3,#00H MOV R4,#00HAVR1:MOV A,P1 ADD A,R3 JNC AVR2 INC R2AVR2:MOV R3,A DJNZ R4,AVR1 RET第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 START:LEN DATA 20H MAX DATA 21H BLOCK DATA

37、22H CLR A MOV R2,LEN MOV R1,#BLOCKLOOP:CLR C SUBB A,R1第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 JNC NEXT MOV A,R1 SJMP NEXTNEXT:ADD A,R1NEXT1:INC R1 DJNZ R2,LOOP MOV MAX,A第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 将将RAM50H-59H的数据按从小到大排序的数据按从小到大排序 CLR 00HQUE:MOV R3,#9H MOV R0,#50H MOV A,R0 L2:INC R0 MOV R2,A SUBB A,R0 MOV A,R2第第3章章 MCS-51单片机汇编语言程序设计单片机汇编语言程序设计 JC L1 SETB 00H XCH A,R0 INC R0L1:MOV A,R0 DJNZ R3,L2 JB OOH,QUE RET

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

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com