色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在PIC16F877A微控制器中使用中斷

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2023-01-25 15:32 ? 次閱讀

在本教程中,我們將學習如何 PIC微控制器中使用外部中斷 ,以及為什么/在哪里需要它們。

所需材料:

  1. PIC16F877A 性能板
  2. 16x2 液晶顯示屏
  3. 按鈕
  4. 連接線
  5. 面包板
  6. 圖片套件 3

什么是中斷以及在哪里使用它們:

在介紹如何對PIC微控制器中斷進行編程之前,讓我們了解中斷實際上是什么以及我們需要在哪里使用它們。此外,微控制器中有很多類型的中斷,PIC16F877A大約有15種中斷。讓我們暫時不要將它們全部混淆到我們的腦海中。

所以!什么是微控制器中的中斷?

眾所周知,微控制器用于執行一組預定義(編程)激活,根據輸入觸發必要的輸出。但是,當您的微控制器忙于執行一段代碼時,可能會出現需要立即關注另一段代碼的緊急情況。另一段需要立即注意的代碼應被視為中斷。

例如:讓我們考慮您正在手機上玩自己喜歡的游戲,而手機內的控制器(假設)正忙于拋出您享受游戲所需的所有圖形。但是,突然你的女朋友撥打了你的號碼。現在,最糟糕的事情是您的手機控制器忽略了您的女朋友電話,因為您正忙于玩游戲。為了防止這種噩夢的發生,我們使用了一種稱為中斷的東西。

這些中斷將始終處于活動狀態,列出某些特定操作的發生,當它們發生時,它們執行一段代碼,然后返回正常功能。這段代碼稱為 中斷服務例程 (ISR)。 一個必須中斷的實際項目是“使用PIC微控制器的數字車速表和里程表電路

在微控制器中,有兩種主要 類型的中斷 。它們是外部中斷和內部中斷。內部中斷發生在微型控制器內部,用于執行任務,例如定時器中斷、ADC 中斷等。這些中斷由軟件觸發,分別完成定時器操作或ADC操作。

外部中斷是可以由用戶觸發的中斷。在這個程序中,我們將學習如何通過使用按鈕觸發中斷來 使用外部中斷 。我們將使用 LCD 顯示從 0 到 1000 遞增的數字,當觸發中斷時,我們應該從中斷服務例程 **ISR **通知它,然后繼續返回到遞增數字。

電路圖及說明:

1.png

使用PIC16F877中斷的電路圖如上圖所示。您只需將LCD連接到PIC,就像我們在接口LCD教程中所做的那樣。

現在要連接中斷引腳,我們應該查看數據表,以了解PIC的哪個引腳用于外部中斷。在我們的例子中,PIC16F877A 33^RD^引腳 RBO/INT 用于外部中斷。您不能使用此引腳以外的任何其他引腳。此電路圖的引腳連接如下表所示。

S.No: 引腳編號 引腳名稱 已連接到
1 21 RD2 液晶顯示器的 RS
2 22 RD3 液晶顯示器的E
3 27 RD4 液晶屏D4
4 28 RD5 液晶屏D5
5 29 太平洋地區技術 液晶屏D6
6 30 RD7 液晶屏D7
7 33 RBO/INT 按鈕

我們在端口 B 上啟用了內部上拉電阻,因此我們可以通過按鈕將 RB0 引腳直接接地。因此,每當該引腳變為低電平時,就會觸發中斷。

可以在面包板上進行連接,如下所示。

PIC 微控制器 PIC16F877A 中斷試驗板連接

如果您一直在學習我們的教程,您應該已經熟悉我在這里使用的這個 Perf 板。如果沒有,你不需要考慮太多,只需按照電路圖,你就會讓事情正常。

PIC微控制器中的中斷仿真

該項目的模擬是使用Proteus進行的。

1.png

模擬項目時,您應該會在LCD顯示屏上看到一系列數字遞增。這發生在主回路內,每當按下按鈕時,LCD都應顯示它已進入ISR。您可以在代碼中進行修改并嘗試在此處進行測試。

代碼說明:

可以在本教程末尾找到此項目的完整代碼。但是,該程序被分成重要的塊,并在下面解釋,以便您更好地理解。

像所有程序一樣,我們必須通過定義程序中使用的引腳的引腳配置來開始代碼。同樣在這里,我們需要定義我們使用RB0 / INT作為外部中斷引腳,而不是輸入或輸出引腳。下面的代碼行使能端口B上的內部上拉電阻,方法是使7^千^位為 0。

OPTION_REG = 0b00000000;

選項注冊

然后我們啟用全局/外設中斷,并聲明我們使用RB0作為外部中斷引腳。

GIE=1;          //Enable Global Interrupt

    PEIE=1;         //Enable the Peripheral Interrupt

    INTE = 1;       //Enable RB0 as external Interrupt pin

一旦RB0引腳被定義為外部中斷引腳,每次它變低時,外部中斷標志INTF將變為1,并且void中斷函數中的代碼將被執行,因為將調用中斷服務例程(ISR)。

void interrupt ISR_example()

{

        if (INTF==1) //External Interrupt detected

        {

            Lcd_Clear();

            Lcd_Set_Cursor(1,1);

            Lcd_Print_String("  Entered ISR");

           INTF = 0;          // clear the interrupt flag after done with it

           __delay_ms(2000);

            Lcd_Clear();

        }

}

如您所見,我將中斷函數命名為 ISR_example。您可以根據自己的意愿命名。在中斷函數中,我們將檢查 INTF 標志是否為高并執行所需的操作。完成例程后清除中斷標志非常重要。只有這樣,程序才會返回到 void 主函數。這種清算必須通過使用生產線的軟件來完成

INTF = 0;          // clear the interrupt flag after done with it

在主功能中,我們只需每 500 毫秒增加一個數字并將其顯示在 LCD 屏幕上。我們沒有任何特定的線路來檢查RB0引腳的狀態。中斷將始終保持活動狀態,每當按下按鈕時,它都會跳出空主線并執行 ISR 中的行。

Lcd_Set_Cursor(2,1);

        Lcd_Print_String("Inside Main Loop");

        Lcd_Set_Cursor(1,1);

        Lcd_Print_String("Number: ");

        Lcd_Print_Char(ch1+'0');

        Lcd_Print_Char(ch2+'0');

        Lcd_Print_Char(ch3+'0');

        Lcd_Print_Char(ch4+'0');

       

        __delay_ms(500);

        number++;

PIC16F877A 的工作中斷:

一旦您了解了 中斷的工作原理 ,您就可以在硬件上嘗試并擺弄它。這里給出的這個程序是一個非常基本的外部中斷示例,它只是在檢測到中斷時改變LCD屏幕的顯示。

PIC16F877A 中斷的工作

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PIC16F877A
    +關注

    關注

    2

    文章

    43

    瀏覽量

    21840
  • PIC微控制器
    +關注

    關注

    0

    文章

    17

    瀏覽量

    7414
  • 外部中斷
    +關注

    關注

    1

    文章

    132

    瀏覽量

    15843
收藏 人收藏

    評論

    相關推薦

    將繼電器與PIC微控制器PIC16F877A連接的教程

    在本項目中,我們將繼電器與PIC微控制器PIC16F877A連接。繼電器是一種機械設備,用于從較低的電壓電平控制高電壓、大電流電器的“ON”或“OFF”。繼電器在兩個電壓電平之間提供隔
    的頭像 發表于 11-14 16:20 ?3461次閱讀
    將繼電器與<b class='flag-5'>PIC</b><b class='flag-5'>微控制器</b><b class='flag-5'>PIC16F877A</b>連接的教程

    如何使用PIC微控制器旋轉步進電機

    在本教程中,我們將步進電機與PIC微控制器PIC16F877A連接。
    發表于 11-15 17:25 ?1508次閱讀
    如何使用<b class='flag-5'>PIC</b><b class='flag-5'>微控制器</b>旋轉步進電機

    如何使用PIC微控制器構建一個線路跟隨機器人

    線路跟隨機器人是一個簡單而迷人的機器人,適合大多數學生/業余愛好者建造。在本教程中,我們將學習線路跟隨機器人的工作原理以及如何使用 PIC 微控制器 PIC16F877A 構建一個。PIC16
    發表于 11-30 17:17 ?1618次閱讀
    如何使用<b class='flag-5'>PIC</b><b class='flag-5'>微控制器</b>構建一個線路跟隨機器人

    PIC16F877A中斷優先級問題

    現在我需要通過串口來接收指令控制PIC16F877A的捕獲脈沖行為,可以做到的是:接收到開捕獲指令后,能正常開始捕獲脈沖,但是再發送關閉指令卻不能讓它停下來,通過KIT3發現,在捕獲的時候,串口不能
    發表于 06-06 21:18

    pic16f877a中文資料pdf

    pic16f877a中文資料
    發表于 07-15 13:20 ?4548次下載
    <b class='flag-5'>pic16f877a</b>中文資料pdf

    基于PIC16F877A的太陽能與市電互補照明系統控制器的設

    基于PIC16F877A的太陽能與市電互補照明系統控制器的設計 介紹了一款以單片機PIC16F877A控制核心的太陽能與市電互補照明系統控制器
    發表于 04-10 22:06 ?1368次閱讀
    基于<b class='flag-5'>PIC16F877A</b>的太陽能與市電互補照明系統<b class='flag-5'>控制器</b>的設

    PIC16F877A串口發送查詢方式

    PIC16F877A串口發送,查詢方式,就為了調出這個費了我一天時間,原來是串口芯片電壓問題,現總結如下
    發表于 09-01 11:03 ?10次下載
    <b class='flag-5'>PIC16F877A</b>串口發送查詢方式

    PIC16F877A串口芯片電壓問題

    PIC16F877A串口發送,查詢方式,就為了調出這個費了我一天時間,原來是串口芯片電壓問題,現總結如下
    發表于 09-01 11:15 ?9次下載
    <b class='flag-5'>PIC16F877A</b>串口芯片電壓問題

    PIC16F877A的T0定時制作的電子鐘程序

    經過努力,利用PIC16F877A的T0定時制作的電子鐘實驗成功!
    發表于 05-15 09:42 ?1927次閱讀

    PIC16F877A開發板 數碼管動態掃描實驗

    //****************電子園PIC16F877A開發板 數碼管動態掃描實驗****************//////mcu: PIC16F877A 4MHz //2010年12月
    發表于 11-16 19:51 ?13次下載
    <b class='flag-5'>PIC16F877A</b>開發板 數碼管動態掃描實驗

    PIC16F877A開發板 普通IO驅動74595實驗

    //*****************電子園PIC16F877A開發板 普通IO驅動74595實驗***************////PIC16F877A 實驗板////mcu
    發表于 11-16 19:51 ?13次下載
    <b class='flag-5'>PIC16F877A</b>開發板 普通IO驅動74595實驗

    PIC16F877A 看門狗定時實驗

    //*******************PIC16F877A 看門狗定時實驗******************* // //PORTA,PORTB,PORTC,PORTD,PORTE
    發表于 11-16 20:06 ?8次下載
    <b class='flag-5'>PIC16F877A</b> 看門狗定時<b class='flag-5'>器</b>實驗

    使用熱敏打印機連接PIC16F877A并使用輕觸開關實現打印的教程

    在本教程中,我們將熱敏打印機 CSN A1 與廣泛使用的 PIC 微控制器 PIC16F877A 連接。在本項目中,熱敏打印機連接在PIC16F87
    的頭像 發表于 11-04 15:10 ?2875次閱讀
    使用熱敏打印機連接<b class='flag-5'>PIC16F877A</b>并使用輕觸開關實現打印的教程

    何在PIC16F877A微控制器中使用EEPROM保存數據

    在本教程中,我們將了解使用 **PIC16F877A 微控制器中的 EEPROM** 保存數據是多么容易。在大多數實時項目中,我們可能必須保存一些數據,即使關閉電源也不應刪除這些數據。這聽起來像是一
    的頭像 發表于 01-25 15:39 ?2675次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>PIC16F877A</b><b class='flag-5'>微控制器</b><b class='flag-5'>中使</b>用EEPROM保存數據

    PIC16F877A開發板原理圖

    PIC16F877A開發板原理圖免費下載。
    發表于 03-21 15:47 ?12次下載
    主站蜘蛛池模板: 亚洲精品国产高清不卡在线| 久久香蕉国产线看观看| 国产高清在线露脸一区| 娇喘高潮教室h| 人妻免费久久久久久久了| 亚洲AV日韩AV欧美在线观看网 | 忘忧草高清| 97超碰97资源在线观看视频| 国产亚洲精品久久久999蜜臀| 暖暖视频在线高清播放| 亚洲人成伊人成综合网久久久| couo福利姬图库| 美国caopo超碰在线视频| 亚洲精品影院久久久久久| 国产AV白丝爆浆在线播放| 免费成年人在线视频| 亚洲乱码中文字幕久久| 国产成人a v在线影院| 捏奶动态图吃奶动态图q| 找老女人泻火对白自拍| 国内免费视频成人精品| 四虎影视永久无码精品| 超碰在线视频 免费| 尿孔 调教 扩张| 2023国产精品一卡2卡三卡4卡| 精品国产人成亚洲区| 玩弄朋友娇妻呻吟交换电影| 纯肉高H放荡受BL文库| 男子扒开美女尿口做羞羞的事| 在线视频免费国产成人| 久久99国产精品二区不卡| 午夜噜噜噜私人影院在线播放 | 一本道无码字幕在线看| 国产色婷亚洲99精品AV在线| 肉肉描写很细致的黄文| caoporn超碰在线| 男人天堂黄色| bl(高h)文| 女性露出奶头流出精子| av天堂网站avtt2017| 女生扒开尿口|