找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2051|回复: 4
打印 上一主题 下一主题
收起左侧

大家帮帮忙呀,看看这个程序配合这个图为什么不行呀

[复制链接]
跳转到指定楼层
楼主
ID:60551 发表于 2015-12-30 21:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "reg52.h"

sbit relay11=P1^7;
sbit relay12=P1^6;
sbit relay21=P1^5;
sbit relay22=P1^4;
sbit relay31=P1^3;
sbit relay32=P1^2;

sbit relayLED1=P3^5;
sbit relayLED2=P3^4;
sbit relayLED3=P3^3;

bit flag1;
bit flag2;
bit flag3;

sbit key1=P3^1;  
sbit key2=P3^0;  
sbit key3=P3^2;   
void keyscan();
void init();

void delay(unsigned char n)  //约n(ms)延时
{ unsigned char i,j,k;
  for(k=0;k<n;k++)
    {  

      for(j=0;j<10;j++)         // 约1ms延时
       {
         for(i=0;i<30;i++)  //约0.1ms延时  
          {;}
       }
    }
}

void main()
{

   init();
   while(1)
   keyscan();



}

void keyscan()
{
//*****************************************************************
   if(key1==0)
    {       
        delay(100);
                flag1=1;
                if(key1==0)
                {
                        if(flag2==1)
                        {
               
                          relayLED2=0;
                          relay21=0;
                          relay22=1;
                          delay(1000);
                          relay22=0;
                          flag2=0;
                        }
                                if(flag3==1)
                        {
               
                          relayLED3=0;
                          relay31=0;
                          relay32=1;
                          delay(1000);
                          relay32=0;
                          flag3=0;
                        }
                       

                          relayLED1=1;
                          relay11=1;
                          relay12=0;
                          delay(1000);
                          relay11=0;

                       
                       
                        }

                        while(!key1);
        }
//*****************************************************************
   if(key2==0)
    {       
        delay(100);
                flag2=1;
                if(key2==0)
                {
                        if(flag1==1)
                        {
               
                          relayLED1=0;
                          relay11=0;
                          relay12=1;
                          delay(1000);
                          relay12=0;
                          flag1=0;
                        }
                                if(flag3==1)
                        {
               
                          relayLED3=0;
                          relay31=0;
                          relay32=1;
                          delay(1000);
                          relay32=0;
                          flag3=0;
                        }
                       

                          relayLED2=1;
                          relay21=1;
                          relay22=0;
                          delay(1000);
                          relay21=0;

                       
                       
                        }

                        while(!key2);
        }

//*****************************************************************
   if(key3==0)
    {       
        delay(100);
                flag3=1;
                if(key3==0)
                {
                    if(flag1==1)
                        {
               
                          relayLED1=0;
                          relay11=0;
                          relay12=1;
                          delay(1000);
                          relay12=0;
                          flag1=0;
                        }
                        if(flag2==1)
                        {
               
                          relayLED2=0;
                          relay21=0;
                          relay22=1;
                          delay(1000);
                          relay22=0;
                          flag2=0;
                        }

                       

                          relayLED3=1;
                          relay31=1;
                          relay32=0;
                          delay(1000);
                          relay31=0;

                       
                       
                        }

                        while(!key3);
        }




}



void init()
{
P2=0xff;
relay11= 0;
relay12= 0;
relay21= 0;
relay22= 0;
relay31= 0;
relay32= 0;

relayLED1= 0;
relayLED2= 0;
relayLED3= 0;

flag1=0;
flag2=0;
flag3=0;

key1=1;
key2=1;
key3=1;   
}

已做成板子,不接负载没有问题 ,一接负载 按钮就会乱,有时还不管用

2015.1.pdf

503.26 KB, 下载次数: 11

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:60551 发表于 2015-12-30 21:33 | 只看该作者
负载是 3 个脉冲电磁阀
回复

使用道具 举报

板凳
ID:85702 发表于 2016-1-4 23:15 | 只看该作者
感觉是电磁干扰吧.试试去干扰吧
回复

使用道具 举报

地板
ID:101873 发表于 2016-1-5 10:15 | 只看该作者
焊点的问题
回复

使用道具 举报

5#
ID:101916 发表于 2016-1-5 13:53 | 只看该作者
延时太短
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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