找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7077|回復: 1
打印 上一主題 下一主題
收起左側

51單片機 按鍵 外部中斷

[復制鏈接]
跳轉到指定樓層
樓主
ID:80436 發(fā)表于 2015-5-22 01:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  額 好久沒搞單片機,臨近期末得復習了,還有二級也近了,杯具ing
  進入單片機學習的中斷

當用外部中斷的方法實現(xiàn)按鍵的檢測時,由于存在按鍵抖動,這樣我們在按下按鍵時,會出現(xiàn)多次進入中斷的現(xiàn)象,最好的解決辦法是在程序中我們進行相應的處理:
l void int_key() interrupt 0//外部中斷1服務程序
{
EX0=0;//關外部中斷1
delay_ms(100);
if(s1==0) //s1是外部中斷對應的IO口
{
s1_num++; //這里是用戶自己編寫的程序
s1_num%=4;//這里是用戶自己編寫的程序
di();//這里是用戶自己編寫的程序
}
while(!s1);
EX0=1;//開外部中斷
}
delay_ms(100),if(s1==0)是必需要有的,延時是為了消抖,if(s1==0)是為了看看延時后是否還為低電平,如果還為低電平那確實是按下按鍵了,并且這樣可以有效地做到一次按鍵只進入一次中斷,當然delay_ms(100)這個延時時間不能太長,否則正常的按鍵也會在延時后,因為時間太長手已經松開變?yōu)楦唠娖,而判斷錯誤。這個中斷是下降沿觸發(fā)。



[url=]
[/url]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:66287 發(fā)表于 2015-5-22 11:05 | 只看該作者
在中斷里運行用戶程序不行吧?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表