关于定时器
#include <reg52.h>typedef unsigned char uchar;
typedef unsigned int uint;
sbit LED = P1^0;
void main()
{
uint counter = 0;
TMOD = 0x01; //用的定时器T0
TH0 = 0xB8; //定时器定时20毫秒,后面把20毫秒循环50次,成为一秒
TL0 = 0x00;
TR0 = 1;
while (1)
{
if (1 == TF0 )
{
counter++;
TH0 = 0xB8;
TL0 = 0x00;
TF0 = 0;
}
if (50 == counter)
{
LED = ~LED;
counter = 0;
}
}
}
这是让第一个小灯亮不停的亮1秒灭1秒的闪烁,当我把TMOD = 0x01改为0x10,TH0,TL0改为TH1,TL1,即用T1定时器的时候,就不是1秒了,成亮0.44秒灭0.44秒了,两个定时器难道不一样吗?
下面的溢出TF0也要改成TF1吧。 wǒ鈊銥舊 发表于 2012-8-8 20:09 static/image/common/back.gif
下面的溢出TF0也要改成TF1吧。
啊呀呀,对对对,所有寄存器带0的位都要改成1,TR,TF我忘改了,哎呀,真粗心…… TF1和TF0操作完全一样......
页:
[1]