⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 show.c

📁 电机测速程序,用nec芯片,5mhz晶振,调试通过
💻 C
字号:
#define SUBRAM
#include "ram.c"

#define LEDon       0
#define LEDoff      1

void show_5led_sub();
void show_DSY_sub();
void show_yiliu_sub();
void power_on_show(),power_off_show();
void show_exchange(),flash_cnt();

const unsigned char dig_tab[]={
	0b00000011,  /*0*/
	0b10011111,
	0b00100101,
	0b00001101,
	0b10011001,
	0b01001001,
	0b01000001,
	0b00011011,
	0b00000001,
	0b00001001,
	0b00010001,
	0b11000001,
	0b01100011,
	0b10000101,  /*d*/
	0b01100001,
	0b01110001,  /*f,15*/
	0b11111111,  /*关,17*/
	
	};

/*-----------------*/
void showsub()
{
	if ((JX1 == 1) && (JX2 == 1))
	{
		show_type = 0;	/*5灯显示*/
	}
	else
	{
		if ((JX1 == 0) && (JX2 == 0))
		{
			show_type = 1;	/*数码管室温*/
		}
		else
		{
			if ((JX1 == 0) && (JX2 == 1))
			{
				show_type = 2;	/*数码管设定温度*/
			}
			else
			{
				show_type = 3;	/*预留*/
			}						
		}		
	}
	
    switch (show_type)/*四种显示模式*/
    {
    	case 0:
    		show_5led_sub();	/*5灯显示*/
    	break;
    	case 1:
    		show_DSY_sub();	/*数码管显示*/
    	break;
    	case 2:
    		show_DSY_sub();	/*数码管显示*/
    	break;
    	default:
    		show_yiliu_sub();/*预留*/
    	break;    	
    }
}    
/*-------------*/  
/*5led灯显示*/  
void show_5led_sub()
{
    if (power)
    {
        if (!abnormal)
        {
            if (comp)
            {
                runLED = LEDon;
            }
            else
            {
                runLED = LEDoff;
            }

            if (rmot_fancode == rmot_fanSleep_1)
            {
                sleepLED = LEDon;
            }
            else
            {
                sleepLED = LEDoff;
            }
            
            if ((emergency_test == 1) || (emergency == 1))
            {
            	turboLED = LEDoff;
            }
            else
            {
	            if (rmot_fancode == rmot_fanVHi_6)/*强力风速*/
	            {
	            	turboLED = LEDon;
	            }
	            else
	            {
	            	turboLED = LEDoff;
	            }
            }            
        }
        else
        {
            runLED = LEDoff;
            sleepLED = LEDoff;
            turboLED = LEDoff;
        }

        if (roomtemp_err || incoiltemp_err || fan_err || outcoiltemp_err)
        {
            if (flash05sflg)
            {
                flash05sflg = 0;

                flashcnt++;

                #define mieT        10
                if (flashcnt >= mieT)
                {
                    if (flashcnt.0 == 0)
                    {
                        powerLED = LEDoff;
                        power35LED = LEDoff;
                    }
                    else
                    {
                        powerLED = LEDon;
                        power35LED = LEDon;
                    }

                    #define room_err_times  mieT + 3
                    #define coil_err_times  mieT + 7
                    #define fan_err_times   mieT + 5
                    #define outcoil_err_times   mieT + 9

                    if (roomtemp_err)
                    {
                        tempa = room_err_times;
                    }
                    else
                    {
                        if (incoiltemp_err)
                        {
                            tempa = coil_err_times;
                        }
                        else
                        {
                            if (fan_err)
                            {
                            	tempa = fan_err_times;
                            }
                            else
                            {
                            	tempa = outcoil_err_times;
                            }
                        }
                    }

                    if (flashcnt >= tempa)
                    {
                        flashcnt = 0x00;
                    }
                }
                else
                {
                    powerLED = LEDon;
                    power35LED = LEDon;
                }
            }
        }
        else
        {
            powerLED = LEDon;
            power35LED = LEDon;
        }
    }
    else
    {
        runLED = LEDoff;
        sleepLED = LEDoff;
        turboLED = LEDoff;

        if (timer)
        {
            powerLED = LEDon;
            power35LED = LEDon;
        }
        else
        {
            powerLED = LEDoff;
            power35LED = LEDoff;
        }
    }

    if (!abnormal)
    {
        if (timer)
        {
            timerLED = LEDon;
        }
        else
        {
            timerLED = LEDoff;
        }
    }
    else
    {
        timerLED = LEDoff;
    }
}
/*-------------------------------*/
/*传递参数:show_buff[0],show_buff[1],led_show*/
/*-------------------------------*/
/*数码管显示*/
void show_DSY_sub()
{
	if (power)
	{
		power_on_show();
	}
	else
	{
		power_off_show();
	}	

}

/*-------------------------------*/
void show_yiliu_sub()
{
	NOP();
	NOP();
}

/**********************************/
void power_on_show()
{
	DSYpowerLED	= LEDon;
	power35LED = LEDon;

	if (!abnormal)
	{
		DSYrinseLED	= !rinse_flg;
		DSYcleanLED	= !clean;
		DSYtimerLED	= !timer;
	

		if (comp)
		{
			DSYrunLED	= LEDon;
		}
		else
		{
			DSYrunLED	= LEDoff;
		}
		/*---*/
        if (rmot_fancode == rmot_fanSleep_1)
        {
			DSYsleepLED	= LEDon;
        }
        else
        {
			DSYsleepLED	= LEDoff;
        }
		/*---*/
        if (rmot_fancode == rmot_fanVHi_6)/*强力风速*/
        {
			DSYturboLED	= LEDon;
        }
        else
        {
			DSYturboLED	= LEDoff;
        }
		/*---*/
		
		if (temptime >= roomtime)
		{
			if (show_type == 1)
			{
				show_data = roomtemp;
			}
			else
			{
				if (mode == fan)
				{
					show_data = roomtemp;
				}
				else
				{
					show_data = settemp;
				}				
			}
			
			show_exchange();
			show_buff[0] = dig_tab[show_dataH];
			show_buff[1] = dig_tab[show_dataL];
		}
		else
		{
			show_data = settemp;
			show_exchange();
			flash_cnt();
			if (flash_flg)
			{
				show_buff[0] = 0xff;
				show_buff[1] = 0xff;
			}
			else
			{
				show_buff[0] = dig_tab[show_dataH];
				show_buff[1] = dig_tab[show_dataL];
			}		
		}
	}
	else
	{
		DSYrunLED	= LEDoff;
		DSYsleepLED	= LEDoff;
		DSYturboLED	= LEDoff;
		DSYcleanLED	= LEDoff;
		DSYrinseLED	= LEDoff;
		DSYtimerLED	= LEDoff;
		if (roomtemp_err)/*E2*/
		{
			show_buff[0] = dig_tab[14];
			show_buff[1] = dig_tab[2];
		}
		else
		{
			if (incoiltemp_err)/*E1*/
			{
				show_buff[0] = dig_tab[14];
				show_buff[1] = dig_tab[1];
			}
			else
			{
				if (fan_err)/*E6*/
				{
					show_buff[0] = dig_tab[14];
					show_buff[1] = dig_tab[6];
				}
				else
				{
					if (outcoiltemp_err)/*E3*/
					{
						show_buff[0] = dig_tab[14];
						show_buff[1] = dig_tab[3];
					}					
				}								
			}			
		}
	}
}
/*--------------------------------*/
void power_off_show()
{
	DSYrunLED	= LEDoff;
	DSYsleepLED	= LEDoff;
	DSYturboLED	= LEDoff;
	DSYcleanLED	= LEDoff;
	DSYrinseLED	= LEDoff;
	
	show_buff[0] = 0xff;/*关显示*/
	show_buff[1] = 0xff;	
		
	if (timer)
	{
		DSYpowerLED	= LEDon;
		power35LED = LEDon;
		if (!abnormal)
		{
			DSYtimerLED	= LEDon;
		}
		else
		{
			DSYtimerLED	= LEDoff;
		}		
	}
	else
	{
		DSYpowerLED	= LEDoff;
		power35LED = LEDoff;
		DSYtimerLED	= LEDoff;
	}		
}
/*--------------------------------*/
/*拆数显示*/
void show_exchange()
{
	show_data_bak = show_data;

	if (show_data_bak >= 99)
	{
		show_data_bak = 99;			
	}
		
	tempa = show_data_bak;
	tempb = 0x00;
	if (tempa >= 10)
	{
		do 
		{
			tempa = tempa - 10;
			tempb = tempb + 1;			
		}while(tempa >= 10);			
	}
		
	show_dataH = tempb;
	show_dataL = tempa;
}
/*----------------------------------*/
/*每隔0.3ms设置数码管闪标志,亮时间是灭时间的2倍*/
void flash_cnt()
{
	if (flash_ms == 1)
	{
		flash_ms = 0;
	    if (flash_flg == 0)
	    {
	    	if (++flash_T_cnt >= 2)
	        {
				flash_T_cnt = 0x00;
			    flash_flg = 1;
	        }
	    }	
	    else
	    {               	
	    	flash_flg = 0;
	    }
	}
}
/*----------------------------------*/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -