那曲檬骨新材料有限公司

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>用于Arduino的8位IO端口庫

用于Arduino的8位IO端口庫

2022-12-14 | zip | 0.37 MB | 次下載 | 2積分

資料介紹

描述

用于 8 位 IO 端口Arduino

?

?
?
?
?
pYYBAGOX3VyAULUEAAHaPeEnS3c995.png
?
1 / 3
?

?

眾所周知,arduino 使用“digitalWrite()”函數提供數字輸出,并通過“ digitalRead () ”函數獲取數字輸入。但是使用這兩個功能,它可以從任何一個引腳提供輸出或獲取輸入 - 意味著它一次只能向單個引腳提供輸出或從單個引腳獲取輸入。如果有人想將任何 8 位 IO 設備(如 7 段顯示器、DIP 開關或 DAC數模轉換器))與 arduino 連接,它不能直接向設備提供 8 位數字輸出,而是必須向 8 個不同的引腳提供輸出.數據字節(8位)模式以1和0的形式發送到不同的引腳。例如,如果數據字節是37h(0011 0111),則必須使用digitalWrite()函數將這些0 n 1模式發送到8個不同的引腳.

所以為了克服這種情況,我在這里為 arduino 提供 8 位 IO 端口(輸入輸出端口)庫。使用這個庫,可以將直接 8 位數據發送到配置為組合 8 位端口的任何arduino 板引腳,或者可以從這些配置的引腳獲取 8 位輸入。這個庫將任何 8 個 arduino 引腳組合在一起,作為 8 位 IO 端口工作。只需選擇任何 8 個 arduino 引腳組合為 8 位端口,并且必須將其數據方向配置為輸入或輸出。數據方向由字符“O”設置為輸出或“I”為輸入。

該庫只有 5 個功能。有兩個構造函數將創建端口對象,一個函數將 8 位數字輸出發送到端口引腳,一個函數從端口引腳獲取 8 位數字輸入,另一個函數用于更改/設置端口的 IO 方向。這里對所有5個功能進行了簡要說明,然后給出了一些示例并進行了解釋。

1. IO_Port_8bit(int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8, char dir)

這是構造函數。它將創建此類的對象,因此它將通過組合不同的 arduino 引腳來創建一個或多個 8 位端口。必須指定 8 個不同的 arduino 引腳組合為端口以及數據方向作為輸入或輸出 - 意味著端口作為輸入或輸出。此構造函數中的最后一個參數 dir 定義端口用作輸入或輸出。如果 dir='O' 表示端口作為輸出工作,如果dir='I',端口作為輸入工作。同一個端口不能同時或交替作為輸入和輸出。如果未選擇數據方向,也表示錯誤

2. IO_Port_8bit(int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8)

這是另一個構造函數。它還將創建此類的對象,因此它將通過組合不同的 arduino 引腳來創建一個或多個 8 位端口。必須指定 8 個不同的 arduino 引腳組合為端口。但它沒有將數據方向指定為輸入或輸出。使用此構造函數創建端口對象后,必須使用set_IO_direction函數設置端口方向。所以這個構造函數允許程序員使用這個構造函數在運行時改變端口數據方向,同一個端口可以交替地作為輸入或輸出工作(但不能同時)

3. set_IO_direction(字符目錄)

該函數指定端口的輸入/輸出方向。它有一個字符參數,可以是“I”表示端口作為輸入,或“O”表示端口作為輸出。如果未選擇數據方向,則在 arduino 的串行監視器上顯示錯誤

4. send_8bit_data(int 字節)

該函數將 8 位數據發送到指定引腳。只需將 int 數據(必須 <255)作為直接提供給 8 個不同引腳的參數即可。如果數據>255,則在 arduino 的串行監視器上顯示錯誤。

5.get_8bit_data(無效)

該函數從指定引腳獲取 8 位數據。它通過讀取 8 個不同引腳的狀態返回 8 位 int 數據

示例 1:以 1 Hz 的速率交替閃爍 8 個 LED

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //創建輸出端口

void setup() // 設置中不需要任何內容

{

}

無效循環()

{

myport.send_8bit_data(85);// 發送數據使所有奇數 LED 閃爍

延遲(500);

myport.send_8bit_data(170); 發送數據使所有偶數 LED 閃爍

延遲(500);

}

示例 2:在 LED 上顯示從 0 到 F 的二進制計數模式

#include

IO_Port_8bitmy8bitport(2, 3, 4, 5, 6, 7, 8, 9);//創建端口對象

無效設置()

{

my8bitport.set_IO_direction('O');// 設置端口方向

}

無效循環()

{

詮釋我;

for(i=0;i<16;i++) //發送數據0到15顯示

{ // 二進制模式

myport.send_8bit_data(i);

延遲(200);

}

}

示例 3:在 8 位 LED 條形圖顯示器上指示模擬輸入電壓電平

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //創建輸出端口對象

無效設置()

{

myport.send_8bit_data(255); //使條形圖的所有LED閃爍一次

延遲(500);

myport.send_8bit_data(0);

}

無效循環()

{

整數級;

級別=模擬讀?。ˋ0);//讀取模擬輸入電壓

level = map(level, 0, 1023, 0, 80);// 將電壓限制在 0 到 80

//根據輸入增加或減少條形圖級別

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 開關獲取 8 位數字輸入并在串行監視器上顯示值

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9); //創建端口對象

無效設置()

{

序列號.開始(9600);// 初始化串行通信。

myport.set_IO_direction('I'); // 設置端口方向

Serial.println("8位輸入端口測試");

}

無效循環()

{

整數輸入字節;

input_byt = myport.get_8bit_data(); // 讀取撥碼開關狀態

Serial.print("收到的輸入 = "); // 和

Serial.println(input_byte); // 顯示它的值

延遲(1000);

}


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1A7159和A7139射頻芯片的資料免費下載
  2. 0.20 MB   |  55次下載  |  5 積分
  3. 2PIC12F629/675 數據手冊免費下載
  4. 2.38 MB   |  36次下載  |  5 積分
  5. 3PIC16F716 數據手冊免費下載
  6. 2.35 MB   |  18次下載  |  5 積分
  7. 4dsPIC33EDV64MC205電機控制開發板用戶指南
  8. 5.78MB   |  8次下載  |  免費
  9. 5STC15系列常用寄存器匯總免費下載
  10. 1.60 MB   |  7次下載  |  5 積分
  11. 6模擬電路仿真實現
  12. 2.94MB   |  4次下載  |  免費
  13. 7PCB圖繪制實例操作
  14. 2.92MB   |  2次下載  |  免費
  15. 8零死角玩轉STM32F103—指南者
  16. 26.78 MB   |  1次下載  |  1 積分

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  141次下載  |  1 積分
  5. 3基于STM32單片機智能手環心率計步器體溫顯示設計
  6. 0.10 MB   |  137次下載  |  免費
  7. 4A7159和A7139射頻芯片的資料免費下載
  8. 0.20 MB   |  55次下載  |  5 積分
  9. 5PIC12F629/675 數據手冊免費下載
  10. 2.38 MB   |  36次下載  |  5 積分
  11. 6如何正確測試電源的紋波
  12. 0.36 MB   |  19次下載  |  免費
  13. 7PIC16F716 數據手冊免費下載
  14. 2.35 MB   |  18次下載  |  5 積分
  15. 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統EMC試驗方法及要求
  16. 1.97 MB   |  8次下載  |  10 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
大发888在线娱乐城加盟合作| 如何玩百家乐的玩法技巧和规则| 太阳城百家乐官网口诀| 大发888 asia| 百家乐必胜密| 百家乐官网的玩法技巧和规则 | 博彩e族| 百家乐手机壳| 百家乐赢钱皇冠网| 百家乐官网投注软件有用吗| 佳豪娱乐| 百家乐手机壳| 百家乐棋牌外挂| 公海百家乐官网的玩法技巧和规则| 百家乐官网注码管理| 凯时娱乐城官网| 金钱豹百家乐的玩法技巧和规则| 百家乐官网园首选去澳| 百家乐官网最好的玩法| 在线棋牌游戏平台| A8百家乐的玩法技巧和规则| 做生意的好风水| 百家乐官网技术辅助软件| 北碚区| 大发888真钱客户端| 百家乐大转轮真人视讯| 免费百家乐官网计划软件| 澳门百家乐官网怎么赢钱| 获嘉县| bet365手机| 百家乐筹码| 百家乐牌路分析仪| 百家乐官网平注秘籍| 百家乐官网珠盘路| 百家乐官网怎么会赢| 太阳城官网| 大发888188| 免费百家乐倍投| 粤港澳百家乐娱乐平台| 百家乐游戏如何玩| 网上百家乐官网公司|