51单片机烧录器使用方法中MOV A,DPTR能这么使用吗?DPTR是属于直接寻址还是间接寻址?

欢迎你:游客!请先
您的位置:
附录A 练习题参考答案
MCS-51单片机指令系统】
MCS-51单片机指令系统
MCS-5111149461664452
① I/ORAMARnA
④ I/OCPUBUF2
⑤ MCS-5117
R0R7ABDPTRC
@R0@R1@DPTR
@A+PC@A+DPTR
0B255BR0R1
MOVX& A,@R0 或& MOVX& A,@R1
MOVX& @R0,A& 或&& MOVX& @R1,A
0KB64KB16DPTR
MOVX& A,@DPTR
MOVX& @DPTR,A
BCDADDADDCBCDBCD
5RAM 20H2FH12800H7FH
RAM00H7FH12800H7FH
MOV C,bit
ANLC,/bit
JB bit,rel
JNB bit,rel
6MCS-51LJMPLCALLAJMPACALL
LJMPAJMPLCALLACALL
LJMP64KBAJMP2KBLCALL64KBACALL2KBAJMPACALLLJMPLCALL3
7SJMPAJMPLJMP
SJMP256BAJMP2KBLJMP64KB
8MOVC& A@DPTRMOVX& A@DPTR
SJMP256BAJMP2KBLJMP64KB
9MOVC& A@A+DPTRMOVC& A@A+PCDPTRPC
@A+DPTRDPTRA
10RAM40H=50HAR0RAM50H51H
MOV& A,40H
MOV& A,#00
MOV& @R0,A
MOV& A,#30H
MOV& 51H,A
MOV& 52H,#70H
A=30HR0=50H50H=00H51H=30H
11SP=60HRAM30H=24H31H=10H61H62H30H31HDPTRSP
61H=24H62H=10H30H=00H31H=0FFHDPTR=2410HSP=60H
12MCS-51RAM20H=30H30H=40H40H=50H50H=55H
MOV& A,40H
MOV& P1,#80H
MOV& @R0,20H
MOV& 50H,R0
MOV& A,@R0
MOV& P2,P1
&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&
MOV A,40H&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& A=50H
MOV R0,A&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& R0=50H
MOV P1,#80H&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& P1=80H
MOV @R0,20H&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 50H=30H
MOV DPTR,#2000H&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DPTR=2000H
MOV 40H,30H&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 40H=40H
MOV R0,30H&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& R0=40H
MOV 0D0H,R0&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 0D0H=40H
MOV 10H,#10H&&&&&&&&&& &&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 10H=10H
MOV A,@R0&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&& A=50H
MOV P2,P1&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& P2=80H
② RAM 20HR0
③ RAM 20HRAM 20H
④ RAM 1000HRAM 20H
⑤ROM 2000HR0
⑥ ROM 2000HRAM 20H
⑦ ROM 2000HRAM 20H
解:① R1R0
MOV&&&& A,R1
MOV&&&& R0,A
② RAM 20HR0
MOV&&& DPTR,#0020H
MOVX&&&&&&& A,@DPTR
MOV &&&&&&& R0,A
③ RAM 20HRAM 20H
MOV&&& DPTR,#0020H
MOVX&&& A,@DPTR
MOV&&& 20H,A
④ RAM 1000HRAM 20H
MOV&&& DPTR,#1000H
MOVX&&&&&&& A,@DPTR
MOV &&& &&& 20H,A
⑤ ROM 2000HR0
MOV&&&& A,#00H
MOV&&& DPTR,#2000H
MOVC&&&&&&& A,@A+DPTR
MOV &&& &&& R0,A
⑥ ROM 2000HRAM 20H
MOV&&&& A,#00H
MOV&&& DPTR,#2000H
MOVC&&&&&&& A,@A+DPTR
MOV &&& &&& 20H,A
⑦ ROM 2000HRAM 20H
MOV&&&& A,#00H
MOV&&& DPTR,#2000H
MOVC&&&&&&& A,@A+DPTR
MOV&&&& DPTR,#0020H
MOVX&&&&&&& @DPTR,A
本站为教材在线阅读(在线教程)网站,所收录的教材电子版、电子教程、电子教材、在线教程,以及评论等均属用户个人行为,不代表本站立场。
Copyright & 2009-
Qacn.Net All Rights Reserved.
版权所有:
技术支持:MCS-51单片机的存储器分那些用户空间? 如何区别对不同的寻址?-百谷歌您当前的位置:&>&&>&&>&
单片机的几种寻址方式
寻址就是寻找指令中操作数或操作数所在的地址。所谓寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法。通常指源操作数的寻址方式。
MCS-51系列单片机寻址方式共有七种:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。
1、寄存器寻址
寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。寄存器可以使用寄存器组R0~R7中某一个或其它寄存器(A,B,DPTR等)。
MOV A,R0 ;(R0 )&A
MOV P1,A ;(A)&P1
ADD A, R0 ;(A)+(R0) &A
2、直接寻址
在指令中直接给出操作数所在的存储单元的地址,称为直接寻址方式。在8051中,使用直接寻址方式可访问片内RAM的128个单元以及所有的特殊功能寄存器(SFR),对于特殊功能寄存器,既可以使用他们的地址,也可以使用他们的名字。
MOV A, 3AH ;(3AH) &A
MOV A, P1 ;(P1口) &A
也可写为:
MOV A, 90H ; 90H是P1口的地址。
3、立即数寻址
指令操作码后面紧跟的是一字节或两字节操作数,用 # 号表示,以区别直接地址。例如:
MOV A, #3AH ;3AH&A
MCS-51系列单片机有一条指令,要求操作码后面紧跟的是两个字节立即数,即
MOV DPTR, #DATA16
4、寄存器间接寻址
寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数.
例如: MOV R1,#30H ;(R1)& 立即数30H
MOV @R1,#0FH ;(30H)&立即数0FH
MOV A,@R1 ;(A)&((30H))=#0FH
&间接&表示某寄存器中的&内容&只是一个&单元地址&,这个地址单元中存放的数据才是要找的&操作数&。
例如,指令MOV A,@R0执行的操作是将R0的内容作为内部RAM的地址,再将该地址单元中的内容取出来送到累加器A中,如图所示。
5、变址寻址 ,也称为: 基址寄存器+变址寄存器间接寻址
以16位的地址指针寄存器DPTR或 16位的PC寄存器为基址寄存器,以累加器 A
为变址寄存器,两者中的&内容&形成一个16位的&地址&,该&地址&所指的存储单元中的内容才是操作数。用变址寻址方式只能访问程序存储器,访问的范围为64KB,当然,这种访问只能从ROM中读取数据而不能写入。
例如: MOVC A, @A+DPTR ;((A)+ (DPTR))&A
设:A中已存有#30H,DPTR中已存有#1000H
MOVC A,@A+DPTR;(A)&((A)+(DPTR))
操作:将30H+H单元中的数放进累加器A
6、相对寻址
相对寻址只出现在相对转移指令中。相对转移指令执行时,是以当前的PC值加上指令中规定的偏移量rel而形成实际的转移地址。这里所说得PC的当前值是执行完相对转移指令后的PC值,一般将相对转移指令操作码所在的地址称为源地址,转移后的地址称为目的地址。于是有:目的地址=源地址+2(相对转移指令字节数)+rel
51单片机指令系统中相对转移指令既有双字节的,也有三字节的。
采用位寻址方式的指令,操作数是8位二进制数中的某一位。指令中给出的是位地址,是片内RAM某个单元中的某一位的地址。位地址在指令中用bit表示。
例: CLR P1.0 ;(P1.0) & 0
SETB ACC.7 ;(ACC.7)& 1
CPL C ;( C )& NOT( C )
位地址常用下列三种方式表示;
(1)直接使用位地址表示。对于20H~2FH的16个单元共128位,位地址分布是00H~7FH。
(2)对于特殊功能寄存器,可以直接用寄存器名字加位数表示,如PSW.3、ACC.5等。
(3)对于定义了位名字的特殊位,可以直接用其位名表示,例如:CY、AC等。
寻址方式及对应存储器空间
立即数寻址
程序存储器ROM、数据存储器RAM
片内RAM低128B,特殊功能寄存器
寄存器寻址
通用寄存器R0---R7,其他寄存器A、B、DPTR
寄存器间接寻址
片内RAM低128B【@R0、@R1、SP(仅PUSH、POP)】
片外RAM(@R0、@R1、@DPTR)
程序存储器、数据存储器、(@A+PC、@A+DPTR)
程序存储器256B(PC+偏移量)
片内RAM的20H---2FH字节地址、部分特殊功能寄存器
寻址方式中常用符号注释
(1) Rn(n=0~7) 当前选中的工作寄存器R0~R7 。
(2) Ri(i=0,1) 当前选中的工作寄存器组中,可作为间址寄存器
的两个工作寄存器R0、R1。
(3) #data 8位立即数。
(4) # data16 16位立即数。
(5) direct 8位片内RAM单元(包括SFR)的直接地址。
(6) addr11 11位目的地址,用于ACALL和AJMP指令中。
(7) addr16 16位目的地址,用于LCALL和LJMP指令中。
(8) rel 补码形成的8位地址偏移量。
(9) bit 片内直接寻址位地址。
(10)@ 间接寻址方式中,表示间址寄存器的符号。
(11)/ 位操作指令中,表示对该位先取反再参与操作,但
不影响该位原值。
(12)(X) 表示X中的内容。
(13)((X)) 由X指出的地址单元中的内容。
(14) & 指令操作流程,将箭头左边的内容送入箭头右边的单元。君,已阅读到文档的结尾了呢~~
MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表: 寻址方式使用的变量 寻址范围立即寻址程序存储器直接寻址内部RAM低128个字节;...
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MCS51单片机指令系统
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 如何使用单片机 的文章

 

随机推荐