-2
我應該使用Dallas 8051芯片製作一個多路複用器。 p1.0,p1.1和p1.2是輸入。 P1.3是使能線,輸出是P2.0到P2.3。除了所有輸入爲零且啓用爲1時,所有輸出均可正常工作。 (在Keil調試器視圖的輸出中只應該有零,但事實並非如此)。裝配零誤差 - 開關語句
#include<reg51.h>
sbit input0 = p1^0;
sbit input1 = p1^1;
sbit input2 = p1^2;
sbit enable = p1^3;
sbit output0 = p2^0;
sbit output1= p2^1;
sbit output2 = p2^2;
sbit output3 = p2^3;
sbit output4 = p2^4;
sbit output4 = p2^5;
sbit output6 = p2^6;
sbit output7 = p2^7;
void main (void) {
P2 = 0x00;
if (enable==1)
{
P1&=0x07;
switch(P1)
{
case 1: output1=1; break;
case 2: output2=1; break;
case 3: output3=1; break;
case 4: output4=1; break;
case 5: output5=1; break;
case 6: output6=1; break;
case 7: output7=1; break;
default: output0 =1; break;
}
}
else {P2&=0x07;}
}
這實際上修復了錯誤,謝謝。 其他部分中P2 &=0x07;的原因是什麼? 這實際上是一個錯字。 P2應該被設置爲0x00。 – Goblinette