- 打卡等级:偶尔看看II
- 打卡总天数:25
- 最近打卡:2025-03-25 22:26:27
注册会员
- 积分
- 174
|
写一个这样的程序,当输入引脚为高电平时,控制两个输出引脚为一个引脚高电平一个引脚低电平,然后让两个输出引脚输出30秒钟后全部置为低电平;当输入引脚为低电平时,控制两个输出引脚为一个引脚高电平一个引脚低电平,然后让两个输出引脚输出30秒钟后全部置为低电平;但是输入端口一直有不是高电平就是低电输入。用STC单片机怎么写?
我写了一个 如下但一直在执行一会开一会关。
#include <reg51.h>sbit inputPin = P1^0; // 输入引脚 P1.0sbit outPin1 = P1^1; // 输出引脚1 P1.1sbit outPin2 = P1^2; // 输出引脚2 P1.2void delay(unsigned int ms){ unsigned int i, j; for (i = 0; i < ms; i++) for (j = 0; j < 123; j++); // 经测试此处的延迟值可以达到大致1ms的延时}void main(){ outPin1 = 0; // 初始化输出引脚1为低电平 outPin2 = 0; // 初始化输出引脚2为低电平 while (1) { if (inputPin == 1) // 输入引脚为高电平 { outPin1 = 1; // 输出引脚1置高电平 outPin2 = 0; // 输出引脚2置低电平 delay(30000); // 延时30秒 outPin1 = 0; // 输出引脚1置低电平 outPin2 = 0; // 输出引脚2置低电平 } else // 输入引脚为低电平 { outPin1 = 0; // 输出引脚1置低电平 outPin2 = 1; // 输出引脚2置高电平 delay(30000); // 延时30秒 outPin1 = 0; // 输出引脚1置低电平 outPin2 = 0; // 输出引脚2置低电平 } }}
|
|