关于单片机二进制问题,求高手

我在单片机P1 口输入十六进制:0xf0(二进制为11110000),为什么P1.0,P1.1,P1.2,P1.3口为低电平不是高电平,为什么没有对应输出高电平

你在P1输入0xf0(二进制为11110000),这时P1就等于11110000,高位P1.7在前,低位P1.0在后,所以P1.0,P1.1,P1.2,P1.3口为低电平,P1.4,P1.5,P1.6,P1.7口为高电平。如果你送P1=0x0F,那么P1.0,P1.1,P1.2,P1.3口高电平,P1.4,P1.5,P1.6,P1.7口为低电平。追问

这个为什么是从高位到低位而不是从低位到高位的啊 是固定的吗

追答

一般给51单片机端口送数是规定高位在前,低位在后。

温馨提示:内容为网友见解,仅供参考
无其他回答

关于单片机二进制问题,求高手
你在P1输入0xf0(二进制为11110000),这时P1就等于11110000,高位P1.7在前,低位P1.0在后,所以P1.0,P1.1,P1.2,P1.3口为低电平,P1.4,P1.5,P1.6,P1.7口为高电平。如果你送P1=0x0F,那么P1.0,P1.1,P1.2,P1.3口高电平,P1.4,P1.5,P1.6,P1.7口为低电平。

单片机内存和二进制
1、你第一句说的没错,它的16位二进制数的意思是“以二进制表示时有16个二进制位”。2、第二句中“1B=8位二进制数”这句话你理解的也有问题,因为1B就是1Byte,也称一字节,用二进制展开后就是8个二进制位,比如01010011这就是一字节数,也就是1Byte数据。而你的后半句说的就完全乱了,因...

单片机二进制位数传送问题
1通信链路的发送端和接收端硬件应该做了一部分工作,处理电平就是一部分。如果是51单片机的UART传送数据,内部的硬件结构我也不太清楚。但是有一个波特率就规定好了传送的速率。2你说的这个码元是不是包含了,两个位啊?一个高电平位一个低电平位。但是应该弄清楚串口的硬件电路是以这样的方式的传送数...

求助高人,单片机实验。将05的二进制数转换为BCD码。 写出详细过程,谢谢...
x%10,就是除以10求余。例如0xff=255 255%10=25.。。5 25%10=2.。。。5 不就得到 2 ,珐籂粹饺诔祭达熄惮陇 5,5了就是BCD玛 如果对你有帮助,望采纳。

单片机,进制转换问题?
十六进制459C4000转成二进制是0100 0101 1001 1100 0100 0000 0000 0000最高位为符号位,0表示整数,1表示负数,因此这个是一个正数。然后往后数8个位,这8个位叫阶码,就是1 1011 110=十进制的139。139-127(这个127是固定的)=12。将阶码换成1.,然后就是1.001 1100 0100 0000 0000 0000。...

各位单片机高手,哪位帮我分析一下下面这个程序,问题出...
回答:首先给你解释一下“<<”位移符的作用: 因为你的P1=0xfe,二进制数据就是11111110,左移一位之后为11111100,0往左移了一位,但是最低位系统自动以0补齐,而0x7f的二进制数据位01111111,所以if语句是永远进入不了的。 当然,针对此问题,C51给出了一个解决方案: 使用_crol_()函数可解决此问题...

单片机几个问题
1、16k为3FFFH,从6000H开始,所以地址范围为6000H~9FFFH,二进制位1001 1111 1111 1111,所以需要16根地址线。结束地址当然为9FFFH。2、MOV DPTR,#0A000H CLR A MOVC A,@A+DPTR MOV 20H,A 3、MOV DPTR,#2000H CLR A MOVC A,@A+DPTR MOV DPTR,#0A00H MOVX @DPTR,A 4、MOV DPTR,...

单片机二进制计数
1、按键按第1次,count = 1; P1 = ~count = 0xfe;LED灯里的L1亮,其他灭。2、按键按第2次,count = 2; P1 = ~count = 0xfd;LED灯里的L2亮,其他灭。3、按键按第3次,count = 3; P1 = ~count = 0xfc;LED灯里的L1、L2亮,其他灭。4、按键按第4次,count = 4; P1 = ~...

单片机中二进制怎么表示?
单片机编程 汇编中 十进制 后面加D ,十六进制后边加H, 二进制后面加B。 比如 10进制 35D, 16进制 23H, 二进制 0010 0011B.c语言中 十进制 不加前缀, 十六进制前边加 0x , 8进制前边加0 , 二进制不能直接表示(比较麻烦), 如 10进制 15 , ...

求教:51单片机,十六位二进制数乘以2后放回原单元,用移位的方法怎么做...
左移其实就是乘法。例如十进制;10左移一位就是100,相当于10*10;二进制:10左移一位就是100,从原先的2变为4,就是乘以2;左移一位就是把原来的数乘以"进制".二进制x2就是左移一位。

相似回答