AT89C51单片机汇编语言编程

2024-11-19 16:05:57
推荐回答(6个)
回答1:

以前画过一个类似的:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/03216a2449de854f36a80f65.html
如果感兴趣,可以继续修改。

回答2:

图传不上来,但一般单片机接口技术的书上都有,你去书店查下就行。RAM和ROM可同时扩展,不会冲突。6264是8KRAM,至于地址,看你怎么接了。一般是把6264的片选线接在P2口上。

回答3:

嘿嘿,看来这个分数不好拿。硬件连接不是问题,关键是编程。。。。。建议在网上找各个部件的原理图,再把他们组合起来,这样问题应该不大

回答4:

北京航空航天大学,<<单片机原理>>有相关的介绍实例.

回答5:

干!现在这学生怎么都这么懒了?书都懒得看了?

你们单片机教材上自己翻翻 肯定有……

回答6:

所示
111条指令汇总:
1
般传送
MOV
A,
#data
立即数#data送累加器A
2
MOV
direct,
#data
立即数#data送片内RAM
direct
址单元内
3
Mov
Rn
#data
立即数#data送寄存器Rn
4
Mov
@Ri,
#data
寄存器Ri内
RAM

立即数#data送该
址单元内
5
Mov
direct2,
direct1
direct1
址单元
数据送
direct2
址单元内
6
Mov
direct,
rn
Rn
数据送
direct
址单元内
7
Mov
Rn,
direct
direct
址单元内
数据送Rn寄存器
8
Mov
direct,
@Ri
寄存器Ri内
RAM


址单元内
数据送direct
址单元内
9
Mov
@Ri,
direct
寄存器Ri内
RAM

direct
址单元内
数据送该
址单元内
10
Mov
A,
Rn
寄存器Rn内
数据送累加器A
11
Mov
Rn,
A
累加器A内
数据送寄存器Rn
12
Mov
A,
direct
direct
址单元内
数据送累加器A
13
Mov
direct,
A
累加器A内
数据送direct
址单元内
14
Mov
A,
@Ri
寄存器Ri内
RAM


址单元内
数据送累加器A
15
Mov
@Ri
,
A
寄存器Ri内
RAM

累加器A
数据送该
址单元内
16

址传送
Mov
DPTR,
#data16
16位立即数送数据指针DPTR寄存器
17
字节交换
SWAP
A
累加器A高低4位数据交换
18
XCH
A,
Rn
累加器A数据
寄存器Rn内
数据交换
19
XCH
A,
direct
累加器A数据
direct
址单元内
数据交换
20
XCH
A,
@Ri
寄存器Ri内
RAM


址单元内
数据与累加器A
数据交换
21
XCHD
A,
@Ri
寄存器Ri内
RAM


址单元内
数据低4位与
低4位交换
22
与外部RAM传送
MOVX
@DPTR,
A
累加器A
数据送数据指针DPTR寄存器所指外部RAM
址单元内
23
MOVX
A
,
@DPTR
DPTR寄存器所指外部RAM
址单元内
数据送累加器A
24
MOVX
A,
@Ri
寄存器Ri内
片外RAM


址单元内
数据送累加器A
25
MOVX
@Ri,
A
寄存器Ri内
片外RAM


址单元内
数据送累加器A
26
与ROM传送
MOVC
A,
@A+DPTR
A+DPTR构
ROM


址内
数据送累加器A内
27
MOVC
A,
@A+PC
A+PC构
ROM


址内
数据送累加器A内
28
栈操作
PUSH
direct
堆栈指针SP自加1
direct
址单元
数据压进堆栈
29
POP
direct
堆栈
数据送direct
址单元
堆栈指针减1
算术运算指令
30

指令
ADD
A,
Rn
寄存器Rn与累加器A
数据相加
,结
保存
累加器A
31
ADD
A,
direct
direct
址单元内
数据与累加器A
数据相加

保存
累加器A
32
ADD
A,
@Ri
寄存器Ri内位


址单元内
数据与累加器A
数据相加

保存
累加器A
33
ADD
A,
#data
立即数与累加器A
数据相加

保存
累加器A
34
带进位加
ADDC
A,
Rn
寄存器Rn与累加器A
数据相加
再加
进位标志内

,结
保存
累加器A
35
ADDC
A,
direct
direct
址单元内
数据与累加器A
数据相加
再加
进位标志内


保存
累加器A
36
ADDC
A,
@Ri
寄存器Ri内
RAM


址单元内
数据与累加器A
数据相加
再加
进位标志内


保存
累加器A
37
ADDC
A,
#data
立即数与累加器A
数据相加
再加
进位标志内


保存
累加器A
38
带借位减
SUBB
A,
Rn
与累加器A
数据减
寄存器Rn
数据
再减
进位标志内


保存
累加器A
39
SUBB
A,
direct
与累加器A
数据减
direct
址单元内
数据
再减
进位标志内


保存
累加器A
40
SUBB
A,
@Ri
寄存器Ri内
RAM

累加器A
数据减

址单元内
数据
再减
进位标志内


保存
累加器A
41
SUBB
A,
#data
累加器A
数据减
立即数
再减
进位标志内


保存
累加器A
42
加1指令
INC
A
累加器A
值自加1
43
INC
Rn
寄存器Rn
值自加1
44
INC
direct
direct
址单元内值自加1
45
INC
@Ri
寄存器Ri内
RAM


址单元内
值自加1
46
INC
DPTR
数据指针寄存器DPTR内
值自加1
47
减1指令
DEC
A
累加器A
值自减1
48
DEC
Rn
寄存器Rn
值自减1
49
DEC
direct
direct
址单元内
值自减1
50
DEC
@Ri
寄存器Ri内
RAM


址单元内
值自减1
51

MUL
AB
累加器A与寄存器B内
值相乘
乘积
高8位保存
B寄存器
低8位保存
累加器A
52

DIV
AB
累加器A
值除
寄存器B

商保存
累加器A
余数保存
B寄存器
53
二-十进制调整
DA
A
累加器A

进行十进制调整
逻辑运算指令
54
逻辑与
ANL
A,
Rn
累加器A

寄存器Rn
值进行与操作

保存
累加器A
55
ANL
A,
direct
累加器A

direct
址单元内
值进行与操作

保存
累加器A
56
ANL
A,
@Ri
寄存器Ri内
RAM
址,
累加器A


址单元内
值进行与操作

保存
累加器A
57
ANL
A,
#data
累加器A

立即数进行与操作

保存
累加器A
58
ANL
direct,
A
累加器A

direct
址单元内
值进行与操作

保存
direct
址单元内
59
ANL
direct,
#data
立即数
direct
址单元内
值进行与操作

保存
direct
址单元内
60
逻辑或
ORL
A,
Rn
累加器A

寄存器Rn
值进行或操作

保存
累加器A
61
ORL
A,
direct
累加器A

direct
址单元内
值进行或操作

保存
累加器A
62
ORL
A,
@Ri
寄存器Ri内
RAM
址,
累加器A


址单元内
值进行或操作

保存
累加器A
63
ORL
A,
#data
累加器A

立即数进行或操作

保存
累加器A
64
ORL
direct,
A
累加器A

direct
址单元内
值进行或操作

保存
direct
址单元内
65
ORL
direct,
#data
立即数
direct
址单元内
值进行或操作

保存
direct
址单元内
66
逻辑异或
XRL
A,
Rn
累加器A

寄存器Rn
值进行异或操作

保存
累加器A
67
XRL
A,
direct
累加器A

direct
址单元内
值进行异或操作

保存
累加器A
68
XRL
A,
@Ri
寄存器Ri内
RAM
址,
累加器A


址单元内
值进行异或操作

保存
累加器A
69
XRL
A,
#data
累加器A

立即数进行异或操作

保存
累加器A
70
XRL
direct,
A
累加器A

direct
址单元内
值进行异或操作

保存
direct
址单元内
71
XRL
direct,
#data
立即数
direct
址单元内
值进行异或操作

保存
direct
址单元内
72
按位取反
CPL
A
累加器A
值按位取反
73
累加器清零
CLR
A
累加器A清0
74
逻辑右移
RR
A
累加器A
值循环右移1位
75
逻辑左移
RL
A
累加器A
值循环左移1位
76
带进位右移
RRC
A
累加器A
值带进位循环右移1位
77
带进位左移
RLC
A
累加器A
值带进位循环左移1位
控制转移指令
78
条件转移
SJMP
rel
rel
址偏移量
PC加2
址加
rel作
目标

程序跳
目标
址继续运行
79
AJMP
addr11(a10-
a0)
addr11
11位

PC加2
址高5位与指令
低11位
址构
目标

程序跳
目标
址继续运行
80
LJMP
addr16
addr16
16位
址送程序计数器PC
使机器执行
条指令
条件转移
addr16处执行程序
81
JMP
@A+DPTR
目标


址放
DPTR
目标



偏移量放
累加器A
相加构
目标

82
条件转移
JZ
rel
If(累加器A=0)则PC加2再加
rel作
目标

83
JNZ
rel
If(累加器A!=0)则PC加2再加
rel作
目标

84
CJNE
A,
direct,
rel
If(累加器A!=
direct
址单元
值)则PC加2再加
rel作
目标

85
CJNE
A,
#data,
rel
If(累加器A!=
立即数)则PC加2再加
rel作
目标

86
CJNE
Rn,
#data,
rel
If(寄存器Rn
值!=
立即数)则PC加2再加
rel作
目标

87
CJNE
@Ri,
#data,
rel
寄存器Ri内
RAM

If(该
址单元
值!=
立即数)则PC加2再加
rel作
目标

88
循环转移
DJNZ
Rn,
rel
寄存器Rn
值减1
If(寄存器Rn
值!=0)则PC加2再加
rel作
目标

89
DJNZ
direct,
rel
Direct
址单元
值减1
If(该值!=0)则PC加3再加
rel作
目标

90
布尔条件转移
JC
rel
If(CY=1)则PC加2再加
rel作
目标

91
JNC
rel
If(CY=0)则PC加2再加
rel作
目标

92
JB
bit,
rel
If(bit位=1)则PC加3再加
rel作
目标

93
JNB
bit,
rel
If(bit位=0)则PC加3再加
rel作
目标

94
JBC
bit,
rel
If(bit位=1)则PC加3再加
rel作
目标

且bit位清0
95
调用指令
ACALL
addr11
addr11
11位

PC加2
址PUSH进堆栈

PC
址高5位与指令
低11位
址构
目标

程序跳
目标
址继续运行
96
LCALL
addr16
PC加3
址PUSH进堆栈

16位
址送PC作
目标

程序跳
目标
址继续运行
97

指令
RET
程序返
指令
堆栈
址恢复
PC
使程序
调用处
98
RETI
断程序返
指令
堆栈
址恢复
PC
使程序
调用处
99
空操作
NOP
空操作
位操作指令
100
布尔传送
MOV
C,
bit
bit位

值送PSW
进位标志位CY
101
MOV
bit,
C
PSW
进位标志位CY
值送bit位

102
位清0
CLR
C
进位标志位CY清0
103
位清0
CLR
bit
bit位
址内清0
104
位置1
SETB
C
进位标志位CY置1
105
SETB
bit
bit位
址内置1
106
位与
ANL
C,
bit
Cy
bit位

值进行与操作

送Cy
107
ANL
C,
/bit
bit位

值取反
再与Cy进行与操作
结构送Cy
108
位或
ORL
C,
bit
Cy
bit位

值进行或操作

送Cy
109
ORL
C,
/bit
bit位

值取反
再与Cy进行或操作
结构送Cy
110
位取反
CPL
C
Cy取反
111
CPL
bit
bit位

值取反