本人是个新手 刚学单片机 写程序不喜欢用delay 但是定时器中断又用的不太好求大神指点 这是我写的一段程序,按键不太灵敏,但是该用delay就很灵敏,希望大神能帮我修改修改 最好给点中断使用的方法
#include<reg52.h>
#include"C52.h"
#define uchar unsigned char
uchar miao,i=0,j=0,a=0,b=0;
void main()
{
EA=1;
ET0=1;
//AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xdC; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1;
for(;;)
{
if(K1==0)
{
if(i%1==0)
{
if(K1==1)
{
if(i>=2*100)
{
LED0=!LED0;
i=0;
}
else if(i<2*100)
{
LED1=!LED1;
i=0;
}
}
}
}
if(K2==0)
{
if(i%1==0)
{
if(K2==1)
{
if(j>=2*100)
{
LED2=!LED2;
j=0;
}
else if(j<2*100)
{
LED3=!LED3;
j=0;
}
}
}
}
}
}
void Time (void) interrupt 1
{
TL0 = 0x00; //设置定时初值
TH0 = 0xdc;
if(!K1)
if(i%1==0)
{
if(!K1)
{
i++;
}
}
if(!K2)
if(i%1==0)
{
if(!K2)
{
j++;
}
}
}
|