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

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

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

3天內不再提示

兩種單片機IO擴展的方法和代碼免費下載

Wildesbeast ? 來源:單片機教程網 ? 作者:單片機教程網 ? 2020-08-09 14:13 ? 次閱讀

下面介紹兩種單片機io擴展的方法

!!!!用8243擴展單片機IO接口

/*----------------------------------------------------------------------------------------------------------------

函數名稱:Config.h

功能描述:8243端口配置

輸入參數:無

輸出參數:無

特殊說明:在不同的單片機應用系統中,需要做相應調整

//----------------------------------------------------------------------------------------------------------------*/

#include 《reg52.h》

sbit ContrBit0=P1^0;

sbit ContrBit1=P1^1;

sbit ContrBit2=P1^2;

sbit ContrBit3=P1^3;

sbit PROG =P1^4;

sbit CS =P1^5;

sfr data_buf=0x90;

/*----------------------------------------------------------------------------------------------------------------

函數名稱:driver8243

功能描述:驅動8243

輸入參數:sele_P端口選擇,sele_M工作模式選擇,out_data輸出模式下的輸出數據

輸出參數:in_data接收模式返回接收到的數據,其它模式返回0

特殊說明:在不同的單片機應用系統中,需要做相應得調整

//----------------------------------------------------------------------------------------------------------------*/

#include《config.h》

char driver8243(char sele_P,char sele_M,char out_data)

{

char in_data=0;

PROG=1; //置PROG為高電平

//開始寫控制字

if((sele_P&0x01)==0) //將控制字最低位送到8243的p2.0

{

ContrBit0=0;

}

else

{

ContrBit0=1;

}

if((sele_P&0x02)==0) //將控制字第二位送到8243的p2.1

{

ContrBit1=0;

}

else

{

ContrBit1=1; //以上兩位共同指定端口地址

}

//寫端口工作模式控制字

if((sele_M&0x01)==0) //將端口工作模式控制字低位送到8243的p2.2

{

ContrBit2=0;

}

else

{

ContrBit2=1;

}

if((sele_M&0x01)==0) //將端口工作模式控制字高位送到8243的p2.3

{

ContrBit3=0;

}

else

{

ContrBit3=1;

} //寫控制字完成

PROG=0; //在PROG上產生下降沿

switch(sele_M&0x03) //判斷工作模式

{

case 0: break; //sele_M=B00為輸入,不處理,等待上升沿

case 1: data_buf=out_data;break; //sele_M=B01為輸出,直接送數據

case 2: data_buf=out_data;break; //sele_M=B10為邏輯或,直接送數據

case 3: data_buf=out_data;break; //sele_M=B11為邏輯與,直接送數據

}

PROG=1; //在PROG上產生上升沿

if((sele_M&0x03)==0) //sele_M=B00為輸入,接收數據

in_data=(data_buf&0x0F);

return(in_data); //sele_M=B00,返回接收到的數據

//sele_M!=B00,返回0

}

void main( void)

{

char receive_data;

receive_data= driver8243(1,0,5);

}

單片機io擴展方法2:

=======================單片機中IO口擴展IC===================================

單片機中IO口數量非常有限,做一些少量的外圍控制還可以,如果系統稍大一些就要加外加芯片來擴展IO數量,在應用過程

中我發現PCF8574這款芯片非常理想具有8路的輸入輸出的IO口同時具有鎖存功能,和MCU的通訊方式為I2C,還具有中斷

輸出功能當其中一個腳拉低時,就從中斷腳輸出一個低電平來通知單片機響應,這樣MCU就可以按自己的方式工作當有外部觸

發 時才讀取PCF8574做為外部擴展按鍵等非常方便。

現在這種片子在使用中由于在使用中沒有規化好端口的輸入輸出,在具體的應用時不太符合常規,大家也有所看法,所以philips最近

又出了一款新的IO擴展芯片打算取爾代之,地址也是和PCF8574一樣它的名字叫PCA9554

===================================================================================

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635355
  • IO
    IO
    +關注

    關注

    0

    文章

    448

    瀏覽量

    39156
  • 接口
    +關注

    關注

    33

    文章

    8598

    瀏覽量

    151166
收藏 人收藏

    評論

    相關推薦

    如何寫出穩定的單片機代碼

    這篇文章分享怎么寫出穩定的單片機代碼。? ?? 我對優秀代碼的理解,大體分為個部分:高效和穩定。 ? 者都能做到很好的,如果靠自己摸索,
    的頭像 發表于 11-15 16:40 ?409次閱讀
    如何寫出穩定的<b class='flag-5'>單片機</b><b class='flag-5'>代碼</b>

    比較分析兩種不同的可提高柵極驅動電流的方法

    電子發燒友網站提供《比較分析兩種不同的可提高柵極驅動電流的方法.pdf》資料免費下載
    發表于 09-23 11:13 ?0次下載
    比較分析<b class='flag-5'>兩種</b>不同的可提高柵極驅動電流的<b class='flag-5'>方法</b>

    單片機基本io功能調試過程

    所使用的單片機型號以及需要調試的IO口。不同型號的單片機IO口的配置和特性上可能有所不同。 查閱單片機手冊 : 查閱
    的頭像 發表于 09-14 14:38 ?602次閱讀

    單片機io一般包含哪幾種狀態

    單片機IO口(Input/Output,即輸入輸出端口)通常包含以下幾種狀態,這些狀態使得單片機能夠靈活地與外部設備進行數據交互和控制。以下是對這些狀態的說明: 輸入狀態(Input State
    的頭像 發表于 09-14 14:35 ?702次閱讀

    單片機io口怎么配置成輸出口

    單片機IO口配置成輸出口的過程通常涉及對單片機內部寄存器的操作。不同型號的單片機在寄存器配置和編程方式上可能有所不同,但基本原理是相似的。以下是一個通用的步驟,用于將
    的頭像 發表于 09-14 14:33 ?796次閱讀

    單片機io口輸出電流多大

    單片機IO口的輸出電流大小會受到多種因素的影響,包括單片機的型號、IO口的配置模式以及外部電路的設計等。以下是對單片機
    的頭像 發表于 09-14 14:29 ?1782次閱讀

    單片機io口的四工作狀態

    )是單片機與外部世界進行數據交換的接口。每個I/O口可以配置為輸入或輸出狀態,或者同時具備這兩種功能。I/O口的狀態可以通過編程來控制,以滿足不同的應用需求。 2. 單片機I/O口的工作原理 I/O口的工作原理涉及到數字電路的基
    的頭像 發表于 09-14 14:24 ?1525次閱讀

    單片機燒錄程序的線比單片機上的少還能燒錄嗎

    的存儲器通常分為類:ROM(只讀存儲器)和RAM(隨機存取存儲器)。ROM用于存儲程序代碼,而RAM用于存儲程序運行過程中的數據。燒錄過程就是將程序代碼寫入ROM中。 單片機燒錄
    的頭像 發表于 09-02 09:54 ?502次閱讀

    提高MSP430G系列單片機的Flash擦寫壽命的方法

    電子發燒友網站提供《提高MSP430G系列單片機的Flash擦寫壽命的方法.pdf》資料免費下載
    發表于 08-28 11:51 ?0次下載
    提高MSP430G系列<b class='flag-5'>單片機</b>的Flash擦寫壽命的<b class='flag-5'>方法</b>

    請問如何擴展單片機IO口?

    在很多項目上都會因單片機IO口不夠、或降低硬件成本要擴展IO口,特別在一些機械設備上,如本人從事的這個行業,有時候由一個單片機
    發表于 04-24 06:30

    基于單片機的燃氣報警設計

    電子發燒友網站提供《基于單片機的燃氣報警設計.doc》資料免費下載
    發表于 03-04 09:46 ?1次下載

    兩種簡單、精確、靈活的熱電偶溫度測量方法

    電子發燒友網站提供《兩種簡單、精確、靈活的熱電偶溫度測量方法.pdf》資料免費下載
    發表于 02-28 14:41 ?1次下載

    單片機編程和plc編程有什么區別

    單片機編程和PLC編程是兩種不同的嵌入式系統開發領域。在這篇文章中,我們將詳細探討這兩種編程方式的區別。首先,我們將簡要介紹單片機和PLC的基本概念,然后分析它們的不同特點和使用場景。
    的頭像 發表于 02-22 10:23 ?2749次閱讀

    基于單片機的指紋門禁設計

    電子發燒友網站提供《基于單片機的指紋門禁設計.rar》資料免費下載
    發表于 01-12 09:48 ?3次下載

    單片機代碼自動生成器程序

    單片機代碼自動生成器是一能夠幫助開發人員快速生成單片機代碼的工具。它利用了現代計算機技術和算法,能夠根據用戶提供的輸入和需求,自動生成符合
    的頭像 發表于 01-08 14:12 ?3227次閱讀
    主站蜘蛛池模板: 久久久精品免费国产四虎| 国产高清色播视频免费看| 888米奇色狠狠俺去啦| 狼人狠狠干| 久久99热久久精品动漫| 人人插人人艹| 亚洲精品美女久久久久网站| 8050午夜| 特级毛片免费视频播放| 国产女人视频| 国产一级簧片| 亚洲国产精品乱码在线观看97| 狠狠色欧美亚洲狠狠色www| 久久精品福利| 亚洲国产综合久久精品| 国产精品伦理一区二区三区| 插插插天天| 四月婷婷七月婷婷综合| 越南黄色录像| 视频一区二区在线观看| 免费一级视频在线播放| 久久亚洲精品国产亚洲老地址| aaaaaa精品视频在线观看| 狠狠躁夜夜躁人人躁婷婷视频| 国产免费福利网站| 天天射日日射| 午夜在线观看免费观看大全| 人人射人人爽| 国模私拍在线视频| 亚洲 另类色区 欧美日韩| 色视频网站在线| 日本zzzwww大片免费| 伊人不卡久久大香线蕉综合影院| 国产农村一一级特黄毛片| 日本人六九视频69jzz免费| 日韩毛片在线视频| 久久老色鬼天天综合网观看| 五月天婷婷电影| 天天添天天干| 亚洲免费成人网| 午夜影吧|