请大神帮忙如何编写3个条件依次满足才有输出的程序,程序是C语言编写的,用的是STC89C52单片机

如题所述

看到楼上几位给你的代码,代码效率有点低,不知道能不能满足楼主需求,我顺便花10分钟给你写个程序,这个程序是按照你的需求写的,你可以下载到单片机运行一个看看,有问题可以直接追问,我在线等你的消息!
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
**/
#include "REG52.H"
#include "INTRINS.H"

/*
* 相当于宏定义
*/
typedef unsigned char INT8U;
typedef unsigned int INT16U;

/*
* P1端口LED
*/
sbit LED_Input0 = P1^2;
sbit LED_Input1 = P1^3;
sbit LED_Input2 = P1^4;
sbit LED_Input3 = P1^5;

/*
* P1端口按键
*/
sbit KEY_Input1 = P3^5;
sbit KEY_Input2 = P3^6;

/*
* 延时1ms子函数
*/
void Delay_1ms(unsigned int Cnt)
{
unsigned int x, y;

for(x = Cnt; x > 0; x--)
for(y = 120; y > 0; y--);
}

/*
* 按键检测子函数
*/
void Key_Scon(void)
{
/* 第一个按键按下 */
if(KEY_Input1 == 0)
{
/* 延时去抖动 */
Delay_1ms(5);
/* 在判断一次按键是否按下 */
while(KEY_Input1 == 0)
{
/* LED1 指示灯亮 */
LED_Input0 = 0;
/* 在判断一次按键是否按下 */
if((KEY_Input1 == 0) && (KEY_Input2 == 0))
{
/* LED1、2指示灯亮 */
LED_Input1 = 0;
if(KEY_Input1 == 1);
{
Delay_1ms(1000);
if((KEY_Input1 == 1) && (KEY_Input2 == 1))
{
return;
}
/* LED4指示灯亮 */
LED_Input3 = 0;
/* 等待按键2松手检测 */ //这里是必须的,否则会产生错误
while(KEY_Input2 == 0);
}
}
}
}

/* 第二个按键按下 */
if(KEY_Input2 == 0)
{
/* 延时去抖动 */
Delay_1ms(5);
/* 在判断一次按键是否按下 */
if(KEY_Input2 == 0)
{
/* LED2指示灯亮 */
LED_Input2 = 0;
}
/* 等待按键松手检测 */
while(KEY_Input2 == 0);
return;
}

}

/*

/*
*
*/
int main(void)
{
// 初始化IO
P0 = 0xFF;
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;

while(1)
{
Key_Scon(); //处理按键程序
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-06
以下是一个示例程序,可以实现满足三个条件才有输出的功能。该程序通过判断输入的三个数字是否都是偶数来决定是否输出一段字符串。

#include <reg52.h>
#include <stdio.h>
void main() {
int a, b, c;
char *str = "Hello, World!\n";
// 读取三个数字
scanf("%d%d%d", &a, &b, &c);
// 判断三个数字是否都是偶数
if (a % 2 == 0 && b % 2 == 0 && c % 2 == 0) {
// 满足三个条件,输出字符串
printf("%s", str);
}
}

以上程序中,首先通过 scanf() 函数读取三个数字,然后通过 if 语句判断这三个数字是否都是偶数。如果三个数字都是偶数,就会执行 printf() 函数输出字符串,否则不会有任何输出。
第2个回答  2022-09-25
请大神帮忙如何编写3个条件依次满足才有输出的程序,程序是C语言编写的,用的是STC89C52单片机
if (KEY1 == 0) {
 if (KEY2 == 0) {
  if (KEY3 == 0) {
   OUT_IT();  
} } }
相似回答