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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pcf8563.c

?? 8563始終芯片的C舉例
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
//************************************************************************
// pcf8563.c: 24/11/2006
//
// 外部程序會(huì)調(diào)用到的函數(shù)有:                                            
// pcf_init,pcf_set_time,pcf_get_time              
// pcf_clkout_start,pcf_clkout_stop,pcf_timer_start,pcf_timer_stop  
//
//***************************************************************************
#include "msp430x14x.h"   
#include "pcf8563.h"


//定義全局變量
char pcf_bcon1;                    //Control/Status1 
char pcf_bcon2;                    //Control/Status2 
char pcf_bsecond;                  //Seconds
char pcf_bminute;                  //Minutes
char pcf_bhour;                    //Hours
char pcf_bday;                     //Days
char pcf_bweek;                    //Weekdays
char pcf_bmonth;                   //Months/Century
char pcf_byear;                    // Years
char pcf_bminutealarm;             //Minute alarm
char pcf_bhouralarm;               //Hour alarm
char pcf_bdayalarm;                //Day alarm
char pcf_bweekalarm;               //Weekday alarm
char pcf_bclkoutfreq;              //CLKOUT frequency
char pcf_btimerfreq;               //Timer control
char pcf_btimer;                   //Timer countdown value
char pcf_b10ms;                    //
unsigned int pcf_wdate;            //儲(chǔ)存seconds,minutes,hours
unsigned int pcf_wtime;            //儲(chǔ)存days,months,years

/****************************************************************************/
/*  開始iic總線                                                             */
/*  Function : iic_start                                                    */
/*  Input    : none                                                         */
/*  Output   : none                                                         */
/*  Description :                                                           */
/*  SDA置高、SCL置高、SDA置低、SCL置低,                                    */ 
/****************************************************************************/ 
void iic_start ( void )
{ 
  P3DIR &= ~PCF_SDA;      //SDA置高
  P3DIR &= ~PCF_SCL;      //SCL置高
  P3DIR |= PCF_SDA;       //SDA置低,同時(shí)把SDA管腳設(shè)為輸出
  P3DIR |= PCF_SCL;       //SCL置低
}

/*******************************************************************************/
/*  停止iic總線                                                                */
/*  Function : iic_stop                                                        */
/*  Input    : none                                                            */
/*  Output   : none                                                            */
/*  Description : SDA置低、SCL置高、SDA置高                                    */
/*  說明:程序中是通過設(shè)置P口的方向寄存器來實(shí)現(xiàn)SDA、SCL置高和置低的            */
/*        由于有上拉電平,所以當(dāng)P口是輸入時(shí)為高電平,當(dāng)切換為輸出模式時(shí),P口   */
/*        默認(rèn)輸出低電平。                                                     */
/*******************************************************************************/
void iic_stop (void )
{    
  P3DIR |= PCF_SDA;     //SDA置低
  P3DIR &= ~PCF_SCL;    //SCL置高
  P3DIR &= ~PCF_SDA;    //SDA置高
}

/*******************************************************************************/
/*  發(fā)送確認(rèn)信息 SEND ACKNOWLEDGE                                      */
/*  Function : iic_set_ack                                                     */
/*  Input    : none                                                            */
/*  Output   : none                                                            */
/*  Description :                                                              */
/*  SCL置低、SDA置低、SCL置高、SCL置低、SDA置高;                               */
/*  表示從機(jī)收到一個(gè)字節(jié)                                                       */
/*******************************************************************************/
void iic_set_ack ( void )
{
  P3DIR |= PCF_SCL;
  P3DIR |= PCF_SDA;
  P3DIR &= ~PCF_SCL;
  P3DIR |= PCF_SCL;
  P3DIR &= ~PCF_SDA;
}

/*******************************************************************************/
/*  Send NAK(not acknowledge)                                                  */
/*  Function : iic_set_nak                                                     */
/*  Input    : none                                                            */
/*  Output   : none                                                            */
/*  Description :                                                              */
/*  SCL置低、SDA置高、SCL置高、SCL置低;                                        */
/*******************************************************************************/
void iic_set_nak ( void )
{
  P3DIR |= PCF_SCL;
  P3DIR &= ~PCF_SDA;
  P3DIR &= ~PCF_SCL;
  P3DIR |= PCF_SCL;
}

/*******************************************************************************/
/*  獲取應(yīng)答信息(從機(jī)是否收到)                                               */
/*  Function : iic_get_ack                                                      */
/*  Input    : none                                                            */
/*  Output   : int                                                             */
/*  Description :  SCL置低,SCLP置高,                                         */
/*  判斷SDA是否為低,為低時(shí)(收到ACK)返回1,SCL置低                                      */
/*******************************************************************************/
char iic_get_ack ( void )
{
  char temp = 0;
  
  P3DIR |= PCF_SCL;       //SCL置低       
  P3DIR &= ~PCF_SCL;      //SCL置高
  _NOP();
  _NOP();
   
  if ( !(P3IN & PCF_SDA) )  // SDA=0 ?
    { 
    	P3DIR |= PCF_SCL;    //if SDA=0,表示收到ACKNOWLEDGE
      temp = 1;
    }
    
   return(temp);
}

/*******************************************************************************/
/*  從PCF8563讀取一個(gè)字節(jié)到MSP430,接受順序是從MSB到LSB                         */
/*  Function : ziic_read                                                       */
/*  Input    : none                                                            */
/*  Output   : char  -- 讀到的字節(jié)                                             */
/*  Description :                                                              */
/*  SCL置高、讀SDA數(shù)據(jù)、SCL置低、SCL置高、讀SDA數(shù)據(jù)......                      */
/*******************************************************************************/
char ziic_read( void )
{
  char value = 0;
  char i;
       
  for(i = 0;i<8;i++)
  {
    P3DIR &= ~PCF_SCL;    //SCL置高
    _NOP();
    _NOP();
    
    if(P3IN & PCF_SDA)             // SDA=1 ?              
      value |= (0x01 << (7-i));
      
    P3DIR |= PCF_SCL;    //SCL置低
  }
     
  return (value);
}

/*******************************************************************************/
/*  將MSP430中的一個(gè)字節(jié)寫入PCF8563(順序從MSB到LSB)                          */
/*  Function : ziic_write                                                      */
/*  Input    : char value  -- 待寫入PCF8563的字節(jié)                              */
/*  Output   : none                                                            */
/*  Description :                                                              */
/*  寫SDA數(shù)據(jù)、SCL置高、SCL置低......寫SDA數(shù)據(jù)、SCL置高、SCL置低               */
/*******************************************************************************/
void ziic_write( char value )
{
  char i;
 
  for(i = 0;i<8;i++)
  {
    if (value & 0x80)   
      P3DIR &= ~PCF_SDA;    //value該位為1,SDA置高
    else
      P3DIR |= PCF_SDA;     //value該位為0,SDA置低
      
    P3DIR &= ~PCF_SCL;      //SCL置高
    _NOP();
    _NOP();
    P3DIR |= PCF_SCL;       //SCL置低
    _NOP();
    _NOP();
    value <<= 1;            //value左移1位
  } 
  
  P3DIR &= ~PCF_SDA;        //SDA置高,并把SDA管腳設(shè)為輸入 
}

/*******************************************************************************/
/*  從PCF8563中讀取數(shù)據(jù)到MSP430中                                              */
/*  Function : ziic_page_read                                                  */
/*  Input    : char *adrmsp -- 接收數(shù)組的首地址                                */
/*             char    num  -- 讀取的字節(jié)數(shù)                                    */
/*             char  adrpcf -- PCF8563內(nèi)部寄存器的首地址                       */
/*  Output   : none                                                            */
/*  Description :                                                              */
/*  從PCF8563內(nèi)部第adrpcf個(gè)寄存器開始讀取num個(gè)字節(jié),保存在MSP430的adrsmp數(shù)組中  */
/*  MSP430寫完一個(gè)字節(jié),就要getack,以獲得對方的反應(yīng);                         */
/*  MSP430讀完一個(gè)字節(jié),發(fā)送setack,告知對方,發(fā)送有效;                       */
/*   讀完最后一個(gè)字節(jié)時(shí) 發(fā)送setnak,告知對方,不必發(fā)送;                       */
/*******************************************************************************/   
void ziic_page_read ( char *adrmsp,char num,char adrpcf )
{ 
	char flag = 1;
  char i;
	  
  while (flag)
	{
		P3OUT &= ~PCF_SCL;      
    P3OUT &= ~PCF_SDA;             // INITIATE SCL&SDA LOW 
	
	  iic_start();                   // 啟動(dòng)IIC總線
    ziic_write( 0x0A2 );           // 發(fā)送PCF8563 write slave address(0A2h)給PCF8563
    if (!(iic_get_ack()))          // iic_get_ack()= 0?
		  continue;                    // 如果沒有收到ACK則跳轉(zhuǎn),重發(fā)一次
		
		ziic_write( adrpcf );           // 發(fā)送PCF8563內(nèi)部寄存器起始地址
		if (!(iic_get_ack()))             
		  continue;                    // 如果沒有收到ACK則跳轉(zhuǎn),重發(fā)一次
		
		iic_start();                   // 啟動(dòng)IIC總線
    ziic_write( 0x0A3 );           // 發(fā)送PCF8563 read slave address(0A3h)給PCF8563
    if ( iic_get_ack() )           // iic_get_ack()=1?
		  flag = 0;                    // if iic_get_ack()=1,flag置0,結(jié)束循環(huán)
	}       
		          
  for (i = 0;i<num;i++)
  {  
    adrmsp[i] = ziic_read();       // 把PCF8563內(nèi)寄存器的數(shù)據(jù)讀到MSP430中
    iic_set_ack();                 // MSP430發(fā)送ACK 
  }                                // PCF8563的寄存器可自動(dòng)增量,不需軟件操作了
    
   iic_set_nak();                  // MSP430發(fā)送NAK,表示不讀了           
   iic_stop();
}

/*******************************************************************************/
/*  從MSP430中寫數(shù)據(jù)到PCF8563中                                                */
/*  Function : ziic_page_write                                                 */
/*  Input    : char *adrmsp -- 待發(fā)送數(shù)組的首地址                              */
/*             char    num  -- 待發(fā)送的字節(jié)數(shù)                                  */
/*             char  adrpcf -- 待寫入的PCF8563內(nèi)部寄存器的首地址               */
/*  Output   : none                                                            */
/*  Description :                                                              */
/*  把430中darmsp[]數(shù)組中的字節(jié)寫入PCF8563內(nèi)部的寄存器                         */
/*******************************************************************************/
void ziic_page_write ( char *adrmsp,char num,char adrpcf )
{ 
	char flag = 1;
	char i;
        
	while (flag)
	{
		P3OUT &= ~PCF_SCL;             
    P3OUT &= ~PCF_SDA;             // INITIATE SCL&SDA LOW 
	
	  iic_start();                   // 啟動(dòng)IIC總線
    ziic_write( 0x0A2 );           // 發(fā)送PCF8563 write slave address(0A2h)給PCF8563
    if(!(iic_get_ack()))           // 
		  continue;                    // 如果沒有收到ACK則跳轉(zhuǎn),重發(fā)一次
		
		ziic_write ( adrpcf );          // 發(fā)送PCF8563內(nèi)部寄存器起始地址
		if(iic_get_ack())             
		  flag = 0;                    //if iic_get_ack()=1, 跳出循環(huán)
	}
		  	  
  for (i = 0;i<num;)
  { 
  	ziic_write ( adrmsp[i] );      // 把430內(nèi)部RAM中的數(shù)據(jù)寫入PCF8563寄存器
    if (!(iic_get_ack()))         
      continue;	                   // 如果沒有收到ACK則跳轉(zhuǎn),重發(fā)一次  
    i++;                           // 如果收到ACK,繼續(xù)發(fā)送下一個(gè)字節(jié)                                  
  }                                // PCF8563的寄存器可自動(dòng)增量,不需軟件操作了

  iic_stop();                      //停止總線
}	            

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区精品3399| 五月天亚洲精品| 欧美日韩精品免费观看视频| 国产最新精品免费| 亚洲va韩国va欧美va精品| 国产亚洲福利社区一区| 7777精品伊人久久久大香线蕉最新版| 成人一级视频在线观看| 久久爱另类一区二区小说| 一区二区不卡在线播放| 国产精品视频在线看| 日韩一级二级三级| 欧美午夜精品久久久久久孕妇| 成人综合激情网| 麻豆极品一区二区三区| 亚洲国产精品久久久久婷婷884| 中文成人综合网| 香蕉影视欧美成人| 中文字幕在线不卡国产视频| 久久综合九色综合97婷婷女人 | 欧美在线观看一区二区| 国产激情视频一区二区三区欧美| 日本vs亚洲vs韩国一区三区二区| 亚洲自拍偷拍网站| 亚洲美女视频一区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 麻豆91在线观看| 水蜜桃久久夜色精品一区的特点| 亚洲精品视频在线看| 亚洲欧洲在线观看av| 中文字幕成人在线观看| 久久九九久久九九| 国产日韩欧美亚洲| 国产亚洲欧洲一区高清在线观看| 精品成a人在线观看| 精品日韩欧美一区二区| 欧美成人综合网站| 欧美mv和日韩mv国产网站| 欧美一区二区三区在线电影| 91精品一区二区三区久久久久久 | 激情小说欧美图片| 久久精品国产亚洲aⅴ | 欧美日韩中文另类| 欧美综合色免费| 欧美日韩一区在线| 欧美日韩极品在线观看一区| 欧美日韩在线观看一区二区| 欧美精品乱人伦久久久久久| 日韩欧美国产一二三区| 欧美一级久久久久久久大片| 精品国产一区二区三区四区四| 日韩免费观看高清完整版| www国产亚洲精品久久麻豆| wwwwww.欧美系列| 亚洲国产精品t66y| 亚洲视频每日更新| 亚洲国产成人av网| 蜜臀久久99精品久久久久宅男| 精品一区二区三区在线观看| 国产精品一色哟哟哟| 成人激情开心网| 日本高清成人免费播放| 欧美片网站yy| 久久亚洲精精品中文字幕早川悠里 | 精品免费一区二区三区| 久久精品一二三| 亚洲欧美色图小说| 日本欧美一区二区在线观看| 国产一区二区精品久久| 91在线小视频| 在线播放日韩导航| 久久免费电影网| 亚洲男人天堂一区| 免费在线观看成人| 不卡影院免费观看| 欧美人牲a欧美精品| 久久久久亚洲综合| 亚洲中国最大av网站| 麻豆精品久久精品色综合| 国产成人鲁色资源国产91色综| 99久久er热在这里只有精品66| 欧美日韩在线电影| 国产日韩欧美精品综合| 亚洲1区2区3区4区| 国产成人免费视| 91精品国产入口| 一区在线中文字幕| 免费在线观看日韩欧美| 97精品久久久午夜一区二区三区 | 久久99国产精品免费网站| 99re热这里只有精品视频| 欧美一级免费大片| 亚洲男同1069视频| 国产一区二区三区免费播放| 欧美午夜影院一区| 中文字幕不卡一区| 麻豆免费看一区二区三区| 色婷婷综合在线| 国产亚洲污的网站| 热久久久久久久| 在线视频欧美精品| 国产精品美女久久久久久久久 | 国产精品99久久久久久宅男| 欧美亚洲图片小说| 中文字幕在线观看一区| 精一区二区三区| 欧美绝品在线观看成人午夜影视 | 免费日本视频一区| 在线一区二区三区四区| 国产精品三级在线观看| 久久国产麻豆精品| 欧美日韩国产欧美日美国产精品| 中文字幕中文乱码欧美一区二区| 国产一区亚洲一区| 日韩视频免费直播| 天堂久久久久va久久久久| 色天天综合久久久久综合片| 国产精品理伦片| 国产精品456| 2024国产精品| 九色porny丨国产精品| 5月丁香婷婷综合| 污片在线观看一区二区| 欧美性生交片4| 一区二区三区丝袜| 日本道精品一区二区三区| 亚洲欧美综合网| 成人av影院在线| 国产精品免费视频观看| 成人激情免费电影网址| 中文字幕免费观看一区| 成熟亚洲日本毛茸茸凸凹| 日本一区二区三区四区| 国产高清精品久久久久| 国产婷婷色一区二区三区四区| 国内精品不卡在线| 国产欧美视频在线观看| 国产超碰在线一区| 国产精品久久三区| 91色九色蝌蚪| 亚洲精品乱码久久久久| 欧美亚洲禁片免费| 五月婷婷激情综合| 日韩一卡二卡三卡四卡| 久久国产剧场电影| 久久久久99精品国产片| 成人av在线电影| 亚洲精品第1页| 欧美精品v国产精品v日韩精品| 日韩avvvv在线播放| 欧美成人欧美edvon| 国产精品香蕉一区二区三区| 国产精品久久久久久久久动漫| 91天堂素人约啪| 亚洲成人av福利| 精品国产三级a在线观看| 国产激情一区二区三区四区| 自拍偷拍亚洲综合| 欧美巨大另类极品videosbest | 亚洲午夜免费电影| 欧美一卡在线观看| 国产乱码精品一品二品| 亚洲日本免费电影| 欧美电影影音先锋| 国产成人av电影在线观看| 亚洲欧美一区二区三区极速播放 | 久久亚洲捆绑美女| 色综合中文字幕国产| 亚洲777理论| 久久久www成人免费毛片麻豆| 99re这里只有精品6| 丝袜诱惑制服诱惑色一区在线观看 | 色综合中文字幕| 蜜芽一区二区三区| 中文字幕一区二区三区在线播放| 欧美无乱码久久久免费午夜一区| 另类小说综合欧美亚洲| 中文字幕一区日韩精品欧美| 欧美高清你懂得| 成人午夜短视频| 日韩精品1区2区3区| 国产精品美女久久久久aⅴ国产馆| 欧美色大人视频| 国产98色在线|日韩| 亚洲成人自拍网| 中文一区二区完整视频在线观看| 欧美日韩国产免费一区二区| 懂色av一区二区三区免费看| 手机精品视频在线观看| 中文字幕一区二| 精品久久久久久久久久久久久久久久久| 91欧美一区二区| 国产尤物一区二区在线| 亚洲成人福利片| 国产精品美女久久久久久久久| 欧美一区二区人人喊爽| 日本高清免费不卡视频| 国产成人精品免费网站| 日本亚洲三级在线| 亚洲日本在线天堂|