找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2255|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)中斷嵌套問題,求大神幫幫忙。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:409524 發(fā)表于 2018-10-14 17:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我想做一個(gè)定時(shí)器和按鍵的中斷程序,意思就是啟動這個(gè)程序,每達(dá)到一個(gè)設(shè)定時(shí)間時(shí)led1狀態(tài)翻轉(zhuǎn)。在定時(shí)器計(jì)時(shí)過程中,按下按鍵K次,則led2狀態(tài)翻轉(zhuǎn)。但是我寫出以下程序以后發(fā)現(xiàn)只有定時(shí)器中斷工作有效。而按鍵中斷工作無效。如何設(shè)置IP寄存器,使定時(shí)器工作時(shí),按鍵中斷仍然能工作???
求大神們回復(fù)。
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;

sbit M1=P2^0;
sbit M2=P2^1;
sbit k3=P3^2;

void delay(u16 i)
{
        while(i--);        
}

void HHH()
{

        IT1=1;
        EX1=1;
        EA=1;
}

  void SSS()
{
        TMOD|=0X01;
        TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
        TL0=0X18;        
        ET0=1;
        EA=1;
        TR0=1;
}



void main()
{        
        SSS();
        HHH();  
        while(1);               
}

void Int1()        interrupt 0        
{
                  static u16 i;
        delay(1000);         
        if(k3==0)
        {
                i++;
        
        if(i==3)
        {
        M1=~M1;
        i=1;
        }
        }
}

void Timer0() interrupt 1
{
                 static u16 i;
                         TH0=0XFC;        
                        TL0=0X18;
                        i++;
                           if(i==700)
           {
           i=0;
           M2=~M2;
           }
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:401564 發(fā)表于 2018-10-14 23:40 | 只看該作者
中斷程序里面不要有延時(shí)的,一般來說,一個(gè)中斷是不會用你太多時(shí)間的.算是一千條指令也就是1mS的時(shí)間,這是不會錯(cuò)過的按鍵的掃描時(shí)間的,但你要是在中斷中加入延時(shí),那一個(gè)中斷用上幾mS甚至是幾S的時(shí)間,按鍵是肯定掃描不到的了
總而言之,中斷程序(函數(shù))要小,時(shí)間要智短.

評分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

板凳
ID:74187 發(fā)表于 2018-10-15 06:24 | 只看該作者
http://www.torrancerestoration.com/bbs/dpj-137513-1.html   可以參考一下這個(gè)程序  案件按下一次蜂鳴器響一次,案件控制小燈的反轉(zhuǎn)
回復(fù)

使用道具 舉報(bào)

地板
ID:319023 發(fā)表于 2018-10-15 15:21 | 只看該作者
中斷函數(shù)設(shè)置問題,延時(shí)不能在執(zhí)行中斷函數(shù)的時(shí)候進(jìn)行。
回復(fù)

使用道具 舉報(bào)

5#
ID:410059 發(fā)表于 2018-10-15 17:04 | 只看該作者
同問,中斷嵌套該怎么用
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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