找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请帮忙看看为什么我的显示未调用 求帮助

[复制链接]
跳转到指定楼层
楼主
ID:721540 发表于 2020-5-13 16:51 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
extern int temp_value_;        //声明外部变量extern int temp_value;        //声明外部变量//数字数组uchar Number[10] = { '0','1','2','3','4','5','6','7','8','9' };uchar SET_Temp = 25;uchar Counter = 0;uchar FLAG = 0;                //标志车窗状态的标志位 0:车窗关闭 1:车窗1挡 2:车窗2挡uchar FLAG_ = 0;    //烟雾浓度标志位 0:正常 1:异常uchar Start_FLAG = 1;//毫秒级延时函数static void Delay_ms(uint ms){        uint a, b;        for (a = ms; a > 0; a--)                for (b = 112; b > 0; b--);}//定时器初始化void Init_Timer0(void){        TMOD |= 0x01;                                                //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响                             TH0 = (65535 - 30000) / 256;                //给定初值,50ms        TL0 = (65535 - 30000) % 256;        EA = 1;                                                                //总中断打开        ET0 = 1;                                                        //定时器中断打开        TR0 = 1;                                                        //定时器开关打开}//定时器0中断服务函数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]);                        //车内温度//                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]);                        //设定温度十位//                LCD_Write_Char(5, 1, Number[SET_Temp % 10]);                        //设定温度个位////                LCD_Write_Char(15, 1, Number[FLAG]);                                        //车窗状态//        }}//事务处理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--;                        }                }        }        //系统启动//        if (Start == 0)//        {//                Delay_ms(100);//                if (Start == 0)//                {//                        Start_FLAG = ~Start_FLAG;//                        LCD_Clear();//                }//        }        //如果车内温度低于设定温度10°以上,开始制热        if (temp_value < SET_Temp - 10)        {                //没有烟雾的时候,开空调需要关闭窗户,因为对窗户的控制,烟雾的优先级最高,所以有烟雾时,即使开空调,窗户也不关闭                if (FLAG_ == 0)                        //FLAG_ == 0说明没有烟雾                {                        //如果车窗是1挡                        if (FLAG == 1)                        {                                CC_1 = 0;                                CC_2 = 1;                                ENB = 1;                                Delay_ms(1000);        //延时5秒                                ENB = 0;                                FLAG = 0;                //车窗关闭                        }                        //如果车窗是2挡                        if (FLAG == 2)                        {                                CC_1 = 0;                                CC_2 = 1;                                ENB = 1;                                Delay_ms(2000);        //延时10秒                                ENB = 0;                                FLAG = 0;                //车窗关闭                        }                }//                if(Start_FLAG==1)//                {                        LCD_Write_Char(15, 0, 'H');    //液晶显示制冷字符//                }                  KT_1 = 1;                KT_2 = 0;//                ENA = 1;                                          //电机开始转动        }        //如果车内温度高于设定温度6°以上,开始制冷        if (temp_value > SET_Temp + 6 )        {                //没有烟雾的时候,开空调需要关闭窗户,因为对窗户的控制,烟雾的优先级最高,所以有烟雾时,即使开空调,窗户也不关闭                if (FLAG_ == 0)                {                        //如果车窗是1挡                        if (FLAG == 1)                        {                                CC_1 = 0;                                CC_2 = 1;                                ENB = 1;                                Delay_ms(1000);        //延时5秒                                ENB = 0;                                FLAG = 0;                //车窗关闭                        }                        //如果车窗是2挡                        if (FLAG == 2)                        {                                CC_1 = 0;                                CC_2 = 1;                                ENB = 1;                                Delay_ms(2000);        //延时10秒                                ENB = 0;                                FLAG = 0;                //车窗关闭                        }                }//                if (Start_FLAG == 1)//                {                        LCD_Write_Char(15, 0, 'C');    //液晶显示制热字符//                }                KT_1 = 1;                KT_2 = 0;//                ENA = 1;                                          //电机开始转动        }        //如果车内温度高于设定温度0-6°以内,且没有烟雾,开车窗要分挡位        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);        //延时1秒                                ENB = 0;                                FLAG = 1;                        }                        if (FLAG == 2)                        {                                CC_1 = 0;                                CC_2 = 1;                //反转关窗                                ENB = 1;                                Delay_ms(1000);        //延时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);        //延时2秒                                ENB = 0;                                FLAG = 2;                        }                        if (FLAG == 1)                        {                                CC_1 = 1;                                CC_2 = 0;                                ENB = 1;                                Delay_ms(1000);        //延时1秒                                ENB = 0;                                FLAG = 2;                        }                }        }        //温度正常,空调不启动        if (temp_value >= SET_Temp - 10 && temp_value <= SET_Temp + 6)        {                KT_1 = 0;                KT_2 = 0;                                                        //空调关闭//                if (Start_FLAG == 1)//                {                        LCD_Write_Char(15, 0, ' ');                //液晶不显示空调//                }        }        //烟雾浓度较高,开两档车窗        if (Read0832(0) > 200 && FLAG != 2)        {                if (FLAG == 1)                {                        CC_1 = 1;                        CC_2 = 0;                        ENB = 1;                        Delay_ms(1000);//延时1秒                        ENB = 0;                }                if (FLAG == 0)                {                        CC_1 = 1;                        CC_2 = 0;                        ENB = 1;                        Delay_ms(2000);//延时2秒                        ENB = 0;                }                FLAG = 2;                FLAG_ = 1;        }        //烟雾浓度正常        if (Read0832(0) <= 200)        {                FLAG_ = 0;        }}/***************************************** 函数功能:主函数 传入参数:无 返回参数:无 其它说明:无******************************************/void main(){        Init_DS18B20_();        LCD_Init();        Init_Timer0();//定时器初始化        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();          //车内温度读取                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]);                        //车内温度                        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]);                        //设定温度十位                        LCD_Write_Char(5, 1, Number[SET_Temp % 10]);                        //设定温度个位                        LCD_Write_Char(15, 1, Number[FLAG]);                                        //车窗状态//                }        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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