吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用IO引腳作為輸入控制LED的教程

科技觀察員 ? 來源:circuitdigest ? 作者:Sourav Gupta ? 2022-08-10 16:26 ? 次閱讀

在本教程中,我們將學(xué)習(xí)如何使用另一個IO 引腳作為輸入并控制額外的 LED。在不浪費太多時間的情況下,讓我們評估一下我們需要什么樣的硬件設(shè)置。

硬件設(shè)置和要求

由于需要將開關(guān)用作輸入,我們首先需要的是一個按鈕。我們還需要一個額外的 LED 來由該按鈕控制。除了這兩個之外,我們還需要一個電阻器來限制 LED 電流,以及一個用于下拉按鈕的附加電阻器。這將在示意圖部分進一步說明。我們需要的組件 -

一個按鈕(任何種類的瞬時開關(guān),特別是觸覺開關(guān))

LED的任何顏色

4.7k 下拉電阻

100R電阻

更不用說,除了上述組件,我們還需要基于N76E003 微控制器的開發(fā)板以及Nu-Link 編程器。此外,還需要面包板和連接線來連接所有組件,如下所示。

poYBAGLzaxWAb0ZAAAgFYBZm4kU983.png

N76E003 LED和按鈕接口電路

正如我們在下面的示意圖中看到的,開發(fā)板內(nèi)部的測試 LED 連接在端口 1.4上,另外一個 LED 連接在端口 1.5上。電阻 R3 用于限制 LED 電流。

poYBAGLzaxGAdnqZAABdkXrjiFk951.png

在引腳 1.6 中,連接了一個名為 SW 的按鈕。每當(dāng)按下按鈕時,引腳將變?yōu)楦唠娖健7駝t會被 4.7K的下拉電阻R1 拉低。

該引腳也是編程器訪問的與程序相關(guān)的引腳。它用于發(fā)送程序數(shù)據(jù)。但是,我們將看到選擇這些引腳的原因,并獲得有關(guān)N76E003 引腳映射的公平信息

N76E003 引腳圖

N76E003的引腳圖如下圖所示——

poYBAGLzaw2AUJsyAAGf4FH534E652.png

正如我們所看到的,每個引腳都有多種功能,可以用于不同的目的。讓我們舉個例子。引腳 1.7 可用作中斷、模擬輸入或通用輸入輸出操作。因此,如果任何引腳用作 I/O 引腳,則相應(yīng)的功能將不可用。

因此,用作 LED 輸出引腳的引腳 1.5 將失去 PWM 和其他功能。但這不是問題,因為該項目不需要其他功能。之所以選擇引腳 1.5 作為輸出,引腳 1.6 作為輸入,是因為 GND 和 VDD 引腳最近可用,便于連接。

但是,在這個微控制器的 20 個引腳中,有 18 個引腳可以用作 GPIO 引腳。引腳 2.0 專用于復(fù)位輸入,不能用作輸出。除此引腳外,所有引腳均可配置為下述模式。

pYYBAGLzawmAYLvzAACA3ltsVFc528.png

根據(jù)數(shù)據(jù)表,PxM1.n 和 PxM2.n 是兩個寄存器,用于確定 I/O 端口的控制操作。現(xiàn)在,開始寫入和讀取 GPIO 端口是完全不同的事情。因為寫入端口控制寄存器會改變端口的鎖存狀態(tài),而讀取端口會獲得邏輯狀態(tài)的狀態(tài)。但要讀取端口,必須將其設(shè)置為輸入模式。

N76E003 的簡單 GPIO 控制程序

本教程使用的完整程序可以在本頁底部找到,代碼解釋如下。

將引腳設(shè)置為輸入

讓我們先從輸入開始。如前所述,要讀取端口的狀態(tài),需要將其設(shè)置為輸入。因此,由于我們選擇了 P1.6 作為我們的輸入開關(guān)引腳,我們通過下面的代碼片段行來表示它。

#define SW P16

需要將相同的引腳設(shè)置為輸入。因此,在設(shè)置功能上,使用下面的行將引腳設(shè)置為輸入。

無效設(shè)置(無效){

P14_準(zhǔn)模式;

P15_準(zhǔn)模式;

P16_輸入模式;

}

這一行P16_Input_Mode; 在“BSP include library”的Function_define.h頭文件中定義,將pin位設(shè)置為P1M1|=SET_BIT6; P1M2&=~SET_BIT6。SET_BIT6也在同一個頭文件中定義為 -

#define SET_BIT6 0x40

將引腳設(shè)置為輸出

與輸入引腳相同,板載測試 LED 和外部 LED1 使用的輸出引腳也在代碼的第一部分中定義了各自的引腳。

#define Test_LED P14

#define LED1 P15

這些引腳使用以下行在設(shè)置函數(shù)中設(shè)置為輸出。

無效設(shè)置(無效){

P14_Quasi_Mode; // 輸出

P15_準(zhǔn)模式;// 輸出

P16_輸入模式;

}

這些行也在Function_define.h頭文件中定義,它將引腳位設(shè)置為P1M1&=~SET_BIT4; P1M2&=~SET_BIT4。SET_BIT6也在同一個頭文件中定義為 -

#define SET_BIT4 0x10

無限循環(huán)

一個硬件,如果連接到電源并且工作正常,應(yīng)該連續(xù)輸出,應(yīng)用程序永遠不會停止。它無限次地做同樣的事情。無限while循環(huán)的功能來了。while 循環(huán)內(nèi)的應(yīng)用程序無限運行。

而(1){

Test_LED = 0;

sw_delay(150);

測試_LED = 1;

sw_delay(150);

如果(SW == 1){

LED1 = 0;

}

其他 {

LED1 = 1;

}

}

}

上面的 while 循環(huán)根據(jù)sw_delay值使 LED 閃爍,并檢查 SW 的狀態(tài)。如果開關(guān)被按下,P1.6 為高電平,因此當(dāng)按下時,讀取狀態(tài)為 1。在這種情況下,當(dāng)開關(guān)被按下并且端口 P1.6 保持高電平時, LED1 將發(fā)光。

對 N76E003 進行編程并驗證輸出

在我們的 N76E003 入門教程中,我們已經(jīng)學(xué)習(xí)了如何對 N76E003 進行編程,因此我們將在這里重復(fù)相同的步驟來對我們的電路板進行編程。代碼編譯成功,返回0個warning和0個Errors,使用Keil默認(rèn)的刷機方式刷機。

pYYBAGLzawOAeEq0AAU8QbGQxg0655.png

如上圖所示,當(dāng)我按下按鈕時,我們的外部 LED 會亮起。

#include "N76E003.h"
#include "SFR_Macro.h"
#include "函數(shù)定義.h"
#include "Common.h"
#include "延遲.h"
#define Test_LED P14
#define LED1 P15
#define SW P16
無效設(shè)置(無效);
無效 sw_delay (int ms);

無效的主要(無效){
設(shè)置();
而(1){ Test_LED = 0;

sw_delay(150);
測試_LED = 1;
sw_delay(150);
如果(SW == 1){
LED1 = 0;
}
別的 {
LED1 = 1;
}

}
}

// 基于軟件的延遲。時間不準(zhǔn)確。
無效 sw_delay (int ms){
整數(shù)a,b;
對于(a=0;a<1296;a++){
對于 (b=0; b }

}

//這是應(yīng)用程序運行前的設(shè)置文件
無效設(shè)置(無效){
P14_準(zhǔn)模式;
P15_準(zhǔn)模式;
P16_輸入模式;
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23362

    瀏覽量

    663244
  • LED閃爍
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    9874
  • IO引腳
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    9445
收藏 人收藏

    評論

    相關(guān)推薦

    STM32按鍵控制LED的亮滅

    使用一個按鍵控制LED的亮滅,按鍵按下時LED亮起,按鍵松開時LED熄滅。通過按鍵控制實驗來介紹下 IO
    的頭像 發(fā)表于 12-11 14:19 ?3987次閱讀
    STM32按鍵<b class='flag-5'>控制</b><b class='flag-5'>LED</b>的亮滅

    stm32g030j6m6串口如何燒錄程序,NRST引腳能否在作為輸入IO使用時不復(fù)位?

    ; 2.使用SWD下載,NRST引腳必須作為輸入,但外部輸入低電平時,MCU會復(fù)位。 問:串口如何燒錄程序,NRST引腳能否在
    發(fā)表于 03-11 07:48

    無線io輸入控制模塊

    工業(yè) 大為智通公司隆重推出交流220v無線io輸入控制模塊dw-j31系列設(shè)備,這款設(shè)備的特點:(1)設(shè)備供電直接采用交流220v,(2)輸入采集端接交流220v信號的無線plc工業(yè)
    發(fā)表于 07-10 15:55

    FPGA Cyclone IV擴展IO作為輸入時的電平判斷

    在設(shè)計系統(tǒng)的過程中,我需要將CycloneIV的擴展IO作為普通的輸入引腳來檢測外部的輸入信號,請問對外部
    發(fā)表于 03-16 14:46

    FPGA的擴展IO引腳作為輸入直接采集信號?

    想把FPGA(Altera Cyclone IV)的擴展IO引腳作為輸入直接采集信號,請問除了電壓外,對輸入電流有要求嗎,最大能夠承受多大的
    發(fā)表于 03-26 09:31

    請問在運行時配置PIC 32中選擇的IO引腳作為輸入和輸出的最佳方式是什么?

    嗨,在運行時配置PIC 32中選擇的IO引腳作為輸入和輸出的最佳方式是什么?在操作過程中,我需要配置一個引腳
    發(fā)表于 07-04 08:55

    DM642的GP0作為通用IO時,是可以做為輸入和輸出,還是只能作為輸入

    DM642的GP0[4]/EXT_INT4----GP0[7]/EXT_INT7作為通用IO時,是可以做為輸入和輸出,還是只能作為輸入?我看
    發(fā)表于 07-27 09:37

    IO作為外部中斷輸入有幾個步驟

    I/O口作為外部中斷。generalpurpose input and outputSTM32 的每個 IO口都可以作為中斷輸入,要把 IO
    發(fā)表于 08-06 07:02

    介紹下IO作為輸入的使用

    前幾章我們介紹的都是 IO 口輸出的使用,這一章我們通過按鍵控制實驗來介紹下 IO作為輸入的使用。本章所要實現(xiàn)的功能是:通過開發(fā)板上的
    發(fā)表于 08-12 07:03

    如何使用STM32F103的IO作為輸入使用

    按鍵輸入實驗1. 實驗介紹本實驗介紹如何使用STM32F103的IO作為輸入使用。IO作為
    發(fā)表于 08-12 06:52

    stm32f1的io作為輸出的使用方法

    3個按鍵分別控制3個led燈的亮滅。先看看最終的效果:按鍵檢測本章分為以下幾個小節(jié):stm32 io口簡介硬件設(shè)計軟件設(shè)計proteus仿真stm32 io口簡介
    發(fā)表于 01-12 06:32

    STM32的引腳可以作為普通IO口使用嗎

    STM32 PB3 PB4 PA15引腳作為普通IO口使用指南stm32的PB3 PB4 PA15引腳可以在使用SWD仿真和燒錄的情況下釋放出來,
    發(fā)表于 01-18 06:47

    使用Adafruit IO作為MQTT控制Raspberry Pi GPIO的AC設(shè)備

    在本教程中,我們將使用 Adafruit IO 作為 MQTT 代理來控制連接到 Raspberry Pi GPIO 的 AC 設(shè)備。
    的頭像 發(fā)表于 09-01 16:30 ?2685次閱讀
    使用Adafruit <b class='flag-5'>IO</b><b class='flag-5'>作為</b>MQTT<b class='flag-5'>控制</b>Raspberry Pi GPIO的AC設(shè)備

    S7-400作為PROFINET IO控制器(TIA)

    S7-400集成PN口和CP443-1均可作為PROFINET IO控制器。本文以CPU 414-3 PN/DP作為IO設(shè)備,分別闡述以CP
    的頭像 發(fā)表于 12-19 15:04 ?1465次閱讀

    使用STM32F10xxx SWJ引腳作為標(biāo)準(zhǔn)IO

    本文介紹了如何使用GPIO固件庫來釋放SWJ-DP引腳(串行JTAG調(diào)試端口),并且重用為標(biāo)準(zhǔn)IO。SWJ-DP IO能夠用作標(biāo)準(zhǔn)IOs,它的性能可以達到標(biāo)準(zhǔn)IO的80%。
    的頭像 發(fā)表于 12-23 11:47 ?3091次閱讀
    百家乐特殊技巧| 澳门百家乐官网游戏说明书| 皇冠平台| 定制百家乐官网桌垫| 百家乐棋牌游戏源码| 优博注册| 百家乐官网视频游戏世界| 黄金城百家乐游戏| 大发888-大发娱乐城下载| 网上百家乐官网有人赢过吗| 百家乐赌博现金网| 在线棋牌游戏| 网络百家乐官网会作假吗| 竞咪百家乐的玩法技巧和规则| 博爱县| 属蛇做生意坐向| 百家乐庄闲和各| 揭西县| 24山风水实例| e世博线上娱乐| 澳门百家乐登陆网址| 菲律宾新利国际| 网上百家乐开户送现金| 爱博彩到天上人间| 百家乐没边| 泰来百家乐官网导航| 百家乐投注心得和技巧| 海口市| 百家乐怎赌才赢钱| 百家乐官网游戏机论坛| 全讯网找a3322.com| 网上的百家乐官网怎么才能赚钱| 大发888bet亚洲| 如何看百家乐官网的玩法技巧和规则 | 百家乐必赢法软件| 百家乐官网出千赌具| 游戏机百家乐的玩法技巧和规则 | 百家乐看图赢钱| 百家乐官网出千的高科技| 六合彩公式| 百家乐投注技巧球讯网|