单片机IO口十六进制问题

比如P2=0x01 应该是P2^7=1 但用proteus仿真后 他P2^0=1
为什么?

确实是P2^0 = 1的,高位对高位,低位对低位嘛
(比如P2=0x01 应该是P2^7=1 )这句不对
P2 = 0x80 才是P2^7 = 1
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-23
单片机IO口十六进制 比如
P2=0x01 对应 P2^0=1
P2=0x02 对应 P2^1=1
P2=0x04 对应 P2^2=1
P2=0x08 对应 P2^3=1
P2=0x10 对应 P2^4=1
P2=0x20 对应 P2^5=1
P2=0x40 对应 P2^6=1
P2=0x80 对应 P2^7=1
P2=0x11 对应 P2^4=1 与 P2^0=1
P2=0xff 对应 P2^7=1 与 P2^6=1、P2^5=1、P2^4=1、P2^3=1、P2^2=1、P2^1=1、P2^0=1
第2个回答  2013-01-23
你这里搞错啦,P2=0x01时,应该P2^0=1
第3个回答  2013-01-23
你应该是顺序搞错了吧,注意有些是从高位算起。

单片机IO口十六进制问题
确实是P2^0 = 1的,高位对高位,低位对低位嘛 (比如P2=0x01 应该是P2^7=1 )这句不对 P2 = 0x80 才是P2^7 = 1

C语言中从单片机IO口读入的数据是什么进制的?
是十六进制的,用C的话就写成P0=0x00到0xff,用汇编就是MOV P0,00H到0FFh,如果if中比较例如:if(P0>数值),数值只能是十进制而不能是十六进制,因此必须不十六进制转换成十进制。

给单片机其中一个IO口赋0x01,会输出高电平吗?
给单片机的其中一个IO口赋0x01,并不一定会直接输出高电平,这取决于该IO口的配置和上下文。在单片机编程中,IO口的电平输出(高电平或低电平)通常是通过设置或清除特定位来实现的。0x01是一个十六进制数,其二进制表示是0000 0001。当我们将0x01赋值给单片机的某个IO口寄存器时,我们实际上是将该寄...

STC89C51的I\/O端口那么多,在编程里面以十六进制转化二进制去打开单片机...
那么P1这8个IO端口从高到低输出二进制数据00110000,。说到IO口的本质,本来单片机是不识别P0、P1这样的标识,它只识别各个寄存器的地址,因为在头文件里使用sfr关键字来定义了P1口,如sfr P1=0x90,所以我们再使用P1的时候,实际上操作的是0x90这个地址,单片机自动识别0x90,知道这是在操作P1口。更多...

单片机0xf9这个要怎么算呢,求详细解答?
单片机的话 控制i\/o的话用8421比较简单 F=15 8421 就为1111 9为8001 就为1001 合起来的二进制为1111 1001

...引导位01010101010010形式如何通过PIC单片机IO口串行发送?下一个...
01010101010010 写成16进制为0x05A2,串口传送时每次只能传8bit数据(有些单片机支持9bit 最高位常常用作区分是地址帧还是数据帧),需要分两次传送,传送时发送方先发送地位,相同的接收方接收到的电平数据也存放在低位,保证了数据的一致。个人意见仅供参考,如若有误欢迎批评指正。

单片机的0xAA,0xFF代表什么意思,表示单片机的什么状态?
单片机中对寄存器或IO口操作都是用十六位进制表示,比如oxaa,代表二进制的1010(a) 1010(a)。在书写时0x代表十六位进制。

51单片机若写入指令 P0=0xf0,IO 口电平怎样输出?
P0=0xF0;这句话的意思是,将P0寄存器赋值为0xF0。P0一共有8个IO口,而一个字节刚好是8个位,因此可以将你写入的字节和这8个IO对应上。0xF0化为二进制是:11110000 因此,P0.7~P0.0依次是:11110000

单片机中高低电平问题
在这里0x表示是十六进制,凡是十六进制都是以0x开头的,你可以用计算器看下,0xff转换为2进制就是1111 1111 ,相当2进制4位表示十六进制1位,比如0x08转换为2进制就是0000 1000 。P0口不是有8个管脚,每个管脚相当对应于2进制的1位,比如你将P0设置为0x08,其实就是0000 1000 就是第3管脚(最低...

最近在学51单片机 点亮led灯程序中P1=0xaa是控制1357灯亮2468灭 如果我...
改成P1=0xDD P1有8个IO口,P1=0Xaa你可以看做 “10101010”分别控制8个IO口,即控制LED灯的亮灭。你要26亮其他灭 那就是 “11011101”也就是 P1=0xDD。明白了吗?

相似回答