<pre name="code" class="java">void interrupt Timer() //中断响应函数
{
unsigned short int uSwitch;
unsigned char counter = 0; //计算有多少个开关拨到On
unsigned char i;
uSwitch=SWITCH;
uSwitch&=0x0f;
unsigned short int temp = uSwitch;
while(temp){ //计算uSwitch有多少个1(即有多少个开关打开)的算法
counter ++;
temp &= (temp - 1);
}
TIMER1PRD=3126000 / (counter + 1); //重新设置定时器1的周期,每打开一个开关频率加倍
LBDS &= uSwitch; //设置开关没打开的LED灯为灭,保留开关打开的LED灯为原始值即不进行操作
LBDS ^= uSwitch; //使开关
}
void interrupt Timer() //中断响应函数{ unsigned short int uSwitch; unsigned char counter = 0; //计算有多少个开关拨到Onunsigned char i; uSwitch=SWITCH;uSwitch&=0x0f;unsigned short int temp = uSwitch;while(temp){ //计算uSwitch有多少个1(即有多少个开关打开)的算法counter ++;temp &= (temp - 1);} TIMER1PRD=3126000 / (counter + 1); //重新设置定时器1的周期,每打开一个开关频率加倍LBDS &= uSwitch; //设置开关没打开的LED灯为灭,保留开关打开的LED灯为原始值即不进行操作LBDS ^= uSwitch; //使开关}