功能是两个定时器,T0控制P10,T1控制P17,分别亮灭。下面的程序在仿真器上看到效果,但烧到AT89S52上就根本不亮。
sbit p1 = P1 ^ 0; sbit p2 = P1 ^ 7;
void action_0();
void action_1();
unsigned long round0 = 5000, round1 = 900;
char code urcllr[3] _at_ 0x003b;
void main()
{
TMOD |= 2;
TL0 = TH0 = TF0 = 0;
TR0 = ET0 = 1;
TMOD |= 32;
TL1 = TH1 = TF1 = 0;
TR1 = ET1 = 1;
EA = 1;
while(1) ;
}
void action_0() interrupt 1
{
if(--round0 == 0)
{
round0 = 5000;
p1 = ~p1;
}
}
void action_1() interrupt 3
{
if(--round1 == 0)
{
round1 = 900;
p2 = ~p2;
}
}
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>