找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4739|回復: 5
收起左側

52單片機怎么把按鍵分別控制中斷1和0

[復制鏈接]
ID:145536 發(fā)表于 2016-11-3 23:02 | 顯示全部樓層 |閱讀模式
#include <reg52.h>
unsigned char aa,MENU=0;
sbit K1=P3^2;
sbit K2=P3^3;
void delay(unsigned int xms)
{
int m,n;
for(m=xms;m>0;m--)
for(n=112;n>0;n--);
}
void wai0() interrupt 0       //INT0中斷入口
{
    {
    P1=0x7f;    //初始化 0111 1111
   for(j=0;j<7;j++)  //做一個循環(huán)
    {  delay();  //延時
       P1=P1>>1;  //右移
       P1=P1|0x08; }  //或上1000 0000
     delay();  //延時
  }
          MENU=1; //
}

//中斷1服務程序
void wai1() interrupt 2       //INT1中斷入口
{
     {
  P1=0xfe;       //初始化  1111  1110
  for(j=0;j<7;j++)    //做一個循環(huán)
{  delay();         //  延時
   P1=P1<<1;        //  左移
   P1=P1|0x01;}      //  或上 0000 0001
   delay();      //延時
  }
         MENU=2; //
}
main()
{       EA = 1;        //中斷總開關
        EX1 = 1; //允許外部中斷1中斷   
        EX0 = 1; //禁止外部中斷0中斷
        IT1 = 1; //1:下沿觸發(fā)  0:低電平觸發(fā)
        IT0 = 1; //下沿觸發(fā)  0:低電平觸發(fā)

         while(1)
}怎么把按鍵分別控制中斷1和0

回復

使用道具 舉報

ID:111634 發(fā)表于 2016-11-4 07:49 | 顯示全部樓層
把按鍵一端分別接P3.2、P3.3,另一端接地就可,按鍵按下時,產(chǎn)生一個下跳變,觸發(fā)中斷1和0
回復

使用道具 舉報

ID:7485 發(fā)表于 2016-11-4 09:34 | 顯示全部樓層
還不如使用按鍵控制方式。
中斷方式無法防止抖動或誤觸發(fā)。
回復

使用道具 舉報

ID:146124 發(fā)表于 2016-11-4 17:03 | 顯示全部樓層
代碼寫好,然后直接在電路里面對應中斷的端口各自連接一個按鍵就可以了
回復

使用道具 舉報

ID:144022 發(fā)表于 2016-11-4 22:59 | 顯示全部樓層
可以直接用if語句啊,按鍵按下就則自動增減,定時器是設置中斷的,不用按鍵控制
回復

使用道具 舉報

ID:146588 發(fā)表于 2016-11-7 13:22 | 顯示全部樓層
好像可以在中斷服務程序里面寫入一個判斷語句IF,判斷是否有按鍵真正按下
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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