/*******************************************************************************
* Function Name? : void Timer0_Init()
* Description? ? : 定時器初始化
*******************************************************************************/
void Time0_Init()
{
count = 0;
min? ?= 0;
sec? ?= 59;
mTimer0Clk12DivFsys();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器時鐘設(shè)置
mTimer_x_ModInit(0,1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器模式設(shè)置
mTimer_x_SetData(0,0xC350);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時器賦值? 65536-50000
mTimer0RunCTL(1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時器啟動
ET0? ?= 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器中斷開啟
EA? ? = 1;
}
/*******************************************************************************
* Function Name? : mTimer0Interrupt()
* Description? ? : CH554定時計數(shù)器0定時計數(shù)器中斷處理函數(shù)
*******************************************************************************/
voidmTimer0Interrupt( void ) interrupt INT_NO_TMR0 using 1? ? ? ? ? ?//timer0中斷服務(wù)程序,使用寄存器組1
{
mTimer_x_SetData(0,0xC350);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //非自動重載方式需重新給TH0和TL0賦值
count++;
if(count==20)
{
count=0;
if(sec==0)
{
if(min!=0)
{
sec=59;
min--;
}
else
{
mTimer0RunCTL(0);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時器停止
}
}
else sec--;
}
}