单片机原理与接口技术 教学课件 ppt 吴晓苏 张中明 第4章汇编语言程序设计

上传人:E**** 文档编号:89355462 上传时间:2019-05-23 格式:PPT 页数:52 大小:898.50KB
返回 下载 相关 举报
单片机原理与接口技术 教学课件 ppt 吴晓苏 张中明 第4章汇编语言程序设计_第1页
第1页 / 共52页
单片机原理与接口技术 教学课件 ppt 吴晓苏 张中明 第4章汇编语言程序设计_第2页
第2页 / 共52页
单片机原理与接口技术 教学课件 ppt 吴晓苏 张中明 第4章汇编语言程序设计_第3页
第3页 / 共52页
单片机原理与接口技术 教学课件 ppt 吴晓苏 张中明 第4章汇编语言程序设计_第4页
第4页 / 共52页
单片机原理与接口技术 教学课件 ppt 吴晓苏 张中明 第4章汇编语言程序设计_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《单片机原理与接口技术 教学课件 ppt 吴晓苏 张中明 第4章汇编语言程序设计》由会员分享,可在线阅读,更多相关《单片机原理与接口技术 教学课件 ppt 吴晓苏 张中明 第4章汇编语言程序设计(52页珍藏版)》请在金锄头文库上搜索。

1、第四章 汇编语言程序设计,单片机原理与接口技术,单片机原理与接口技术,【学习目标】,1了解汇编语言程序的基本结构 2掌握汇编语言程序设计的步骤和基本方法 3会用汇编语言编写程序 4熟练进行常用的语言程序设计,单片机原理与接口技术,【重点内容】,1伪指令的功能和应用 2单片机程序设计语言 3单片机程序设计方法,单片机原理与接口技术,格式:ORG16位地址,ORG 1 000H START:MOV R0,#50H MOV A, R4 ADD A, R0,1起始伪指令ORG,功能:ORG伪指令总是出现在每段源程序或数据块的开始。 它指明此语句后面的程序或数据块的起始地址。,例如:,单片机原理与接口技

2、术,格式:END,ORG 0120H START:MOV A,#80H SJMP $ ;本指令是执行指令,用于动态停机 END ;本指令是伪指令,不执行, ;表示汇编到此结束,2程序结束伪指令END,功能:表示汇编结束,位于源程序结尾处。,例4-1 主程序中END的位置。,单片机原理与接口技术,3字节定义伪指令DB,格式:标号:DB 字节数据、字符或表达式,功能:在ROM中开辟数据存储区,以字节为单位依次存放着DB后面的数据。这些数据如果是字符(必须用单引号括起),将以ASCII码形式出现;如果是表达式,则存放着表达式的值。数据区的起始地址可以用标号代替。,单片机原理与接口技术,因为16位须占

3、用两个字节,所以高8位先存入,低8位后存入。不足16位者,用0填充。,4定义字伪指令DW,格式:标号:DW 16位二进制数表,功能:从指定的地址单元开始,定义若干个16位数据。,单片机原理与接口技术,PP EQU R0 ;PP=R0 MOV A,PP ;AR0,5等值伪指令EQU,格式:字符名称 EQU 数据或汇编符号,功能:将一个数据或特定的汇编符号赋予规定的字符名称。,这里将PP等值为汇编符号R0,在指令中PP就可以代替R0来使用。,例如:,单片机原理与接口技术,DATA与EQU的功能有些相似,区别为EQU定义的符号必须先定义后使用,而DATA可以先使用后定义。因此用它定义数据可以放在程序

4、末尾进行数据定义。,6数据地址赋值伪指令DATA,格式:字符名称 DATA 表达式,功能:将数据地址或代码地址赋予规定的字符名称。,单片机原理与接口技术,功能:将位地址赋予所规定的字符名称。,7定义位地址伪指令BIT,格式:字符名称 BIT 位地址,单片机原理与接口技术,1.分析题目 2.确定算法 3.程序结构的设计 4.编写源程序 5.汇编和调试,当给定一个题目、进行程序设计时,一般应按以下几个步骤进行:,单片机原理与接口技术,流程图的符号和说明,单片机原理与接口技术,解:二进制负数的求补方法可归结为“求反加1”,符号位不变。 利用CPL指令实现求反;加1时,则应低8位先加1, 高8位再加上

5、低位的进位。注意这里不能用INC指令, 因为INC指令不影响标志位。,例4-4 已知16位二进制负数存放在R1、R0中,试求其补码,并将结果存在R3、R2中。,单片机原理与接口技术,程序如下: CONT:MOV A, R0 ;读低8位 CPL A ;取反 ADD A, #1 ;加1 MOV R2,A ;存低8位 MOV A, R1 ;读高8位 CPL A ;取反 ADDC A, #80H ;加进位及符号位 MOV R3,A ;存高8位 RET,单片机原理与接口技术,例4-5 假设两个双字节无符号数,分别存放在R1R0和R3R2中,高字节在前,低字节在后。编程使两数相加,和数存放回R2R1R0中

6、。,直接编程如下: ORG 1 000H CLR C MOV A, R0 ;取被加数低字节至A ADD A, R2 ;与加数低字节相加 MOV R0, A ;存和数低字节 MOV A, R1 ;取被加数高字节至A ADDC A, R3 ;与加数高字节相加 MOV R1, A ;存和数高字节 MOV A, #0 ADDC A, #0 ;加进位位 MOV R2,A ;存和数进位位 SJMP $ ;“原地踏步” END,单片机原理与接口技术,例4-6 试编写逻辑运算程序,功能为: (1)F=X(Y+Z) (2)F=,其中,F、X、Y、Z均为位变量,依次存在以30H为首址的位寻址区中。,解(1): F

7、 BIT 30H X BIT 31H Y BIT 32H Z BIT 33H LOG1:MOV C,Y ;YC ORL C, Z ;(Y+Z)C ANL C, X ;X(Y+Z)C MOV F,C ;X(Y+Z)F RET,单片机原理与接口技术,单片机原理与接口技术,1单分支选择结构,图4-1 单分支选择结构,单片机原理与接口技术,例4-7 设内部RAM 30H31H单元中存放两个无符号数,试比较它们的大小。将较小的数存放在30H单元,较大的数存放在31H单元中。,单片机原理与接口技术,编程如下: ORG 1 000H START:CLR C ;0Cy MOV A,30H SUBB A, 31

8、H ;做减法比较两数 JC NEXT ;若(30H)小,则转移 MOV A, 30H XCH A, 31H MOV 30H,A ;交换两数 NEXT: NOP SJMP $ END,单片机原理与接口技术,例4-8 空调机在制冷时,若排出空气比吸入空气温度低8,则认为工作正常,否则认为工作故障,并设置故障标志。 设内存单元40H存放吸入空气温度值,41H存放排出空气温度值。若(40H)(41H)8,则空调机制冷正常,在42H单元中存放“0”,否则在42H单元中存放“FFH”以示故障(在此42H单元被设定为故障标志),单片机原理与接口技术,编程如下: ORG 1 000H START: MOV A

9、, 40H ;吸入温度值送A CLR C ;0Cy SUBB A, 41H ;(40H)(41H)A JC ERROR ;Cy=1,则故障 SUBB A, #8 ;温差小于8 JC ERROR ;是则故障 MOV 42H,#0 ;工作正常 SJMP EXIT ;转出口 ERROR:MOV 42H,#0FFH ;否则置故障标志 EXIT: SJMP $ ;“原地踏步” END,单片机原理与接口技术,2多分支选择机构,单片机原理与接口技术,例4-9 编程求Y值。设m、n存在31H和32H中,Y存在33H中,且mn积256,mn商为整数。,单片机原理与接口技术,解:编程如下: m EQU 31H n

10、 EQU 32H Y EQU 33H CMP: MOV A,m ;读m MOV B, n ;置n CJNE A,B,CMP1 ;m与n比较,mn,转 MOV Y,#0 ;m=n,Y=0 RET ; CMP1:JC CMP2 ;C=1,mn,mn,SJMP CMP3 ;转存 CMP2:MUL AB ;mn,mn CMP3:MOV Y,A ;存运算结果 RET,单片机原理与接口技术,例4-10 已知电路如图4-5所示,要求实现: (1)S0单独按下,红灯亮,其余灯灭; (2)S1单独按下,绿灯亮,其余灯灭; (3)S0、S1均按下,红绿黄灯全亮; (4)其余情况黄灯亮。,单片机原理与接口技术,解:

11、程序如下。 SGNL: ORL P1,#1 1000 111 B SL0: JB P1.7,SL1 ;P1.7=1, ;S0未按下,转判S1 JB P1.6,RED ;P1.7=0,S0按下; ; 且P1.6=1,S1未按下,转红灯亮 ALIT: CLR P1.2 ;红灯亮 CLR P1.1 ;绿灯亮 CLR P1.0 ;黄灯亮 SJMP SL0 ;转循环 SL1: JB P1.6,YELW ;P1.7=1,S0未按下; ;且P1.6=1,S1未按下,转黄灯亮 GREN: CLR P1.1 ;绿灯亮 SETB P1.2 ;红灯灭 SETB P1.0 ;黄灯灭 SJMP SL0 ;转循环 RED

12、: CLR P1.2 ;红灯亮 SETB P1.1 ;绿灯灭 SETB P1.0 ;黄灯灭 SJMP SL0 ;转循环 YELW:CLR P1.0 ;黄灯亮 SETB P1.2 ;红灯灭 SETB P1.1 ;绿灯灭 SJMP SL0 ;转循环,单片机原理与接口技术,单片机原理与接口技术,例4-11 在内RAM 30H4FH连续32个单元中存放单字节无符号数。求32个无符号数之和,并存入内RAM 51H、50H中。,参考程序如下: ORG 0200H START:MOV R7,#31 ;R7作为循环次数计数器 MOV R3,#0 ;R3作为和数高字节寄存器 MOV A, 30H ;取第一个无符

13、号数 MOV R0,#31H ;R0作为加数地址指针 LOOP: ADD A, R0 ;作加法 JNC NEXT ;Cy=0,和256,则转 INC R3 ;Cy=1,加到高字节 NEXT: INC R0 ;修改R0指针 DJNZ R7,LOOP ;未完,重复加 MOV 51H,R3 ; MOV 50H,A ;存和数 SJMP $ END,单片机原理与接口技术,例题4-12 从片内RAM 50H单元开始存放一无符号数的数据块,其长度为10H,试找出其中的最小数,并存入70H单元中。程序流程图如图4-8所示 。,图4-8 例4-12程序流程图,单片机原理与接口技术,解:实现程序如下: ORG 3

14、 000H MOV A, #0FFH ;设置比较初始值FFH送A MOV R2, #10H ;循环次数初值送R2 MOV R1, #50H ;地址指针初值送R1 CLR C SUBB A, R1 ;比较 JC NEXT ;若被减数小,则移恢复原值 MOV A, R1 ;若被减数大,较小值送A SJMP NEXT1 ADD A, R1 ;恢复原值 INC R1 ;修改减数地址指针 DJNZ R2, LOOP ;判断循环结束 MOV 70H, A ;存储结果 SJMP $ END,LOOP:,NEXT:,NEXT1:,单片机原理与接口技术,例4-13 按下列要求编写延时子程序: (1)延时1 ms

15、,fosc = 6 MHz; (2)延时10 ms,fosc=12 MHz; (3)延时1 s,fosc=6 MHz。,解(1):fosc=6 MHz,一个机器周期为2 s,DJNZ指令为2个机器周期。 DY1ms:MOV R7, #250 ;置循环次数(指令为1个机器周期) DLOP: DJNZ R7,DLOP ;2机周2502 s/机周=1 000 s =1 ms RET ;(指令为2个机器周期),单片机原理与接口技术,解(2):fosc=12 MHz,一个机器周期为1 s。 DY10ms:MOV R 6,#20 ;置外循环次数 DLP1: MOV R 7, #250 ;置内循环次数 DLP2: DJNE R7, DLP2 ;2机周2501 s/机周=500 ;s=0.5 ms

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号