就是用定时器实现一个灯闪烁,为什么下面两种写法只有第二种可行(第二种是抄书上的。)?还有为什么第二种中断函数里不用重装初值的吗?
第一种:效果是灯一直亮着,不会闪烁。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit d1=P1^0;
int main(void)
{
TMOD=0x09;
TH0=0x3c;
TL0=0xb0;
TR0=1;
EA=1;
ET0=1;
while(1)
{
d1=0;
}
}
void timer0_SMG() interrupt 1
{
d1=~d1;
}
第二种:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit d1=P1^0;
int main(void)
{
TMOD=0x09;
TH0=0x3c;
TL0=0xb0;
TR0=1;
EA=1;
ET0=1;
d1=0;
while(1);
}
void timer0_SMG() interrupt 1
{
d1=~d1;
}
第一种:效果是灯一直亮着,不会闪烁。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit d1=P1^0;
int main(void)
{
TMOD=0x09;
TH0=0x3c;
TL0=0xb0;
TR0=1;
EA=1;
ET0=1;
while(1)
{
d1=0;
}
}
void timer0_SMG() interrupt 1
{
d1=~d1;
}
第二种:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit d1=P1^0;
int main(void)
{
TMOD=0x09;
TH0=0x3c;
TL0=0xb0;
TR0=1;
EA=1;
ET0=1;
d1=0;
while(1);
}
void timer0_SMG() interrupt 1
{
d1=~d1;
}