题目是单片机晶振频率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;
};
}