標題: 基于單片機的水塔水位控制系統(tǒng)仿真設計(proteus仿真) [打印本頁]

作者: 物業(yè)tuan    時間: 2020-4-18 00:39
標題: 基于單片機的水塔水位控制系統(tǒng)仿真設計(proteus仿真)
系統(tǒng)程序如下
#include<reg51.h>
//定義一個數(shù)組,使數(shù)碼管顯示的數(shù)字和數(shù)組元素的下標相等
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
                            0x6d,0x7d,0x07,0x7f,0x6f};
sbit shuiman=P1^0;//水滿
sbit sw5=P1^1;//水位5
sbit sw4=P1^2;//水位4
sbit sw3=P1^3;//水位3
sbit sw2=P1^4;//水位2
sbit sw1=P1^5;//水位1
sbit shougong=P1^6;//手工上水
sbit dianji=P1^7;//電機控制位
sbit state=P3^7;//電機工作指示
/*延時程序*/
void delay02s(void)
{
  unsigned char i,j,k;
  for(i=100;i>0;i--)
  for(j=100;j>0;j--)
  for(k=248;k>0;k--);
}
main()
{
        P0=0;
        while(1)
                {  /*************************傳感器是設計的一次只能觸發(fā)一個傳感器單?****************************
              //水滿
                        if(shuiman==0&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==1)//當唯一的閉合一個傳感器單元:水位6時發(fā)生
                        {
                                dianji=1;//關(guān)電機
                                state=1;//電機工作指示燈熄滅
            P0=table[6];//顯示水位深度:6**** 已滿
                                delay02s();//延時一段時間讓數(shù)碼管顯示給人以提示:水已滿
                        }
                                //水位5
                        if(shuiman==1&&sw5==0&&sw4==1&&sw3==1&&sw2==1&&sw1==1)//當唯一的閉合一個傳感器單元:水位5時發(fā)生
                        {
                                P0=table[5];//顯示水位深度:5
                        }
                        //水位4
                        if(shuiman==1&&sw5==1&&sw4==0&&sw3==1&&sw2==1&&sw1==1)//當唯一的閉合一個傳感器單元:水位4時發(fā)生
                        {
                                P0=table[4];//顯示水位深度:4
                        }
                        //水位3
                        if(shuiman==1&&sw5==1&&sw4==1&&sw3==0&&sw2==1&&sw1==1)//當唯一的閉合一個傳感器單元:水位3時發(fā)生
                        {
                                  P0=table[3];//顯示水位深度:5
                        }
                        //水位2
              if(shuiman==1&&sw5==1&&sw4==1&&sw3==1&&sw2==0&&sw1==1)//當唯一的閉合一個傳感器單元:水位2時發(fā)生
                        {
                                P0=table[2];//顯示水位深度:2
                        }
                        //水位低
                        if(shuiman==1&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==0)//當唯一的閉合一個傳感器單元:水位1時發(fā)生
                        {
                                dianji=0;//開電機
                                state=0;//電機工作指示燈打開
                        P0=table[1];//顯示水位深度:1
                        }
                        //手工上水
                    if(shougong==0)//當按手工上水按鈕時發(fā)生
                        {  
                      dianji=0;//開電機
                                state=0;//電機工作指示燈打開
                                P0=table[0];//顯示0表示手工上水已有反應
                                delay02s();//延時一段時間讓數(shù)碼管顯示給人以提示:已開始手工上水
                        }
               
                }
         
}


33.png (62.5 KB, 下載次數(shù): 165)

33.png

單片機水塔控制系統(tǒng).7z

69.57 KB, 下載次數(shù): 119, 下載積分: 黑幣 -5


作者: wsyyta    時間: 2020-6-11 10:28
感謝樓主

作者: long2018    時間: 2021-8-6 10:49
這個單片機,有好多空的針腳用不到,能不能一些少針腳的單片機?比如:?
作者: long2018    時間: 2021-8-6 10:54
數(shù)碼管是共陽管?還是共陰管?
作者: zxxay    時間: 2021-8-20 08:59
long2018 發(fā)表于 2021-8-6 10:54
數(shù)碼管是共陽管?還是共陰管?

看電路圖不是很明顯嗎?
作者: wl521520    時間: 2021-10-14 09:50
代碼是沒有問題的,就是個可以怎么修改一下成為那種水位自動檢測的,然后自動上水啊,而且電機工作的方式?jīng)]看懂,加水的時候能不能顯示水位自動顯示往上加????
作者: jiezz    時間: 2021-11-18 16:08
這個程序我復制到keil編譯為啥顯示main.c(73): error C300: unterminated comment
main.c(73): error C141: syntax error near ''   能解答一下嗎? 謝謝
作者: yyyyyll    時間: 2023-5-22 20:32
程序不全,編譯有錯哎,能發(fā)一下完整的程序嗎?

作者: heicad    時間: 2023-5-23 02:24
yyyyyll 發(fā)表于 2023-5-22 20:32
程序不全,編譯有錯哎,能發(fā)一下完整的程序嗎?

差一個大括號 你重新下載




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1