久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機兩外部中斷嵌套,執(zhí)行優(yōu)先級怎么設(shè)置?求代碼解讀或提示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:253829 發(fā)表于 2017-11-26 17:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機兩外部中斷嵌套,執(zhí)行優(yōu)先級怎么設(shè)置?自己的設(shè)置沒用,求代碼解讀,或提示點。謝謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:111634 發(fā)表于 2017-11-26 19:19 | 只看該作者
先學(xué)理論,打基礎(chǔ),否則,問題多多,事倍功半。
回復(fù)

使用道具 舉報

板凳
ID:164602 發(fā)表于 2017-11-27 09:19 | 只看該作者
我有一個程序,是有關(guān)這個內(nèi)容的,你看看。

//#include <STC89.H>
#include<reg52.h>
#include"LY.h"//延時函數(shù)頭文件
#include<intrins.h>       

#define GPIO_LED P2
#define GPIO_DIG P0

sbit k1=P3^1;
sbit k2=P3^0;

sbit Beep =  P1^5 ;

void IntConfiguration();//中斷設(shè)置子函數(shù)
void delay(unsigned int i) ;

unsigned char code DIG_CODE[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsigned char p;

void main(void)
{
        unsigned char n;
        unsigned char m;

        IntConfiguration();
        p=0xff;
        GPIO_LED=p;

        while(1)
        {       

                if(k1==0)//獨立按鍵k1
                {
                        Delay10ms(1);
                        if(k1==0)
                        {
                                if(p==0xff)
                                {
                                        p=0x00;
                                        GPIO_LED=p;
                                }
                                else
                                {
                                        p=0xff;
                                        GPIO_LED=p;
                                }
                            while((m<50)&&(k1==0))
                            {
                                    Delay10ms(1);
                                    m++;
                            }
                            m=0;
                        }

                }

                if(k2==0)//獨立按鍵k2
                {
                        Delay10ms(1);
                        if(k2==0)
                        {
                                if(p<0x80)
                                {
                                    p=0x7f;
                                        GPIO_LED=p;
                                        Delay10ms(50);
                                        for(n=0;n<7;n++)
                                    {
                                            p=_cror_(p,1);
                                                GPIO_LED=p;
                                                Delay10ms(50);
                                        }
                                }
                                else
                                {
                                    p=0xfe;
                                        GPIO_LED=p;
                                        Delay10ms(50);
                                        for(n=0;n<7;n++)
                                    {
                                            p=_crol_(p,1);
                                                GPIO_LED=p;
                                                Delay10ms(50);
                                        }

                                }
                            while((m<50)&&(k2==0))
                            {
                                    Delay10ms(1);
                                    m++;
                            }
                            m=0;
                        }
                }

        }               
}

void delay(unsigned int i)//延時19.3us,主要用于發(fā)聲音
{
    unsigned char j;
    for(i; i > 0; i--)
        for(j = 100; j > 0; j--);
}

void IntConfiguration()//中斷設(shè)置子函數(shù)
{
        IT0=1;
        EX0=1;
        PX0=0;//低優(yōu)先級
        IT1=1;
        EX1=1;
        PX1=1;//高優(yōu)先級
        EA=1;
}

void Int0(void)        interrupt 0//外部中斷0的中斷服務(wù)函數(shù)
{
        unsigned int n;
        n=0;
        while(n<1500)
    {
            Beep= 1;
            delay(5);
            Beep= 0;
            delay(5);
        n++;
        }
        IE0=0;
}

void Int1(void) interrupt 2//外部中斷1的中斷服務(wù)函數(shù)
{
        unsigned char x,i,j;
        p=GPIO_LED;//保存原來的P2口值
        x=25;//延時時間長短                         
        i=0; //循環(huán)次數(shù)
        j=0xe3;//點亮數(shù)碼管的最右位
        while (i<16)
        {
                GPIO_LED=j;                               
                GPIO_DIG=DIG_CODE[i];
                Delay10ms(x);
                if (j==0xff)
                {
                        j=0xdf;                       
                }
                j=j+0x04;
                i=i+1;
        }
        GPIO_DIG=0x00;
        GPIO_LED=p;
        IE1=0;
}

執(zhí)行效果是:
按k3(外部中斷0)響蜂鳴器,按k4(外部中斷1),顯示數(shù)碼管。
按k3后,蜂鳴器響,馬上按K4,會立即去顯示數(shù)碼管,顯示完畢,再回來繼續(xù)響蜂鳴器,說明外部中斷1優(yōu)先級高,可以打斷外部中斷0的程序。按k4顯示數(shù)碼管,再按k3,沒有反應(yīng),等顯示完畢,才響蜂鳴器,也說明外部中斷1優(yōu)先級高,不會被低優(yōu)先級的外部中斷0打斷程序。
回復(fù)

使用道具 舉報

地板
ID:254068 發(fā)表于 2017-11-27 10:54 | 只看該作者
厲害了  樓主
回復(fù)

使用道具 舉報

5#
ID:253829 發(fā)表于 2017-12-2 09:11 | 只看該作者
謝謝了!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产高清免费 | 日韩国产精品一区二区三区 | 色视频一区二区 | 国内精品久久久久久影视8 最新黄色在线观看 | 久久久久久黄 | 免费的网站www | 久久久精品网 | 免费a网站 | 成年精品 | 黑人中文字幕一区二区三区 | 色黄爽 | 久久91av| 亚洲福利精品 | 麻豆亚洲| 国产一区久久 | 97成人免费 | 三级成人在线观看 | 久久国产精品久久久久 | 永久免费在线观看 | 欧美不卡视频一区发布 | 一级欧美 | 久久99精品久久久久 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 国产精品一区二区av | 欧美成人黄色小说 | 特级黄一级播放 | 精品日韩一区二区 | 狠狠干五月天 | 欧美三级电影在线播放 | 亚洲精品一二三 | 欧美一区二区三区视频 | 久久91精品久久久久久9鸭 | 久久99成人 | 91看片视频 | 国产精品视频网 | 久久九精品 | 亚洲区一区二区 | 久久亚洲91 | 免费一区二区三区 | 欧洲色| av大全在线观看 |