㈠ C51單片機按鍵怎樣實現中斷檢測
單片機有中斷引腳,連到它們上面就行了,執行
返回值 函數名([參數]) interrupt n [using m]
如:void INT0_Interrupt (void) interrupt 0 using 0
{
xxxxxxxx
}
n對應中斷源的編號,為0~15的常整數,不允許使用表達式
n對應中斷源的編號查手冊函數放在main外面,函數名任意命名。
㈡ 單片機按鍵一定要用中斷嗎
按鍵控制有查詢和中斷兩種方式,中斷必須藉助中斷引腳,而查詢按鍵可用任何IO埠
按鍵較少時,一個按鍵佔用一個IO口,而按鍵數量較多時,多採用矩陣形式,如常用
4個埠作為輸出、4個埠作為輸入的4*4矩陣來獲得16個按鍵
還可以用單片機的AD轉換功能一個引腳接多個按鍵,根據電阻分壓原理判斷是哪一個按鍵按下
㈢ 單片機 按鍵產生中斷 控制顯示 程序
不知道是怎樣的顯示方式,5位數碼管掃描顯示嗎? 對應的原理圖是什麼,對應那些引腳,以下做參考
#include "reg51.h"
#include "intrins.h"
#include <absacc.h>
#define unit unsigned int
#define char unsigned char
sbit deng1=P0^1;
sbit deng2=P0^2;
sbit kong=P0^0;
char code dis_7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00, 0xff };
/*共陰LED數碼管段碼 0 1 2 3 4 5 6 7 8 9 10 A B C D E F 滅 */
char data timedata[6]={0x00,0x00,0x00,0x00,0x00,0x00};//定義計數單元初值0,6個
char code weisao[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位掃描控制字
char data BUFFER[1]={0}; //定時器記數變數
char data wei=-1; //時間設置時選種位
char c=0; //閃爍次數變數
bit flag=0; //標志位
char j1,j; //計數標志
ledxian() //LED顯示子程序
{
char k;
for(k=0;k<6;k++)
{
if(wei==-1) //當WEI為-1時正常顯示
{
P1=dis_7[timedata[k]];//各位時間顯示值轉段碼
}
else //WEI不為-1時再判斷哪一位K閃
{
if(k==wei) //K=WEI時閃等掃過128次時閃
{
if(j==128)
{
//j1++;
//if(j1==1)
flag=~flag; //J到128時標志位取反
}
j++;
if(!flag)
{
P1=dis_7[16]; //滅LED燈
if(j==0)
{
if(c<15) //選種後閃爍次數
{
c++ ;
}
else //20次到了清WEI標志,清閃爍次數標志
{
wei=-1;
c=0;
ET0=1; //定時中斷開
}
}
}
else
{
P1=dis_7[timedata[k]]; //FLAG=1時正常顯示
}
}
else
{
P1=dis_7[timedata[k]]; //J不到128則正常顯示
}
}
P2=~weisao[k]; //位掃描
delayxms(1); //1毫秒延時
P2=~0xff; //屏蔽
}
}
㈣ 單片機外部中斷
定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。定時百器中斷是設定定時時間,到了該時間,就進行處理一次。
可以處理按度鍵掃描,動態顯示,時鍾累加等問。
外部中斷,是與外答接接觸,當中斷引腳為低電平時,進入中斷。
如果你的單片機沒內有專門的鍵盤中斷,可以使用外部中容斷來做鍵盤中斷。
㈤ 單片機外部中斷與獨立鍵盤問題
注意幾點:
1, 外中斷的觸發需要用負跳變,而不要採用低電平
2, 讀取獨立鍵盤的時候,一定要消抖。
3, 在中斷中,請在開始時關閉中斷,等處理完當前中斷,再開中斷
請採納。
㈥ 51單片機我需要使用按鍵中斷,是不是要把按鍵接到外部中斷的介面
51單片機需要使用按鍵中斷,就要把按鍵接到外部中斷的引腳上,用INT0中斷,就把按鍵接在引腳P3.2上,用INT1,按鍵接P3.3上。
㈦ 51單片機按鍵中斷控制流水燈
按鍵接在外中斷腳上,外中斷觸發模式設為下降沿模式,即 IT0=1;或 IT1=1; ,在中斷函數里調用流水燈函數或直接把代碼寫在中斷函數里
㈧ 求個單片機矩陣鍵盤(4*4)中斷(記得要中斷)的C語言程序。。求高手自己寫個啊
很簡單的啊,不太清楚你的電路圖,我把主要程序寫一下:
#include<reg52.h>
unsigned char flag=0;//設置flag作為標志位,初值為0,一旦產生中斷,將其置1
void main()
{
EA=1;//開總中斷
EX0=1;//開外部中斷0 ,假設是由P3.2產生的中斷
IT0=1;//設置產生中斷的方式,這是表示下降沿觸發
P0=0X0F;//假設矩陣鍵盤接P0口,給所有列線低電平,所有行線高電平
while(1)
{
if(flag==1) //這個是表示,如果中斷不產生,下面的程序不會運行,只有中斷了,才會鍵盤掃描
{
按鍵掃描程序,這個我就不寫了,寫法有很多啦
}
數碼管顯示程序,這個我也不寫了,不曉得你是什麼電路圖
}
}
void scan() interrupt 0
{
flag=1;//表示,一旦中斷產生了,將flag置1
}
希望對你有用,呵呵
㈨ 有的單片機有外部中斷,為什麼還要專門弄什麼鍵中斷,專門的鍵中斷有什麼好處
鍵盤中斷是對單片機中斷資源的一種擴展,外部中斷口一般都很少如果用於按鍵往往不夠用,有了鍵盤中斷就可以方便很多,很多情況下就不用軟體循環按鍵掃描了。