从你给出的数据来看,可能有这样一些原因(可能是硬件的也可能是软件的):
1. 管脚对应错误
2. 管脚输出电平规定错误(你预期的是置位后对应按位高电平输出,实际上是置位后低电平输出)
因为你P2置0时,74hc154输出的居然是15效果,则表明要么你那里对P2输出每个管脚都是高电平了。后面的几种情况可能是管脚对应错误造成的。