华东交通大学单片机微机原理及应用基础教程第章汇编语言及其程序设计ppt课件.ppt
文本预览下载声明
* 是一种最简单,最基本的程序。 特点:程序按编写的顺序依次往下执行每一条指令,直到最后一条。 * 第8周一上到课件的103页止。 * 循环程序按结构形式,有单重循环与多重循环。 ☆在多重循环中,只允许外重循环嵌套内重循环。 ☆不允许循环相互交叉,也不允许从循环程序的外部跳入循环程序的内部(如图3-7所示) * 所谓调用子程序,暂时中断主程序的执行,而转到子程序的入口地址去执行子程序。如图3-10所示。 源程序: 指令周期 DELAY: MOV R3, #( X )H 1个T机器 DEL2: MOV R4,#( Y )H 1个T机器 DEL1: NOP 1个T机器 NOP 1个T机器 DJNZ R4,DEL1 2 个T机器 DJNZ R3,DEL2 2个T机器 RET 指令周期、机器周期T机器与时钟周期T时钟的关系: T机器=12T时钟=12*1/fosc=1us (假设晶振频率fosc为12M) 延时时间的简化计算结果: (1+1+2) * X * Y 若想延时100ms,只需修改计数初始值,即 (1+1+2) *200 * 125us=100ms #200 #125 3.6.3 延时程序设计 1S延时程序 源程序: DELAY: MOV R2, #10 DEL3: MOV R3, #200 DEL2: MOV R4,#125 DEL1: NOP NOP DJNZ R4,DEL1 DJNZ R3,DEL2 DJNZ R2, DEL3 RET 例5:编程实现P1口连接的8个LED显示方式如下:从P1.0到P1.7的顺序,依次点亮其连接的LED。 设循环次数 显示模式字送P1口 开始 显示模式字左移1位 设循环初值 次数-1=0 Y N 子程序实例引入: ORG 0000H START: MOV R2,#08H ; 设置循环次数 MOV A,#0FEH ; 送显示模式字 NEXT: MOV P1,A ; 点亮二极管 ACALL DELAY RL A ; 左移一位,改变显示模式字 DJNZ R2,NEXT ; 循环次数减1,不为零,继续点亮 SJMP START ; 下面一个二极管 DELAY: MOV R3,#0FFH ; 时子程序开始 DEL2: MOV R4,#0FFH DEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 18题 MOV R0,#20H MOV R1,#2FH MOV R2,#3H LOOP:MOV A,@R0 MOV @R1, A INC R0 DEC R1 DJNZ R2, LOOP RET 19题 MOV DPTR,#1000H
显示全部