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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

使用單片機外部中斷遇到了一點問題,上電的時候無法檢測外部中斷低電壓

[復制鏈接]
跳轉到指定樓層
樓主
ID:1081016 發表于 2023-7-8 18:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大佬幫忙看看

使用的外部中斷1;低電平觸發

想要實現的功能是;1、上電時默認進入while(1)主程序(每秒閃2次)。
2、中斷程序(每秒閃5次)。
3、如果檢測到外部中斷為低電平“執行外部中斷程序”、如果外部中斷為高電平“執行while(1)主程序”。注釋;外部中斷源是一個按鍵;當按鍵按下是接地觸發外部中斷。當松開按鍵為高電平是回到主程序。
4、上電時如果外部中斷為低電平,則直接進入中斷程序。注釋;如果在上電前按下按鍵時。

現在的問題是;第1、和第2,第3步,都是實現了。“第4步,上電時如果外部中斷為低電平,則直接進入中斷程序。實現不了”

本人菜雞!謝謝大家!

單片機代碼如下;
#include <REGX51.H>         //51頭文件
sbit LED = P3^5;          //引腳定義
sbit Key1 = P3^3;         //引腳定義

//*********延時函數***********
void DELAY_MS(unsigned int a )
{
    unsigned int i;
    while (--a !=0)
    {
     for (i=0; i<=600; i++);
    }
}
//*********主程序************
void main(void)
{
        Key1 = 1;          // key1初始化高電平
        LED=0;                //初始化led

        EA=1;                 //開總中斷
        IT1=0;                //低電平觸發
        EX1=1;                //外部中斷1允許
      
        while(1)      
        {
        LED=1;                        //LED亮
        DELAY_MS(80);        //延時
        LED=0;                        //LED滅
        DELAY_MS(100);        //延時
        LED=1;                        //LED亮
        DELAY_MS(80);        //延時
        LED=0;                        //LED滅
        DELAY_MS(1680);        //延時
        }
}                                       

void intx(void) interrupt 0        //外部中斷0
{         
        while(1)
        {
                if(Key1==0)                        //Key1低電平檢測
                DELAY_MS(10);                //延時按鍵消抖
                {
                        if(Key1==0)                //再次“Key1”低電平檢測
                        {
                          LED=1;
                          DELAY_MS(60);
                          LED=0;
                          DELAY_MS(60);
                          LED=1;
                          DELAY_MS(40);
                          LED=0;                                                                                                  
                          DELAY_MS(40);
                          LED=1;
                          DELAY_MS(30);
                          LED=0;
                          DELAY_MS(30);
                          LED=1;
                          DELAY_MS(20);
                          LED=0;
                          DELAY_MS(520);                 
                        }      
                        else
                        {
                          DELAY_MS(10);
                          return;                //返回主程序
                        }
                }
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1080935 發表于 2023-7-9 08:29 | 只看該作者
確定實現了前3?初始化的是外部中斷1,用的是外部中斷0?
回復

使用道具 舉報

板凳
ID:235200 發表于 2023-7-9 08:47 | 只看該作者
進入中斷后,在中斷處理程序中要關閉外部中斷允許,否則會一直發生中斷(因為中斷程序執行時間較長,包含了延時程序)
回復

使用道具 舉報

地板
ID:1081016 發表于 2023-7-9 10:31 | 只看該作者
LaoYuTou 發表于 2023-7-9 08:29
確定實現了前3?初始化的是外部中斷1,用的是外部中斷0?

實現了,把void intx(void) interrupt 1        //外部中斷
回復

使用道具 舉報

5#
ID:1081016 發表于 2023-7-9 10:32 | 只看該作者
LaoYuTou 發表于 2023-7-9 08:29
確定實現了前3?初始化的是外部中斷1,用的是外部中斷0?

第四步實現步了
回復

使用道具 舉報

6#
ID:1081016 發表于 2023-7-9 20:11 | 只看該作者
已解決。謝謝各位大佬!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品日韩 | 久久久久久久久一区 | 欧美日韩国产一区二区 | 亚洲综合资源 | 四虎首页 | 亚洲高清成人在线 | 亚洲欧洲在线观看视频 | 九九热在线视频免费观看 | 成人国产精品色哟哟 | 久久久久久久电影 | 欧美性猛交一区二区三区精品 | 欧美视频三区 | 久久久欧洲 | 成年视频在线观看 | 久久九九色 | 久久精品亚洲精品 | 国产精品有限公司 | 一级黄色日本片 | 日韩欧美综合 | 免费成人在线网站 | 精久久久 | 97在线超碰 | 国产精品久久国产精品 | 中文字幕国产一区 | 一级毛片网| 亚洲精品电影网在线观看 | 国产精品美女www | 日韩区| 亚洲精品乱码久久久久久久久久 | 丝袜毛片| 秋霞国产| 国产亚洲一区二区三区 | 亚洲精品综合一区二区 | 国产精品xxxx| 涩爱av一区二区三区 | www视频在线观看 | 欧美中文字幕一区二区三区亚洲 | 不卡一区二区三区四区 | 日韩精品一区二区三区高清免费 | 自拍偷拍中文字幕 | 成人av片在线观看 |