找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机5个按键控制5个继电器开关 程序调试不出来

查看数: 2527 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-4-6 22:31

正文摘要:

一个独立按键可以控制继电器开关,但是我想5个独立按键控制5个继电器程序调不出来,请求大佬指点 下面是一个按键控制一个继电器单片机程序 #include <reg52.h> #define uchar unsigned char sbit ...

回复

ID:999318 发表于 2022-4-7 01:47

还有第一个电机转一段时间,也就自己停了。所以我把电阻都取了
ID:999318 发表于 2022-4-7 01:45

谢谢啊,可以了,但是就第一个三极管基极加电阻就可以控制,后面几个要去掉基极的限流电阻,这是什么原因啊。可以看一下第二个跟第三个对比,进来都是低电平,第二个电机转[img][/img],但第三个不转,就是要去掉电阻吗[img]
ID:161164 发表于 2022-4-7 00:12
  1. sbit Key_A = P3 ^ 0;
  2. sbit Key_B = P3 ^ 1;
  3. sbit Key_C = P3 ^ 2;
  4. ...

  5. sbit RelayEN = P2 ^ 0;                                   //定义继电器开启信号
  6. sbit RelayEN2 = P2 ^ 1;                                   //定义继电器开启信号
  7. sbit RelayEN3 = P2 ^ 2;                                   //定义继电器开启信号
  8. ...

  9. if(!Key_A || !Key_B || !Key_C)                                          //判定有无按键按下
  10. {
  11.         if(count >= 20)                          //判定秒数是否达到20MS,即去抖
  12.         {
  13.                 if(!Key_A)
  14.                 {
  15.                         RelayEN = ~RelayEN;//当按键按下时,改变继电器的状态
  16.                 }
  17.                 if(!Key_B)
  18.                 {
  19.                         RelayEN2 = ~RelayEN2;//当按键按下时,改变继电器的状态
  20.                 }
  21.                 if(!Key_C)
  22.                 {
  23.                         RelayEN3 = ~RelayEN3;//当按键按下时,改变继电器的状态
  24.                 }
  25.                 while(!Key_A || !Key_B || !Key_C);           //等待按键释放;
  26.         }
  27. }else{
  28.         count = 0;
  29. }
复制代码


小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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