📄 main_c.c
字号:
//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 + -