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

📄 main_c.c

📁 加热足浴盆picc源程序,芯片pic16c57
💻 C
📖 第 1 页 / 共 2 页
字号:
//2006-02-20
//2006-03-02
#include	<pic.h>
#include	<pic16f5x.h>
#include	"main_h.h"
#define		__pic16f57
#define	 	NULL 0  
__CONFIG(WDTEN & XT & UNPROTECT);
__IDLOC(0839);
//=================================================================
//	unsigned	char	led_temp1=0,led_temp2=0;
//	unsigned	char	led_temp3=0;
//##############################################################      
//函数声明
//###########################################
//fastcall	extern	void	time();
//----------------------------------------------------------------------
//函数功能:上电寄存器初始化
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------

void 	init() //初始化			//-------------
{ 
	asm("clrwdt");
	OPTION =0x03;              //Set WDT=1:8 
	TMR0=0;
	TRISA=0x05; 
	TRISB=0x7d;
	TRISC=0x00;
	PORTA=0;
	PORTB=0;
	PORTC=0;
	flag0=0x00;
	GN_flag=0;
	flag3=0;
	beep_fg=1;
	led_pub_sel=4;
	FALSH_FG_0=0;
	FALSH_FG=1;
	tem_data1=45;
	t3=TIME_DEFINE;
}
////
//----------------------------------------------------------------------
//函数功能:按键延时,10*4ms
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
unsigned char	key_delay()		//-------------
{	
	if(!have_key_fg)
	{
	key_delay_count--;
	if(key_delay_count==0)
		{
			key_delay_count=10;	
			have_key_fg=1;//have key
			beep_fg=1;
			return(1);
		}
	return(0);
	}
	else
		return(0);		
}
//----------------------------------------------------------------------
//函数功能:电源键处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
void	power_key_cl()			//-------------
{
	if(key_delay())
	{
	//	power_fg!=power_fg;
		flag0^=0x01;
		flag0&=0x07;
		t1=0;
		t2=0;
		t3=TIME_DEFINE;
		CHONLANG_FG=0;
		JIRE_FG=0;
		TIME_DISP_FG=0;
	//	tem_data1=45;		//开机时默认设定温度	
	//real_temp=40;/////////////////////////////////////////////
		real_temp_old=0;
	}	

}
//----------------------------------------------------------------------
//函数功能:加温键处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
void	add_tkey_cl()			//-------------
{
	if(key_delay())
	{
		if(!JIRE_FG)
			JIRE_FG_0=1;
		CHONLANG_FG=1;
		JIRE_FG=1;
		SEC_0=0;SEC_1=0;
		FALSH_FG_0=1;
		FALSH_FG=1;
		TIME_DISP_FG=0;
		if(TEMP_DISP_FG)
			{
				tem_data1++;
				if(tem_data1>=48)
					tem_data1=47;
			//	else	return;
			}
		else	
			TEMP_DISP_FG=1;
		
	}

}
//----------------------------------------------------------------------
//函数功能:减温键处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
void	dec_tkey_cl()			//-------------
{
	if(key_delay())
	{
		if(!JIRE_FG)
			JIRE_FG_0=1;
		CHONLANG_FG=1;
		JIRE_FG=1;
		SEC_0=0;SEC_1=0;
		FALSH_FG_0=1;
		FALSH_FG=1;
		TIME_DISP_FG=0;
		if(TEMP_DISP_FG)
			{
				tem_data1--;
				if(tem_data1<=35)
					tem_data1=35;
			//	else	return;
			}
		else	
			TEMP_DISP_FG=1;
		
	}
}
//----------------------------------------------------------------------
//函数功能:定时键处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
void	time_key_cl()				//-------------
{
	if(key_delay())
	{
		SEC_0=0;SEC_1=0;
		FALSH_FG_0=1;
		FALSH_FG=1;	
		TEMP_DISP_FG=0;
		if(TIME_DISP_FG)
		{
			t1=t2=0;	
			if(t3>10)
			{	if(gw_zc==0)//个位
					t3-=10;
				else
					t3-=gw_zc;
			}
			else	
				t3=60;	
		}	
		else
			TIME_DISP_FG=1;	
	}
}
//----------------------------------------------------------------------
//函数功能:振动键处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
void	zhendon_key_cl()		//-----------
{
	if(key_delay())
	{

		flag0^=0x20;//	 	ZHENDON_FG!=ZHENDON_FG;
	
	}
}
//----------------------------------------------------------------------
//函数功能:汽泡/臭氧键处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
void	qp_cy_key_cl()			//-----------
{
	if(key_delay())
	{
		if(QP_FG)
		{	if(CY_FG)
				{	QP_FG=0;CY_FG=0;}//11
			else
				{	QP_FG=1;CY_FG=1;}//10
		}
		else	
			{	if(CY_FG)
					{	QP_FG=0;CY_FG=0;}//01
				else
					{	QP_FG=1;CY_FG=0;}//00
			}
	}

}	
	
//----------------------------------------------------------------------
//函数功能:按键描扫
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
void	KeyScan()				//-----------
{
	TRISB=0x7d;	
	asm("nop");
	LED_SLE=0;
	LEDGW_SLE=0;
	LEDSW_SLE=0;	
	if(POWER_KG)
		power_key_cl();
	else
	{
		if(power_fg)	
		{
			if(ADD_TKEY)
				add_tkey_cl();
			else
			{
				if(DEC_TKEY)
					dec_tkey_cl();
				else
				{
					if(TIME_KEY)
						time_key_cl();
					else
					{
						if(ZHENDON_KEY)
							zhendon_key_cl();
						else
						{	
							if(QP_CY_KEY)
								qp_cy_key_cl();
							else
								{
									key_delay_count=10;
									have_key_fg=0;		
								}
						}
					}

				}
			}
		}
		else
			{	key_delay_count=10;
				have_key_fg=0;
				
			}	
	}
}


//----------------------------------------------------------------------
//函数功能:数码管十位显示处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------

void	led_sw_cl()
{

	unsigned	char	led_temp1,led_temp2;
	led_temp1=led_data/10;
	TRISB=0x00;
	PORTB&=0x82;
	led_temp2=led_table[led_temp1];
	if(!power_fg)
		led_temp2=0x3f;//0
	if(FUN_ERROR_FG)
		led_temp2=0x7a;//E
	PORTB=led_temp2;
//
	LED_SLE=0;
	LEDGW_SLE=0;	
	if(FALSH_FG_0&(!FALSH_FG))
		{
			LEDSW_SLE=0;	//off_xs	
		}
	else
		{
			LEDSW_SLE=1;	//open sw

		}
		
}
//----------------------------------------------------------------------
//函数功能:数码管个位显示处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
	
void	led_gw_cl()
{

	unsigned	char	led_temp3;
	TRISB=0x00;
	PORTB&=0x82;
	led_temp3=led_table[gw_zc=led_data%10];
	if(!power_fg)
		led_temp3=0x72;//F
	if(FUN_ERROR_FG)
		led_temp3=0x3f;//0
	PORTB=led_temp3;
//
	LEDSW_SLE=0;
	LED_SLE=0;
	if(FALSH_FG_0&(!FALSH_FG))
		{
			LEDGW_SLE=0;
		}//off_xsled();		
	else
		{
			LEDGW_SLE=1;
		}				//open gw

}
//----------------------------------------------------------------------
//函数功能:发光二极管显示处理
//输入参数:
//返回参数:
//创建时期:
//----------------------------------------------------------------------
void	led_led()
{

	TRISB=0x00;
	asm("nop");
	asm("nop");	
	asm("nop");	
	PORTB&=0x80;
	if(power_fg)
		LED1=1;
	if(CHONLANG_FG)
		LED2=1;
	if(!CHAOWEN_FG&JIRE_FG&(!JIRE_FG_0))
		LED3=1;		
	if(FALSH_FG&CHAOWEN_FG_LED)
		LED4=1;
	if(ZHENDON_FG)
		LED5=1;
	if(QP_FG)
		LED6=1;
	if(CY_FG)
	{	LED6=0;
		LED7=1;
	}
	LEDSW_SLE=0;
	LED_SLE=1;
	LEDGW_SLE=0;			
}
//----------------------------------------------------------------------
//函数功能:显示处理
//输入参数:led_pub_sel,t3,tem_data1,real_temp
//返回参数:

⌨️ 快捷键说明

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