欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 10043|回復(fù): 3
收起左側(cè)

[已解決]一個(gè)關(guān)于用鍵盤實(shí)現(xiàn)外部中斷的問(wèn)題

[復(fù)制鏈接]
ID:7020 發(fā)表于 2008-11-20 12:19 | 顯示全部樓層 |閱讀模式
小弟最近初學(xué)單片機(jī),用C語(yǔ)言編程,買了一塊板子,想用單片機(jī)的外部中斷做幾個(gè)試驗(yàn),我想實(shí)現(xiàn)的效果是當(dāng)  單片機(jī)上電之后,小燈閃爍,然后當(dāng)按下一個(gè)按鍵之后產(chǎn)生外部中斷,小燈停止閃爍一段時(shí)間之后,另外一個(gè)小燈閃爍, 就是這么一個(gè)簡(jiǎn)單的功能,可是無(wú)奈我對(duì)單片機(jī)的中斷執(zhí)行過(guò)程不是很清楚,寫出的程序,上電之后發(fā)現(xiàn)單片機(jī)并不響應(yīng)鍵盤的外部中斷!還是上電時(shí)的初始狀態(tài),哪位大哥(大姐也行)能貼一下代碼幫我解決一下這個(gè)問(wèn)題么?(我的單片機(jī)獨(dú)立鍵盤由P1.0-P1.3口控制,8個(gè)LED燈由P0口控制)下面是我寫的代碼

#include <reg52.h>
sbit key0=P1^0; //按鍵位
sbit D=P3^2; //外部中斷口
void keydelay(int z)//消抖延時(shí)函數(shù)
{
 int x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
 }

void delaytime(int ms)//控制小燈的閃爍
{
 int x,y;
 for(x=ms;x>0;x--)
 for(y=200;y>0;y--);
}

void main()
{
 IT0=0; 
 EA=1;
 EX0=1;
 P1=0xff; //獨(dú)立鍵盤位置1
 while(1)
 {
  if(key0==0) // 判斷鍵盤是否按下
  keydelay(15);//消抖
  if(key0==0)
  {
   D=0;//產(chǎn)生外部中斷
  while(!key0); 
  }

 while(1)//上電時(shí)小燈閃爍
   {
    P0=0xfe;
    delaytime(10);
    P0=0xff;
    delaytime(10);
   } 
  } 
}

void extinter() interrupt 0 //中斷處理

P0=0xff; //燈滅
delaytime(5);
while(1)
 {
  P0=0x7f;
  delaytime(10);
  P0=0xff;
  delaytime(10);
 }

}

[此貼子已經(jīng)被作者于2008-11-21 12:38:58編輯過(guò)]
回復(fù)

使用道具 舉報(bào)

ID:7040 發(fā)表于 2008-11-20 17:42 | 顯示全部樓層
你的中斷沒(méi)有打開(kāi),所以單片機(jī)是不會(huì)響應(yīng)中斷的,將主程序改為下面就可以了.
 
void main()
{
 IT0=1; 
 EA=1;
 EX0=1; 
   //開(kāi)中斷
 P1=0xff; //獨(dú)立鍵盤位置1
 while(1)
 {
  if(key0==0) // 判斷鍵盤是否按下
  keydelay(15);//消抖
  if(key0==0)
  {
   D=0;//產(chǎn)生外部中斷
  while(!key0); 
  }
 while(1)//上電時(shí)小燈閃爍
   {
    P0=0xfe;
    delaytime(10);
    P0=0xff;
    delaytime(10);
   } 
  } 
}

回復(fù)

使用道具 舉報(bào)

ID:7020 發(fā)表于 2008-11-21 11:22 | 顯示全部樓層

那個(gè)的確是一個(gè)錯(cuò)誤(大意了!不好意思!)但是改過(guò)以后運(yùn)行還是不行!老師對(duì)我說(shuō)是由于INT0口不能通過(guò)軟件置0來(lái)響應(yīng)中斷!不知道是不是這個(gè)原因...

回復(fù)

使用道具 舉報(bào)

ID:7020 發(fā)表于 2008-11-21 12:38 | 顯示全部樓層

問(wèn)題解決了!就是那個(gè)原因,我換了一種觸發(fā)外部中斷方式就可以了

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表