專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

外部中斷控制

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2011年03月01日   【字體:
#include<reg51.h> 
unsigned char flag=0; 
sbit p33=P3^3; 
unsigned char code port3[4][4]=   
{ 
0x28,0x28,0x28,0x28, 
0x29,0x29,0x29,0x29, 
0x29,0x29,0x29,0x29, 
0x29,0x29,0x29,0x29, 
}; 
unsigned char code port1[4][4]= 
{ 
0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00, 
0x20,0x20,0x20,0x20, 
0x24,0x24,0x24,0x24, 
}; 
main()         
{ 
unsigned char i; 
unsigned int j,count=0; 
EA=1;       //總中斷允許 
IT0=1;      //脈沖觸發(fā)方式,下降沿有效 
EX0=1;      //外中斷0允許 
while(1) 
{ 
   while(1) 
   { 
     if(flag==1) break; 
   } 

   flag=0; 
   for(i=0;i<4;i++) 
    { 
      while(1) 
       { 
         for(j=0;j<4;j++) 
          { 
         P3=port3[j];     
            P1=port1[j]; 
       } 
     if(++count==8000) {count=0;break;} 
       } 
    } 
  p33=0;    //本單片機(jī)效果走完,改變p33,使下一單片機(jī),外部中斷0下降沿觸發(fā)
} 
} 
void int0(void) interrupt 0 
{ 
flag=1; 
} 

對(duì)程序稍加修改,昨天的程序,燈有點(diǎn)亂亮。

上電馬上中斷:由于單片機(jī)復(fù)位后,各IO口為高電平。我給發(fā)中斷信號(hào)的單片機(jī),程序起始就給下一個(gè)中斷入口置低電平,所以上電后,下一個(gè)單片機(jī)進(jìn)入中斷了。

漸變:本程序?yàn)樗膫(gè)亮度等級(jí)。第一行不斷輪流循環(huán)執(zhí)行了8000次。

break跳出整個(gè)循環(huán)。continue跳出本次循環(huán),重新執(zhí)行下一循環(huán)。goto語(yǔ)句應(yīng)盡量少用,通常與if連用,跳到對(duì)應(yīng)標(biāo)號(hào)處執(zhí)行

以下為發(fā)送中斷單片機(jī)的程序,沒(méi)有完成想要的效果。

#include<reg51.h>
sbit p33=P3^3;
unsigned int count=0;
main()         
{
 p33=0;
 EA=1;       //總中斷允許
 IT0=1;      //脈沖觸發(fā)方式,下降沿有效
 EX0=1; 
 while(1)
  {;}
}
void int0(void) interrupt 0
{
 p33=1;
 p33=0;
} 

前一個(gè)單片機(jī)輸出p33,接后一單片機(jī)外部中斷0輸入p32
 
單片機(jī)為2051

關(guān)閉窗口

相關(guān)文章