要求如下,单片机用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() { /*各种初始化和定义*/ }
|