#define uchar unsigned char
sbit key1 = P3^2;? ?
sbit key2 = P3^0;? ?
sbit pin1 = P1^4;
sbit led1 = P3^1;
uchar condition=0,time;
void Time0_Init()
{
mTimer0Clk12DivFsys();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器時鐘設置
mTimer_x_ModInit(0,1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器模式設置16位定時器
mTimer_x_SetData(0,0xC350);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時器賦值5MS
mTimer0RunCTL(1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時器啟動
ET0? ?= 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器中斷開啟
EA? ? = 1;
}
voidmTimer0Interrupt( void ) interrupt INT_NO_TMR0 using 1? ? ? ? ? ?//timer0中斷服務程序,使用寄存器組1
{
mTimer_x_SetData(0,0xC350);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //非自動重載方式需重新給TH0和TL0賦值
time++;
if(time
{
pin1=1;
}
else
pin1=0;
if(time>=100)
{
time=0;
}
}
void main( )?
{
CfgFsys( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //CH554時鐘選擇配置? ?
? ? mDelaymS(5);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//配置時鐘后,建議延時穩(wěn)定時鐘
Time0_Init();
mDelaymS(5);
while(1)
{
if(key1==0)
{
mDelaymS(50);
if(key1==0)
{
led1=0;
condition+=10;
if(condition>=100)
{
condition=100;
}
}
}
if(key2==0)
{
mDelaymS(50);
if(key2==0)
{
led1=1;
condition-=10;
if(condition<=0)
{
condition=0;
}
}
}
}
}