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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1390|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

水龍頭監(jiān)控

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:324458 發(fā)表于 2018-6-4 20:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//****************************************************
//
//
//                智能水龍頭
//
//
//****************************************************

#include "main.h"


//定義變量
unsigned int Temp_Buffer = 0; //溫度存放
unsigned int Count = 0;                  //流量計脈沖數(shù)
unsigned char Temp_Top = 60;  //溫度上限
unsigned char Temp_Down = 20; //溫度下限
unsigned char KEY_NUM = 0;          //鍵值
unsigned char Flag_connect;          //溫度傳感器是否連接 00表示連接



//****************************************************
//主函數(shù)
//****************************************************
void main()
{
        initial();
        Init_LCD1602();                                                                        //初始化LCD1602
        LCD1602_write_com(0x80);                                                //指針設(shè)置到第一行
        LCD1602_write_word("Welcome to use!");                        //顯示內(nèi)容
        LCD1602_write_com(0x80+0x40+5);                                //指針設(shè)置到第二行
        LCD1602_write_word("Beetle v0.1");                                                //顯示內(nèi)容
        while(1)
        {
                unsigned int t=0;
               
                if(BAT100 == 0)        //沒滿電
                {
                        BAT=1;                //充電
                }else
                {
                   BAT=0;                //充滿
                }

               
                t=MAX6675_ReadReg();                 //讀溫度**************
                Flag_connect=t&0x04;                         //讀出數(shù)據(jù)的D2位是熱電偶掉線標(biāo)志位,該位為1表示掉線,該位為0表示連接
                Flag_connect=Flag_connect>>2;         //MAX6675是否在線
                t = t<<1;                                                   //讀出來的數(shù)據(jù)的D3~D14是溫度值
                t = t>>4;
                Temp_Buffer = t/4;
                                                //測得的溫度單位是0.25,所以要乘以0.25(即除以4)才能得到以度為單位的溫度值
                water();
                Water = 0;
                LED_Open = 0;
                        //show

                       

        }
       
}

void water()
{
        unsigned int mL = 0;        //流量(毫升)
        unsigned int i = 0;
        unsigned int t =0;
        if(INF == 0 )//檢測到有人
        {
                if( Temp_Buffer <= Temp_Top && Temp_Buffer >= Temp_Down && Flag_connect == 0) //溫度正常
                        {                                               
                                Water = 1;
                                LED_Open = 1;
                                LED_Err = 0;
               
                               
                                for(i = 0; i++ ;i<300) //持續(xù)流水三秒,并顯示水量水溫
                                {
                                        if(Temp_Buffer > Temp_Top || Temp_Buffer > Temp_Down || Flag_connect != 0) //溫度異常提示
                                         {
                                                 Buzzer = 0;
                                                Delay_ms(1000);
                                                Buzzer = 1;
                                         }
                                       
                                        t=MAX6675_ReadReg();                 //讀溫度**************
                                        Flag_connect=t&0x04;                         //讀出數(shù)據(jù)的D2位是熱電偶掉線標(biāo)志位,該位為1表示掉線,該位為0表示連接
                                        Flag_connect=Flag_connect>>2;         //MAX6675是否在線
                                        t = t<<1;                                                   //讀出來的數(shù)據(jù)的D3~D14是溫度值
                                        t = t>>4;
                                        Temp_Buffer = t/4;                                //測得的溫度單位是0.25,所以要乘以0.25(即除以4)才能得到以度為單位的溫度值                         
               
                                         mL = Count * 1000 /450;//每升水450個脈沖
                                        //show
                                        Delay_ms(100);                                       
                                }                                                                
                        }else                                                                  //溫度異常報警1秒
                        {
                                Water = 0;
                                LED_Open = 0;
                                LED_Err = 1;
                                Buzzer = 0;
                                Delay_ms(1000);
                                Buzzer = 1;
                        }
                water();                                //遞歸,再次檢查
        }
        Count = 0;//清空計數(shù)器
}



//****************************************************
//按鍵掃描程序
//****************************************************
void Scan_Key()
{
        if( KEY1 == 0 )                                                 //按鍵1掃描
        {
                Delay_ms(10);                                        //延時去抖
                if( KEY1 == 0 )
                {
                        while(KEY1 == 0);                        //等待松手
                        KEY_NUM = 1;
                }
        }

        if( KEY2 == 0 )                                                //按鍵2掃描
        {
                Delay_ms(10);                                        //延時去抖
                if( KEY2 == 0 )
                {
                        while(KEY2 == 0);                        //等待松手
                        KEY_NUM = 2;
                }
        }

        if( KEY3 == 0 )                                                //按鍵2掃描
        {
                Delay_ms(10);                                        //延時去抖
                if( KEY3 == 0 )
                {
                        while(KEY3 == 0);                        //等待松手
                        KEY_NUM = 3;
                }
        }

        if( KEY4 == 0 )                                                //按鍵2掃描
        {
                Delay_ms(10);                                        //延時去抖
                if( KEY4 == 0 )
                {
                        while(KEY4 == 0);                        //等待松手
                        KEY_NUM = 4;
                }
        }
}

//****************************************************
//MS延時函數(shù)(12M晶振下測試)
//****************************************************
void Delay_ms(unsigned int n)
{
        unsigned int  i,j;
        for(i=0;i<n;i++)
                for(j=0;j<123;j++);
}

//****************************************************
//單片機初始化
//****************************************************
void initial()
{
    IT0=1;//  外部中斷0工作方式(下降沿有效)

    EA=1;
    EX0=1;
    TR0=1; //開中斷         

        Buzzer = 1;
        BAT = 1;
        Water = 0;
        LED_Open = 0;
        LED_Err = 0;
}
//計數(shù)器(流量)
void exter0() interrupt 0
{
        Count++;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 18gay男同69亚洲网站 | 黑色丝袜三级在线播放 | 成人自拍av| 久久精品一 | 精品成人佐山爱一区二区 | 国产专区在线 | 久久精品黄色 | 亚洲天堂中文字幕 | 欧美一级α片 | 国产精品欧美精品 | 九九热这里只有精品6 | 亚洲视频二区 | 毛片免费看 | 天天操夜夜操免费视频 | 伊人艹 | 精品久久久久一区二区国产 | 99视频免费在线观看 | 美日韩精品| 一级在线视频 | 亚洲欧洲综合av | 粉色午夜视频 | 欧美精品一区在线 | 国产亚洲日本精品 | 亚洲一区二区三区免费视频 | 人人人人干 | www.一区二区 | 最近免费日本视频在线 | 日本特黄a级高清免费大片 国产精品久久性 | 国产一区二区三区久久 | 亚洲在线电影 | av网址在线播放 | 成人在线小视频 | 国产成人精品一区二区三区在线 | 操网站| 成人超碰| 一区二区三区精品在线 | 国产一区二区三区 | 久久久久久亚洲精品 | cao视频 | 久久综合伊人 | 国产在线观看免费 |