程序中的TF0=0起什么作用,为什么要加这一句。
时间:10-02
整理:3721RD
点击:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void main()
{
uchar T_Count=0;
//P3=0xfe;
P2=0xfe;
TMOD=0x01; //定时器0 工作方式1
TH0=(65536-40000)/256; //40ms 定时
TL0=(65536-40000)%256;
TR0=1; //启动定时器
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=(65536-40000)/256; //恢复初值
TL0=(65536-40000)%256;
if(++T_Count==5)
{
//P3=_cror_(P0,1);
P2=_crol_(P2,1);
T_Count=0;
}
}
}
}
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void main()
{
uchar T_Count=0;
//P3=0xfe;
P2=0xfe;
TMOD=0x01; //定时器0 工作方式1
TH0=(65536-40000)/256; //40ms 定时
TL0=(65536-40000)%256;
TR0=1; //启动定时器
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=(65536-40000)/256; //恢复初值
TL0=(65536-40000)%256;
if(++T_Count==5)
{
//P3=_cror_(P0,1);
P2=_crol_(P2,1);
T_Count=0;
}
}
}
}
目的就是while(1)循环里面的程序只能执行一次,当标志TF 下次被赋予1的时候才有可能再次进入里面执行里面的程序
这是个标志位
是中断标志
它的作用是:当定时器0溢出时,由硬件使TF0置1,并申请中断,进入中断服务程序后,由硬件自动清0.要注意:如果使用的是软件查询方式的话,当查询到该为置1后得用软件清0.
你好。那这个例子就是属于软件查询?如果是软件查询,是不是因为有了“if(TF0==1)”这一句?
顶顶,,,
我把TF0=0删掉后流水灯的运行速度快了好多。大侠,这是为什么?
学习了、、、、、、、、、、、、、
定时器/计数器0的溢出中断标志位,当定时器计数完成后产生溢出中断,置位TF0,程序才能进入if