#include
#define uchar unsigned char
#define uint unsigned int
sbit lamp=P2^0;//輸出
sbit k1=P3^3;//加鍵
sbit k2=P3^2;//減鍵
sbit k3=P3^4;//停止
uchar a=10;
void delay(uint x)//延時函式
{
uchar i;
while(x--)
for(i=0;i
}
void init()
TMOD=0X01;//晶振11.0592,定時器定時方式1
TH0=0XFF;//100us定時
TL0=0XA4;
EA=1;//開總中斷
ET0=1;//開定時器中斷
TR0=1;//開定時器
void key()
if(!k1)
delay(10);
a++;
if(a==99)
a=1;
// while(!k1);
if(!k2)
a--;
if(a==1)
a=99;
// while(!k2);
if(!k3)
TR0=~TR0;//開定時器
while(!k3);
void main()
init();
while(1)
key();
void timer0() interrupt 1 using 3
uchar count; /*中斷次數計數器變數*/
TH0=0xFF; /*恢復定時器初始值*/
TL0=0xA4;
count++;
if (count>=100)
count=0;
if (count
lamp=0;
else
lamp=1;
#include
#define uchar unsigned char
#define uint unsigned int
sbit lamp=P2^0;//輸出
sbit k1=P3^3;//加鍵
sbit k2=P3^2;//減鍵
sbit k3=P3^4;//停止
uchar a=10;
void delay(uint x)//延時函式
{
uchar i;
while(x--)
for(i=0;i
}
void init()
{
TMOD=0X01;//晶振11.0592,定時器定時方式1
TH0=0XFF;//100us定時
TL0=0XA4;
EA=1;//開總中斷
ET0=1;//開定時器中斷
TR0=1;//開定時器
}
void key()
{
if(!k1)
{
delay(10);
if(!k1)
{
a++;
if(a==99)
a=1;
}
}
// while(!k1);
if(!k2)
{
delay(10);
if(!k2)
{
a--;
if(a==1)
a=99;
}
}
// while(!k2);
if(!k3)
{
delay(10);
if(!k3)
{
TR0=~TR0;//開定時器
}
}
while(!k3);
}
void main()
{
init();
while(1)
{
key();
}
}
void timer0() interrupt 1 using 3
{
uchar count; /*中斷次數計數器變數*/
TH0=0xFF; /*恢復定時器初始值*/
TL0=0xA4;
count++;
if (count>=100)
count=0;
if (count
lamp=0;
else
lamp=1;
}