亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wpcf8574.c

?? 基于8051F020,目的:用PCF8574器件實現并口輸入
?? C
字號:
//參考程序A:  WPCF8574.C
//程序功能:PCF8574是帶SUMBUS總線的串口轉并口的數據轉換芯片.8位輸入口連結8個//開關(K1-K8)作輸入,二個8位輸出鎖存口分別連結8個LED燈,作二個8位輸出..
// 程序安排二個8位輸出口鎖存的數據電平相反.
#include <c8051f020.h>                    // SFR declarations
#include <intrins.h>
#define  WRITE       0x00                 // 寫位標志
#define  READ        0x01                 // 讀位標致
#define  CHIP_B      0x70
#define  SMB_START      0x08  // (MT & MR)主收發器發送起始位成功.再將從機寫地
//址送SMBUS
#define  SMB_RP_START   0x10  // (MT & MR)主收發器重復發送起始位成功,再將從機
//讀地址送SMB0DAT
#define  SMB_MTADDACK   0x18  // (MT) 主收發器發送從地址+W成功;收到 //ACK(從機應答)     
#define  SMB_MTDBACK    0x28  // (MT)主收發器發送數據字節成功;收到ACK(從機//應答) 
#define  SMB_MRADDACK   0x40  // (MR) 主收發器發送從地址+R成功;收到 //ACK(從機應答)
#define  SMB_MRDBNACK   0x58  // (MR) 主收發器接收數據成功;主機發送NACK 
char COMMAND;                    // 保存從地址用與中斷程序
char WORD;                       // 保存接收到的數據并把他發送出去.
unsigned char xdata SENDMODE;                                        
bit SM_BUSY;                      // 在收/發數據時該位置1,中斷完成后被清另.
void SYSCLK_Init (void);
char SLA_READ(char chip_select);
void SLA_SEND(char chip_select, char wr_data);
void sleep_ms(unsigned int count)
{
  unsigned char ii,jj;
  for(ii=0;ii<count;ii++)
    {
      for(jj=0;jj<250;jj++)
	  _nop_();			
    }	
}
void MAIN (void)
{
   unsigned char i,temp;
   WDTCN = 0xde;                          // 禁止看們狗
   WDTCN = 0xad;
   SYSCLK_Init();                         // 開外部晶振
   XBR0 = 0x01;                           // 設置交叉開關,配置IO口
   XBR2 = 0x40;                           // 使能交叉開關和弱上拉.
   SMB0CN = 0x44;                         // 使能SMBus帶低電平響應 (AA = 1)
   SMB0CR = 0xc9;           // 設置SMBus 速率= 100 kHz,系統時鐘為11.0582MHZ
   EIE1 |= 2;                             // SMBus 中斷使能
   EA = 1;                                // 全局中斷使能
   SM_BUSY = 0;                           // 釋放總線,用于第一次數據傳送
   SI = 0;
   while(1){
   for(i=0;i<40;i++){                 //延時
   		sleep_ms(200);
   }
	temp = SLA_READ(0x70);           //芯片U1讀取開關狀態
	sleep_ms(200);
	SLA_SEND(0x72,temp);             //芯片U2輸出開關狀態
	sleep_ms(200);
	sleep_ms(200);
	SLA_SEND(0x74,~temp);           //芯片U3輸出開關狀態的反碼
	sleep_ms(200);
	sleep_ms(200);
	sleep_ms(200);
	sleep_ms(200);
   }
   
}
void SYSCLK_Init (void)         //時鐘初始化
{
   int i;                                 // 延時計數器 i
   OSCXCN = 0x67;                         // 起動外部時鐘(11.0592MHZ)
   for (i=0; i < 256; i++) ;              // 時間間隔 (>1ms)
   while (!(OSCXCN & 0x80)) ;             // 等待時鐘丟失允許位(MSCLKE)位置1
   OSCICN = 0x88;                         // 選擇外部晶振作系統時鐘
                                          // 允許時鐘丟失檢測
}
//數據輸出到從器件的函數:
// chip_select = 器件從地址
void SLA_SEND(char chip_select, char wr_data)
{
   SENDMODE=0x01;
   while(SM_BUSY);                        // 當總線忙碌的時后就等待
   SM_BUSY = 1;                           // SMBus忙碌標志位置1 .
   SMB0CN = 0x44;                         // SMBus 使能, 響應信號為低電平
   COMMAND = (chip_select | WRITE);       // COMMAND = 7位地址加"寫"位
   WORD = wr_data;                        // 輸出數據在WORD中
   STO = 0;
   STA = 1;                               // 起動數據傳輸
	while(SM_BUSY);                       // 等待中斷結束
}
//讀取從器件輸出數據的函數:
char SLA_READ(char chip_select){
   SENDMODE=0;
   while(SM_BUSY);                        // 總線忙碌時要等待
   SM_BUSY = 1;                           // 總線忙碌標志位置1.
   SMB0CN = 0x44;                         // SMBus 使能, 響應信號為低電平
   COMMAND = (chip_select | READ);        // COMMAND = 7位地址加"讀"位
   STO = 0;
   STA = 1;                               // 開始傳送
   while(SM_BUSY);                        // 等待傳送完成
   return WORD;                           // 返回接收到的數據
}
//  SMBus中斷服務程序
void SMBUS_ISR (void) interrupt 7
{ 
   switch (SMB0STA){                    // SMBus中斷狀態 SMB0STA register)
//SMB_START     ;                  (SMB0STA  =08H)                                  
//主發送器/接收器發送起始位成功.再將從機寫地址送SMB0DAT并清除START位.
      case SMB_START:	//0x08
         SMB0DAT = COMMAND ;			
         STA = 0;                       // 人工清除STA
         SI = 0;                        // 人工清除SI
         break;
//SMB_RP_START                    ;(SMB0STA  =10H)
//主發送器/接收器發送重復起始位成功.再將從機讀地址送SMB0DAT并清除START位.
      case SMB_RP_START:	//0x10
         SMB0DAT = COMMAND;
         STA = 0;                       // 人工清除STA
         SI = 0;
         break;
//SMB_MTADDACK                      (SMB0STA  =18H)
//主發送器(MT)發送從地址+W成功;收到 ACK(從機應答),再將要發的子地址送入SMB0DAT.
         case SMB_MTADDACK:	//0x18
         SMB0DAT = WORD;
         SI = 0;                        // 清除中斷標志
         break;
//SMB_MTDBACK                            SMB0STA  =28H)
//主發送器(MT)發送數據字節成功;收到ACK(從機應答) 
//檢查BYTE_SENT:如果為1,說明剛發出的是存儲器地址;為0,剛發出的是數據字節    
      case SMB_MTDBACK:		//0x28
			STO = 1;
			SM_BUSY=0;
         SI = 0;
         break;
//SMB_MRADDACK                          ;(SMB0STA  =40H)
//(MR)主收發器發送從地址+R成功;收到 ACK(從機應答).主機發送NACK.
  case SMB_MRADDACK:	//0x40
         AA = 0;       // 主機在在回應周期發送NACK
         SI = 0;
         break;
//SMB_MRDBNACK                  ;(SMB0STA  =58H)
//(MR)主收發器接收數據成功;主機發送NACK 
//讀操作完成。讀數據寄存器并發送STOP
      case SMB_MRDBNACK:	//0x58
         WORD= SMB0DAT;
         STO = 1;
         SM_BUSY = 0;
         AA = 1;           // 主機發送ACK,準備下一次傳輸
         SI = 0;
         break;
 }
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色呦呦国产精品| 亚洲精品欧美激情| 日韩一区在线看| 亚洲成a人片在线观看中文| 久久99在线观看| 91免费小视频| 久久精品人人做人人爽97| 亚洲国产综合91精品麻豆| 国产一区二区三区不卡在线观看 | 色综合久久综合| 精品欧美一区二区三区精品久久| 亚洲人成人一区二区在线观看| 久久97超碰国产精品超碰| 精品1区2区3区| 欧美日韩国产综合一区二区三区| 欧美日韩一级片在线观看| 色哦色哦哦色天天综合| 国产婷婷色一区二区三区四区| 亚洲高清在线视频| 日本韩国欧美国产| 国产精品久久久久久久岛一牛影视| 欧美bbbbb| 日韩免费高清电影| 日韩电影在线观看电影| 欧洲人成人精品| 亚洲欧美一区二区三区极速播放| 风间由美一区二区av101| 欧美成人国产一区二区| 免费高清视频精品| 日韩网站在线看片你懂的| 午夜欧美在线一二页| 欧美男男青年gay1069videost| 亚洲一区二区三区影院| 欧美在线观看18| 一区二区三区四区五区视频在线观看 | 一区二区成人在线| 99精品欧美一区二区三区综合在线| 国产午夜精品美女毛片视频| 美腿丝袜亚洲三区| 久久久亚洲午夜电影| 国产毛片精品国产一区二区三区| 日韩色在线观看| 激情综合亚洲精品| 亚洲国产精品成人综合色在线婷婷 | 91丝袜高跟美女视频| 亚洲三级在线播放| 欧美唯美清纯偷拍| 免费在线观看一区二区三区| 欧美大黄免费观看| 国产精品久久看| 亚洲色图在线视频| 欧美无人高清视频在线观看| 91福利在线看| 日韩精品一区二区三区视频在线观看 | 欧美精品一区在线观看| 日本不卡一区二区| 精品99一区二区| 粉嫩一区二区三区性色av| 亚洲日本一区二区| 69久久夜色精品国产69蝌蚪网| 七七婷婷婷婷精品国产| 国产午夜精品一区二区| 91国偷自产一区二区使用方法| 亚洲综合久久久久| 久久综合久久综合久久| 91在线观看污| 免费观看一级特黄欧美大片| 欧美激情中文不卡| 欧美视频在线一区二区三区 | 99精品欧美一区二区三区综合在线| 一区二区高清免费观看影视大全| 日韩一区二区麻豆国产| 99在线热播精品免费| 日韩成人精品在线观看| 欧美经典三级视频一区二区三区| 欧美亚洲国产一区二区三区| 国产在线视频一区二区三区| 一区二区三区影院| 欧美激情一二三区| 欧美一区二区三区爱爱| 色综合天天综合网天天狠天天| 日韩成人伦理电影在线观看| 亚洲天堂精品在线观看| 欧美电影免费观看高清完整版在 | 亚洲精品一线二线三线| 91网页版在线| 国产精品99精品久久免费| 亚洲综合视频在线观看| 中文字幕的久久| www国产精品av| 欧美日本乱大交xxxxx| 99精品视频在线观看| 国产一区二区三区四区五区美女| 一区二区高清免费观看影视大全| 欧美激情一区二区| xf在线a精品一区二区视频网站| 欧美日韩精品一区二区在线播放| av高清不卡在线| 国产麻豆成人精品| 看电视剧不卡顿的网站| 日韩成人av影视| 日韩极品在线观看| 亚洲一区二区三区影院| 一区二区三区四区在线播放| 亚洲欧洲成人自拍| 亚洲欧洲www| 国产精品理伦片| 亚洲国产精品ⅴa在线观看| 2022国产精品视频| 精品福利av导航| 精品国产不卡一区二区三区| 日韩欧美国产三级电影视频| 欧美肥胖老妇做爰| 欧美丰满嫩嫩电影| 欧美成人精精品一区二区频| 欧美成人一区二区| 精品国产乱码久久久久久1区2区| 欧美一卡二卡三卡| 日韩欧美精品在线| 精品免费99久久| 久久婷婷成人综合色| 久久久五月婷婷| 久久久久综合网| 欧美国产禁国产网站cc| 国产精品免费丝袜| 亚洲人成小说网站色在线| 亚洲人吸女人奶水| 亚洲成人中文在线| 日韩av不卡一区二区| 久久成人免费网站| 国产成人亚洲综合色影视| 成人免费看片app下载| 色天使久久综合网天天| 欧美日韩精品免费| 欧美大片顶级少妇| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美一区二区三区孕妇| 亚洲成人动漫一区| 日韩高清不卡一区| 国产风韵犹存在线视精品| 成人免费视频视频在线观看免费| 在线观看视频91| 日韩女优av电影| 国产精品妹子av| 亚洲亚洲精品在线观看| 另类人妖一区二区av| aaa欧美色吧激情视频| 欧美久久久影院| 国产亚洲一本大道中文在线| 亚洲欧美另类图片小说| 日本午夜一区二区| 成人午夜激情视频| 91精品国产入口在线| 日本一区二区动态图| 日韩精品一区第一页| 成人免费毛片片v| 日韩一级在线观看| 亚洲日本在线看| 精久久久久久久久久久| 色偷偷成人一区二区三区91| 精品国产乱码久久久久久浪潮| 一区二区三区蜜桃| 国产精品亚洲视频| 欧美肥大bbwbbw高潮| 日韩美女精品在线| 精品在线观看视频| 欧美女孩性生活视频| 亚洲日本va在线观看| 国产乱码精品一区二区三区五月婷 | 中文字幕亚洲成人| 韩国一区二区在线观看| 欧美精品在线一区二区三区| 欧美激情自拍偷拍| 国产一区二区三区国产| 91精品在线一区二区| 亚洲人成网站精品片在线观看 | 2024国产精品| 日韩高清中文字幕一区| 欧日韩精品视频| 亚洲精品五月天| 成人伦理片在线| 国产日韩精品一区二区浪潮av | 精品日本一线二线三线不卡| 亚洲成a人片综合在线| 色婷婷综合久久久久中文| 中文字幕高清不卡| 国产福利不卡视频| 国产午夜亚洲精品羞羞网站| 久久国产夜色精品鲁鲁99| 欧美男生操女生| 天堂一区二区在线免费观看| 91福利小视频| 亚洲激情一二三区| 91片黄在线观看| 亚洲色图在线视频| 色999日韩国产欧美一区二区| 国产精品美女久久久久aⅴ国产馆| 国产风韵犹存在线视精品| 久久久一区二区| 岛国av在线一区|