相关代码:
#include “STC15F2K60S2.h”
sbit L1 = P0^0;
sbit S7 = P3^0;
unsigned char count;
unsigned char pwm;
unsigned char mode;
void Delay(unsigned char t)
{
while(t–);
}
void cKey()
{
if(S7 == 0)
{
Delay(200);
if(S7 == 0)
{
switch(mode)
{
case 0:
pwm = 10;
TR0 = 1;
mode = 1;
break;
case 1:
pwm = 50;
mode = 2;
break;
case 2:
pwm = 90;
mode = 3;
break;
case 3:
TR0 = 0;
L1 = 1;
mode = 0;
}
}
}
while(S7 == 0);
}
void main()
{
TMOD = 0X01;
TH0 = (65535 - 100) / 256;
TL0 = (65535 - 100) % 256;
ET0 = 1;
EA = 1;
P2 = P2 & 0x1f | 0x80;
P0 = 0xff;
while(1)
{
cKey();
if(S7 == 0)
Delay(200);
if(S7 == 0)
{
P2 = P2 & 0x1f | 0x80;
P0 = 0xff;
}
}
}
void TNto() interrupt 1
{
TH0 = (65535 - 100) / 256;
TL0 = (65535 - 100) % 256;
count++;
if(count == pwm)
{
L1 = 1;
}
else if(count == 100)
{
L1 = 0;
count = 0;
}
}