找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

請(qǐng)幫忙看看為什么我的顯示未調(diào)用 求幫助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:721540 發(fā)表于 2020-5-13 16:51 來自觸屏版 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
extern int temp_value_;        //聲明外部變量extern int temp_value;        //聲明外部變量//數(shù)字?jǐn)?shù)組uchar Number[10] = { '0','1','2','3','4','5','6','7','8','9' };uchar SET_Temp = 25;uchar Counter = 0;uchar FLAG = 0;                //標(biāo)志車窗狀態(tài)的標(biāo)志位 0:車窗關(guān)閉 1:車窗1擋 2:車窗2擋uchar FLAG_ = 0;    //煙霧濃度標(biāo)志位 0:正常 1:異常uchar Start_FLAG = 1;//毫秒級(jí)延時(shí)函數(shù)static void Delay_ms(uint ms){        uint a, b;        for (a = ms; a > 0; a--)                for (b = 112; b > 0; b--);}//定時(shí)器初始化void Init_Timer0(void){        TMOD |= 0x01;                                                //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響                             TH0 = (65535 - 30000) / 256;                //給定初值,50ms        TL0 = (65535 - 30000) % 256;        EA = 1;                                                                //總中斷打開        ET0 = 1;                                                        //定時(shí)器中斷打開        TR0 = 1;                                                        //定時(shí)器開關(guān)打開}//定時(shí)器0中斷服務(wù)函數(shù)void Timer0_isr(void) interrupt 1 using 1{        TH0 = (65535 - 30000) / 256;                //給定初值,50ms        TL0 = (65535 - 30000) % 256;                 Counter++;        if (Counter <= 2 + abs(SET_Temp- temp_value)/3)                //差值每超過3℃,PWM+1        {                ENA = 1;        }        else        {                ENA = 0;                if (Counter == 10)                {                        Counter = 0;                }        }//        if (Start_FLAG == 1)//        {//                LCD_Write_Char(11, 0, Number[temp_value_ / 10]);                //車外溫度//                LCD_Write_Char(12, 0, Number[temp_value_ % 10]);                //////                LCD_Write_Char(4, 0, Number[temp_value / 10]);                        //車內(nèi)溫度//                LCD_Write_Char(5, 0, Number[temp_value % 10]);                        //////                LCD_Write_Char(11, 1, Number[Read0832(0) / 100]);            //煙霧//                LCD_Write_Char(12, 1, Number[Read0832(0) % 100 / 10]);        ////                LCD_Write_Char(13, 1, Number[Read0832(0) % 10]);            //////                LCD_Write_Char(4, 1, Number[SET_Temp / 10]);                        //設(shè)定溫度十位//                LCD_Write_Char(5, 1, Number[SET_Temp % 10]);                        //設(shè)定溫度個(gè)位////                LCD_Write_Char(15, 1, Number[FLAG]);                                        //車窗狀態(tài)//        }}//事務(wù)處理void Headle(void){        //加        if (Up == 0)        {                Delay_ms(100);                if (Up == 0)                {                        if (SET_Temp < 50)                        {                                SET_Temp++;                        }                }        }                //減        if (Down == 0)        {                Delay_ms(100);                if (Down == 0)                {                        if (SET_Temp > 10)                        {                                SET_Temp--;                        }                }        }        //系統(tǒng)啟動(dòng)//        if (Start == 0)//        {//                Delay_ms(100);//                if (Start == 0)//                {//                        Start_FLAG = ~Start_FLAG;//                        LCD_Clear();//                }//        }        //如果車內(nèi)溫度低于設(shè)定溫度10°以上,開始制熱        if (temp_value < SET_Temp - 10)        {                //沒有煙霧的時(shí)候,開空調(diào)需要關(guān)閉窗戶,因?yàn)閷?duì)窗戶的控制,煙霧的優(yōu)先級(jí)最高,所以有煙霧時(shí),即使開空調(diào),窗戶也不關(guān)閉                if (FLAG_ == 0)                        //FLAG_ == 0說明沒有煙霧                {                        //如果車窗是1擋                        if (FLAG == 1)                        {                                CC_1 = 0;                                CC_2 = 1;                                ENB = 1;                                Delay_ms(1000);        //延時(shí)5秒                                ENB = 0;                                FLAG = 0;                //車窗關(guān)閉                        }                        //如果車窗是2擋                        if (FLAG == 2)                        {                                CC_1 = 0;                                CC_2 = 1;                                ENB = 1;                                Delay_ms(2000);        //延時(shí)10秒                                ENB = 0;                                FLAG = 0;                //車窗關(guān)閉                        }                }//                if(Start_FLAG==1)//                {                        LCD_Write_Char(15, 0, 'H');    //液晶顯示制冷字符//                }                  KT_1 = 1;                KT_2 = 0;//                ENA = 1;                                          //電機(jī)開始轉(zhuǎn)動(dòng)        }        //如果車內(nèi)溫度高于設(shè)定溫度6°以上,開始制冷        if (temp_value > SET_Temp + 6 )        {                //沒有煙霧的時(shí)候,開空調(diào)需要關(guān)閉窗戶,因?yàn)閷?duì)窗戶的控制,煙霧的優(yōu)先級(jí)最高,所以有煙霧時(shí),即使開空調(diào),窗戶也不關(guān)閉                if (FLAG_ == 0)                {                        //如果車窗是1擋                        if (FLAG == 1)                        {                                CC_1 = 0;                                CC_2 = 1;                                ENB = 1;                                Delay_ms(1000);        //延時(shí)5秒                                ENB = 0;                                FLAG = 0;                //車窗關(guān)閉                        }                        //如果車窗是2擋                        if (FLAG == 2)                        {                                CC_1 = 0;                                CC_2 = 1;                                ENB = 1;                                Delay_ms(2000);        //延時(shí)10秒                                ENB = 0;                                FLAG = 0;                //車窗關(guān)閉                        }                }//                if (Start_FLAG == 1)//                {                        LCD_Write_Char(15, 0, 'C');    //液晶顯示制熱字符//                }                KT_1 = 1;                KT_2 = 0;//                ENA = 1;                                          //電機(jī)開始轉(zhuǎn)動(dòng)        }        //如果車內(nèi)溫度高于設(shè)定溫度0-6°以內(nèi),且沒有煙霧,開車窗要分擋位        if (( temp_value >= SET_Temp )&&( temp_value <= SET_Temp + 6) && FLAG_ == 0)        {                //0-3 車窗開1擋                if (temp_value >= SET_Temp&&temp_value <= SET_Temp + 3)                {                        if (FLAG == 0)                        {                                CC_1 = 1;                                CC_2 = 0;                                ENB = 1;                                Delay_ms(1000);        //延時(shí)1秒                                ENB = 0;                                FLAG = 1;                        }                        if (FLAG == 2)                        {                                CC_1 = 0;                                CC_2 = 1;                //反轉(zhuǎn)關(guān)窗                                ENB = 1;                                Delay_ms(1000);        //延時(shí)2秒                                ENB = 0;                                FLAG = 1;                        }                }                //3-6 車窗開2擋                if (temp_value > SET_Temp+3)                {                        if (FLAG == 0)                        {                                CC_1 = 1;                                CC_2 = 0;                                ENB = 1;                                Delay_ms(2000);        //延時(shí)2秒                                ENB = 0;                                FLAG = 2;                        }                        if (FLAG == 1)                        {                                CC_1 = 1;                                CC_2 = 0;                                ENB = 1;                                Delay_ms(1000);        //延時(shí)1秒                                ENB = 0;                                FLAG = 2;                        }                }        }        //溫度正常,空調(diào)不啟動(dòng)        if (temp_value >= SET_Temp - 10 && temp_value <= SET_Temp + 6)        {                KT_1 = 0;                KT_2 = 0;                                                        //空調(diào)關(guān)閉//                if (Start_FLAG == 1)//                {                        LCD_Write_Char(15, 0, ' ');                //液晶不顯示空調(diào)//                }        }        //煙霧濃度較高,開兩檔車窗        if (Read0832(0) > 200 && FLAG != 2)        {                if (FLAG == 1)                {                        CC_1 = 1;                        CC_2 = 0;                        ENB = 1;                        Delay_ms(1000);//延時(shí)1秒                        ENB = 0;                }                if (FLAG == 0)                {                        CC_1 = 1;                        CC_2 = 0;                        ENB = 1;                        Delay_ms(2000);//延時(shí)2秒                        ENB = 0;                }                FLAG = 2;                FLAG_ = 1;        }        //煙霧濃度正常        if (Read0832(0) <= 200)        {                FLAG_ = 0;        }}/***************************************** 函數(shù)功能:主函數(shù) 傳入?yún)?shù):無(wú) 返回參數(shù):無(wú) 其它說明:無(wú)******************************************/void main(){        Init_DS18B20_();        LCD_Init();        Init_Timer0();//定時(shí)器初始化        do        {                ReadTemp_();                }while(temp_value_==85);        do        {                ReadTemp();                }while(temp_value == 85);        LCD_Write_String(1, 0, "IN:");        LCD_Write_String(7, 0, "OUT:");        LCD_Write_String(0, 1, "SET:");        LCD_Write_String(7, 1, "FOG:");        while(1)         {                  ReadTemp_();  //車外溫度讀取                ReadTemp();          //車內(nèi)溫度讀取                Headle();//                if (Start_FLAG == 1)//                {                        LCD_Write_Char(11, 0, Number[temp_value_ / 10]);                //車外溫度                        LCD_Write_Char(12, 0, Number[temp_value_ % 10]);                //                        LCD_Write_Char(4, 0, Number[temp_value / 10]);                        //車內(nèi)溫度                        LCD_Write_Char(5, 0, Number[temp_value % 10]);                        //                        LCD_Write_Char(11, 1, Number[Read0832(0) / 100]);            //煙霧                        LCD_Write_Char(12, 1, Number[Read0832(0) % 100 / 10]);        //                        LCD_Write_Char(13, 1, Number[Read0832(0) % 10]);            //                        LCD_Write_Char(4, 1, Number[SET_Temp / 10]);                        //設(shè)定溫度十位                        LCD_Write_Char(5, 1, Number[SET_Temp % 10]);                        //設(shè)定溫度個(gè)位                        LCD_Write_Char(15, 1, Number[FLAG]);                                        //車窗狀態(tài)//                }        }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表