73 lines
1.6 KiB
C
73 lines
1.6 KiB
C
|
#include "H/Function_Init.H"
|
|||
|
|
|||
|
void Timer_Init(void);
|
|||
|
|
|||
|
uint Time_Key0_Press;//<2F><><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
uint Time_Key1_Press;//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
|||
|
/*****************************************************
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>void Timer_Test(void);
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>T0/T1/T2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
|
|||
|
*****************************************************/
|
|||
|
void Timer_Test(void)
|
|||
|
{
|
|||
|
Timer_Init();
|
|||
|
Time_Key0_Press = 0;
|
|||
|
Time_Key1_Press = 0;
|
|||
|
}
|
|||
|
/*****************************************************
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>void Timer_Init(void)
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>T0/T1/T2<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
|
|||
|
*****************************************************/
|
|||
|
void Timer_Init(void)
|
|||
|
{
|
|||
|
TMCON = 0X01; //------111 ;Timer0<72><30>Tiemr1<72><31>Tiemr2ѡ<32><D1A1>ʱ<EFBFBD><CAB1>Fsys
|
|||
|
|
|||
|
//T0<54><30><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P02<30><32><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>Ϊ1K<31>ķ<EFBFBD><C4B7><EFBFBD>(<28><>Ƶ<EFBFBD><C6B5>32M)
|
|||
|
TMOD |= 0x01; //0000 0001;Timer0<72><30><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD>ʽ1
|
|||
|
TL0 = (65536 - 32000)%256; //ʱ<><CAB1>ΪFsys<79><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>=16000*<2A><>1/Fsys<79><73>;
|
|||
|
TH0 = (65536 - 32000)/256;
|
|||
|
TR0 = 0;
|
|||
|
ET0 = 1;//<2F><>ʱ<EFBFBD><CAB1>0<EFBFBD><30><EFBFBD><EFBFBD>
|
|||
|
TR0 = 1;//<2F><EFBFBD>ʱ<EFBFBD><CAB1>0
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>void timer0/1/2/3/4() interrupt 1/3/5/13/14
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>жϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void
|
|||
|
**************************************************/
|
|||
|
void timer0() interrupt 1
|
|||
|
{
|
|||
|
TL0 = (65536 - 32000)%256; //<2F>ֶ<EFBFBD><D6B6><EFBFBD>װ<EFBFBD><D7B0>ֵ<EFBFBD><D6B5>8λ
|
|||
|
TH0 = (65536 - 32000)/256; //<2F>ֶ<EFBFBD><D6B6><EFBFBD>װ<EFBFBD><D7B0>ֵ<EFBFBD><D6B5>8λ
|
|||
|
if(!Key0)
|
|||
|
Time_Key0_Press++;
|
|||
|
else
|
|||
|
Time_Key0_Press=0;
|
|||
|
|
|||
|
if(Time_Key0_Press>=3000)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£
|
|||
|
{
|
|||
|
Time_Key0_Press = 0;
|
|||
|
Key0_flag = 1;
|
|||
|
}
|
|||
|
|
|||
|
if(!Key1)
|
|||
|
Time_Key1_Press++;
|
|||
|
else
|
|||
|
Time_Key1_Press=0;
|
|||
|
|
|||
|
if(Time_Key1_Press>=3000)
|
|||
|
{
|
|||
|
Time_Key1_Press = 0;
|
|||
|
Key1_flag = 1;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|