我也是寫過一些程序的,但是今天這個外部中斷一直不能觸發!反復看了幾遍,都看不出來哪里有問題!就是一個簡單的pwm控制信心的輸出,但是在外部中斷增加占空比的時候,就是一直不能觸發中斷,求解!
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit s1=P3^2;
sbit s2=P3^3;
sbit wave=P1^0;
uchar zkb = 50;
uchar f = 0,count=0;
void delay(uint t)
{
uint i;
while(t--)
{
for(i=0;i<125;i++);
}
}
void delay_ms()
{
uint i;
for(i=0;i<1;i++);
}
void int0() interrupt 0
{
EX0=0;
P0=~P0;
if(s1==0)
{
zkb--;
if(zkb==-1)
zkb=99;
}
while(!s1);
EX0=1;
}
void timer0()interrupt 1
{
TR0=0;
TH0=(65536-10)/256;
TL0=(65536-10)%256;
f++;
if(f==100)
{
f=0;
}
delay_ms();
TR0=1;
}
void int1() interrupt 2
{
EX1=0;
P0=~P0;
if(s2==0)
{
zkb++;
if(zkb==100)
zkb=0;
}
while(!s2);
EX1=1;
}
void main()
{
EA=1;
TMOD=0x11;
ET0=1;
TR0=1;
IT0=1;
EX0=1;
IT1=1;
EX1=1;
while(1)
{
if(f<zkb)
{
wave=1;
}
else
wave=0;
}
}
|