久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1881|回復: 8
收起左側

單片機循環控制多個繼電器 求助

[復制鏈接]
ID:880534 發表于 2022-10-21 03:40 | 顯示全部樓層 |閱讀模式
問題描述:key_a ,key_b, key_c 三個開關分別對應 A1 A2      B1 B2     C1 C2    6個繼電器      


情景1  key_a打開,key_b&&key_c關斷,A1通;  key_a先開  key_b或key_c開一個,A1通且 B2或C2通,此時若key_a關斷,B1或C1通。                       情景2  key_b打開,key_a&&key_c關斷,B1通;  key_b先開  key_a或key_c開一個,B1通且 A2或C2通,此時若key_b關斷,A1或C1通。                       情景3  key_c打開, key_a&&key_b關斷,C1通;  key_c先開  key_a或key_b開一個,C1通且 A2或B2通,此時若key_c關斷,A1或B1通。  
情景4   key_a&&key_b&&key_c關斷,   A1 && B1 && C1 通。  


在線等大神回復。  目前 A>B>C   順序 開 沒問題,但是 BA BC CA 開  就會和前面的  AB AC BC沖突  不按計劃開啟。                     
回復

使用道具 舉報

ID:880534 發表于 2022-10-21 04:57 | 顯示全部樓層
#include<reg51.h>



sbit key0=P3^2;
sbit key1=P3^3;
sbit key2=P3^4;

sbit ATIAN=P0^0;
sbit BTIAN=P0^1;
sbit CTIAN=P0^2;
sbit AJIA=P0^3;
sbit BJIA=P0^4;
sbit CJIA=P0^5;











void main()
{
        P0=0xff;
        P10=0;
        while(1)
        {
                if(P14==1)
                {
                 P0=0xff;
                }
                else P0=0xf8;
               
               
                                       

               
       
                       
                                if((key0==0)&&(key1==1)&&(key2==1))             //A主
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                       
                                        if((key0==0)&&(key1==0)&&(key2==1))                                //A機主 B機備
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=0;CJIA=1;
                                        }                       
                                       
                                        if((key0==0)&&(key1==1)&&(key2==0))                                //A機主 C機備
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=0;
                                        }                       
                                       
                                        if((key0==1)&&(key1==0)&&(key2==1))                                //A機關機,B機主
                                        {          
                                                   ATIAN=1;BTIAN=0;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                        if((key0==1)&&(key1==1)&&(key2==0))                                //A機關機,C機主
                                        {          
                                                   ATIAN=1;BTIAN=1;CTIAN=0;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                        if((key0==1)&&(key1==0)&&(key2==1))                                //B機主
                                        {          
                                                   ATIAN=1;BTIAN=0;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                        if((key0==1)&&(key1==0)&&(key2==0))                                //B機主,C機備
                                        {          
                                                   ATIAN=1;BTIAN=0;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=0;
                                        }                       
                                       
                                        if((key0==1)&&(key1==1)&&(key2==0))                                //B機關機,C機主
                                        {          
                                                   ATIAN=1;BTIAN=1;CTIAN=0;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }       

                                        if((key0==1)&&(key1==1)&&(key2==0))                                //C機主
                                        {          
                                                   ATIAN=1;BTIAN=1;CTIAN=0;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }       
                                       
        }
}                                               
                                       
//        現確少         B先開 A開;
//                           B先關 A開;
//                           C先開 A開;
//                           C先關 A開;
//                           C先開 B開;
//                           C先關 B開;
                          
回復

使用道具 舉報

ID:880534 發表于 2022-10-21 04:58 | 顯示全部樓層
#include<reg51.h>

sbit key0=P3^2;
sbit key1=P3^3;
sbit key2=P3^4;

sbit ATIAN=P0^0;
sbit BTIAN=P0^1;
sbit CTIAN=P0^2;
sbit AJIA=P0^3;
sbit BJIA=P0^4;
sbit CJIA=P0^5;


void main()
{
        P0=0xff;
        P10=0;
        while(1)
        {
                if(P14==1)
                {
                 P0=0xff;
                }
                else P0=0xf8;
               
               
                                       

               
       
                       
                                if((key0==0)&&(key1==1)&&(key2==1))             //A主
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                       
                                        if((key0==0)&&(key1==0)&&(key2==1))                                //A機主 B機備
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=0;CJIA=1;
                                        }                       
                                       
                                        if((key0==0)&&(key1==1)&&(key2==0))                                //A機主 C機備
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=0;
                                        }                       
                                       
                                        if((key0==1)&&(key1==0)&&(key2==1))                                //A機關機,B機主
                                        {          
                                                   ATIAN=1;BTIAN=0;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                        if((key0==1)&&(key1==1)&&(key2==0))                                //A機關機,C機主
                                        {          
                                                   ATIAN=1;BTIAN=1;CTIAN=0;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                        if((key0==1)&&(key1==0)&&(key2==1))                                //B機主
                                        {          
                                                   ATIAN=1;BTIAN=0;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                        if((key0==1)&&(key1==0)&&(key2==0))                                //B機主,C機備
                                        {          
                                                   ATIAN=1;BTIAN=0;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=0;
                                        }                       
                                       
                                        if((key0==1)&&(key1==1)&&(key2==0))                                //B機關機,C機主
                                        {          
                                                   ATIAN=1;BTIAN=1;CTIAN=0;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }       

                                        if((key0==1)&&(key1==1)&&(key2==0))                                //C機主
                                        {          
                                                   ATIAN=1;BTIAN=1;CTIAN=0;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }       
                                       
        }
}                                               
                                       
//        現確少     B先開 A開;
//                           B先關 A開;
//                           C先開 A開;
//                           C先關 A開;
//                           C先開 B開;
//                           C先關 B開;
                          
回復

使用道具 舉報

ID:880534 發表于 2022-10-21 07:30 | 顯示全部樓層
#include<reg51.h>



sbit key0=P3^2;
sbit key1=P3^3;
sbit key2=P3^4;

sbit ATIAN=P0^0;
sbit BTIAN=P0^1;
sbit CTIAN=P0^2;
sbit AJIA=P0^3;
sbit BJIA=P0^4;
sbit CJIA=P0^5;


void main()
{
//        P0=0xff;    //開機繼電器全關
//        P10=0;
        while(1)
        {
//                if(P14==1)
//                {
//                 P0=0xff;
//                }
//                else P0=0xf8;
               
                                        if((key0==0)&&(key1==1)&&(key2==1))             //A主                                        1111 1110
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                       
                                        if((key0==0)&&(key1==0)&&(key2==1))                                //A機主 B機備                        1111 1100
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=0;CJIA=1;
                                        }                       
                                       
                                        if((key0==0)&&(key1==1)&&(key2==0))                                //A機主 C機備                        1111 1010
                                        {          
                                                   ATIAN=0;BTIAN=1;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=0;
                                        }                       
                                       
                                        if((key0==1)&&(key1==0)&&(key2==1))                                //A機關機,B機主        1111 1101
                                        {          
                                                   ATIAN=1;BTIAN=0;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }                       
                                       
                                                if((key0==1)&&(key1==0)&&(key2==0))                    //B機主,C機備          1111 1001
                                        {          
                                                   ATIAN=1;BTIAN=0;CTIAN=1;
                                                        AJIA=1;BJIA=1;CJIA=0;
                                        }                       
                                       
                                        if((key0==1)&&(key1==1)&&(key2==0))                                //B機關機,C機主         1111 1011
                                        {          
                                                   ATIAN=1;BTIAN=1;CTIAN=0;
                                                        AJIA=1;BJIA=1;CJIA=1;
                                        }       
                                       
        }
}                                               
回復

使用道具 舉報

ID:415064 發表于 2022-10-21 08:32 | 顯示全部樓層
把誰先通的要記錄下來
回復

使用道具 舉報

ID:123289 發表于 2022-10-21 08:39 | 顯示全部樓層
建議改行。
回復

使用道具 舉報

ID:161164 發表于 2022-10-21 09:26 | 顯示全部樓層
2022-10-21_092524.png
回復

使用道具 舉報

ID:880534 發表于 2022-10-24 16:17 | 顯示全部樓層
wojiaoguogai 發表于 2022-10-21 08:32
把誰先通的要記錄下來

你給的這個邏輯合適,我進入誤區  應該 把判斷主備線路占用做判斷,就好辦多了。
回復

使用道具 舉報

ID:1007932 發表于 2022-10-24 23:18 | 顯示全部樓層
可以用萬能的狀態機,把上一個/幾個狀態記錄下來(取決于前幾個狀態能影響到下一個狀態),再確定下一個狀態,要不把所有狀態和情況列出來,就很好寫了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲一区二区精品 | 日韩精品在线观看一区二区 | 91在线色视频| 99pao成人国产永久免费视频 | 久久精品小视频 | 伊人网站在线观看 | 成人福利在线 | 国产成人免费视频网站视频社区 | 亚洲精品二区 | 国产午夜精品一区二区三区四区 | 91欧美精品成人综合在线观看 | 蜜桃一区二区三区 | 欧美日韩不卡 | 国产日韩欧美在线观看 | 亚洲一区二区av | 久久久久成人精品亚洲国产 | 美国黄色毛片 | 国产成人精品久久二区二区91 | 国产精品区二区三区日本 | 国产精品久久网 | 欧美精品网 | 久久精品91久久久久久再现 | 久久精品中文字幕 | 久草在线青青草 | 亚洲人成人一区二区在线观看 | 91久久国产综合久久 | 成人免费视频网站在线观看 | 中文字幕欧美日韩一区 | 亚洲精品一区中文字幕乱码 | 91精品国产日韩91久久久久久 | 久热精品在线观看视频 | 国产91在线 | 中日 | 视频一区在线观看 | 成人欧美一区二区三区在线播放 | 久久久久久国产精品 | 色视频在线免费观看 | 亚洲欧美在线视频 | 久久精品性视频 | 免费不卡视频 | 久久久久精 | 一区二区三区电影在线观看 |