找回密码
 立即注册
楼主: xxw123

逻辑与控制求助

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-17 23:29:49
已绑定手机

5

主题

57

回帖

251

积分

中级会员

积分
251
发表于 2025-1-1 23:40:32 | 显示全部楼层
jxday*** 发表于 2025-1-1 23:30
按键接的P1口,设置P0口为准双向不对。应该设置P1口为准双向

谢谢提醒
回复 支持 反对

使用道具 举报 送花

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

15

主题

628

回帖

822

积分

高级会员

积分
822
发表于 2025-1-2 08:40:43 | 显示全部楼层
xxw*** 发表于 2025-1-1 23:20
谢谢提醒,原理图用的是8H1K08的

不带这样吧,原理图与实际使用GPIO都是错的....  建议别这样  会误导
STC 666 888
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1837

积分

金牌会员

积分
1837
发表于 2025-1-2 14:51:22 | 显示全部楼层
楼主代码弄错了液位开关和NTC的作用
以下代码是根据楼主提供的源代码修改

  1. #include "ai8051u.h"
  2. /*******
  3. 电机抽水控制,按启动钮开机抽水,
  4. 按停止钮停机抽水(水抽满时LS液位开关接通电机断电或NTC温控开关断开)
  5. *******/
  6. sbit Start = P0^0;    // 定义启动按钮,低电平触发有效
  7. sbit Stop = P0^1;    // 定义停止按钮,低电平触发有效
  8. sbit NTC = P0^2;    // 定义常闭温控开关接地
  9. sbit LS = P0^3;    // 定义常开液位开关接地
  10. sbit Motor = P0^7;
  11. void main(void)
  12. {
  13.         P0M0 = 0x00;
  14.         P0M1 = 0x00; //设置为准双向
  15.         Motor = 0;     // 将P0第7位置低电平,
  16.         while (1)
  17.         {
  18.                 if (Stop==0 || LS==0 || NTC==1)  // 停止按下/NTC断开/LS接通=电机失电
  19.                         Motor=0;               
  20.                 else if(Start==0)   // 启动按下电机得电
  21.                         Motor=1;
  22.         }
  23. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-17 23:29:49
已绑定手机

5

主题

57

回帖

251

积分

中级会员

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

今天重新试了以前的代码可以正常编译,你这三个括号的也可以,后来查了代码发现是
P1=0x0F初值给错了,应为P1=0x3F

if((P12&&P14==0)&&(P15==1))  NG
if((P12==0)&&(P14==0)&&(P15==1)) OK
if(P12==0&&P14==0&P15==1)   OK
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-17 23:29:49
已绑定手机

5

主题

57

回帖

251

积分

中级会员

积分
251
发表于 2025-1-2 18:50:29 | 显示全部楼层
wlh*** 发表于 2025-1-2 08:40
不带这样吧,原理图与实际使用GPIO都是错的....  建议别这样  会误导

不好意思,对不起
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-17 23:29:49
已绑定手机

5

主题

57

回帖

251

积分

中级会员

积分
251
发表于 2025-1-2 19:08:43 | 显示全部楼层
Lkck*** 发表于 2025-1-2 14:51
楼主代码弄错了液位开关和NTC的作用
以下代码是根据楼主提供的源代码修改

非常感谢您辛苦的修改代码,
if (Stop==0 || LS==0 || NTC==1)您这种是或关系吧,明天我好好学习下,还有您的逻辑思维也是我以前的是相反的,真心感谢,明天测试后再向您汇报结果
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-17 23:29:49
已绑定手机

5

主题

57

回帖

251

积分

中级会员

积分
251
发表于 2025-1-2 19:11:07 | 显示全部楼层
wnag*** 发表于 2025-1-2 07:56
这样写没问题啊

是的,是我初值给错了,今天15楼的LkCK大佬指点了,用变量名,就不会搞错了,谢谢您
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-06-17 23:29:49
已绑定手机

5

主题

57

回帖

251

积分

中级会员

积分
251
发表于 2025-1-4 00:04:23 | 显示全部楼层
Lkck*** 发表于 2025-1-2 14:51
楼主代码弄错了液位开关和NTC的作用
以下代码是根据楼主提供的源代码修改

大佬,非常感谢您的指点,我以前的逻辑是错的,用您这个或逻辑才正确,谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:96
  • 最近打卡:2025-06-17 11:05:38
已绑定手机

24

主题

183

回帖

933

积分

高级会员

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

挺细心的
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-18 00:38 , Processed in 0.347401 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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