新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 外部中斷控制

        外部中斷控制

        作者: 時間:2012-08-25 來源:網絡 收藏
        #includereg51.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;      //方式,下降沿有效 EX0=1;      //外中斷0允許 while(1) { while(1) { if(flag==1) break; } flag=0; for(i=0;i4;i++) { while(1) { for(j=0;j4;j++) { P3=port3[j];     P1=port1[j]; } if(++count==8000) {count=0;break;} } } p33=0;    //本單片機效果走完,改變p33,使下一單片機,外部中斷0下降沿觸發} } void int0(void) interrupt 0 { flag=1; } 

        對程序稍加修改,昨天的程序,燈有點亂亮。

        上電馬上中斷:由于單片機復位后,各IO口為高電平。我給發中斷信號的單片機,程序起始就給下一個中斷入口置低電平,所以上電后,下一個單片機進入中斷了。

        漸變:本程序為四個亮度等級。第一行不斷輪流循環執行了8000次。

        break跳出整個循環。continue跳出本次循環,重新執行下一循環。goto語句應盡量少用,通常與if連用,跳到對應標號處執行

        以下為發送中斷單片機的程序,沒有完成想要的效果。

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

        前一個單片機輸出p33,接后一單片機外部中斷0輸入p32

        單片機為



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 景宁| 磐石市| 闻喜县| 阳山县| 北宁市| 广水市| 全州县| 封开县| 罗定市| 惠来县| 唐河县| 临海市| 嫩江县| 房产| 城市| 两当县| 会昌县| 余姚市| 观塘区| 凤山县| 阿拉善右旗| 长垣县| 贵州省| 绥化市| 潮安县| 镇沅| 肥东县| 开江县| 松桃| 蚌埠市| 正镶白旗| 余干县| 黔江区| 涟源市| 西昌市| 襄樊市| 洞口县| 穆棱市| 浦东新区| 呼和浩特市| 阿城市|