標題: [已解決]一個關(guān)于用鍵盤實現(xiàn)外部中斷的問題 [打印本頁]
作者: wilkly 時間: 2008-11-20 12:19
標題: [已解決]一個關(guān)于用鍵盤實現(xiàn)外部中斷的問題
小弟最近初學(xué)單片機,用C語言編程,買了一塊板子,想用單片機的外部中斷做幾個試驗,我想實現(xiàn)的效果是當 單片機上電之后,小燈閃爍,然后當按下一個按鍵之后產(chǎn)生外部中斷,小燈停止閃爍一段時間之后,另外一個小燈閃爍, 就是這么一個簡單的功能,可是無奈我對單片機的中斷執(zhí)行過程不是很清楚,寫出的程序,上電之后發(fā)現(xiàn)單片機并不響應(yīng)鍵盤的外部中斷!還是上電時的初始狀態(tài),哪位大哥(大姐也行)能貼一下代碼幫我解決一下這個問題么?(我的單片機獨立鍵盤由P1.0-P1.3口控制,8個LED燈由P0口控制)下面是我寫的代碼
#include <reg52.h>
sbit key0=P1^0; //按鍵位
sbit D=P3^2; //外部中斷口
void keydelay(int z)//消抖延時函數(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; //獨立鍵盤位置1
while(1)
{
if(key0==0) // 判斷鍵盤是否按下
keydelay(15);//消抖
if(key0==0)
{
D=0;//產(chǎn)生外部中斷
while(!key0);
}
while(1)//上電時小燈閃爍
{
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編輯過]
作者: baizhiy 時間: 2008-11-20 17:42
你的中斷沒有打開,所以單片機是不會響應(yīng)中斷的,將主程序改為下面就可以了.
void main()
{
IT0=1;
EA=1;
EX0=1; //開中斷
P1=0xff; //獨立鍵盤位置1
while(1)
{
if(key0==0) // 判斷鍵盤是否按下
keydelay(15);//消抖
if(key0==0)
{
D=0;//產(chǎn)生外部中斷
while(!key0);
}
while(1)//上電時小燈閃爍
{
P0=0xfe;
delaytime(10);
P0=0xff;
delaytime(10);
}
}
}
作者: wilkly 時間: 2008-11-21 11:22
那個的確是一個錯誤(大意了!
不好意思!)但是改過以后運行還是不行啊!老師對我說是由于INT0口不能通過軟件置0來響應(yīng)中斷!不知道是不是這個原因...
作者: wilkly 時間: 2008-11-21 12:38
問題解決了!就是那個原因,我換了一種觸發(fā)外部中斷方式就可以了
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
久久精品久久久久久
|
夫妻午夜影院
|
成人伊人
|
国产欧美日韩在线
|
国产成人在线视频播放
|
亚洲男人网
|
欧美日韩高清一区
|
能看的av网站
|
亚洲一页
|
中文字幕高清av
|
国产日韩电影
|
国产欧美精品在线
|
亚洲综合网站
|
国产98色在线 | 日韩
|
国产精品一区二区在线
|
亚洲精品久久久久中文字幕欢迎你
|
日本黄色的视频
|
久久成人一区
|
日韩欧美在线观看
|
日韩中文字幕网
|
亚洲在线
|
91精品国产综合久久福利软件
|
免费一级黄色录像
|
色综合一区二区三区
|
狠狠艹
|
久久精品一二三影院
|
国产精品精品3d动漫
|
国产精品亚洲一区
|
久久国产亚洲
|
亚洲欧美日本在线
|
国产一级电影在线观看
|
欧美日韩亚洲成人
|
操网站|
精品一区二区在线观看
|
精品欧美一区二区久久久伦
|
日本三级电影免费
|
久久久久久999
|
国产一区二区三区四区在线观看
|
91极品视频
|
欧美日韩综合
|
欧美性生活免费
|