資料介紹
描述
?
?
眾所周知,arduino 使用“digitalWrite()”函數(shù)提供數(shù)字輸出,并通過“ digitalRead () ”函數(shù)獲取數(shù)字輸入。但是使用這兩個功能,它可以從任何一個引腳提供輸出或獲取輸入 - 意味著它一次只能向單個引腳提供輸出或從單個引腳獲取輸入。如果有人想將任何 8 位 IO 設(shè)備(如 7 段顯示器、DIP 開關(guān)或 DAC(數(shù)模轉(zhuǎn)換器))與 arduino 連接,它不能直接向設(shè)備提供 8 位數(shù)字輸出,而是必須向 8 個不同的引腳提供輸出.數(shù)據(jù)字節(jié)(8位)模式以1和0的形式發(fā)送到不同的引腳。例如,如果數(shù)據(jù)字節(jié)是37h(0011 0111),則必須使用digitalWrite()函數(shù)將這些0 n 1模式發(fā)送到8個不同的引腳.
所以為了克服這種情況,我在這里為 arduino 提供 8 位 IO 端口(輸入輸出端口)庫。使用這個庫,可以將直接 8 位數(shù)據(jù)發(fā)送到配置為組合 8 位端口的任何arduino 板引腳,或者可以從這些配置的引腳獲取 8 位輸入。這個庫將任何 8 個 arduino 引腳組合在一起,作為 8 位 IO 端口工作。只需選擇任何 8 個 arduino 引腳組合為 8 位端口,并且必須將其數(shù)據(jù)方向配置為輸入或輸出。數(shù)據(jù)方向由字符“O”設(shè)置為輸出或“I”為輸入。
該庫只有 5 個功能。有兩個構(gòu)造函數(shù)將創(chuàng)建端口對象,一個函數(shù)將 8 位數(shù)字輸出發(fā)送到端口引腳,一個函數(shù)從端口引腳獲取 8 位數(shù)字輸入,另一個函數(shù)用于更改/設(shè)置端口的 IO 方向。這里對所有5個功能進(jìn)行了簡要說明,然后給出了一些示例并進(jìn)行了解釋。
1. IO_Port_8bit(int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8, char dir)
這是構(gòu)造函數(shù)。它將創(chuàng)建此類的對象,因此它將通過組合不同的 arduino 引腳來創(chuàng)建一個或多個 8 位端口。必須指定 8 個不同的 arduino 引腳組合為端口以及數(shù)據(jù)方向作為輸入或輸出 - 意味著端口作為輸入或輸出。此構(gòu)造函數(shù)中的最后一個參數(shù) dir 定義端口用作輸入或輸出。如果 dir='O' 表示端口作為輸出工作,如果dir='I',端口作為輸入工作。同一個端口不能同時或交替作為輸入和輸出。如果未選擇數(shù)據(jù)方向,也表示錯誤
2. IO_Port_8bit(int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8)
這是另一個構(gòu)造函數(shù)。它還將創(chuàng)建此類的對象,因此它將通過組合不同的 arduino 引腳來創(chuàng)建一個或多個 8 位端口。必須指定 8 個不同的 arduino 引腳組合為端口。但它沒有將數(shù)據(jù)方向指定為輸入或輸出。使用此構(gòu)造函數(shù)創(chuàng)建端口對象后,必須使用set_IO_direction函數(shù)設(shè)置端口方向。所以這個構(gòu)造函數(shù)允許程序員使用這個構(gòu)造函數(shù)在運(yùn)行時改變端口數(shù)據(jù)方向,同一個端口可以交替地作為輸入或輸出工作(但不能同時)
3. set_IO_direction(字符目錄)
該函數(shù)指定端口的輸入/輸出方向。它有一個字符參數(shù),可以是“I”表示端口作為輸入,或“O”表示端口作為輸出。如果未選擇數(shù)據(jù)方向,則在 arduino 的串行監(jiān)視器上顯示錯誤
4. send_8bit_data(int 字節(jié))
該函數(shù)將 8 位數(shù)據(jù)發(fā)送到指定引腳。只需將 int 數(shù)據(jù)(必須 <255)作為直接提供給 8 個不同引腳的參數(shù)即可。如果數(shù)據(jù)>255,則在 arduino 的串行監(jiān)視器上顯示錯誤。
5.get_8bit_data(無效)
該函數(shù)從指定引腳獲取 8 位數(shù)據(jù)。它通過讀取 8 個不同引腳的狀態(tài)返回 8 位 int 數(shù)據(jù)
示例 1:以 1 Hz 的速率交替閃爍 8 個 LED
#include
IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //創(chuàng)建輸出端口
void setup() // 設(shè)置中不需要任何內(nèi)容
{
}
無效循環(huán)()
{
myport.send_8bit_data(85);// 發(fā)送數(shù)據(jù)使所有奇數(shù) LED 閃爍
延遲(500);
myport.send_8bit_data(170); 發(fā)送數(shù)據(jù)使所有偶數(shù) LED 閃爍
延遲(500);
}
示例 2:在 LED 上顯示從 0 到 F 的二進(jìn)制計數(shù)模式
#include
IO_Port_8bitmy8bitport(2, 3, 4, 5, 6, 7, 8, 9);//創(chuàng)建端口對象
無效設(shè)置()
{
my8bitport.set_IO_direction('O');// 設(shè)置端口方向
}
無效循環(huán)()
{
詮釋我;
for(i=0;i<16;i++) //發(fā)送數(shù)據(jù)0到15顯示
{ // 二進(jìn)制模式
myport.send_8bit_data(i);
延遲(200);
}
}
示例 3:在 8 位 LED 條形圖顯示器上指示模擬輸入電壓電平
#include
IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //創(chuàng)建輸出端口對象
無效設(shè)置()
{
myport.send_8bit_data(255); //使條形圖的所有LED閃爍一次
延遲(500);
myport.send_8bit_data(0);
}
無效循環(huán)()
{
整數(shù)級;
級別=模擬讀?。ˋ0);//讀取模擬輸入電壓
level = map(level, 0, 1023, 0, 80);// 將電壓限制在 0 到 80
//根據(jù)輸入增加或減少條形圖級別
if((level<80) && (level>70))myport.send_8bit_data(255);
elseif((level<=70) && (level>60)) myport.send_8bit_data(127);
elseif((level<=60) && (level>50)) myport.send_8bit_data(63);
elseif((level<=50) && (level>40)) myport.send_8bit_data(31);
elseif((level<=40) && (level>30)) myport.send_8bit_data(15);
elseif((level<=30) && (level>20)) myport.send_8bit_data(7);
elseif((level<=20) && (level>10))myport.send_8bit_data(3);
elseif((level<=10) && (level>0)) myport.send_8bit_data(1);
elseif(level==0) myport.send_8bit_data(0);
}
例 4:從 DIP 開關(guān)獲取 8 位數(shù)字輸入并在串行監(jiān)視器上顯示值
#include
IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9); //創(chuàng)建端口對象
無效設(shè)置()
{
序列號.開始(9600);// 初始化串行通信。
myport.set_IO_direction('I'); // 設(shè)置端口方向
Serial.println("8位輸入端口測試");
}
無效循環(huán)()
{
整數(shù)輸入字節(jié);
input_byt = myport.get_8bit_data(); // 讀取撥碼開關(guān)狀態(tài)
Serial.print("收到的輸入 = "); // 和
Serial.println(input_byte); // 顯示它的值
延遲(1000);
}
- 用于Arduino閃存的壓縮庫(PROGMEM)
- 將您的Arduino板變成16位IO端口
- 用于Arduino nodeMCU的Thinger IO溫度和濕度傳感器
- STM32端口IO方向設(shè)置問題
- 基于arduino的STM32的FreeRTOS庫 18次下載
- 8位OTP IO型單片機(jī)PMS154C系列數(shù)據(jù)手冊 27次下載
- 在Arduino IED中安裝TimeOne庫文件 4次下載
- STM32中單獨(dú)設(shè)置GPIO端口高8位/低8位的方法資料下載
- 帶LTC2874的IO鏈路8端口PoE-Master
- IAR-C中實現(xiàn)IO端口直接位定義操作的一個示例資料下載
- 8 端口 IO-Link 參考設(shè)計套件加快開發(fā)速度
- 使用單片機(jī)實現(xiàn)8位端口檢測8獨(dú)立按鍵的C語言實例免費(fèi)下載 13次下載
- 51單片機(jī)的IO端口概念知識點(diǎn)和結(jié)構(gòu)資料免費(fèi)下載
- Arduino進(jìn)行端口通信的實例程序免費(fèi)下載
- 8位端口檢測8獨(dú)立按鍵 17次下載
- AiP82C55通用可編程I/O端口擴(kuò)展芯片產(chǎn)品介紹 334次閱讀
- 如何使用Python和PinPong庫控制Arduino 718次閱讀
- IO與NIO有何區(qū)別 687次閱讀
- 關(guān)于QE位與IO功能復(fù)用關(guān)聯(lián)設(shè)計 940次閱讀
- 用于8051兼容微控制器的高效位敲擊SPI端口 817次閱讀
- 使用STM32F10xxx SWJ引腳作為標(biāo)準(zhǔn)IO 2270次閱讀
- 串行端口3F8/IRQ4是什么 1.1w次閱讀
- dfrobotIIC轉(zhuǎn)GPIO 數(shù)字端口擴(kuò)展板簡介 946次閱讀
- 微雪電子Arduino IO擴(kuò)展板簡介 3439次閱讀
- STM32的IO端口高8位或低8位單獨(dú)操作方法 3.2w次閱讀
- 利用Arduino制作8×10 LED矩陣 8489次閱讀
- STM8S利用STVP方式進(jìn)行IO復(fù)用分析 2099次閱讀
- Curiosity PIC32MZEF學(xué)習(xí)教程:最簡單的IO端口測試 1619次閱讀
- max7219與arduino驅(qū)動設(shè)計例程 4.7w次閱讀
- arduino用什么語言編程 6.9w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多