
P3.3用作外部中断口,中断方式为1,下降沿此并亩触发。
当然,要是将问题森森实用化的话,要在51单片机的IO口接上驱动电路蔽乱,不然带不动大功率的元件的。
#include <reg51.h>
sbit P1_0=P1^0
sbit P3_3=P3^3
void delay(unsigned char y)
{unsigned char i,k
for(i=0i<yi++)
{for(k=0k<0k++)}
}
void main()
{
while(1)
{
EA=1
EX1=1IT1=1
IT1=1
}
}
void SPEAKER() interrupt 2
{ unsigned char x
EA=0
P3_3=1
x=P3_3
while(x==0)
{
P1_0=0
delay(1)
P1_0=1
P3_3=1
x=P3_3
delay(1)
}
}
PS:如果是想学的话,程序只供参考,自己把程序写的更加好。要是只是应付老师之类的,就随意了。
如果是下穗孙降沿触发(it0=1)就只会执行一次中断程序。电平触发(it0=1)的话每次执行完中断缺枝里面的程序(只要不关闭中断)就又跳进中断里去了,不断的循环执行。循环的频率跟晶振有关,晶振的频率直接关系到单片机执猜扮链行指令的速度。频率越高速度也就越快。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)