要求如下,單片機用S3F94C8【放上來了這個單片機的說明書】 四輸入 P2.0 P2.1 P2.2 P2.3 輸出P0.0 P0.1 P0.2【其中四個輸入端口輸入電壓均為24V信號】 如果輸入的四個端口電壓 P2.0+P2.1+P2.2+P2.3>30V 則P0.0=P0.1=P0.2= 0V 低電平【為了防止輸入端同時有兩個及以上的輸入信號】 如果10V<P2.0+P2.1+P2.2+P2.3<30v,其中 如果P2.0>10V 則P0.0=24V 高電平 P0.1延遲0.6秒后輸出24V高電平 如果P2.1>10V 則P0.0=24V高電平 P0.2延遲0.6秒后輸出24V高電平 如果P2.2>10V 則P0.0=0V 低電平 P0.1=24V 高電平 如果P2.3>10V 則P0.0=0V 低電平 P0.2=24V 高電平 程序我寫了一下,初始化不會,然后感覺程序也有點問題 void test(P2.0,P2.1,P2.2,P2.3,P0.0,P0.1,P0.2) { if (sum (P2.0,P2.1,P2.2,P2.3)>30) { P0.0=P0.1=P0.2=0; exit; } else { if (P2.0>10) { P0.0=1; delay(60); P0.1=1; exit(); } else if (P2.1>10) { P0.0=1; delay(60); P0.1=1; exit(); } else if (P2.2>10) { P0.0=0; P0.1=1; exit(); } else if (P2.3>10) { P0.0=0; P0.2=1; exit(); } } } void main() { /*各種初始化和定義*/ }
|