问题描述
- 大神帮帮我,我脑袋都断路了。
-
单片机利用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和你单片机开发板上面的时钟一样,然后在调试的过程中看下左侧调试的时间大小!