本帖最后由 ytww19 于 2012-11-1 23:17 编辑
以下这个程序是来控制LED灯亮一个时间,灭是一个时间。怎么亮了一次就一直灭的状态?本来是控制LED灯P2口控制亮10S
灭5S一直这样循环下去。请高手指点啊 或者直接写个样板给我看看!
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void ds();
uchar T=0;
void ds()
{
TMOD = 0x01;
TH0 = 0x3c;
TL0 = 0xb0;
TR0 = 1;
ET0 = 1;
EA = 1;
}
void main()
{
ds();
while(1);
}
void
timer0() interrupt 1
{
TH0 = 0x3c; //50MS
TL0 = 0xb0;
T++;
if(T>=200) //10S
{
P2=1;
T=0;
T++;
if(T>=60)
{ P2=0;
T=0;
}
}
}
{ P2=0;
T=0;
}这句进不去,前面将T清0了
#define uchar unsigned char
#define uint unsigned int
void ds();
uchar T=0;
uchar m=0;
void ds()
{
TMOD = 0x01;
TH0 = 0x3c;
TL0 = 0xb0;
TR0 = 1;
ET0 = 1;
EA = 1;
}
void main()
{
ds();
while(1);
}
void timer0() interrupt 1
{
TH0 = 0x3c; //50MS
TL0 = 0xb0;
if(m==0)
{T++;
P2=1;
if(T>=200) //10S
{
T=0;
m=1;
}
}
else
{
T++;
P2=0;
if(T>=100) //10S
{
T=0;
m=0;
}
}
}
这个帖子是我以前写的,你写的这个OK。谢谢你!
一周热门 更多>