日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nrf52840 gpiote如何配置中断输入_51单片机外部中断点亮LED

發布時間:2024/2/28 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nrf52840 gpiote如何配置中断输入_51单片机外部中断点亮LED 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
夜貓子:51單片機中斷基本概念?zhuanlan.zhihu.com

外部中斷軟件設計原理

  • 中斷發生的三個條件①中斷源有中斷請求;②此中斷源的中斷允許位為 1;③CPU 開中斷(即 EA=1)。比如我們配置外部中斷 0,對應的配置程序如下:EA=1;//打開總中斷開關EX0=1;//開外部中斷 0IT0=0/1;//設置外部中斷的觸發方式(下降沿觸發)如果要配置的是外部中斷 1,只需將 EX0 改為 EX1,IT0 改為 IT1
  • 在編寫程序時通常我們會將外部中斷的配置放到一個自定義函數內便于管理維護。如下偽代碼所示:
void Int0Init(){ //設置 INT0 IT0=1;//邊沿觸發方式(下降沿) EX0=1;//打開 INT0 的中斷允許。 EA=1;//打開總中斷 } /*當觸發中斷后即會進入中斷服務函數,外部中斷 0 中斷服務函數如下:*6/ void Int0() interrupt 0 //外部中斷 0 的中斷函數 { //執行所需的功能 }

硬件實現原理

  • 實現的功能:使用獨立按鍵 K3 控制 LED 亮滅,K3 連接外部中斷0(P3.2)管腳。
  • 原理圖:


左圖為獨立按鍵原理圖,右圖為LED原理圖

  • 實現原理:
    要想使用外部中斷 0 控制 LED,就必須通過單片機外部中斷管腳與按鍵 K3 連接。由于開發板上部分模塊電路是集成的,所以直接使用單片機 P3^2 和 P2^0 管腳即可。
  • 代碼實現
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器 typedef unsigned int u16; //對數據類型進行聲明定義 typedef unsigned char u8; sbit k3=P3^2; //定義按鍵 K3 sbit led=P2^0; //定義 P20 口是 led/* * 函 數 名 : delay * 函數功能 : 延時函數,i=1 時,大約延時 10us */ void delay(u16 i) { while(i--); }/* * 函 數 名 : Int0Init() * 函數功能 : 設置外部中斷 0 * 輸 入 : 無 * 輸 出 : 無 */ void Int0Init() { //設置 INT0 IT0=1;//跳變沿出發方式(下降沿) EX0=1;//打開 INT0 的中斷允許。 EA=1;//打開總中斷 }/* * 函 數 名 : main * 函數功能 : 主函數 * 輸 入 : 無 * 輸 出 : 無 */ void main() { Int0Init(); // 設置外部中斷 0 while(1);//等待下降沿的產生,若k3按鍵按下,下降沿產生,立即進入中斷服務函數 }/* * 函 數 名 : Int0() interrupt 0 * 函數功能 : 外部中斷 0 的中斷函數 * 輸 入 : 無 * 輸 出 : 無 */ void Int0() interrupt 0 //外部中斷 0 的中斷函數 { delay(1000); //延時消抖 if(k3==0) //判斷按鍵是否按下 { led=~led; //控制燈亮或燈滅 } }

總結

以上是生活随笔為你收集整理的nrf52840 gpiote如何配置中断输入_51单片机外部中断点亮LED的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。