第四章——传热学课件PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1.3 评价程序质量的标准
● 程序的执行时间 ● 程序占用的内存单元数 ● 程序的逻辑性、可读性 ● 程序的兼容性、可扩展性 ● 程序的可靠性
汇编语言的语句格式 汇编语言源程序是由汇编语句(即指令) 组成的。汇编语言一般由四部分组成。
其典型的汇编语句格式如下: 标号: 操作码 操作数;注释 START:MOV A, 50H;A←(50H)
算法三:
● 采用与0FH的方法,将20H中的BCD码 拆开,
存入21H、22H.
ORG 1000H
A
MOV A, 20H
19H
A
ANL A, #0FH 09
ORL A, #30H
A
MOV 22H, A
39
MOV A, 20H
A
ANL A, #0F0H 19 SWAP
A
ORL A, #30H 10
MOV 21H, A A
目录
第0章 绪论 第1章 微型机的基本知识
第4章 汇编语言程序设计 第5章 存储器系统设计
第2章 mcs-51单片机硬件 结构
第6章 MCS-51定时/计数器 串行口及中断系统
第3章 MCS-51指令系统
第7章 I/O接口扩展设计及应用
第四章 汇编语言程序设计
4.1 概述
4.4 循环程序
4.2 简单程序 4.3 分支程序
;求X2+ Y2
MOV 32H,A ;保存数据
SJMP $ ;暂停
END
4.3 分支程序
1.分支程序的基本形式 分支程序有三种基本形式,如下图所示。 分支程序的设计要点如下: (1)先建立可供条件转移指令测试的条件。 (2)选用合适的条件转移指令。 (3)在转移的目的地址处设定标号。
条件满足? Y
SJMP $
01
A
END源自文库
39
例4-3 将内部RAM的20H单元中的8位无符 号二进制数转换为三位BCD码,并将结果存 放在FIRST(百位)和SECOND(十位、个位) 两单元中。
算法: 将被转换数除100得百位数,除10得 十位数,余数为个位数。
MOV A, 20H MOV B, #64H DIV AB MOV FIRST, A MOV A, B MOV B, #0AH DIV AB SWAP A ORL A, B
DIV AB
A 0000︱BCDH
B 0000︱BCDL
ORG 1000H MOV A, 20H MOV B, #10H DIV AB ORL B, #30H MOV 22H, B ORL A, #30H MOV 21H, A
A 19H
A/B
A
B
01
09
或#30H
A
B
31
39
SJMP $ END
执行时间:13 个机器周期
程序流程图
ORG 2000H
MOV A,30H ;取30H单元数据
MOV B,A
;将X送入B寄存器
MUL AB
;求X2,结果在累加器中
MOV R1,A ;将结果暂存于R1寄存器中
MOV A,31H ;取31H单元数据
MOV B,A
;将Y送入B寄存器
MUL AB
;求Y2,结果在累加器中
ADD A,R1
4.5 查表程序 4.6子程序设计
4.7 程序设计举例
4。1 概述
4.1.1 采用汇编语言的优点 ● 占用内存单元及CPU资源少 ● 程序短,执行速度块 ● 可直接调动计算机的全部资源 ● 准确掌握指令执行时间,适用
于实时控制系统
4.1.2 汇编语言程序设计步骤 ● 建立数学模型 ● 确定算法 ● 制定流程图 ● 确定数据结构 ● 写出源程序 ● 上机调试程序
A
(a)
N
条件满足?
Y A
K=0 K=1 A0 A1
K=? … K=n
……
(b) An
N B
(c)
分支程序结构流程图
4.3 分支程序 4.3.1 简单分支程序
例:4-5 设内部RAM 30H,31H单元中存放两 个无符号数,试比较它们的大小。将小数存放在 30H单元,大数存放在31H单元。
算法:START
4.2 简单程序
● 数码转换型
例4-2 将一个字节内的两个BCD码拆开并转换成 ASCII码,存入两个RAM单元。设两个BCD码已存 放在内部RAM的20H单元,将转换后的高半字节存 放到21H中,低半字节存放到22H中。
20H BCD码
21H
22H
ASCII(高) ASCII(低)
开始 取数据低4位 转换成ASCII码 存ASCII码 取数据高4位 转换成ASCII码 存ASCII码
A 19H
A 10H
AA 01H 31H
22H 00 21H 20H 19
22H 09 21H 20H 19
22H 39 21H 31 20H 19
SJMP $ END
执行时间:9 个机器周期
算法二:
● 采用除10H取余的方法,将20H中的BCD码 拆开, 存入21H、22H.
A BCDH︱BCDL
结束
拆字程序流程图
算法一: ● 将20H中的BCD码 拆开,存入21H、22H.
● 分别将21H, 22H高四位置3H
21H 22H
高
低
21H 22H 3高 3 低
ORG 1000H MOV R0, #22H MOV @R0, #0H MOV A, 20H XCHD A, @R0 ORL 22H, #30H SWAP A ORL A, #30H MOV 21H, A
ORG 1000H CLR C MOV A, 30H SUBB A, 31H JC NEXT MOV A, 30H XCH A, 31H MOV 30H, A NOP SJMP $
CJNE A, 31H NEXT
(30)>(31H) (30)<(31H)
START: NEXT1: NEXT:
30H-31H
Y CY=1? N 两数交换
END
START: NEXT:
ORG 1000H CLR C MOV A, 30H SUBB A, 31H JC NEXT MOV A, 30H XCH A, 31H MOV 30H, A NOP SJMP $
(30)>(31H) (30)<(31H)
START: NEXT:
MOV SECOND,A SJMP $ END
设X、Y两个小于10的整数分别存于片内30H、 31H单元,试求两数的平方和并将结果存于 32H单元。
解:两数均小于10,故两数的平方和小于100, 可利用乘法指令求平方。
开始 取数据X
求X2 暂存X2 取数据Y 求Y2 求X2+Y2 保存平方和
结束