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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機io擴展

作者:佚名   來源:本站原創   點擊數:  更新時間:2007年07月07日   【字體:

下面介紹兩種單片機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

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

 

關閉窗口

相關文章

主站蜘蛛池模板: 亚洲视频手机在线 | 国产视频在线一区二区 | 嫩呦国产一区二区三区av | 日本精品裸体写真集在线观看 | 在线不卡视频 | 亚洲精品免费观看 | 精品久久久久久久 | 91亚洲国产成人久久精品网站 | 国产欧美一区二区在线观看 | 欧美 日韩精品 | 粉嫩粉嫩芽的虎白女18在线视频 | 精品国产18久久久久久二百 | 久久美女网 | 精品亚洲一区二区三区四区五区高 | 日本免费一区二区三区 | 精品视频一区二区在线观看 | 日本午夜网 | 国产精品7777777| 亚洲成人一区二区三区 | 免费看国产a | 精品无码久久久久久国产 | 拍拍无遮挡人做人爱视频免费观看 | 欧美在线视频一区二区 | 成人性生交大片免费看中文带字幕 | 欧美freesex黑人又粗又大 | 福利网站在线观看 | 欧美国产日韩在线观看 | 男人av的天堂 | 欧美亚洲一级 | 欧洲妇女成人淫片aaa视频 | 精品久久久久一区二区国产 | 欧美一级久久 | 久久99精品久久久久久青青日本 | 精精国产xxxx视频在线播放 | 国产欧美一区二区三区日本久久久 | 综合激情久久 | 国产高清在线 | 久久精品亚洲 | 欧州一区二区三区 | 中文字幕不卡视频在线观看 | 国产免费一区二区三区 |