单片机原理及应用课件(陈林林)第4章 汇编语言程序设计基础1资料教程.pptVIP

  • 0
  • 0
  • 约3.05千字
  • 约 32页
  • 2018-12-06 发布于天津
  • 举报

单片机原理及应用课件(陈林林)第4章 汇编语言程序设计基础1资料教程.ppt

单片机原理及应用课件(陈林林)第4章 汇编语言程序设计基础1资料教程.ppt

汇编语言与 简单程序设计;汇编程序的伪指令;汇编程序的常用伪指令;汇编程序的常用伪指令(续);编写汇编语言程序的步骤 确定控制流程,划分程序模块,画出程序框图; 为程序模块分配数据存储单元,确定与其它模块交换、共享数据的存储单元;设计算法; 逐模块编写并调试程序; 全部模块脱机联调、修改,最后进入实际工作状态调试。;程序的顺序/分支/循环三种基本结构;例:内部数据传输; ORG 2000H BCD2B:MOV A, R2 ;取入口数据 ANL A, #0F0H ;取出十位 SWAP A ;高4位 低4位 MOV B, #0AH MUL AB ;十位乘10 MOV R3,A ;积暂存进R3 MOV A, R2;再取入口数据 ANL A, #0FH ;取出个位 ADD A, R3 MOV R2,A ;结果 R2 RET ;若不是子程序可用END ;单字节乘/除运算: (MUL,DIV——2条) 两个单字节数的乘/除法运算只在A与B之间进行。 MUL AB ;(B)15~8(A)7~0 ←(A)×(B) (A)与(B)相乘, 积为16位数, (A)?积的低8位; 如果乘积大于0FFH,则 (B)?积的高8位 DIV AB ;(A)商 (B)余数 ←(A) /(B) (A)除以(B),结果用2字节表示, (A)?商的整数部分;(B)?余数;程序的顺序/分支/循环三种基本结构;a. 单分支; ORG 2000H VAR EQU 30H ;定义缓存单元 FUNC EQU 31H ; BR1: MOV A,VAR ;取出变量“X” JZ COMP ;若=0,就赋 0 JNB ACC.7,POS1 ;判断 = 正? MOV A,#0FFH ;(-1 = +1取反加1) SJMP COMP ;输出 -1 POS1:MOV A,#01H ;输出 +1 COMP:MOV FUNC,A ;赋给函数“Y” HERE:AJMP HERE END;8位机器数表示的真值;例4-3;任务一:控制一盏灯点亮 任务二:红灯周期性亮/灭 任务三:红外防盗报警;程序的顺序/分支/循环三种基本结构;程序的顺序/分支/循环三种基本结构; ORG 1000H MOV R0,#0AH ;外循环10次 DEL2: MOV R1,#7DH ;内循环125次 DEL1: NOP NOP ;空操作指令,延时2μs DJNZ R1,DEL1 DJNZ R0,DEL2 RET 内循环时间:(1+1+2)×2μs×7DH =1000μs 总的延时时间:{1+[1+(1+1+2)×125+2]×10}×2μS =10062μs=10.062ms; ORG 1000H DELAY:MOV R6,#200 ; 1Tm LOOP1:MOV R7,#248 ; 1Tm NOP ; 1Tm LOOP2:DJNZ R7,LOOP2 ; 2Tm DJNZ R6,LOOP1 ; 2Tm RET ; 1Tm; ORG 1000H DL1S:MOV R7,#10 DL1: MOV R6,#200 DL2: MOV R5, #250 DL3: DJNZ R5, DL3 DJNZ R6,DL2 DJNZ R7,DL1 RET;TABL: DW 050FH,0E89H,0A695H,1EAAH,0D9BH,7F93H DW 0373H,26D7H, 2710H,9E3FH,1A66H,22E3H DW 1174H,16EFH, 33E4H,6CA0H; ORG 2000H STA1: MOV A,R2 ;取待查数据的序号 X (入口) RL A ;每数占2个单元,序号要乘2

文档评论(0)

1亿VIP精品文档

相关文档