大家帮忙看一下单片机C语言的这条程序,我是初学者不懂

题目是单片机晶振频率12MHZ,使用T0方式1,中断方法在P1口产生如下波形:
高低各500MS的方波
是这一段

#include<reg51.h>
unsigned char ik;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
while(!TF0);
TF0=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
}
int Time10() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ik++;
if(ik==10)
{
ik=0;
P1=~P1;
};
}

还是只有这一段
int Time10() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ik++;
if(ik==10)
{
ik=0;
P1=~P1;
};
}

两段都有问题。
第一段P1口处理放在了中断函数中,却没有打开中断使能,所以进不了中断函数。
第二段只有中断函数,没有主程序,单片机根本跑不起来。追问

那应该怎么弄呀,我刚学还不懂,怎么把中断函数放进主程序呀?

追答

#include
unsigned char ik;
void main()
{
ik=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1; //T0中断使能
EA=1; //中断总使能
while(1);

}
int Time10() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ik++;
if(ik>=10)
{
ik=0;
P1=~P1;
};
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网