久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 27043|回復(fù): 27
打印 上一主題 下一主題
收起左側(cè)

MCP23017 IIC接口16路IO擴(kuò)展模塊Arduino與單片機(jī)源碼與資料下載

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:285857 發(fā)表于 2018-2-27 09:42 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
非常實用的IO擴(kuò)展模塊


簡介
模塊為 I2C 接口的 16 路 IO 擴(kuò)展模塊,采用 MicroChip 的 MCP23017 芯片。芯片功能完備,每個 IO可任意配置為輸入或輸出,可設(shè)置使用上拉電阻,并且配置為輸入的 IO 都可以啟用中斷功能。IO 接口驅(qū)動能力強(qiáng),灌電流、拉電流可達(dá)25mA。
        MCP23017 為高速 IIC 接口,支持 100KHz、400KHz、1.7MHz 的 IIC 頻率。芯片有 3 個地址引腳,可設(shè)置8個不同地址,所以通過兩根 IIC總線可連接8個模塊,實現(xiàn)最多 128 個IO擴(kuò)展。
        資料中提供了模塊驅(qū)動程序(包含 51 單片機(jī)驅(qū)動程序、Arduino 庫文件和例程),程序的各個函數(shù)使用起來非常方便,很容易集成到其他程序中。

特性
1)驅(qū)動IC:MCP23017-E/SS
2)工作電壓  3.3V、5V
3)輸入電壓  3V-5.5V
4)工作溫度:-40℃~12℃
5)模塊尺寸:66x19mm
6)多個并聯(lián):可以,最多支持8 個


1)驅(qū)動IC

MCP23017 是專用IIC接口IO擴(kuò)展芯片,一個芯片可以擴(kuò)展 16路IO,16 個IO可以獨立任意設(shè)置為輸入、輸出,設(shè)置為輸入時可設(shè)置為中斷輸入。輸出端口的電流驅(qū)動能力強(qiáng),最大25mA。詳細(xì)參數(shù)見MCP23017數(shù)據(jù)手冊。

2)模塊供電
模塊控制接口的工作電壓3V~5.5V,VCC電源不要供超過此范圍的電壓,否則可能燒毀模塊。

3)控制接口
模塊控制接口采用的是雙排接口,每個標(biāo)號同時有兩個排針,這樣方便多個模塊并聯(lián)接線,免得從單片機(jī)開發(fā)板引出多根線到每個模塊。 控制接口包括SCL、SDA、RST、ITA、ITB。
  RST接到低電平時,芯片復(fù)位,在板上有一個10K歐姆的上拉電阻將RST拉到了VCC,如果不需要通過單片機(jī)控制芯片復(fù)位,在使用模塊時,此引腳可不接線。
  ITA、ITB是中斷輸出引腳,ITA對應(yīng)GPIOA上的輸入中斷,ITB對應(yīng)GPIOB 上的輸入中斷。不使用中斷可不接,使用中斷時可接到單片機(jī)的外部中斷引腳上。
ITA、ITB可聯(lián)合在一起使用,即當(dāng)16 個IO上任何一個中斷輸入產(chǎn)生中斷時,ITA和ITB同時產(chǎn)生中斷輸出。具體在驅(qū)動函數(shù)的MCP23017 初始化函數(shù)中配置。
ITA、ITB的輸出類型可設(shè)置位 OD輸出,推挽輸出-高電平有效,推挽輸出-低電平有效,具體在具體在驅(qū)動函數(shù)的MCP23017 初始化函數(shù)中

4)硬件地址配置

  模塊上A0、A1、A2 為芯片的3行操作時,注意程序中定義的芯片地址

例程使用方法
1、51 單片機(jī)例程
   
  我們提供的51單片機(jī)例程為Keil UV4中配置。
3 個硬件地址線。總共可產(chǎn)生8 個地址0x00~0x07地址要與模塊的硬件地址相同。
Keil UV4工程,需要使用Keil UV4軟件打開。

  在I2C_Core.c文件中定義了程序使用的
  如果您使用的是51 開發(fā)板,則可以按照此定義連接開發(fā)板和模塊,如果需要修改使用的引腳,可以在此處修改后重新編譯項目。

2、Arduino例程使用方法
   
  我們提供了Arduino IDE的庫文件和例程,使用非常簡單。只需要將《到Arduino IDE安裝目錄的arduino-1.0.5文件中定義了程序使用的51 單片機(jī)的引腳:

開發(fā)板,則可以按照此定義連接開發(fā)板和模塊,如果需要修改使用的引腳,可以
的庫文件和例程,使用非常簡單。只需要將《TM16681.0.5-r2\libraries目錄下。然后退出 Arduino IDE,重新啟動開發(fā)板,則可以按照此定義連接開發(fā)板和模塊,如果需要修改使用的引腳,可以
TM1668》這個文件夾整體復(fù)制,重新啟動 ArduinoIDE,
在Arduino IDE的File-->Examples下會出現(xiàn)例程:


原理圖


應(yīng)該如何學(xué)習(xí)電子技術(shù)?
  電子技術(shù)是充滿魅力并且引領(lǐng)未來的,但同時也是復(fù)雜的。那么,我們應(yīng)該怎樣去掌握它?
  1、實踐——動手實踐是最有效最扎實的學(xué)習(xí)途徑。那么應(yīng)該怎樣實踐?
  2、“先簡單后復(fù)雜,先單一后綜合”——這是學(xué)習(xí)復(fù)雜知識最有效的途徑。
  3、了解每一個細(xì)節(jié)——細(xì)節(jié)就是知識基礎(chǔ)和精華。所以要遵循這樣的原則,打好堅實的基礎(chǔ)。
  所以,我們專門設(shè)計了獨具特色的開發(fā)板和各種應(yīng)用模塊。讓應(yīng)用更容易。

MCP23017_MCP23S17的中文資料與英文資料:


arduino庫函數(shù)編寫經(jīng)驗(源碼可在附件下載)
1、例程的名字不能是以字母開頭
2、每個例程都要放在一個同名的單獨的文件夾中
3、每個類有一個構(gòu)造函數(shù),構(gòu)造函數(shù)無返回值
4、檢查每一行的結(jié)尾是否都有分號
5、error: expected `)' before numeric constant,一般是少逗號,少分號等




單片機(jī)源程序如下:
  1. /*------------------------------------------------------------------------------------
  2. * 項目名稱:
  3.      MCP23017 IIC IO擴(kuò)展模塊測試程序v1.0

  4. * 功能描述:
  5.         1、程序首先將GPIOA和GPIOB都配置為輸出,實現(xiàn)流水燈效果
  6.         2、然后將GPIOA設(shè)置為輸出,GPIOB設(shè)置為輸入,并開啟GPIOB的中斷,每次GPIOB上有中斷時,
  7.         講GPIOB的值寫到GPIOA
  8. * 接線說明
  9.         VCC        —— 連接5V電源正極
  10.         GND —— 連接5V電源負(fù)極
  11.         SCL —— 連接單片機(jī)P1.0
  12.         SDA —— 連接單片機(jī)P1.1
  13.         RST —— 未連接,RST引腳為低電平時,器件復(fù)位
  14.         INTA —— 連接到單片機(jī)P3.2(INT0)
  15.         INTB —— 連接到單片機(jī)P3.3(INT1)

  16. * MCP23017使用方法
  17.         0、上電復(fù)位后,器件所有IO默認(rèn)為輸入狀態(tài)
  18.         1、首先調(diào)用初始化函數(shù)初始化MCP23017
  19.         2、調(diào)用相關(guān)的輸入輸出配置函數(shù),上拉電阻配置函數(shù),中斷配置函數(shù)配置各個IO
  20.         3、然后可以讀取或設(shè)置GPIO的狀態(tài)

  21. * 版權(quán)信息:

  22.      (c) 飛翼電子, 2017.

  23. * 歷史版本:
  24.          
  25.      2017-06-08:
  26.        - 初始版本 V1.0.0;

  27. * 配置說明:
  28.      MCU:             AT89S51
  29.      晶振:                外部晶振:11.0592MHz
  30.      擴(kuò)展模塊:            -
  31.      軟件:            Keil.C51.V9.01

  32.      - 編譯前,請根據(jù)硬件連接配置MCU與模塊的通訊接口
  33.          - 將開發(fā)板的串口與PC連接

  34. /************************包含頭文件***************************************************/

  35. #include <reg51.h>
  36. #include "MCP23017.H"
  37. #include "usart.h"


  38. /************************公共常量定義*************************************************/
  39. //定義MCP23017器件硬件地址,取值范圍0x00~0x07,需要與模塊上A0、A1、A2的配置相同
  40. //根據(jù)實際地址進(jìn)行修改
  41. unsigned char deviceAddr = 0x00;
  42. /************************全局變量****************************************************/                               
  43. unsigned char IntFlag;
  44. /*************************************************************************************
  45. *函數(shù)名:Delay(unsigned char time)
  46. *功  能:延時函數(shù)
  47. **************************************************************************************/
  48. void Delay(unsigned char time)
  49. {
  50.         int i,j,k;
  51.         for(i=0;i<time;i++)
  52.                 for(j=0;j<50;j++)
  53.                         for(k=0;k<200;k++)
  54.                         {
  55.                                 ;
  56.                         }
  57. }

  58. /************************主程序*******************************************************/
  59. void main()
  60. {       
  61.         unsigned char addr=0;
  62.         unsigned char i;
  63.         unsigned char tmp = 0x01;
  64.         bit res;                                                                //定義一個BOOL變量
  65.        
  66.         EA=1;                                                                        //使能全局中斷
  67.         IT0=0;                                                                        //設(shè)置外部中斷0為低電平有效中斷
  68.         EX0=1;                                                                        //使能外部中斷0
  69.         IT1=0;                                                                        //設(shè)置設(shè)置外部中斷1為低電平中斷
  70.         EX1=1;                                                                        //使能外部中斷1

  71.         InitSerialPort();
  72.                                        
  73.         //初始化MCP23017,INTA和INTB獨立,使能硬件地址,INTA和INTB設(shè)置為開漏輸出
  74.         MCP23017_INIT(deviceAddr,INTA_INTB_INDEPENDENT,HWA_EN,INT_OD);

  75.         Delay(1);
  76.         //將PORTA和PORTB都設(shè)置為輸出
  77.         MCP23017_IO_DIR(deviceAddr,MCP23017_PORTA,ALLPIN,OUTPUT);

  78.         //將PORTB設(shè)置為輸入,使能上拉,并配置中斷低電平中斷
  79.         MCP23017_IO_DIR(deviceAddr,MCP23017_PORTB,ALLPIN,INPUT);
  80.         MCP23017_IO_PU(deviceAddr,MCP23017_PORTB,ALLPIN,ENABLE);
  81.         MCP23017_IO_INT(deviceAddr,MCP23017_PORTB,ALLPIN,LOWLEVEL_INTERRUPT);
  82.        
  83.         while(1)
  84.         {
  85.            //發(fā)生中斷后
  86.            if(IntFlag == 1)
  87.            {
  88.                    //讀取PORTB端口值,寫到PORTA
  89.                    i = MCP23017_READ_GPIO(deviceAddr,MCP23017_PORTB);
  90.                    MCP23017_WRITE_GPIO(deviceAddr,MCP23017_PORTA,i);

  91.                    IntFlag = 0;
  92.            }
  93.            //把端口值通過串口發(fā)送
  94.            SendByte(i);
  95.            Delay(1);
  96. ……………………

  97. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
MCP23017 IIC接口16路IO擴(kuò)展模塊資料v1.0.rar (6.26 MB, 下載次數(shù): 493)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:293685 發(fā)表于 2018-3-18 19:21 | 只看該作者
這么好的模塊,在哪里購買呢
回復(fù)

使用道具 舉報

板凳
ID:394963 發(fā)表于 2018-9-7 13:40 來自觸屏版 | 只看該作者
下下來學(xué)習(xí)一下
回復(fù)

使用道具 舉報

地板
ID:196774 發(fā)表于 2018-9-8 21:24 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

5#
ID:404261 發(fā)表于 2018-9-30 10:25 | 只看該作者
誰可以發(fā)給我參考一下嘛
回復(fù)

使用道具 舉報

6#
ID:426026 發(fā)表于 2018-11-13 21:36 來自觸屏版 | 只看該作者
我買了1個不大會用,黑幣不夠,誰給發(fā)個郵箱912163586@qq.com
回復(fù)

使用道具 舉報

7#
ID:150905 發(fā)表于 2018-12-8 09:05 | 只看該作者

這么好的模塊,在哪里購買呢
我買了1個不大會用
回復(fù)

使用道具 舉報

8#
ID:439095 發(fā)表于 2018-12-24 14:32 | 只看該作者
我買了1個不大會用 正好看到論壇有介紹 了解一下
回復(fù)

使用道具 舉報

9#
ID:477982 發(fā)表于 2019-2-19 09:50 | 只看該作者
請問這個芯片怎么配置為16位的模式,還是說只能對PORTA和PORTB分別操作?
回復(fù)

使用道具 舉報

10#
ID:480504 發(fā)表于 2019-2-25 17:10 | 只看該作者
謝謝分享,正準(zhǔn)備去買一個
回復(fù)

使用道具 舉報

11#
ID:82863 發(fā)表于 2019-5-11 18:56 | 只看該作者
現(xiàn)在單片機(jī)那么多IO口,還用到擴(kuò)展嗎?選型的時候就選個144IO口的還不夠?
回復(fù)

使用道具 舉報

12#
ID:539125 發(fā)表于 2019-5-15 17:56 | 只看該作者
看一看
回復(fù)

使用道具 舉報

13#
ID:627156 發(fā)表于 2019-11-3 13:38 | 只看該作者
學(xué)學(xué)iic和spi
回復(fù)

使用道具 舉報

14#
ID:634994 發(fā)表于 2019-11-3 20:58 | 只看該作者
太贊了  好好學(xué)習(xí)一下
回復(fù)

使用道具 舉報

15#
ID:333807 發(fā)表于 2020-2-4 12:20 | 只看該作者
謝謝分享,正準(zhǔn)備去買一個
回復(fù)

使用道具 舉報

16#
ID:337014 發(fā)表于 2020-3-5 22:30 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報

17#
ID:687471 發(fā)表于 2020-5-24 15:26 | 只看該作者
感謝樓住分享
回復(fù)

使用道具 舉報

18#
ID:775711 發(fā)表于 2020-7-10 23:23 | 只看該作者
大佬,資料怎么下載啊
回復(fù)

使用道具 舉報

19#
ID:803440 發(fā)表于 2020-7-15 00:27 | 只看該作者
買了一個不太會用啊
回復(fù)

使用道具 舉報

20#
ID:556672 發(fā)表于 2020-11-30 19:38 | 只看該作者
剛買一塊不會用,這個帖子中文介紹的很全,值得參考,感謝樓主分享。
回復(fù)

使用道具 舉報

21#
ID:66915 發(fā)表于 2021-1-18 21:50 | 只看該作者
不錯不錯啊,有沒有 spi 的 io 擴(kuò)展芯片驅(qū)動 ??
回復(fù)

使用道具 舉報

22#
ID:90718 發(fā)表于 2021-1-19 16:54 | 只看該作者
hpdell 發(fā)表于 2021-1-18 21:50
不錯不錯啊,有沒有 spi 的 io 擴(kuò)展芯片驅(qū)動 ??

MCP23S17哈
回復(fù)

使用道具 舉報

23#
ID:66915 發(fā)表于 2021-1-24 17:57 | 只看該作者

芯片貌似不好買呀,

我剛剛查到另外一款 spi 的 io 口擴(kuò)展芯片】

MAX7301AAX 可以擴(kuò)展 28個 io 口,速度是 26MHz, 只是不知道程序是否比較好調(diào)試啊 ?

有沒有誰使用過這個芯片啊 ???
回復(fù)

使用道具 舉報

24#
ID:603678 發(fā)表于 2021-1-29 12:48 | 只看該作者
scamel 發(fā)表于 2018-3-18 19:21
**** 作者被禁止或刪除 內(nèi)容自動屏蔽 ****

τ 寶上有,幾元一個
回復(fù)

使用道具 舉報

25#
ID:891690 發(fā)表于 2021-3-14 08:09 | 只看該作者
scamel 發(fā)表于 2018-3-18 19:21
**** 作者被禁止或刪除 內(nèi)容自動屏蔽 ****

τ 寶網(wǎng)上搜索MCP23017模塊就行的
回復(fù)

使用道具 舉報

26#
ID:796531 發(fā)表于 2021-7-7 10:41 | 只看該作者
好東西,寫的很詳細(xì),最近正在學(xué)習(xí)這個芯片,謝謝!
回復(fù)

使用道具 舉報

27#
ID:272119 發(fā)表于 2021-7-21 16:02 | 只看該作者
正在選型,這種鎖存方式的擴(kuò)展比LS164專業(yè)的多.
回復(fù)

使用道具 舉報

28#
ID:961861 發(fā)表于 2021-8-23 11:47 | 只看該作者
我們準(zhǔn)備用ATtiny202和MCP23017來實現(xiàn)8個按鍵開關(guān)控制8個繼電器工作;這樣行嗎?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲 欧美 另类 综合 偷拍 | 国产视频在线观看一区二区三区 | 国产毛片久久久 | 国产精品亚洲一区二区三区在线观看 | 蜜月va乱码一区二区三区 | www.com久久久 | 欧美日韩亚洲系列 | 色综合久| 一区二区三区在线播放 | 国精产品一区一区三区免费完 | 精品久久一区二区三区 | 欧美一级淫片007 | 成人在线观看网址 | 国产午夜精品一区二区三区在线观看 | 精品一区电影 | 天堂网中文字幕在线观看 | 久久久综合网 | 中文字幕成人 | 久久在线 | 一区二区三区四区在线视频 | 欧美日韩在线精品 | 一区二区三区中文字幕 | 国产一二区免费视频 | 中文无吗 | 精品一区二区三区免费视频 | 亚洲国产免费 | 亚洲精品久久久一区二区三区 | 国产一区二区在线免费视频 | 国产精品一区二区三区在线播放 | 特级毛片www| 精品国产亚洲一区二区三区大结局 | 毛片在线看片 | 欧美综合久久 | 亚洲一区二区不卡在线观看 | 久久丝袜| 国产成人精品一区二三区在线观看 | 九九热在线免费视频 | 亚洲精品视频在线播放 | 欧美黄色片 | 国产精品成人在线播放 | 日韩在线观看中文字幕 |