自动控制网—学习自动控制技术电气自动化技术从这里开始!
当前位置: 自动控制网 > 自动化 > 单片机 >

单片机汇编程序设计

时间:2015-09-22 10:37来源:www.eadianqi.com 编辑:自动控制网
1.简单程序设计 简单程序又称顺序程序。这种程序的形式最简单,计算机执行程序的方式是从头到尾,逐条执行指令语句,直到程序结束,除非用特殊指令让它跳转,不然它会在PC控制下执行。这是程序的最基本形式,任何程序都离不开这种形式。 例1:编写1+2的程序

1. 简单程序设计

简单程序又称顺序程序。这种程序的形式最简单,计算机执行程序的方式是“从头到尾”,逐条执行指令语句,直到程序结束,除非用特殊指令让它跳转,不然它会在PC控制下执行。这是程序的最基本形式,任何程序都离不开这种形式。 自动控制网www.eadianqi.com版权所有

例1:编写1+2的程序 自动控制网www.eadianqi.com版权所有

ORG   0000H 本文来自www.eadianqi.com

MOV  30H, #02

本文来自www.eadianqi.com

MOV  A, #01 自动控制网www.eadianqi.com版权所有

ADD  A, 30H

本文来自www.eadianqi.com

END 本文来自www.eadianqi.com

2.  分支程序设计

本文来自www.eadianqi.com

在处理实际事务中,只用简单程序设计的方法是不够的。因为大部分程序总包含有判断、比较等情况,这就需要分支程序。分支程序是利用条件转移指令,使程序执行到某一指令后,根据条件(即上面运行的情况)是否满足,来改变程序执行的持续。下面举两个分支程序的例子。 自动控制网www.eadianqi.com版权所有

例2:求单字节有符号二进制数的补码。

本文来自www.eadianqi.com

       ORG   0000H 

本文来自www.eadianqi.com

CMPT:JNB  ACC.7,  NCH   ; (A)>0,不需转换。  自动控制网www.eadianqi.com版权所有

CPL    A     本文来自www.eadianqi.com

ADD   A, #1  

本文来自www.eadianqi.com

SETB  ACC.7      ; 保存符号。 本文来自www.eadianqi.com

NCH:RET 本文来自www.eadianqi.com

          END  

自动控制网www.eadianqi.com版权所有

3.  循环程序设计

本文来自www.eadianqi.com

在程序设计中,有时会遇到多次重复处理的问题,这就需要下面讲的循环程序来完成。循环程序是强制CPU重复执行某一指令系列(程序段)的一种程序结构形式,凡是要重复执行的程序段都可以按循环结构设计。

本文来自www.eadianqi.com

循环程序一般由五部分组成:

自动控制网www.eadianqi.com版权所有

(1)初始化部分:为循环程序做准备。如:设置循环次数计数器的初值,地址指针置初值,为循环变量赋初值等。

自动控制网www.eadianqi.com版权所有

(2)处理部分:为反复执行的程序段,是循环程序的实体。 本文来自www.eadianqi.com

(3)修改部分:每执行一次循环体后,对指针作一次修改,使指针指向下一数据所在位置,为进入下一轮处理做准备。

自动控制网www.eadianqi.com版权所有

(4)控制部分:根据循环次数计数器的状态或循环条件,检查循环是否能继续进行,若循环次数到或循环条件不满足,应控制退出循环,否则继续循环。

本文来自www.eadianqi.com

通常2、3、4部分又称为循环体。

本文来自www.eadianqi.com

(5)结束部分:分析及存放执行结果。

自动控制网www.eadianqi.com版权所有

例如:设有50个外部RAM单元要清“0”,即为循环次数存放在R2寄存器中,其首址存放在DPTR中,设为2000H。                   本文来自www.eadianqi.com

程序如下:

自动控制网www.eadianqi.com版权所有

         ORG   0000H

自动控制网www.eadianqi.com版权所有

         MOV   DPTR, #2000H                           

本文来自www.eadianqi.com

CLEAR: CLR   A

自动控制网www.eadianqi.com版权所有

     MOV   R2, #32H      ; 置计数值。 本文来自www.eadianqi.com

LOOP:  MOVX  @DPTR, A

本文来自www.eadianqi.com

     INC    DPTR           ; 修改地址指针

自动控制网www.eadianqi.com版权所有

     DJNZ   R2, LOOP     ; 控制循环

本文来自www.eadianqi.com

     END

自动控制网www.eadianqi.com版权所有

本文已影响