第4章 编语言程序设计09

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

P3.4传给C
CY=1吗?
Y
N
点亮8个发光二极管 发光二极管交叉亮灭
结束
14
第6章
第4章 编语言程序设计
散转程序
散转程序是指通过修改某个参数后,程序可以有三个 以上的流向。多用于键盘程序。 利用散转指令可以方便地编制多分支程序。 空调键盘控制键: 模式:#0 调温:#1 风速:#2
①键号
②转移
15
LJMP(64K) AJMP(2k) SJMP(256)
17
第6章
第4章 编语言程序设计
例1:根据R7的内容,转向各自对应的操作程序 (R7=0,转入OPR0; R7=1,转入OPR1;…….R7=n,转入OPRn) 程序清单如下: JUMP1: MOV DPTR, #JPTAB1 ;跳转表首送数据指针 MOV A, R7 ADD A, R7 ;R7×2→A(修正变址值) JNC NOAD ;判断有否进位 INC DPH ;有进位则加到高字节地址 NOAD: JMP @A+DPTR ;转向形成的散转地址入口 JPTAB1: AJMP OPR0 ;直接转移地址表 AJMP OPR1 · · · 18 AJMP OPRn
26
第6章
第4章 编语言程序设计 程序设计
整体构思;
构建整体流程框图; 结构合理,流程清晰,简单明了; 局部模块化。
27
第6章
第4章 编语言程序设计 为什么要用流程图? 符合人进行逻辑思考的习惯。 计算机从根本上来说,没有任何逻辑性, 所以,你必须告诉它,先做什么,后做什么, 遇到什么情况又该做什么,等等。 流程图设计本身是一个逐步求精的过程, 最终将任务划分为若干能由机器指令实现的 小模块。
分支程序的典型结构
CY=1吗?
点亮8个发光二极管
发光二极管交叉亮灭
结束 11
第6章
第4章 编语言程序设计
实训项目一:信号灯的控制(2)
将开关K按下,可使8个发光二极管全点亮;重新将开 关K打开,使8个发光二极管交替亮灭状态。
12
第6章
+5V
第4章 编语言程序设计
ALE P1.0 P1.1 P1.2 P1.3
P3.4 显示方式
1 交叉亮
P1.4
P1.5 P1.6 P1.7 WR RD
1 0 1 0 1 0 1 0 P3.4 P3.5
+5V
22
第6章 +5V
第4章 编语言程序设计
P3.5 1
ALE P1.0 P1.1 P1.2 P1.3 P1.4 P1.5
P3.4 显示方式 0 低4位连接的 灯灭,高4位亮
2
第6章
第4章 编语言程序设计
4.1 程序设计概述----设计语言
最早人们只能用机器语言(二进制)编写程序; 为了方便记忆,人们开始用助记符形式的汇编语言编写程序, 称为低级语言。然后再用汇编系统将其翻译成机器语言,该过 程称为汇编; 为了用更接近人的语言编写程序,程序设计师们发明了高级 语言,如BASIC、FORTRAN、PASCAL、C、JAVA然后再用 编译系统将其翻译成机器语言,该过程称为编译; 机器只能识别机器语言,所以必须用编译系统将高级语言编 写的源程序编译成机器语言,用汇编系统将用汇编语言编写的 源程序汇编成机器语言; 由低级或高级语言构成的程序称为源程序,由机器语言构成 的程序称作目标程序;
28
ORG START: MOV ACALL MOV ACALL AJMP DELAY: MOV DEL2: MOV DEL1: NOP DJNZ DJNZ RET END 0000H P1,#00H DELAY P1,#0FFH DELAY START R3,#7FH R4,#0FFH 点亮8个发光二极管 延时 熄灭8个发光二极管 延时 结束
项目实训一:信号灯的控制(1)
8个发光二极管同时不停地闪动(亮灭)状态。
7
第6章
+5V
第4章 编语言程序设计
ALE P1.0 P1.1 P1.2 P1.3 P1.4
P1.5
P1.6 P1.7 WR RD
0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0
8
第6章
第4章 编语言程序设计
项目实训一例1: 8个发光二极管同时不停地闪动(亮灭)状态。 程序流程图 开始 程序清单
第6章
第4章 编语言程序设计
例2:要求当(A)=0时转处理程序CASE_0;当(A)=1时转处理 程序CASE_1;当(A)=2时转处理程序CASE_2;当(A)=3时转处理 程序CASE_3;当(A)=4时转处理程序CASE_4。
程序代码如下: MOV MOV RL DPTR,#JUMP_TABLE A,INDEX_NUMBER A ;表首址送入DPTR中 ;取得跳转索引号 ;将索引号乘以2(由于 AJMP指令是2字节)
屏蔽掉A中无关位, 并将相应位移到最低位
修正A的值,A×2→A 转移指令表基地址→DPTR 散转指令
显示方式1 结束
显示方式2 结束
显示方式3 结束
显示方式4 结束
25
第6章
第4章 编语言程序设计
汇编语言源程序如下: ORG 0000H AT0: MOV P3,#30H MOV A,P3 ANL A ,#00110000B SWAP A RL A MOV DPTR,#TABLE JMP @A+DPTR ONE: MOV P1,#00H SJMP AT0 TWO: MOV P1,#55H SJMP AT0 THREE: MOV P1,#0FH SJMP AT0 FOUR: MOV P1,#0F0H SJMP AT0 TABLE: AJMP ONE AJMP TWO AJMP THREE AJMP FOUR END 保留 清除
P3.5=0, P3.4=0 XX00 XXXX 0 011 0000 0000 0000 SWAP A(0000 0000) RL A(0000 0000)
P3.5=0, P3.4=1 XX01 XXXX 0011 0000 0001 0000 SWAP A(0000 0001) RL A(0000 0010)
第6章
第4章 编语言程序设计
第4章 编语言程序设计
程序设计是单片机应用系 统设计的重要组成部分,单
片机的所有运行过程都是在 程序控制下进行的。
1
第6章
第4章 编语言程序设计
概述
简单程序设计与项目实例
分支程序设计与项目实例
循环程序设计与项目实例
查表程序设计与项目实例散转程 Nhomakorabea设计与项目实例 子程程序设计与项目实例
5
第6章
第4章 编语言程序设计
4.2 简单程序设计
简单程序设计:也就是顺序程序。它是最简单、 最基本的程序结构 。 结构特点:其特点是按指令的排列顺序一条条地 执行,直到全部指令执行完毕为止。不管多么复杂 的程序,总是由若干顺序程序段组成。也有些
书称顺序程序结构.
6
第6章
第4章 编语言程序设计
第6章
第4章 编语言程序设计
★常用的指令是JMP @A+DPTR,该指令是把16位数据指针 DPTR的内容与累加器A中的8位无符号数相加,形成地址,装 入程序计数器PC,形成散转的目的地止。 MOV DPTR, #1000H
A中的8位无符号数
DPTR
+
A
PC
16
第6章
第4章 编语言程序设计
例:根据R7的内容,转向各自对应的操作程序 (R7=0,转入OPR0; R7=1,转入OPR1;…….R7=n,转入OPRn) A*2修正
+5V
24
第6章
第4章 编语言程序设计
汇编语言源程序如下: ORG 0000H AT0: MOV P3,#30H MOV A,P3 ANL A ,#00110000B SWAP A RL A MOV DPTR,#TABLE JMP @A+DPTR ONE: MOV P1,#00H SJMP AT0 TWO: MOV P1,#55H SJMP AT0 THREE: MOV P1,#0FH SJMP AT0 FOUR: MOV P1,#0F0H SJMP AT0 TABLE: AJMP ONE AJMP TWO AJMP THREE AJMP FOUR END 开始 读P3口的引脚状态→A
JMP
JUMP_TABLE: AJMP AJMP AJMP AJMP AJMP
@A+DPTR
CASE_0 CASE_1 CASE_2 CASE_3 CASE_4
;以A中内容为偏移量
; (A)=0转CASE_0执行 ; (A)=1转CASE_1执行 ; (A)=2转CASE_2执行 ; (A)=3转CASE_3执行 ; (A)=4转CASE_4执行
19
第6章
第4章 编语言程序设计
实训项目一:信号灯的控制(3)
设计两个开关控制键,使CPU可以察知两个开关组合 出的4种不同状态。然后对应每种状态,使8个LED显示出 不同的亮灭模式。
P3.5 P3.4 显示方式
0
0 1
0
1 0
全亮
交叉亮 低4位连接的 灯灭,高4位亮
1
1
低4位连接的灯
亮,高4位灭
P1.4
P1.5 P1.6 P1.7 WR RD
0 0 1 0 0 1 0 0 1 0 0 1
13
第6章
第4章 编语言程序设计
开始
源程序如下:
P3口置1
ORG AT0: MOV MOV JC MOV SJMP NEXT: MOV SJMP END
0000H P3,#0FFH C, P3.4 NEXT P1,#00H AT0 P1,#55H AT0
P1.6
P1.7
1 1 1 1 0 0 0 0 P3.4 P3.5
+5V
WR RD
23
第6章 +5V
第4章 编语言程序设计
P3.5 1
ALE
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 WR RD
P3.4 显示方式 1 低4位连接的灯亮,高4位灭
0 0 0 0 1 1 1 1 P3.4 P3.5
20
第6章 +5V
第4章 编语言程序设计
P3.5
0
ALE P1.0
P3.4 显示方式
0 全亮
P1.1
P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 WR RD
0 0 0 0 0 0 0 0 P3.4 P3.5
+5V
21
第6章 +5V
第4章 编语言程序设计
P3.5
0
ALE
P1.0 P1.1 P1.2 P1.3
P3.5=1, P3.4=0 XX10 XXXX 0011 0000 0010 0000 SWAP A(0000 0010) RL A(0000 0100)
P3.5=1, P3.4=1 XX11 XXXX 0 011 0000 0011 0000 SWAP A(0000 0011) RL A(0000 0110)
3
第6章
第4章 编语言程序设计
源程序 低级语言 高级语言
汇编
目标程序
机器语言
机器语言
编译
4
第6章
第4章 编语言程序设计
4.2 简单程序设计
一、教学内容 1、汇编语言程序设计的基本方法和思路; 2、简单程序的设计方法。 二、教学要求 1、掌握简单程序的结构与特点; 2、掌握简单程序构建的整体流程框图;
R4,DEL1 R3,DEL2
9
第6章
第4章 编语言程序设计
4.3 分支程序设计
一、教学内容 1、汇编语言程序的基本结构; 2、分支程序的设计方法。 二、教学要求 1、掌握分支程序的结构与特点; 2、掌握分支程序构建的整体流程框图;
10
第6章
第4章 编语言程序设计
分支结构特点:不一定按指令的先后顺序依次运行程序,程 序的流向有两个或两个以上的分支(出口),根据指定条件选择 程序的流向,称为分支程序结构。
相关文档
最新文档