本帖最后由 Guillaume_Meng 于 2012-7-12 17:22 编辑
我设计的意图是:我用杜邦线(接低电平)去碰P3^4口(T0口)20下,P0口的四个LED会点亮,然后延时,LED熄灭,这样循环往复.
但结果是: 我只用杜邦线去碰P3^4口(T0口)1下,P0口的四个LED会点亮,然后延时,LED熄灭,这样循环往复.
下面有图片和原代码!
请问,为什么我碰一下灯就亮了,不是255-235=20下吗?求解!谢谢!
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z);
void main()
{
TMOD=0x06; //设置计数器0为工作方式2
TH0=0xeb;//0xeb=235
TL0=0xeb;//0xeb=235
while(1)
{
TR0=1;//打开计数器0
if(TF0==1)//当到255时,TF0置1
{
TR0=0;//关闭计数器0
P1=0xaa;//点亮LED,10101010
delay(1000);//延时
P1=0xff;//关闭LED
TF0=0;//把TF0置0,可以跳出if循环
}
}
}
void delay(uint z) //延时子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
} |