授课日期 班次 授课时数 2
课题,任务四:单片机作逻辑运算教学目的,掌握 MCS-51的逻辑运算指令掌握逻辑运算指令的应用重点,逻辑运算指令的格式难点,逻辑运算指令的格式与应用教具,多媒体作业,3.20 3.21
自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编教学过程:一、复习提问
1,MCS-51有哪些算术运算指令?
2.增量指令与加法指令有什么不同?
二、新授由任务四:单片机作逻辑运算引入本次课内容
1,硬件电路与工作原理
2,程序设计
3,相关知识
1) MCS-51有哪些逻辑运算指令?
2)单片机中如何确定算术逻辑运算结果的状态?
3)为什么单片机中要集成逻辑运算部件?
4)“与”、“或”、“异或”指令的应用技巧?
5)逻辑运算应用举例
4.课堂小结课后小结:
3,3 任务四 利用单片机做逻辑运算
3,3,1 硬件电路与工作原理任务描述,利用单片机的逻辑运算指令将 P2,P0口数据进行逻辑与、或、
异或等逻辑运算,并将结果送 P1口发光二极管显示
1、硬件电路
1 2 3 4
A
B
C
D
4321
D
C
B
A
T i t l e
N u m b e r R e v i s i o nS i z e
L e t t e r
D a t e,1 5 - J u l - 2 0 0 5 S h e e t o f
F i l e,C,\ D o c u m e n t s a n d S e t t i n g s \ A d m i n i s t r a t o r \ 桌面 \ M y D e s i g n,d d bD r a w n B y,
E A / V P
31
X1
19
X2
18
R E S E T
9
RD
17
WR
16
I N T 0
12
I N T 1
13
T0
14
T1
15
P 1 0
1
P 1 1
2
P 1 2
3
P 1 3
4
P 1 4
5
P 1 5
6
P 1 6
7
P 1 7
8
P 0 0
39
P 0 1
38
P 0 2
37
P 0 3
36
P 0 4
35
P 0 5
34
P 0 6
33
P 0 7
32
P 2 0
21
P 2 1
22
P 2 2
23
P 2 3
24
P 2 4
25
P 2 5
26
P 2 6
27
P 2 7
28
P S E N
29
A L E / P
30
T X D
11
R X D
10
U3
D1
D2
D3
D4
D5
D6
D7
D8
S1
S3
S4
V C C
V C C
S1
S3
S2
S4
X T A L 1 1,0 5 9 2 M
C2
3 3 P
C1
3 3 P
V C C
1
R1
2
R2
3
R3
4
R4
5
R5
6
R6
7
R7
8
R8
9
R P 1
S2
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
S D 1
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
S D 2
3,3 任务四 利用单片机做逻辑运算
1,逻辑,与,运算程序
ORG 0000H
MOV A,P0
ANL A,P2
MOV P1,A
SJMP $
END
2.逻辑,或,运算程序
ORG 0000H
MOV A,P0
ORL A,P2
MOV P1,A
SJMP $
END
3,3,2控制程序
3,3 任务四 利用单片机做逻辑运算
3,逻辑,异或,运算程序
ORG 0000H
MOV A,P0
XRL A,P2
MOV P1,A
SJMP $
3,3,2控制程序
3,3 任务四 利用单片机做逻辑运算
3.3.3 源程序的编辑、编译、下载打开“伟福”模拟仿真软件进行程序的编辑、编译。
1、正确选择单片机类型 8751或 8031
2、正确选择编译器-伟福编译器
3、选择模拟仿真功能
4、打开或新建文件进行编辑
5、编译打开,ISP下载软件”将目标文件下载到 ISP-4实验开发板上的
AT89S51单片机芯片,观察程序运行结果。
1、编译成功后打开下载软件
2、选择好单片机 89S51并测试
3、打开伟福 6000编译生成的,BIN或,HEX文件
4、选择自动写完成擦除、写、读、校验过程
5、观看运行结果
3,3 任务四 利用单片机做逻辑运算
3.3.4 相关知识
1、什么是逻辑运算指令? MCS- 51有哪些逻辑运算指令?
逻辑运算和移位指令共有 25条,有与、或、异或、求反、左右移位、清 0等逻辑操作,有直接、寄存器和寄存器间址等寻址方式。
这类指令一般不影响程序状态字( PSW)标志。
循环移位指令( 4条)
这 4条指令的作用是将累加器中的内容循环左或右移一位,后两条指令是连同进位位 CY一起移位。
RL A ;累加器 A中的内容左移一位
RR A ;累加器 A中的内容右移一位
RLC A ;累加器 A中的内容连同进位位 CY左移一位
RRC A ;累加器 A中的内容连同进位位 CY右移一位
3,3 任务四 利用单片机做逻辑运算
3.3.4 相关知识
累加器半字节交换指令( 1条)
SWAP A ; 累加器中的内容高低半字节互换
求反指令( 1条)
CPL A ; 累加器中的内容按位取反
清零指令( 1条)
CLR A ; 0→ ( A),累加器中的内容清 0
3,3 任务四 利用单片机做逻辑运算
3.3.4 相关知识
逻辑与操作指令( 6条)
这组指令的作用是将两个单元中的内容执行逻辑与操作。如果直接地址是 I/O地址,则为“读 — 修改 — 写”操作。
ANL A,data ;累加器 A中的内容和直接地址单元中的内容执行与逻辑操作。结果存在寄存器 A中。
ANL data,#data ;直接地址单元中的内容和立即数执行与逻辑操作。
结果存在直接地址单元中。
ANL A,#data ;累加器 A的内容和立即数执行与逻辑操作。结果存在累加器 A中。
ANL A,Rn ;累加器 A的内容和寄存器 Rn中的内容执行与逻辑操作。
结果存在累加器 A中。
ANL data,A ;直接地址单元中的内容和累加器 A的内容执行与逻辑操作。结果存在直接地址单元中。
ANL A,@Ri ;累加器 A的内容和工作寄存器 Ri指向的地址单元中的内容执行与逻辑操作。结果存在累加器 A中
3,3 任务四 利用单片机做逻辑运算
3.3.4 相关知识
逻辑或操作指令( 6条)
这组指令的作用是将两个单元中的内容执行逻辑或操作。如果直接地址是 I/O地址,则为“读 — 修改 — 写”操作。
ORL A,data ;累加器 A中的内容和直接地址单元中的内容执行逻辑或操作。结果存在寄存器 A中。
ORL data,#data ;直接地址单元中的内容和立即数执行逻辑或操作。
结果存在直接地址单元中。
ORL A,#data ;累加器 A的内容和立即数执行逻辑或操作。结果存在累加器 A中。
ORL A,Rn ;累加器 A的内容和寄存器 Rn中的内容执行逻辑或操作。
结果存在累加器 A中。
ORL data,A ;直接地址单元中的内容和累加器 A的内容执行逻辑或操作。结果存在直接地址单元中。
ORL A,@Ri ;累加器 A的内容和工作寄存器 Ri指向的地址单元中的内容执行逻辑或操作。结果存在累加器 A中
3,3 任务四 利用单片机做逻辑运算
3.3.4 相关知识
逻辑异或操作指令( 6条)
这组指令的作用是将两个单元中的内容执行逻辑异或操作。如果直接地址是 I/O地址,则为“读 — 修改 — 写”操作。
XRL A,data ;累加器 A中的内容和直接地址单元中的内容执行逻辑异或操作。结果存在寄存器 A中。
XRL data,#data ;直接地址单元中的内容和立即数执行逻辑异或操作。结果存在直接地址单元中。
XRL A,#data ;累加器 A的内容和立即数执行逻辑异或操作。结果存在累加器 A中。
XRL A,Rn ;累加器 A的内容和寄存器 Rn中的内容执行逻辑异或操作。结果存在累加器 A中。
XRL data,A ;直接地址单元中的内容和累加器 A的内容执行逻辑异或操作。结果存在直接地址单元中。
XRL A,@Ri ;累加器 A的内容和工作寄存器 Ri指向的地址单元中的内容执行逻辑异或操作。结果存在累加器 A中
3,3 任务四 利用单片机做逻辑运算
3.3.4 相关知识
2、逻辑运算指令应用举例
【 例 3.9】 16位数的算术左移 。 16位数在内存中低 8位存放在M 1单元,高 8位存放在M 1+1单元 。
解,所谓算术左移就是将操作数左移一位,并使最低位补充 0,相当于完成 16
位数的乘务员操作,故称算术左移 。 参考程序如下:
CLR C ;进位 CY清零
MOV R1,#M1 ;操作数地址 M1送 R1
MOV A,@ R1 ;低 8位数送 A
RLC A,;低 8位左移,最低位补 0
MOV @ R1,A ;低 8位左移后,回送 M1存放
INC R1 ;指向 16位高 8位地址 M1+1
MOV A,@ R1 ;低 8位送 A
RLC A,;高 8位带低 8位进位左移
MOV @ R1,A ;高 8位左移后回送 M1+1存放若要对 16位数进行循环移位,则应首先设法把最高位( D15) 的值置入 CY,然后再参照以上程序编写即可。利用以后介绍的位操作指令可以很容易地实现将某一位的值置入 CY。
课堂小结:
1、任务四的硬件电路与工作原理
2、单片机是怎样做逻辑运算的?
3,MCS-51单片机有哪些逻辑运算指令?
作业:
1、预习逻辑运算实验实训项目、完成预习报告,编写控制程序
2,P72 3.20 3.21