1. 51单片机,位操作指令有什么特点
51单片机位操作指令又称布尔操作,它是以位为单位进行的各种操作。
我只学过80c51所以这里我只讲一下我所知道它的吧:
进行位操作的时候,以进位作为位累加器,位操作指令中的位地址有四种表示形式:
1、直接地址方式(如0D5H);
2、点操作符方式(如0D
0H.5;PSW.5等);
3、位名称方式(如F0);
4、伪指令定义方式(如MYFLAG
BIT
F0)。
而它进行位寻址的字节地址是有范围的:
是字节地址在20H到2FH内的都可以进行位寻址。另外部分的特殊功能寄存器也可以进行位寻址。
而你所说的位地址和你的字节地址相同的情况那完全不用考虑的,因为他们的寻址方式不同:一个是位寻址而另外一个是字节寻址。
2. 单片机中,什么叫指令长度
指令长度就是一条指令的二进制数位的多少。例如51单片机有8位,16位,24位指令
8位:累加器、寄存器间的加、减、与、或等算术和逻辑运算指令,(3位操作码可区分8种运算+3位操作码可区分8个寄存器+其他定义)
16位:累加器、寄存器与一个“立即数”之间的加、减、与、或等算术和逻辑运算指令,需要一个8位二进制数,所以比8位指令长
24位指令:与存储器存取数有关的“直接地址”指令需要16位地址,加首字节就要24位了,直接转移和调用子程序指令,也需要16位地址。
综上所述,指令长度与寻址方式密切相关。
3. 单片机中位寻址和字节寻址的区别
一、作用不同:
字节寻址:把数据直接写入当前地址,或者把当前地址的内容读出。
位寻址是位操作命令,写入和读出的是一个位bit变量。
二、传递不同:
MOV A,00H和MOV C,00H,前者是将RAM中地址为00H的8位内容传递给A,后者是将位寻址区(20H-2FH)中的地址为00H的1位内容传递给C。这两个00H不是在同一个地址。
三、命令不同:
地址本身是8位二进制,但区别是前面的命令。如果命令是字节寻址,则这个字节就是字节地址,相应地如果命令是位寻址则这个字节就是位地址。
(3)单片机位指令扩展阅读:
对字节地址中的位地址进行寻址的寻址方式称为位寻址。
采用位寻址方式的指令,其操作数是8位二进制数中的某一位,在指令中要给出的是内部RAM单元中的某一位,即位地址,其在指令中用bit表示。
8051单片机内部有1个可位寻址区,地址为20H~2FH,共16个单元。其中每个单元中的每一位都可单独作为操作数,共128位。如果SFR的地址值能被8整除,则该SFR也可以进行位寻址。可位寻址的SFR有ACC,B,PSW,P0,P1,P2,P3,IP,IE,TCON,SCON。
4. 单片机系统指令的位操作指令
一、数据位传送指令
MOV C,bit
MOV bit,C
如MOV C,06H ;(20H).6→Cy
06H是内部RAM 20H字节位6的位地址。
MOV P1.0,C ;Cy→P1.0
可寻址位的具体定义:从20H单元的第一位开始一直到2FH单元的最后一位分别为00H~7FH以及特殊功能寄存器中80H~F7H。
二、位变量修改指令
CLR C ;清“0”Cy
CLR bit ;清“0”bit位
CPL C ;Cy求反
CPL bit ;bit位求反
SETB C ;置“1” Cy
SETB bit ;置“1”bit位
三、位变量逻辑与指令
ANL C,bit ;bit ∧Cy →Cy
ANL C,/bit; ;/ bit ∧Cy →Cy
四、位变量逻辑或指令
ORL C,bit ;bit ∨ Cy →Cy
ORL C,/bit ;/ bit ∨ Cy →Cy
五、条件转移类指令
JC rel ;如果进位位Cy=1,则转移
JNC rel ;如果进位位Cy=0,则转移
JB bit,rel ;如果直接寻址位=1,则转移
JNB bit,rel ;如果直接寻址位=0,则转移
JBC bit,rel ;如果直接寻址位=1,则转移,并对bit位清0
5. 51单片机,位操作指令有什么特点
51单片机位操作指令又称布尔操作,它是以位为单位进行的各种操作。
我只学过80c51所以这里我只讲一下我所知道它的吧:
进行位操作的时候,以进位作为位累加器,位操作指令中的位地址有四种表示形式:
1、直接地址方式(如0D5H);
2、点操作符方式(如0D 0H.5;PSW.5等);
3、位名称方式(如F0);
4、伪指令定义方式(如MYFLAG BIT F0)。
而它进行位寻址的字节地址是有范围的:
是字节地址在20H到2FH内的都可以进行位寻址。另外部分的特殊功能寄存器也可以进行位寻址。
而你所说的位地址和你的字节地址相同的情况那完全不用考虑的,因为他们的寻址方式不同:一个是位寻址而另外一个是字节寻址。