没有区别,作用相同。只是这样写便于修改和沿用。

对于只用到PB0端口的程序~(0x0f << (4*0)) 和~0x0f没有区别。0x0f <<(4*N) 就是 向左 移动N个4位,所以0x0f << (4*0)和0x0f一样。

如果使用PB1,则为~(0x0f << (4*1))。即0x0f << (4*1)为0xf0, 取反为0x0f.

但是如果使用到了PB1等其他端口,这样写便于修改。