📄 int.c
字号:
#include "global.h"
#include "int.h"
void Int_Ini(void)
{
WatchDog;//启动看门狗
TMOD = 0x11;//定时器1和0都是模式1,十六位计数器
TH0 = 0xf0; //定时器0用来作为中断显示,定时5毫秒
TL0 = 0x60;
TR0 = 0; //关定时0
TH1 = 0x5d;//定时25ms
TL1 = 0x3d;
TR1 = 0; //关定时器1
T2CON = 0x30;
// T2MOD = 0x00;
RCAP2H = 0xFE;
TH2 = RCAP2H;
RCAP2L = 0xFB;
TL2 = RCAP2L;
TR2 = 0; //2400bps
PCON = 0x00;
SCON = 0xD0;
IP = 0x00;
PT0=1;//定时器0的中断优先级最高
EX0 = 0;
IT0 = 0;
ET0 = 1;//允许定时器0中断
EX1 = 0;
IT1 = 0;
ES = 0;
EA = 1;//开总中断
}
//定时器0服务字程序
void Timer1 (void) interrupt 1
{
// TH0 = 0xf0; //赋初值,定时4毫秒
// TL0 = 0x60;
// TR0=0;
if(Auto_Search_Flag==1)//如果在自动搜频模式下,进行0.5s的时间计时
{
Count_500ms++;
if(Count_500ms>80)
{
if(Flash_Times>0)
{
Flag_500ms=~Flag_500ms;//500ms标志取反
Count_500ms=0;
Flash_Times=Flash_Times-1;
if(Flash_Times==0)
{
//Auto_Search_Flag=0;
Count_Auto_Search=0;
}
}
}
}
Led_Display();
TH0 = 0xf0; //赋初值,定时4毫秒
TL0 = 0x60;
//********************按键*********
if(Key_Down==1)
{
CountTime_Key++;//计长按时间的
if(Long_Click==0)
{
if(CountTime_Key>250)//计时大于1s后
{
Long_Click=1;
CountTime_Key=0;
}
}
if(Mode==0)//如果在频率模式下时
{
if(Auto_Search_Flag==0)
{
Count_Auto_Search++;
if(Count_Auto_Search>500)//长按总共有2s了
{
Auto_Search_Flag=1;//表示开始自动搜索了
Flash_Times=4;//表示开始自动搜索的计数了
Flag_500ms=0;
Count_500ms=0;
}
}
}
}
/*
if(Mode==0)//如果在频率模式下时
{
if(Long_Click==1)//1秒后,检测是否到4s
{
if(Auto_Search_Flag==0)
{
Count_Auto_Search++;
if(Count_Auto_Search>1000)//长按总共有5s了
{
Auto_Search_Flag=1;//表示开始自动搜索了
Flash_Times=2;//表示开始自动搜索的计数了
Count_500ms=0;
}
}
}
}
*/
if(Data_Change==1)
{
Count_5s++;
if(Count_5s>1250)//用于计数5秒时间的,5秒到后才存数据
{
Count_5s=0;//清5秒计时值
Save_Can=1;
Data_Change=0;//清数据变化
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -