衡阳派盒市场营销有限公司

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

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

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

    關注

    6043

    文章

    44622

    瀏覽量

    638554
  • IO
    IO
    +關注

    關注

    0

    文章

    461

    瀏覽量

    39372
  • 接口
    +關注

    關注

    33

    文章

    8691

    瀏覽量

    151917
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

    單片機io口輸出電流多大

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

    單片機io口的四工作狀態

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

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

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

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

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

    PLC與單片機的區別是什么

    在工業自動化和電子領域中,PLC(Programmable Logic Controller,可編程邏輯控制器)和單片機(Single-Chip Microcomputer)是兩種常見的控制設備
    的頭像 發表于 05-28 16:11 ?2112次閱讀

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

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

    FH8A1?8A是一io型,完全靜態,基于otp的控制器8位MCU單片機

    FH8A1?8A是一io型,完全靜態,基于otp的控制器8位MCU單片機
    的頭像 發表于 03-25 17:35 ?636次閱讀

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

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

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

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

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

    單片機編程和PLC編程是兩種不同的嵌入式系統開發領域。在這篇文章中,我們將詳細探討這兩種編程方式的區別。首先,我們將簡要介紹單片機和PLC的基本概念,然后分析它們的不同特點和使用場景。
    的頭像 發表于 02-22 10:23 ?2959次閱讀
    多台百家乐官网的玩法技巧和规则 | 香港百家乐的玩法技巧和规则 | 网上真钱棋牌游戏| 网络百家乐金海岸破解软件| 百家乐官网的规则玩法| 永利博| 闲和庄百家乐娱乐城| 百家乐官网电子| 百家乐官网娱乐天上人间| 东方太阳城三期琴湖湾| 筹码百家乐500| 赌场百家乐官网怎么破解| 百家乐官网注码调整| 德州扑克偷鸡| 女神百家乐的玩法技巧和规则| 聚宝盆百家乐游戏| 百家乐官网网上真钱赌场娱乐网规则| 百家乐官网的胜算法| 百家乐赌博导航| 百家乐娱乐城代理| 百家乐官网是咋玩法| 鸿运娱乐| 金宝博网址| 大发888赌场 游戏平台| 威尼斯人娱乐城官方网| BB百家乐HD| 百家乐5式直缆打法| 蓝盾百家乐官网具体玩法技巧| 百家乐官网澳门百家乐官网澳门赌场 | 视频百家乐代理| 百家乐分析软件骗人| 在线百家乐有些一| 百家乐技巧娱乐博彩| 百家乐投注网站| 百家乐出庄概率| 百家乐连黑记录| 百家乐街机游戏下载| 百家乐机器昀程序| 网络百家乐可信吗| 百家乐高手的心得| 乐天百家乐的玩法技巧和规则|