📄 main.c
字号:
#include"pic.h"
#include"LED.h"
#include"Main.h"
__CONFIG (HS & PWRTDIS & LVPDIS & BORDIS & WDTDIS&DUNPROT);
extern const unsigned Tem_Table[100];
bank1 extern unsigned char Time_data[10];
bank1 extern unsigned char Temp_data[11];
bank1 extern unsigned char Display_data[24];
extern struct _Key_Inf_ Key_Inf;
extern unsigned Timer1;
extern unsigned Timer2,Timer3,Timer4;
extern unsigned char Timer2_PreScale_Counter;
extern unsigned Timer3_PreScale_Counter;
extern unsigned char Timer4_PreScale_Counter;
union _Task Task;
unsigned char Mode=0;
extern unsigned char Beep_Counter;
extern unsigned char Beep;
extern unsigned AD1_Value,AD0_Value;
bit AD_turn;
unsigned char Timer2_Pross_Counter,Timer2_Pross;
void main(void)
{ TRISC=0;
TRISB=0;
PORTC=0;
PORTB=0;
// Data_INT();//开机做这步
// Beep_Counter=eeprom_read(0);
CPU_INT();
while(1)
{
switch(Mode)
{
case Off:
Off_Mode();
break;
case Setting:
Setting_Mode();
break;
case Working:
Work_Mode();
break;
}
/* if((Key_Inf.Status==Press_Down)&&(Key_Inf.Response==1))
{
if(Key_Inf.KeyCode==10)
{
Display_data[0x00]=Time_data[9];
Display_data[0x01]=Time_data[9];
Display_data[0x02]=Time_data[9]+1;
Display_data[0x03]=Time_data[9];
Display_data[0x08]=Temp_data[8];
Display_data[0x09]=Temp_data[10];
Display_data[14]=Display_data[14]|0x80;
Exposure_Time_Enlable=1;
}
if(Key_Inf.KeyCode==5)
{
Display_data[0x04]=Time_data[9];
Display_data[0x05]=Time_data[9];
Display_data[0x06]=Time_data[9];
Display_data[0x07]=Time_data[9];
Exposure_Time_Enlable=1;
}
}
else if(Key_Inf.Status==Press_Hold)
{
}*/
/* if((Key_Inf.Status==Press_Down)&&(Key_Inf.Response==1))
{
Display_data[0x00]=Time_data[Key_Inf.KeyCode];
Key_Inf.Response=0;
}
else if(Key_Inf.Status==Press_Hold)
{
Display_data[0x00]=Time_data[(unsigned char)(j++)/25];
}*/
}
}
void interrupt IRQ(void)
{
unsigned char i;
if(TMR1IF)
{
TMR1=0x9e50;
TMR1IF=0;
if(Task.Flag.timer1_Enlable==1)
{
Timer1--;
}
if(Task.Flag.timer2_Enlable==1)
{
if(Timer2_PreScale_Counter==9)
{
Timer2--;
Timer2_PreScale_Counter=0;
Timer2_Pross_Counter++;
}
else
{
Timer2_PreScale_Counter++;
}
switch(Timer2_Pross)
{
case 0://7路高10S
{
if(Timer2_Pross_Counter==10)
{
Timer2_Pross_Counter=0;
Timer2_Pross++;
}
else
{
Timer2_Control1=0;
Timer2_Control2=1;
}
break;
}
case 2://8路高10S
{
if(Timer2_Pross_Counter==10)
{
Timer2_Pross_Counter=0;
Timer2_Pross++;
}
else
{
Timer2_Control1=1;
Timer2_Control2=0;
}
break;
}
default://2路低2S
{
if(Timer2_Pross_Counter==2)
{
Timer2_Pross_Counter=0;
if(Timer2_Pross==3)
Timer2_Pross=0;
else
Timer2_Pross++;
}
else
{
Timer2_Control1=1;
Timer2_Control2=1;
}
}
}
}
else
{ Timer2_Control1=1;
Timer2_Control2=1;
}
if(Task.Flag.timer3_Enlable==1)
{
if(Timer3_PreScale_Counter==599)
{
Timer3--;
Timer3_PreScale_Counter=0;
}
else
{
Timer3_PreScale_Counter++;
}
}
if(Task.Flag.timer4_Enlable==1)
{
if(Timer4_PreScale_Counter==9)
{
Timer4--;
Timer4_PreScale_Counter=0;
}
else
{
Timer4_PreScale_Counter++;
}
}
if(Beep_Counter>0)
{
Beep=1;
Beep_Counter--;
}
else
{
Beep=0;
}
if(!ADGO)
{
if(AD_turn==0)
{
AD_turn=1;ADCON0=0b10001001;
AD0_Value=(AD0_Value-AD0_Value/4)+(ADRESH*256+ADRESL)/4;
ADCON0=0b10001101;
}
else
{
AD_turn=0;ADCON0=0b10000001;
AD1_Value=(AD1_Value-AD1_Value/4)+(ADRESH*256+ADRESL)/4;
ADCON0=0b10000101;
}
}
}
else if(T0IF)
{
TMR0=0x0a;
Display();
Key_Scan();
T0IF=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -