0522单片机实训教程电子教案第3章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

寻址方式
2008 8EF0 8 MOV B,R6 200A A4 9 MUL AB 200B 2C 10 ADD A,R4 200C FC 11 MOV R4,A 200D E4 12 CLR A 200E 35F0 13 ADDC A,B 2010 FB 14 MOV R3,A 2011 EA 15 MOV A,R2 2012 8FF0 16 MOV B,R7
第3章 汇编语言程序设计
3 .1 实 训 概 要
程序是一系列有序指令的集合。单片机通过执行程序 完成相应的任务。
程序设计的任务就是根据任务的要求,给出解决问题 的步骤和算法,编制程序的过程。学习完指令系统后,就 具备了程序设计的基础。汇编语言程序设计不但技巧性强, 而且还有软硬件结合的特点。设计出的程序质量好坏,直 接关系到单片机应用系统的特性和运行效率。为了能够编 制出高质量的程序,必须从一个个程序模块的学习开始, 通过熟读多练,反复上机训练,才能逐步掌握程序设计的
程序设计基本思路 (1)双字求和
编写程序前要掌握片内RAM的结构。MCS-51单片机片内 RAM一个存储单元为一个字节,以字节为单位编址。因此, 每个加数和结果各占四个字节。按照加法的相加思路,先 做低字节相加,然后做高位字节相加。 例如:
进行多字节加法运算时,低字节应选择不带进位加法指 令ADD。其它字节相加时应选择带进位加法指令ADDC, 将低位的进位值加入。 (2)双字节二进制无符号数乘法
(4)单步执行程序,并将运行结果记录在表3-3中。 12 34 56 78H + 23 45 67 89H = ? AB CD EF 01H + 94 39 82 71H = ? 2A 3B 4C 5DH + 3F 4E 5D 6CH = ?
•资源分配。算法确定后,要为每一个变量、各种指针、计数器 等分配工作单元,定义数据类型和数据结构。
根据程序流程图及资源分配情况,写出汇编语言源程序。 上机调试。 汇编语言源程序的一般结构:
在程序设计中将会遇到各种类型的程序,但不论程序如何 复杂,都可以分为如下基本结构:
顺序结构 分支结构 循环结构 子程序结构
3.2.2 实训要求 1.双字求和。设有两个四字节二进制数,分别存放在片 内RAM30H和40H开始的单元中,先存低字节。求两数 之和,并将和存于50H开始的单元中。 2.双字节二进制无符号数乘法。
3.2.3 实训预习 预习内容 (1)掌握顺序程序的结构。 (2)复习片内数据存储器地址范围。 (3)复习数据传送指令和二进制加法指令的功能。 (4)复习乘法指令的功能。
200 E532 8 C
MOV 51H,A MOV A,32H
寻址方式
200E
3542
9
2010
F552
10
2012
E533
11
2014
3543
12
2016
F553
13
2018
9200
14
201A 532001 15
201D 852054 16
17
ADDC A,42H MOV 52H,A MOV A,33H ADDC A,43H MOV 53H,A MOV 00H,C ANL 20H,#01H MOV 54H,20H
其中顺序结构、分支结构和循环结构为三中基本结构。其 结构流程如图3-1所示。
入口
入口
入口
M N P 出口
满足条件?
M
N
出口
满足条件?
M 改变条件?
出口
3 .2 实训9 顺序程序设计训练
3.2.1 实训目的 通过本节实训,主要学习下面内容:
顺序程序的结构。 顺序程序设计的编程方法。 顺序结构程序的调试方法。
201E 2020 2021 2022 2023 2024 2026
8EF0 A4 2B FB EA 35F0 FA
26
MOV B,R6
27
MUL AB
28
ADD A,R3
百度文库
29
MOV R3,A
30
MOV A,R2
31
ADDC A,B
32
MOV R2,A
33
END
3.2.6 实训步骤 (1)阅读并理解程序,并画出两个程序的流程图。 (2)将机器码送入单片机系统中,并检查是否正确。 (3)对于多字节加法实训程序,运行程序前,将两个四字节 数据分别送入30H和40H开始的单元中。
END
2.双字节乘法实训程序如表3-2所示。
存储地址 2000
机器码
行号 1
源程序 ORG 2000H
2000
EB
2 MOV A,R3
2001
8FF0
3 MOV B,R7
2003
A4
4 MUL AB
2004
ACF0
5 MOV R4,B
2006
FD
6 MOV R5,A
2007
EB
7 MOV A,R3
方法和技巧。
实训内容: 顺序程序设计。 分支程序设计。 循环程序设计。 子程序设计。
预备知识: 汇编语言程序设计的一般步骤: • 分析问题。根据给出的问题,熟悉和明确问题的要求,
明确已知条件及对运算和控制的要求,建立数学模型。 • 确定解题算法。根据实际问题的要求和指令系统的特点,
选择解决问题的方法。算法是程序设计的依据,它决定 了程序的正确性和程序的质量。 • 画出程序流程图。程序流程图就是用各种规定的图形、 流程线和简洁的文字表达解题步骤的一种图形。它直观、 清晰地体现了程序设计思路,是程序的逻辑设计过程。
双字节二进制无符号数乘法的运算过程类似于一般十进 制运算。首先进行资源分配:设被乘数存放在工作寄存器 R2、R3中,乘数存放在R6、R7中。乘积存放在R2、R3、 R4和R5中。然后进行运算,先算低字节,并保存中间和, 再计算高字节,将中间和累加。
3.2.4 实训器材 MCS-51单片机开发系统
3.2.5 实训程序 1.多字节加法实训程序如表3-1所示。
存储 机器 行 地址 码 号
2000
1
源程序 ORG2000H
2000 E530 2 MOV A,30H
2002 2540 3 ADD A,40H
2004 F550 4 MOV 50H,A
2006 E531 5 MOV A,31H
2008 3541 6 ADDC A,41H
200 F551 7 A
2014 A4 17 MUL AB 2015 2C 18 ADD A,R4 2016 FC 19 MOV R4,A 2017 EB 20 MOV A,R3 2018 35F0 21 ADDC A,B 201A FB 22 MOV R3,A 201B E4 23 CLR A 201C 33 24 RLC A 201D CA 25 XCH A,R2
相关文档
最新文档