找回密码
 立即注册
查看: 759|回复: 18

逻辑与控制求助

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-15 18:32:25
已绑定手机

5

主题

57

回帖

247

积分

中级会员

积分
247
发表于 2025-1-1 11:33:29 | 显示全部楼层 |阅读模式


大佬们元旦快乐,有空请帮指点小白以下困难
1,三个逻辑与关系的控制开关如何写代码?  if(Start==0 && NTC==0 &&LS==1)没作用
2,常闭温控开关,常开液位开关硬件接到IO口,以判断通断是否正确?

截图202501011127172253.jpg



#include "ai8051u.h"
/*******
电机抽水控制,按启动钮开机抽水,
按停止钮停机抽水(水抽满时LS液位开关接通电机断电或NTC温控开关断开)
*******/
sbit Start = P0^0;    // 定义启动按钮,低电平触发有效
sbit Stop = P0^1;    // 定义停止按钮,低电平触发有效
sbit NTC = P0^2;    // 定义常闭温控开关
sbit LS = P0^3;    // 定义常开液位开关

void main(void)
{
        P0M0 = 0x00; P0M1 = 0x00; //设置为准双向
        P0=0x0F;     // 将P0第7位置低电平,
         while (1)
   {
           if(Start==0 && NTC==0 &&LS==1)   // 启动按下电机得电,但NTC,LS不起作用
           P07=1;  
               if (Stop==0)  // 停止按下电机失电
           P07=0;  //  P0^7编译报错,P07可以,跟sbit定义P0^7不一致      
   }
}



回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:409
  • 最近打卡:2025-06-17 00:48:11

8

主题

353

回帖

2476

积分

金牌会员

积分
2476
发表于 2025-1-1 13:39:47 | 显示全部楼层
各个信号状态汇总拼凑到一个变量中,再用switch语句按各个条件判断给出相应处理就行了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:178
  • 最近打卡:2025-06-12 08:44:23
已绑定手机

15

主题

628

回帖

822

积分

高级会员

积分
822
发表于 2025-1-1 22:18:47 | 显示全部楼层
你的原理图P1.0--P1.3  你代码却是 P0.0--P0.3 那肯定不对啊
STC 666 888
回复 支持 2 反对 0

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-15 18:32:25
已绑定手机

5

主题

57

回帖

247

积分

中级会员

积分
247
发表于 2025-1-1 23:18:29 | 显示全部楼层
wnag*** 发表于 2025-1-1 13:09
一步一步来,三个开关都测试一下,看看是不是判断到了开关量

if(Start==0 && NTC==0 &&LS==1)这条指令相当于 if(Start==0 ),失去了另二个开关与的功能,
三个开关单独试是能检测到开关量的,但组合时只有Start开关起作用,不知你们大佬写这种功能是怎么写的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-15 18:32:25
已绑定手机

5

主题

57

回帖

247

积分

中级会员

积分
247
发表于 2025-1-1 23:20:16 | 显示全部楼层
wlh*** 发表于 2025-1-1 22:18
你的原理图P1.0--P1.3  你代码却是 P0.0--P0.3 那肯定不对啊

谢谢提醒,原理图用的是8H1K08的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:237
  • 最近打卡:2025-06-17 00:44:23
已绑定手机

7

主题

97

回帖

1201

积分

金牌会员

积分
1201
发表于 2025-1-1 23:24:49 | 显示全部楼层

三个开关量都加上括号再与一下试试

if((Start==0) &&( NTC==0 )&&(LS==1))

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-15 18:32:25
已绑定手机

5

主题

57

回帖

247

积分

中级会员

积分
247
发表于 2025-1-1 23:24:54 | 显示全部楼层
网*** 发表于 2025-1-1 13:39
各个信号状态汇总拼凑到一个变量中,再用switch语句按各个条件判断给出相应处理就行了 ...

大佬,swhitch 我还不会用这种组合功能的,有类似例程请转告下,谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-03-14 14:56:59

2

主题

69

回帖

442

积分

中级会员

积分
442
发表于 2025-1-1 23:30:09 | 显示全部楼层
按键接的P1口,设置P0口为准双向不对。应该设置P1口为准双向
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-06-15 18:32:25
已绑定手机

5

主题

57

回帖

247

积分

中级会员

积分
247
发表于 2025-1-1 23:31:21 | 显示全部楼层
13512240649 发表于 2025-1-1 23:24
三个开关量都加上括号再与一下试试
if((Start==0) &&( NTC==0 )&&(LS==1))
...

这种写法可能真的不一样,太感谢了,我明天去试下,今下午在网上看到这种组合功能可能要结合中断才稳定
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:237
  • 最近打卡:2025-06-17 00:44:23
已绑定手机

7

主题

97

回帖

1201

积分

金牌会员

积分
1201
发表于 2025-1-1 23:35:59 | 显示全部楼层
xxw*** 发表于 2025-1-1 23:31
这种写法可能真的不一样,太感谢了,我明天去试下,今下午在网上看到这种组合功能可能要结合中断才稳定
...

先把逻辑关系搞定,再考虑提高稳定性吧
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 20:54 , Processed in 0.164856 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表