很少有用方式0 的;
unsigned int tcount2s;
unsigned int tcount02s;
unsigned char ID;
void main() //1ms
{
TMOD &= 0x0F;
TL1 = 0xC0; //设置定时初值 1ms
TH1 = 0xE0; //设置定时初值
ET1 = 1;
TR1 = 1;
EA = 1;
while(1);
}
void t1() interrupt 3
{
TL1 = 0xC0; //设置定时初值 1ms
TH1 = 0xE0; //设置定时初值
tcount2s++;
if(tcount2s >= 2000) //2s
{
P2 = 0xFF;
tcount2s = 0;
ID++;
if(ID == 4)
{
ID = 0;
}
}
tcount02s++;
if(tcount02s >= 200) //200ms
{
tcount02s = 0;
switch(ID)
{
case 0: D1 = ~D1; break;
case 1: D2 = ~D2; break;
case 2: D3 = ~D3; break;
case 3: D4 = ~D4; break;
}
}
}
你上面的程序是初始值50ms的定时器,
方式0 的话是13位的定时器,不能这样定时50ms,我定时1ms的,,
tcount2s 是计数到2秒。 另一个是200ms
谢了,这个老师智障,没办法啊。
本回答被提问者采纳