大神帮帮我,我脑袋都断路了。

单片机利用STC89c52芯片控制定时器让led亮10s就熄灭(不循环,要精确)。

用timer可以吗

图片说明喝酒就好了。或者找美女

我知道了,怎么这了。

#include
#define uchar unsigned char
#define uint unsigned int
uchar cc,aa;
sbit led1=P1^0;
void init();

void main()
{
init();
while(1)
{
if(cc==20)
{
cc=0;
led1=!led1;
aa++;
}
if(aa==10)

while(1);

} }
void tim(void) interrupt 1 using 1
{

TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cc++;
}
void init()
{

TMOD |= 0x01;

TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;

ET0=1;

TR0=1;
}

还有人知道吗,这个不准确,。

void delay(unsigned long uldata)
{
unsigned int j = 0;
unsigned int g = 0;
for (j=0;j<5;j++)
{
for (g=0;g<uldata;g++)
{
nop();
nop();
nop();
}
}
}

uldata=N 用keil转换成汇编语句,然后对照指令表计算就行了

我也是刚入门,在keil中设置下 Xtal和你单片机开发板上面的时钟一样,然后在调试的过程中看下左侧调试的时间大小!