① 51单片机的寻址方式
亲,你好。MCS-51系列单片机寻址方式共有七种:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。 寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。 寄存器可以使用寄存器组R0~R7中某一个或其它寄存器 (A,B,DPTR等)。 在指令中直接给出操作数所在的存储单元的地址,称为直接寻址方式。 在8051中,使用直接寻址方式可访问片内RAM的128个单元以及所有的特殊功能寄存器 (SFR),对于特殊功能寄存器,既可以使用他们的地址,也可以使用他们的名字。 MOV A, 90H ; 90H是P1口的地址。 指令操作码后面紧跟的是一字节或两字节操作数,用 # 号表示,以区别直接地址。 例如: 寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数.
② mcs-51单片机有哪几种寻址方式
51单片机有7种寻址方式:
1、立即寻址方式
采用立即寻址的指令一般是双字节的。第一个字节是指令的操作码,第二个字节是立即数。因此,操作数就是放在程序存储器中的常数。立即数前面应加前缀“#”号。
2、直接寻址方式
采用直接寻址的指令一般是双字节或三字节指令,第一字节为操作码,第二,三字节为操作数的地址码。单片机中,直接地址只能用来表示片内低128字节单元、专用寄存器和片内RAM的位地址空间。其中专用寄存器和位地址空间只能用直接寻址方式来访问。
3、寄存器寻址方式
寄存器寻址方式用于访问选定的工作寄存器R0~R7、A、B、DPTR和进位CY中的数。其中R0~R7由操作码低三位的8种组合表示,A、B、DPTR、C则隐含在操作码之中。
4、寄存器间接寻址方式
这种寻址方式中,指令指定寄存器中的内容为操作数的地址。寄存器间接寻址是用于访问片内数据存储器或片外数据存储器。当访问片内RAM
或片外的低256字节空间时,可用R0或R1做为间址寄存器;当访问片外整个64KB的地址RAM空间时,用16位寄存器DPTR做间址寄存器。这类指令都为单字节的指令,操作码的最低位表示是采用R0还是R1做间址器。
(2)单片机寻址提问扩展阅读:
51单片机功能特性
1,可以仿真63K程序空间,接近64K的16位地址空间;
2,可以仿真64Kxdata空间,全部64K的16位地址空间;
3,可以真实仿真全部32条IO脚;
4,完全兼容keilC51UV2调试环境,可以通过UV2环境进行单步,断点,全速等操作;
5,可以使用C51语言或者ASM汇编语言进行调试;
6,可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某变量上就会立即显示出它此的值;
7,可选使用用户晶振,支持0-40MHZ晶振频率;
8,片上带有768字节的xdata,您可以在仿真时选使用他们,进行xdata的仿真;
9,可以仿真双DPTR指针;
10,可以仿真去除ALE信号输出.;
11,自适应300-38400bps的所有波特率通讯。
③ 8051 单片机 寻址问题。 设A=40H,执行指令 1000H:MOVC A,@A+PC后,把存储器_______单元内容送入累加器A.
把存储器1041H的单元内容送到A.
解题过程没有什么复杂的,只是有一个陷井而已。
1000H:MOVC A,@A+PC
大家都会认为,执行这条的时候,PC的数值应该是 1000H,其实是错误的,是1001H,因为指令MOVC A,@A+PC本身占有一个字节的地址空间,这条指令的位置才是1000H
④ 单片机中的寻址是什么意思
单片机中的寻址就是单片机指令中提供的操作数的形式。也就是寻找操作数或操作数所在地址的方式。
在51系列单片机中,存放数据的存储器空间有4种:内部RAM、特殊功能寄存器SFR、外部RAM和程序存储器ROM。其中,内部RAM和SFR统一编址,外部RAM和程序存储器是分开编址的。为了区别指令中操作数所处的地址空间,对于不同存存储器的数据操作,采用不同的寻址方式。
(4)单片机寻址提问扩展阅读
寻址方式
1、立即数寻址
立即数寻址又称立即寻址,即指令中直接给出操作数的寻址方式称为立即数寻址。在51系列单片机指令系统中,立即数用前面加“#”号的8位数表示(#data,如#30H)或16位数(#data16,如#2052H)表示。举例说明立即数寻址方式,以传送指令为例。
2、直接寻址
指令中直接给出操作数地址(dir)的寻址方式称为直接寻址。寻址对象为:1 内部数据存储器,在指令中以直接地址表示;2特殊功能寄存器SFR,在指令中用寄存器名称表示。
3、寄存器寻址
以通用寄存器的内容为操作数的寻址方式称为寄存器寻址。通用寄存器包括:A、B、DPTR、R0~R7。其中B寄存器仅在乘法、除法指令中为寄存器寻址,在其它指令中为直接寻址。A寄存器可以寄存器寻址,又可以直接寻址(此时写作ACC)。
直接寻址和寄存器寻址的差别在于,直接寻址是操作数所在的字节地址(占一个字节),寄存器寻址是寄存器编码出现在指令码中。寄存器寻址速度比直接寻址要快。除上面所指的几个寄存器外,其它特殊功能寄存器一律为直接寻址。
参考资料来源:网络-51系列单片机寻址方式
⑤ 单片机I/O寻址的问题
这是单片机的绝对寻址方式。这样可以把
DAC0832
当做是一个外部存取器进行操作。当单片机访问
外部存储器
时,单片机的一些引脚会产生一定是时序,例如ALE脚、RD脚和WD脚,而这个时序正好让DAC0832进行D/A转换。当要DAC0832进行D/A转换时只需执行
DAC0832
=
Temp;这条语句就可以了,而不要去用普通引脚模拟DAC0832的时序了。
⑥ 单片机寻址方式提问
MCS-51单片机有21个特殊功能寄存器,它们的地址是离散的分布在在80H~FFH范围中。
访问特殊功能寄存器,必须使用直接寻址,这是Intel公司规定的。
A是特殊功能寄存器吗?
--是的,它的地址是E0H。
为什么A寄存器的寻址方式是寄存器寻址?
--没有听说过。使用名称R0~R7,才是寄存器寻址;A,不是寄存器寻址。
⑦ 单片机 寻址方式
单片机有七种寻址方式分别是:1.寄存器寻址例如:
MOV
A,R0;2.直接寻址例如:
MOV
A,4FH;3.寄存器间接寻址
MOV
A,@R04.立即数寻址
MOV
A,#0FFH5.变址寻址(典型的是查表指令)
MOV
A,@A+DPTR6.相对寻址
SJMP
$7.位寻址
SETB
P0.0;
MOV
60H,40H;是属于直接寻址;(直接用内存单元的地址来寻找对应的内容)
MOV
A,
#58HMOV
RO,
#0B0HMOV
@RO,
AMOV
0B0H,
#28H而执行完以上指令后结果是:(0B0H)=P3=28H;因为在8051单片机中P3口是特殊功能寄存器(也占一内存)它的地址刚好是0B0H;程序的最后给0B0H赋了立即数28H;
⑧ 单片机关于可位寻址和不可位寻址的一些疑问,求大神解答!
可以的,这里可位操作的都有个名字,因此 T0IF = 0;就是将寄存器 INTF的bit0 置数;
另外,你可以通过调试运行然后观察 INTF的值的变化来加深理解;
⑨ 51单片机的位寻址区问题
51单片机的位寻址区问题书上写着位寻址区是20H-2FH,位地址00H-7FH,这不是超过这个位寻址区了嘛,这两个区域是什么意思的?
是这样的,请你参考:
“51单片机的位寻址区问题书上写着位寻址区是20H-2FH”,这里的20H~2FH指的是片内RAM低128字节的“20H存储单元~2FH存储单元”,每个单元是一个字节,所以这里是16个字节,每个单元的地址分别是20H~2FH;
“位地址00H-7FH”,上面的16个字节,每个字节8位,总共128位,对这128各位又进行了编址,每个位的地址分别是00H~7FH;
位地址和单元地址虽然在数字上有所重复(00H~7FH包含有20H~·FH),但是在汇编指令上是能去分开的;比如:CLR20H 这条指令是对位20H进行清零,不会对20H单元清零,因为对字节清零的汇编指令只有一条 CLRA,这是对累加器A进行清零。
所有的指令都能把位地址和单元地址去分开,上边只是个例子,不必担心。
希望对你有所帮助!!!!!