c语言定时器10分钟延时,大神帮我看看51单片机用定时器延时C语言错在哪儿啊?...

错误1.对延时的计算次数是错误的

错误2.对数据类型unsigned char认识是错误的

错误3.对定时器的使用是不恰当的

按照你的意图给你修改了程序,希望对你有所帮助

#include //定义头文件

#include //定义头文件

#define uchar unsigned char //宏定义 unsigned char= uchar

#define uint unsigned int //宏定义 unsigned int =uint

/

void delay(uint z)

{

uint x,y;//声明x,y的变量类型

for(x = z;x > 0; x--)

for(y = 120;y > 0;y--);//比如说Z=100.意思就是Z=100*Y=100*120=1200,这个程序执行了1200次,跳出程序,实现延时。?????

}                                                                                                              //延时=循环100*120=12000次

uchar temp;//定义整型类型temp=-128~127 ?????

//定义无符号字符型数据类型temp=0~255

uchar i,j;

///

void delay1()

{

if(TF0 == 1)

{

TF0 = 0;

i++;

if(i==10)

{

i=0;

j=1;

}

}

}

void main()

{

i=0;

j=0;

TMOD = 0X01;

TH0 = 0;

TL0 = 0;

TF0 = 0;

TR0 = 1;

delay(100);

while(1)

{

delay1();//延时655.32ms

if(j==1)

{

j=0;

P1=~P1;

}

}

}

你可能感兴趣的:(c语言定时器10分钟延时)