四川工程职业技术学院
单片机应用技术课程电子教案
Copyright ? Http://mcu.scetc.net
第 讲 7
指令功能及汇编语言程序设计(一)
Copyright ? Http:// mcu.scetc.net 2 SiChuan Engineering Technical College-1959
本讲主要内容,
7-1,设计范例 —— 数码管显示
7-2,51单片机的并行 I/O接口的使用方法
7-3,数码管的知识和使用方法
7-4,传送类指令的功能
7-5,汇编语言程序设计的一般步骤
Copyright ? Http:// mcu.scetc.net 3 SiChuan Engineering Technical College-1959
7-1,设计范例 —— 数码管显示
? 要求在最左侧的数码管上显示数字 1。
P0口
P3.2 P3.3 P3.4
P3.5
P1.3 P1.2 P1.1 P1.0
Copyright ? Http:// mcu.scetc.net 4 SiChuan Engineering Technical College-1959
7-1,设计范例 —— 数码管显示
? 范例分析,
? 硬件分析
电路中用到了 单片机的并行 I/O口 和 数码管
? 软件设计
由于硬件电路中数码管接在单片机的 P0口上,故将显示内容 送 至
单片机的 P0口就可以在数码管上看到显示内容。
Copyright ? Http:// mcu.scetc.net 5 SiChuan Engineering Technical College-1959
7-2,单片机的并行 I/O接口
? 8051单片机的并口是几位的?
? 在四个并口中,真正的双向口是哪一个?它的用法有多少种?
? 四个并口中功能相对较为简单的是哪一个?在作为输入、输
出口使用时有何不同?
? 在实际应用中,并口的使用要考虑其负载能力,在四个并口
中负载力相对较强的是哪一个?
Copyright ? Http:// mcu.scetc.net 6 SiChuan Engineering Technical College-1959
P 0, X
锁 存 器
D
Q
QC L
0
1
M U X
V C C
1
&
P 0, X
引 脚
控 制 C地 址 / 数 据
读 锁 存 器
读 引 脚
写 锁 存 器
内 部 总 线
T 1
T 2
P0口
P 1, X
锁 存 器
D
Q
C L
V C C
P 1, X
引 脚
读 锁 存 器
读 引 脚
写 锁 存 器
内 部 总 线
R
T
Q
P1口
P 2, X
锁 存 器
D
Q
C L
0
1
M U X
V C C
P 2, X
引 脚
控 制 C地 址
读 锁 存 器
读 引 脚
写 锁 存 器
内 部 总 线
R
T
1
P2口
P 3, X
锁 存 器
D
Q
C L
V C C
P 3, X
引 脚
第 二 输 出 功 能 W
读 锁 存 器
读 引 脚
写 锁 存 器
内 部 总 线
R
T
&
第 二 输 入 功 能
P3口
7-2,单片机的并行 I/O接口
Copyright ? Http:// mcu.scetc.net 7 SiChuan Engineering Technical College-1959
7-2,单片机的并行 I/O接口
? 四个并口的比较
作通用 I/O口 其他用法 备注
输入口 输出口
P0口 MOV A,P1 需要外 接上拉电阻 数据总线
(双向)
地址总线
低 8位
地址范围
00H— FFH
P1口 先向锁存器写 1
例如,
MOV P1,#0FFH
SETB P1.0
SETB P3.3
SETB P3.7
MOV P1,#30
MOV P2,#50
MOV P3,#60 P2口 地址总线
高 8位
地址范围
00**H—
FF**H
P3口 第二功能 第二功能优
先
Copyright ? Http:// mcu.scetc.net 8 SiChuan Engineering Technical College-1959
7-2,单片机的并行 I/O接口
? 例 1:电路如下图所示,试用二极管显示按键当前状态。
P 1,0
P 1,1
P 1,2
P 1,3
P 1,4
P 1,5
P 1,6
P 1,7
U1
8 0 51
G N D
D1
D2
D3
D4
K1 K2 K3 K4
V CC
G N D
电路分析,
电路中 P1口的低四位接按键,
作输入口使用,高四位接发
光二极管,作输出口使用。
Copyright ? Http:// mcu.scetc.net 9 SiChuan Engineering Technical College-1959
? 软件设计,
7-2,单片机的并行 I/O接口
………
L,MOV P1,#0FH
MOV A,P1
ANL A,#0FH
SWAP A
MOV P1,A
SJMP L
;将 P1口低四位置为输入口;将按键状态读回单片机;将读回数据的高四位清零; 将状态值交换到 A的高四位;将状态值送至 P1口的高四位;返回起始点
这是流程图,在设
计程序之前应首先
绘制流程图,流程
图是编写和修改程
序的依据。
Copyright ? Http:// mcu.scetc.net 10 SiChuan Engineering Technical College-1959
7-2,单片机的并行 I/O接口
? 从这一实例中我们可以看到,
? 同一个并口的每一位可以单独使用,例如,
SETB P1.0;将 P1.0置 1
? 也可以设置某些位为输入口,某些位为输出口。例如本例中 P1口的低
四位为输入口,高四位为输出口。
Copyright ? Http:// mcu.scetc.net 11 SiChuan Engineering Technical College-1959
7-3,数码管基础知识
? 与单片机接口的常用显示器件有 LED( Light Emiting Diode)和
LCD(Liquid Crystal Display),这里主要介绍 LED数码管的相关知识。
P0口
P3.2 P3.3 P3.4
P3.5
P1.3 P1.2 P1.1 P1.0
Copyright ? Http:// mcu.scetc.net 12 SiChuan Engineering Technical College-1959
7-3,数码管基础知识 —— 预备知识
? 七段显示器的原理
a
b
c
d
e
f
g
d p
c o m
a b
f
g
c o m
c
d p
d
e
c o m
ab
fg
c
d p
d
e
c o m
ab
fg
c
d p
d
e
共阴结构 共阳结构
Copyright ? Http:// mcu.scetc.net 13 SiChuan Engineering Technical College-1959
7-3,数码管基础知识 —— 预备知识
? 数码管的显示代码表
COM dp g f e d c b a 段码
0 0 0 0 1 1 1 1 1 1 3FH
1 0 0 0 0 0 0 1 1 0 06H
2 0 0 1 0 1 1 0 1 1 5BH
COM dp g f e d c b a 段码
0 1 1 1 0 0 0 0 0 0 C0H
1 1 1 1 1 1 1 0 0 1 F9H
2 1 1 0 1 0 0 1 0 0 A4H
共阳数码管段码
共阴数码管段码
Copyright ? Http:// mcu.scetc.net 14 SiChuan Engineering Technical College-1959
7-3,数码管基础知识 —— 预备知识
? 共阴、共阳数码管比较
例 2:使下面两个数码管都显示 H。
P 1,0
P 1,1
P 1,2
P 1,3
P 1,4
P 1,5
P 1,6
P 1,7
U1
8 0 51
1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
9
GND
a
bf
c
g
d
e
dp
LED
G N D
3 3 0* 8
P 1,0
P 1,1
P 1,2
P 1,3
P 1,4
P 1,5
P 1,6
P 1,7
U1
8 0 51
V CC
3 3 0* 8
a
bf
c
g
d
e
V C C1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
dp
9
LED
H的段码,H的段码,#76H #89H
Copyright ? Http:// mcu.scetc.net 15 SiChuan Engineering Technical College-1959
7-3,数码管基础知识
? 本讲范例中使用的是 4位动态数码管
连接
关系
段码输入端
四位的位选端
Copyright ? Http:// mcu.scetc.net 16 SiChuan Engineering Technical College-1959
P0口
P3.2 P3.3 P3.4
P3.5
P1.3 P1.2 P1.1 P1.0
7-3,数码管基础知识
? 怎样才能只让最左侧的数码管显示,其他的 3个熄灭呢?(图
中为共阳数码管)?
0 1 1 1
1
选中最左侧的,
CLR P3.5
SETB P3.4
SETB P3.3
SETB P3.2
Copyright ? Http:// mcu.scetc.net 17 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
外部 RAM
外部 I/O接
口芯片
外部 ROM
MOVC MOVX
MOVC
MOV
内部 RAM
内部 ROM
CPU
XCH
XCHD PUSH POP
SWAP
Copyright ? Http:// mcu.scetc.net 18 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 内部 RAM中的数据传送类指令
direc
t
A
@Ri
Rn #data
格式,
MOV 目的操作数,源操作数
图中箭头为双向的表示数据可双向传递,例如 direct(直接寻
址单元,例如内部 RAM的 30H单元)与 A之间,数据可由 direct送给
A,也可由 A送给 direct。
Copyright ? Http:// mcu.scetc.net 19 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 数据指针赋值指令 (16bit数据传送指令 )
当要对片外 RAM,I/O接口进行访问,一般要先给数据指针 DPTR赋值,此时应用该条指
令,
MOV DPTR,#data16 ;将 16bit二进制立即数赋给数据指针 DPTR
比如:将数据指针指向片外 RAM的 2000H单元。
MOV DPTR,#2000H
? 片外数据传送指令 (4条 )
当你想把一个数送到单片机外部扩展 RAM的某个单元或外部扩展 I/O口某个端口,或者你
想从该单元、端口将数据取回到单片机内部的时候,就要用到片外数据传送指令。
MOVX A,@Ri ; A← ((Ri)) 片外
MOVX A,@DPTR ; A← ((DPTR)) 片外
MOVX @Ri,A ; (Ri) 片外 ← A
MOVX @DPTR,A ; (DPTR) 片外 ← A
如果以 Ri作指针,只能访问 00~ FFH地址段的外部 RAM或 I/O端口。如果以 DPTR
作指针,则能访问 0000~ FFFFH地址段的任何外部 RAM单元或 I/O端口。
Copyright ? Http:// mcu.scetc.net 20 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 数据交换类指令
? 整字节交换指令 XCH(字节单元与累加器 A进行 8位数据交换)
XCH A,Rn
XCH A,direct
XCH A,@Ri
A
Rn
Direct
@Ri
例如:若 (A)=35H,(R1) =79H,执行指令 XCH A,R1后
( A) = ( R1)=
0 0 1 1 0 1 0 1
0 1 1 1 1 0 0 1
A,
R1,
1 1 0
0 0 1
79H 35H
Copyright ? Http:// mcu.scetc.net 21 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 低半字节 交换指令 XCHD(字节单元与累加器 A进行 低 4位 数据交换)
XCHD A,@Ri
( A) 0~3 ((Ri))0~3
例如:若 (A)=45H,(R1)=30H,(30H)=89H,执行指令
XCHD A,@R1后
( A) = ( R1)= (30H)=
A,
R1,
30H,
0 1 0 0 0 1 0 1
0 0 1 1 0 0 0 0
1 0 0 0 1 0 0 1
1 0
0 1
49H 30H 85H
Copyright ? Http:// mcu.scetc.net 22 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 累加器 A高低半字节交换指令 SWAP(累加器 A的高、低半字节互
相交换)
SWAP A
例如:若 (A)=45H,执行指令 SWAP A后
( A) =54H
( A) 0~3 (A)4~7
注:此条指令通常用于数据处理时,同逻辑与指令相配合,将
数据的高、低四位拆分后分别存放。
Copyright ? Http:// mcu.scetc.net 23 SiChuan Engineering Technical College-1959
7-1,设计范例 —— 数码管显示
P0口
P3.5 P3.4 P3.3
P3.2
P1.3 P1.2 P1.1 P1.0
MOV P0,#0C0H 此时对 P0口操作,应使用 MOV指令。
Copyright ? Http:// mcu.scetc.net 24 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤
? 分析课题,确定解决方案和算法;
? 分配系统资源及存储单元;
? 绘制程序流程图;
? 设计程序,并反复调试和修改。
Copyright ? Http:// mcu.scetc.net 25 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤
例 3:彩灯循环设计。
Copyright ? Http:// mcu.scetc.net 26 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤 —— 彩灯循环程序设计实例
ORG 0000H
MAIN,MOV P1,#80H ;D7发光
MOV P1,#40H ;D6发光
MOV P1,#20H ;D5发光
MOV P1,#10H ;D4发光
MOV P1,#08H ;D3发光
MOV P1,#04H ;D2发光
MOV P1,#02H ;D1发光
MOV P1,#01H ;D0发光
SJMP MAIN ;循环
Copyright ? Http:// mcu.scetc.net 27 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤 —— 彩灯循环程序设计实例
? 彩灯循环另一种程序结构,
ORG 0000H
MAIN,MOV A,#01H ;初始状态
MOV R0,#08 ;共 8位
L1,MOV P1,A ;D1发光
LCALL DEL ;延时子程序
RL A ;状态上移 1位
DJNZ R0,L1; 循环判断
SJMP MAIN ;循环
Copyright ? Http:// mcu.scetc.net 28 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤 —— 流程图中各种符号的含义
终结符(用于程序段
的开始、结束处)
进程(用于程序中顺
序执行的部分 )
箭头(用于表示程序
的执行方向)
判断菱形(用于程序
中出现分支的情况)
文字描述(用于描述
程序的执行条件)
单片机应用技术课程电子教案
Copyright ? Http://mcu.scetc.net
第 讲 7
指令功能及汇编语言程序设计(一)
Copyright ? Http:// mcu.scetc.net 2 SiChuan Engineering Technical College-1959
本讲主要内容,
7-1,设计范例 —— 数码管显示
7-2,51单片机的并行 I/O接口的使用方法
7-3,数码管的知识和使用方法
7-4,传送类指令的功能
7-5,汇编语言程序设计的一般步骤
Copyright ? Http:// mcu.scetc.net 3 SiChuan Engineering Technical College-1959
7-1,设计范例 —— 数码管显示
? 要求在最左侧的数码管上显示数字 1。
P0口
P3.2 P3.3 P3.4
P3.5
P1.3 P1.2 P1.1 P1.0
Copyright ? Http:// mcu.scetc.net 4 SiChuan Engineering Technical College-1959
7-1,设计范例 —— 数码管显示
? 范例分析,
? 硬件分析
电路中用到了 单片机的并行 I/O口 和 数码管
? 软件设计
由于硬件电路中数码管接在单片机的 P0口上,故将显示内容 送 至
单片机的 P0口就可以在数码管上看到显示内容。
Copyright ? Http:// mcu.scetc.net 5 SiChuan Engineering Technical College-1959
7-2,单片机的并行 I/O接口
? 8051单片机的并口是几位的?
? 在四个并口中,真正的双向口是哪一个?它的用法有多少种?
? 四个并口中功能相对较为简单的是哪一个?在作为输入、输
出口使用时有何不同?
? 在实际应用中,并口的使用要考虑其负载能力,在四个并口
中负载力相对较强的是哪一个?
Copyright ? Http:// mcu.scetc.net 6 SiChuan Engineering Technical College-1959
P 0, X
锁 存 器
D
Q
QC L
0
1
M U X
V C C
1
&
P 0, X
引 脚
控 制 C地 址 / 数 据
读 锁 存 器
读 引 脚
写 锁 存 器
内 部 总 线
T 1
T 2
P0口
P 1, X
锁 存 器
D
Q
C L
V C C
P 1, X
引 脚
读 锁 存 器
读 引 脚
写 锁 存 器
内 部 总 线
R
T
Q
P1口
P 2, X
锁 存 器
D
Q
C L
0
1
M U X
V C C
P 2, X
引 脚
控 制 C地 址
读 锁 存 器
读 引 脚
写 锁 存 器
内 部 总 线
R
T
1
P2口
P 3, X
锁 存 器
D
Q
C L
V C C
P 3, X
引 脚
第 二 输 出 功 能 W
读 锁 存 器
读 引 脚
写 锁 存 器
内 部 总 线
R
T
&
第 二 输 入 功 能
P3口
7-2,单片机的并行 I/O接口
Copyright ? Http:// mcu.scetc.net 7 SiChuan Engineering Technical College-1959
7-2,单片机的并行 I/O接口
? 四个并口的比较
作通用 I/O口 其他用法 备注
输入口 输出口
P0口 MOV A,P1 需要外 接上拉电阻 数据总线
(双向)
地址总线
低 8位
地址范围
00H— FFH
P1口 先向锁存器写 1
例如,
MOV P1,#0FFH
SETB P1.0
SETB P3.3
SETB P3.7
MOV P1,#30
MOV P2,#50
MOV P3,#60 P2口 地址总线
高 8位
地址范围
00**H—
FF**H
P3口 第二功能 第二功能优
先
Copyright ? Http:// mcu.scetc.net 8 SiChuan Engineering Technical College-1959
7-2,单片机的并行 I/O接口
? 例 1:电路如下图所示,试用二极管显示按键当前状态。
P 1,0
P 1,1
P 1,2
P 1,3
P 1,4
P 1,5
P 1,6
P 1,7
U1
8 0 51
G N D
D1
D2
D3
D4
K1 K2 K3 K4
V CC
G N D
电路分析,
电路中 P1口的低四位接按键,
作输入口使用,高四位接发
光二极管,作输出口使用。
Copyright ? Http:// mcu.scetc.net 9 SiChuan Engineering Technical College-1959
? 软件设计,
7-2,单片机的并行 I/O接口
………
L,MOV P1,#0FH
MOV A,P1
ANL A,#0FH
SWAP A
MOV P1,A
SJMP L
;将 P1口低四位置为输入口;将按键状态读回单片机;将读回数据的高四位清零; 将状态值交换到 A的高四位;将状态值送至 P1口的高四位;返回起始点
这是流程图,在设
计程序之前应首先
绘制流程图,流程
图是编写和修改程
序的依据。
Copyright ? Http:// mcu.scetc.net 10 SiChuan Engineering Technical College-1959
7-2,单片机的并行 I/O接口
? 从这一实例中我们可以看到,
? 同一个并口的每一位可以单独使用,例如,
SETB P1.0;将 P1.0置 1
? 也可以设置某些位为输入口,某些位为输出口。例如本例中 P1口的低
四位为输入口,高四位为输出口。
Copyright ? Http:// mcu.scetc.net 11 SiChuan Engineering Technical College-1959
7-3,数码管基础知识
? 与单片机接口的常用显示器件有 LED( Light Emiting Diode)和
LCD(Liquid Crystal Display),这里主要介绍 LED数码管的相关知识。
P0口
P3.2 P3.3 P3.4
P3.5
P1.3 P1.2 P1.1 P1.0
Copyright ? Http:// mcu.scetc.net 12 SiChuan Engineering Technical College-1959
7-3,数码管基础知识 —— 预备知识
? 七段显示器的原理
a
b
c
d
e
f
g
d p
c o m
a b
f
g
c o m
c
d p
d
e
c o m
ab
fg
c
d p
d
e
c o m
ab
fg
c
d p
d
e
共阴结构 共阳结构
Copyright ? Http:// mcu.scetc.net 13 SiChuan Engineering Technical College-1959
7-3,数码管基础知识 —— 预备知识
? 数码管的显示代码表
COM dp g f e d c b a 段码
0 0 0 0 1 1 1 1 1 1 3FH
1 0 0 0 0 0 0 1 1 0 06H
2 0 0 1 0 1 1 0 1 1 5BH
COM dp g f e d c b a 段码
0 1 1 1 0 0 0 0 0 0 C0H
1 1 1 1 1 1 1 0 0 1 F9H
2 1 1 0 1 0 0 1 0 0 A4H
共阳数码管段码
共阴数码管段码
Copyright ? Http:// mcu.scetc.net 14 SiChuan Engineering Technical College-1959
7-3,数码管基础知识 —— 预备知识
? 共阴、共阳数码管比较
例 2:使下面两个数码管都显示 H。
P 1,0
P 1,1
P 1,2
P 1,3
P 1,4
P 1,5
P 1,6
P 1,7
U1
8 0 51
1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
9
GND
a
bf
c
g
d
e
dp
LED
G N D
3 3 0* 8
P 1,0
P 1,1
P 1,2
P 1,3
P 1,4
P 1,5
P 1,6
P 1,7
U1
8 0 51
V CC
3 3 0* 8
a
bf
c
g
d
e
V C C1
2
3
4
5
6
7
a
b
c
d
e
f
g
8
dp
dp
9
LED
H的段码,H的段码,#76H #89H
Copyright ? Http:// mcu.scetc.net 15 SiChuan Engineering Technical College-1959
7-3,数码管基础知识
? 本讲范例中使用的是 4位动态数码管
连接
关系
段码输入端
四位的位选端
Copyright ? Http:// mcu.scetc.net 16 SiChuan Engineering Technical College-1959
P0口
P3.2 P3.3 P3.4
P3.5
P1.3 P1.2 P1.1 P1.0
7-3,数码管基础知识
? 怎样才能只让最左侧的数码管显示,其他的 3个熄灭呢?(图
中为共阳数码管)?
0 1 1 1
1
选中最左侧的,
CLR P3.5
SETB P3.4
SETB P3.3
SETB P3.2
Copyright ? Http:// mcu.scetc.net 17 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
外部 RAM
外部 I/O接
口芯片
外部 ROM
MOVC MOVX
MOVC
MOV
内部 RAM
内部 ROM
CPU
XCH
XCHD PUSH POP
SWAP
Copyright ? Http:// mcu.scetc.net 18 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 内部 RAM中的数据传送类指令
direc
t
A
@Ri
Rn #data
格式,
MOV 目的操作数,源操作数
图中箭头为双向的表示数据可双向传递,例如 direct(直接寻
址单元,例如内部 RAM的 30H单元)与 A之间,数据可由 direct送给
A,也可由 A送给 direct。
Copyright ? Http:// mcu.scetc.net 19 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 数据指针赋值指令 (16bit数据传送指令 )
当要对片外 RAM,I/O接口进行访问,一般要先给数据指针 DPTR赋值,此时应用该条指
令,
MOV DPTR,#data16 ;将 16bit二进制立即数赋给数据指针 DPTR
比如:将数据指针指向片外 RAM的 2000H单元。
MOV DPTR,#2000H
? 片外数据传送指令 (4条 )
当你想把一个数送到单片机外部扩展 RAM的某个单元或外部扩展 I/O口某个端口,或者你
想从该单元、端口将数据取回到单片机内部的时候,就要用到片外数据传送指令。
MOVX A,@Ri ; A← ((Ri)) 片外
MOVX A,@DPTR ; A← ((DPTR)) 片外
MOVX @Ri,A ; (Ri) 片外 ← A
MOVX @DPTR,A ; (DPTR) 片外 ← A
如果以 Ri作指针,只能访问 00~ FFH地址段的外部 RAM或 I/O端口。如果以 DPTR
作指针,则能访问 0000~ FFFFH地址段的任何外部 RAM单元或 I/O端口。
Copyright ? Http:// mcu.scetc.net 20 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 数据交换类指令
? 整字节交换指令 XCH(字节单元与累加器 A进行 8位数据交换)
XCH A,Rn
XCH A,direct
XCH A,@Ri
A
Rn
Direct
@Ri
例如:若 (A)=35H,(R1) =79H,执行指令 XCH A,R1后
( A) = ( R1)=
0 0 1 1 0 1 0 1
0 1 1 1 1 0 0 1
A,
R1,
1 1 0
0 0 1
79H 35H
Copyright ? Http:// mcu.scetc.net 21 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 低半字节 交换指令 XCHD(字节单元与累加器 A进行 低 4位 数据交换)
XCHD A,@Ri
( A) 0~3 ((Ri))0~3
例如:若 (A)=45H,(R1)=30H,(30H)=89H,执行指令
XCHD A,@R1后
( A) = ( R1)= (30H)=
A,
R1,
30H,
0 1 0 0 0 1 0 1
0 0 1 1 0 0 0 0
1 0 0 0 1 0 0 1
1 0
0 1
49H 30H 85H
Copyright ? Http:// mcu.scetc.net 22 SiChuan Engineering Technical College-1959
7-4,数据传送类指令
? 累加器 A高低半字节交换指令 SWAP(累加器 A的高、低半字节互
相交换)
SWAP A
例如:若 (A)=45H,执行指令 SWAP A后
( A) =54H
( A) 0~3 (A)4~7
注:此条指令通常用于数据处理时,同逻辑与指令相配合,将
数据的高、低四位拆分后分别存放。
Copyright ? Http:// mcu.scetc.net 23 SiChuan Engineering Technical College-1959
7-1,设计范例 —— 数码管显示
P0口
P3.5 P3.4 P3.3
P3.2
P1.3 P1.2 P1.1 P1.0
MOV P0,#0C0H 此时对 P0口操作,应使用 MOV指令。
Copyright ? Http:// mcu.scetc.net 24 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤
? 分析课题,确定解决方案和算法;
? 分配系统资源及存储单元;
? 绘制程序流程图;
? 设计程序,并反复调试和修改。
Copyright ? Http:// mcu.scetc.net 25 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤
例 3:彩灯循环设计。
Copyright ? Http:// mcu.scetc.net 26 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤 —— 彩灯循环程序设计实例
ORG 0000H
MAIN,MOV P1,#80H ;D7发光
MOV P1,#40H ;D6发光
MOV P1,#20H ;D5发光
MOV P1,#10H ;D4发光
MOV P1,#08H ;D3发光
MOV P1,#04H ;D2发光
MOV P1,#02H ;D1发光
MOV P1,#01H ;D0发光
SJMP MAIN ;循环
Copyright ? Http:// mcu.scetc.net 27 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤 —— 彩灯循环程序设计实例
? 彩灯循环另一种程序结构,
ORG 0000H
MAIN,MOV A,#01H ;初始状态
MOV R0,#08 ;共 8位
L1,MOV P1,A ;D1发光
LCALL DEL ;延时子程序
RL A ;状态上移 1位
DJNZ R0,L1; 循环判断
SJMP MAIN ;循环
Copyright ? Http:// mcu.scetc.net 28 SiChuan Engineering Technical College-1959
7-5,程序设计一般步骤 —— 流程图中各种符号的含义
终结符(用于程序段
的开始、结束处)
进程(用于程序中顺
序执行的部分 )
箭头(用于表示程序
的执行方向)
判断菱形(用于程序
中出现分支的情况)
文字描述(用于描述
程序的执行条件)