好久没碰单片机了,竟然对!与 ~搞不清了
!:逻辑非,整体取反,例:A=0011,!A=0;
~:按位取反,所有位取反,例:A=0011,~A=1100;
在开始本篇内容讲解前看如下原理图
思考:
1,当P2 = !P2时8盏LED灯会有什么效果?
2,当P2 = ~P2时8盏LED灯会又有什么效果?
注:51单片机P0-P3口上电/复位后每位都为高电平。
一,P2 = ~P2
观察如下代码:
#include <REGX52.H>
void main()
{
unsigned int i=100000;
while(1)
{
unsigned char temp;
P2=~P2;
while(--i);
}
}
开发板演示:
01
可以看到:
8个LED灯闪烁
二,P2 = !P2
观察如下代码:
#include <REGX52.H>
void main()
{
unsigned int i=100000;
while(1)
{
unsigned char temp;
P2=!P2;
while(--i);
}
}
开发板演示:
02
可以看到:
只有最低位LED灯闪烁
三,总结
!:逻辑非,整体取反
~:按位取反,所有位取反