在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如何使用數(shù)字讀/寫引腳

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2022-11-18 14:47 ? 次閱讀

在本教程中,我們將學(xué)習(xí)如何使用數(shù)字讀取和數(shù)字寫入選項來讀取輸入設(shè)備(如開關(guān))的狀態(tài),并控制多個輸出(如 LED)。在本教程結(jié)束時,您將學(xué)習(xí)使用數(shù)字輸入和輸出,它可用于連接許多數(shù)字傳感器,如紅外傳感器、PIR 傳感器等,還可以打開或關(guān)閉輸出,如 LED、蜂鳴器等。聽起來很有趣吧!!?讓我們開始吧。

所需材料:

MSP430G2 啟動板

任何顏色的 LED – 8

開關(guān) – 2

1k 電阻器 – 8

連接線

電路圖:

在之前的教程中,我們注意到發(fā)射臺本身在板上有兩個 LED 和一個開關(guān)。但是在本教程中,我們將需要更多,因為我們計劃在按下按鈕時按順序點亮八個 LED 燈。我們還將在按下另一個按鈕時更改順序,以使其有趣。所以我們必須建立一個帶有8個LED燈和兩個開關(guān)的電路,完整的電路圖可以在下面找到。

pYYBAGN3KouAdhs1AAB1kvg_WyY891.png

這里的8個LED是輸出,兩個開關(guān)是輸入。我們可以將它們連接到電路板上的任何 I/O 引腳,但我已將 LRD 從引腳 P1.0 連接到 P2.1,并將開關(guān) 1 和 2 分別連接到引腳 P2.4 和 P2.3,如上所示。

LED的所有陰極引腳都接地,陽極引腳通過電阻連接到I/O引腳。該電阻器稱為限流電阻器,此電阻器對于 MSP430 不是必需的,因為它的 I/O 引腳可以提供的最大電流僅為 6mA,引腳上的電壓僅為 3.6V。但是,使用它們是一個很好的做法。當(dāng)這些數(shù)字引腳中的任何一個變?yōu)楦唠娖綍r,相應(yīng)的 LED 將亮起。如果你能回憶起上一個教程的LED程序,那么你就會記得數(shù)字寫入(LED_pin_name,高)將使LED發(fā)光,數(shù)字寫入(LED_pin_name,低)將使LED轉(zhuǎn)動。

開關(guān)是輸入設(shè)備,開關(guān)的一端連接到接地端子,另一端連接到數(shù)字引腳P2.3和P2.4。這意味著每當(dāng)我們按下開關(guān)時,I/O 引腳(2.3 或 2.4)都將接地,如果不按下按鈕,I/O 引腳將保持空閑狀態(tài)。讓我們看看如何在編程時使用這種安排。

編程說明:
當(dāng)按下開關(guān) 1 時,必須編寫程序以順序方式控制 8 LED,然后當(dāng)按下開關(guān) 2 時,必須更改順序。完整的程序和演示視頻可以在此頁面底部找到。下面我將逐行解釋程序,以便您輕松理解。

與往常一樣,我們應(yīng)該從 void setup() 函數(shù)開始,在該函數(shù)中,我們將聲明我們使用的引腳是輸入或輸出引腳。在我們的程序中,輸出 8 個 LED 引腳,輸入 2 個開關(guān)。這 8 個 LED 從 P1.0 連接到 P2.1,即電路板上的引腳編號 2 到 9。然后將開關(guān)連接到引腳P2.3和引腳2.4,分別是引腳編號11和12。所以我們在 void setup() 中聲明了以下內(nèi)容

void setup() {
for (int i = 2; i <= 9; i++) {
pinMode(i, OUTPUT);
}
for (int i = 2; i <= 9; i++) {
digitalWrite(i, LOW);
}
pinMode (11, INPUT_PULLUP);
pinMode (12, INPUT_PULLUP);
}
眾所周知,pinMode() 函數(shù)將引腳聲明為輸出或輸入,而 digitalWrite() 函數(shù)使其高電平 (ON) 或低電平 (OFF)。我們使用 for 循環(huán)來做出此聲明以減少行數(shù)。變量 “i” 將在 for 循環(huán)中從 2 遞增到 9,并且對于每個增量,將執(zhí)行其中的函數(shù)。另一件可能讓您感到困惑的事情是術(shù)語“INPUT_PULLUP”。只需調(diào)用函數(shù)pinMode(Pin_name,INPUT)即可將引腳聲明為輸入,但在這里我們使用了INPUT_PULLUP而不是INPUT,它們都有明顯的變化。

當(dāng)我們使用任何微控制器引腳時,該引腳應(yīng)連接到低電平或高電平。在這種情況下,引腳 11 和 12 連接到開關(guān),按下時開關(guān)將接地。但是,當(dāng)開關(guān)未按下時,引腳未連接到任何內(nèi)容,這種情況稱為浮動引腳,對微控制器不利。因此,為了避免這種情況,我們要么使用上拉電阻器,要么使用下拉電阻器,在引腳浮動時將引腳保持在某種狀態(tài)。在 MSP430G2553 微控制器中,I/O 引腳內(nèi)置了一個上拉電阻。要使用它,我們所要做的就是在聲明期間調(diào)用 INPUT_PULLUP 而不是 INPUT,就像上面所做的那樣。

現(xiàn)在讓我們進入 void loop() 函數(shù)。在此函數(shù)中編寫的任何內(nèi)容都將永遠執(zhí)行。我們程序的第一步是檢查開關(guān)是否被按下,如果按下,我們應(yīng)該開始按順序閃爍 LED。要檢查按鈕是否按下,請使用以下行

if (digitalRead(12) == LOW)
這里的新功能是digitalRead()函數(shù),該函數(shù)將讀取數(shù)字引腳的狀態(tài),并在引腳獲得一定電壓時返回HIGH(1),當(dāng)引腳接地時返回低LOW(0)。在我們的硬件中,只有當(dāng)我們按下按鈕時,引腳才會接地,否則它會很高,因為我們使用了上拉電阻。所以我們使用 if 語句來檢查按鈕是否被按下。

按下按鈕后,我們進入無限 while (1) 循環(huán)。這是我們開始按順序閃爍 LED 的地方。下面顯示了一個無限的while循環(huán),循環(huán)中寫入的任何內(nèi)容都將永遠運行,直到中斷;使用語句。

whiel(1){
}
在無限內(nèi),我們檢查連接到引腳 11 的第二個開關(guān)的狀態(tài)。

如果按下此開關(guān),我們將按一個特定順序閃爍 LED,否則我們將以另一個順序閃爍。

if (digitalRead(11) == LOW)
{
for (int i = 2; i <= 9; i++)
{
digitalWrite(i, HIGH);
delay(100);
}
for (int i = 2; i <= 9; i++)
digitalWrite(i, LOW);
}
為了按順序閃爍 LED,我們再次使用 for 循環(huán),但這次我們使用 delay(100) 函數(shù)使用 100 毫秒的小延遲,以便我們可以注意到 LED 變高。為了一次只使一個LED發(fā)光,我們還使用另一個for回路來關(guān)閉所有LED。因此,我們打開 LED 等待一段時間,然后關(guān)閉所有 LED,然后增加計數(shù)打開 LED 等待一段時間,循環(huán)繼續(xù)。但只要不按下第二個開關(guān),這一切都會發(fā)生。

如果按下第二個開關(guān),然后我們更改順序,程序?qū)⒒蚨嗷蛏倥c LED 打開的順序相同。下面顯示的行嘗試查看并找出已更改的內(nèi)容。


else
{
for (int i = 9; i >= 2; i--)
{
digitalWrite(i, HIGH);
delay(100);
}
for (int i = 2; i <= 9; i++)
digitalWrite(i, LOW);
}
是的,for 循環(huán)已更改。以前,我們讓 LED 從數(shù)字 2 一直發(fā)光到 9。但是現(xiàn)在我們將從數(shù)字 9 開始,一直減少到 2。這樣我們就可以注意到開關(guān)是否被按下。

閃爍 LED 序列的硬件設(shè)置:

好的,所有的理論和軟件部分都足夠了。讓我們獲取一些組件,看看該程序的實際效果。該電路非常簡單,因此可以很容易地構(gòu)建在面包板上。但是我已經(jīng)在性能板上焊接了LED和開關(guān),只是為了讓它看起來整潔。我焊接的性能板如下所示。

poYBAGN3Ko2AcVBFAADEGutBH7Y102.jpg

如您所見,我們將LED和開關(guān)的輸出引腳作為連接器引腳取出。現(xiàn)在,我們已經(jīng)使用母對母連接器線連接 LED 并切換至 MSP430 LaunchPad 板,如下圖所示。

pYYBAGN3Ko-AaZrGAADxwel-DSk191.jpg

上傳和工作:

完成硬件操作后,只需將MSP430板連接到計算機并打開Energia IDE并使用本頁末尾給出的程序即可。確保在Energia IDE中選擇了正確的電路板和COM端口,然后單擊“上傳”按鈕。該程序應(yīng)該編譯成功,上傳后將顯示“完成上傳”。

現(xiàn)在按下板上的按鈕 1,LED 應(yīng)按順序亮起,如下所示

poYBAGN3KpSATY2mAADkKLoy-IY508.jpg

您也可以按住第二個按鈕來檢查順序是否被更改。

/*

TUTORIAL 2 - Learning to use I/O

This program will control 8 LEDs based ont he input from two push button

LED should be connected form P1.0 to P2.1 (pin 2 to 7)

Switch is connected to P2.3 and P2.4 (pin 8 and 9)

*/


void setup() {

for (int i = 2; i <= 9; i++) {

pinMode(i, OUTPUT);

}

for (int i = 2; i <= 9; i++) {

digitalWrite(i, LOW);

}



pinMode (11, INPUT_PULLUP);

pinMode (12, INPUT_PULLUP);

}


// the loop routine runs over and over again forever:

void loop() {


if (digitalRead(12) == LOW)

{

while (1)

{

if (digitalRead(11) == LOW)

{

for (int i = 2; i <= 9; i++)?

{

digitalWrite(i, HIGH);

delay(100);

}

for (int i = 2; i <= 9; i++)

digitalWrite(i, LOW);

}

else

{

for (int i = 9; i >= 2; i--)

{

digitalWrite(i, HIGH);

delay(100);

}

for (int i = 2; i <= 9; i++)

digitalWrite(i, LOW);

}

}

}

}

聲明:本文內(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

    文章

    23770

    瀏覽量

    671862
  • 輸入設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8599
  • MSP430G2
    +關(guān)注

    關(guān)注

    1

    文章

    19

    瀏覽量

    12939
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    DDR 1&2&3的“”和“”眼圖分析

    DDR 1&2&3的“”和“”眼圖分析:現(xiàn)在不論做主板設(shè)計或測試的工程師,還是做內(nèi)存或DDR芯片設(shè)計或測試的工程師都會面臨這樣一個問題:如何能夠分離出“”和“
    發(fā)表于 09-14 08:05 ?35次下載

    電池管理器件的/操作

    電池管理器件的/操作 Dallas Semiconductor 的電池管理IC 采用相同的通信協(xié)議和相同的存儲器地址不同類型的存儲器可以分別進行/操作本應(yīng)用筆記闡述了唯
    發(fā)表于 04-12 08:50 ?21次下載

    C語言教程之/BIOS計時器

    C語言教程之/BIOS計時器,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-25 16:49 ?0次下載

    使用寄存器級&控制基于PXI平臺的FPGA

    SVF)和軟件控制例程。概述了如何使用GX3500設(shè)計128通道的靜態(tài)I/O。此設(shè)計實例配置為4組32通道雙向引腳,雙緩沖結(jié)構(gòu)支持同步更新128通道邏輯狀態(tài)的。使用Altera Quartus II軟件。
    發(fā)表于 09-27 17:46 ?10次下載

    如何使用寄存器級&控制基于PXI平臺的FPGA

    如何使用寄存器級&控制基于PXI平臺的FPGA
    發(fā)表于 10-16 15:20 ?14次下載
    如何使用寄存器級<b class='flag-5'>讀</b>&<b class='flag-5'>寫</b>控制基于PXI平臺的FPGA

    如何使用寄存器級&控制基于PXI平臺的FPGA

    如何使用寄存器級&控制基于PXI平臺的FPGA
    發(fā)表于 10-19 08:48 ?12次下載

    MCS-51單片機指令系統(tǒng)“-改-”指令

    單片機首先將欲修改的寄存器的內(nèi)容回ALU,對相應(yīng)位進行修改,然后再整個寫回原來的寄存器地址,完成該功能的指令就叫做“-改-”指令。 鎖存器和
    發(fā)表于 11-23 13:38 ?1813次閱讀

    NXP MFRC523高集成/器的主要特性及應(yīng)用

    MFRC523是NXP公司的一個的高集成/器,用于13.56MHz頻率的非接觸式通信。MFRC523閱讀器支持ISO/IEC 14443 A/MIFARE模式。MFRC523的內(nèi)部發(fā)射器無需額外
    的頭像 發(fā)表于 01-21 17:48 ?4413次閱讀
    NXP MFRC523高集成<b class='flag-5'>讀</b>/<b class='flag-5'>寫</b>器的主要特性及應(yīng)用

    具有/遙測功能的μ模塊調(diào)節(jié)器

    具有/遙測功能的μ模塊調(diào)節(jié)器
    發(fā)表于 04-30 11:18 ?3次下載
    具有<b class='flag-5'>讀</b>/<b class='flag-5'>寫</b>遙測功能的μ模塊調(diào)節(jié)器

    PIC何謂-修改-,導(dǎo)致的問題及其解決之道

    何謂-修改-,導(dǎo)致的問題及其解決之道: 只要PICmicro的命令,所處理的FILE (暫存器,內(nèi)存,和I/O的統(tǒng)稱),其最終的值,和命令處理前的值有關(guān),那么,這種命令便是所謂的-修改-
    發(fā)表于 11-16 15:51 ?2次下載
    PIC何謂<b class='flag-5'>讀</b>-修改-<b class='flag-5'>寫</b>,導(dǎo)致的問題及其解決之道

    51單片機引腳端口測試總結(jié)

    51的P0 - P3都是準雙向I/O端口,作為輸入端口時需要先將其置1,然后再讀取引腳狀態(tài)。這里拋開匯編,單純講下C51編程時的哪種情況是引腳、哪種情況是端口,以及
    發(fā)表于 11-23 16:23 ?7次下載
    51單片機<b class='flag-5'>讀</b><b class='flag-5'>引腳</b>和<b class='flag-5'>讀</b>端口測試總結(jié)

    車載ECU嵌入式設(shè)備的診斷測試–

    本篇講述UDS中的服務(wù),讀寫服務(wù)幾乎是工程師日常使用最為頻繁的服務(wù),特別是服務(wù)。
    的頭像 發(fā)表于 10-28 15:43 ?1231次閱讀
    車載ECU嵌入式設(shè)備的診斷測試–<b class='flag-5'>讀</b>和<b class='flag-5'>寫</b>

    使用System IO Ports SerialPort進行串行/

    電子發(fā)燒友網(wǎng)站提供《使用System IO Ports SerialPort進行串行/.zip》資料免費下載
    發(fā)表于 11-21 09:56 ?0次下載
    使用System IO Ports SerialPort進行串行<b class='flag-5'>讀</b>/<b class='flag-5'>寫</b>

    MegaRAID CacheCade Pro 2.0/緩存軟件

    電子發(fā)燒友網(wǎng)站提供《MegaRAID CacheCade Pro 2.0/緩存軟件.pdf》資料免費下載
    發(fā)表于 08-22 10:59 ?1次下載
    MegaRAID CacheCade Pro 2.0<b class='flag-5'>讀</b>/<b class='flag-5'>寫</b>緩存軟件

    為什么異步fifo中地址同步在時鐘域時序分析不通過?

    為什么異步fifo中地址同步在時鐘域時序分析不通過? 異步FIFO中地址同步在時鐘域時序分析不通過的原因可能有以下幾個方面: 1.
    的頭像 發(fā)表于 10-18 15:23 ?1022次閱讀
    主站蜘蛛池模板: 日韩成人免费一级毛片 | 国产免费久久精品99 | 四虎最新紧急入口4hu | 最新久久精品 | 深夜视频在线 | 日本午夜大片 | 欧美肥妇性 | 天天操天天搞 | 韩国三级久久精品 | 色妞色综合久久夜夜 | 国产三级久久久精品三级 | 天天天天天天天操 | 多男一女一级淫片免费播放口 | 国产一区二区三区夜色 | 天天色天天搞 | 黄视频福利 | 亚洲欧美一区二区久久香蕉 | 高黄视频 | 人人做人人爽人人爱秋霞影视 | 亚洲一区二区三区不卡视频 | 日本视频不卡 | 在线免费观看你懂的 | 免费网站日本永久免费观看 | 欧美一级特黄乱妇高清视频 | 国产精品视频一区国模私拍 | 视频黄色在线 | 三级网站在线免费观看 | 国产私密 | 久久综合久久88 | 欧美奇米 | 日本一区二区三区在线 视频观看免费 | 福利片在线观看免费高清 | 免费黄视频在线观看 | 丁香五香天堂网 | 日本高清色视频在线观看免费 | 天天天天做夜夜夜夜 | 日韩a无吗一区二区三区 | 曰本福利写真片视频在线 | 亚洲午夜精品久久久久久人妖 | 欧美色婷婷| 久久久免费视频播放 |