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

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

?? pcf8563調試.c

?? 這是運用c51單片機測試pcf8563時鐘芯片
?? C
字號:
#include <reg52.H>
#include <absacc.h>
#include <string.h>
#include <intrins.h>
#include <math.h>
#define uint  		unsigned int
#define uchar 		unsigned char
#define ulong		unsigned long

#define ulong unsigned long

//I2C定義位
sbit SDA=P3^4;            //模擬I2C數據傳送位
sbit SCL=P3^5;            //模擬I2C時鐘控制位
bit ack;	              //應答標志位

uchar P8563_Store[5]; /*時間交換區,全局變量聲明*/
uchar code CP8563_Store[5]={0x21,0x09,0x28,0x11,0x08}; /*寫入時間初值:08-11-20 00:00*/
/********************************************************************************
	                             I2C總線協議
********************************************************************************/


/*******************************************************************
                    (1) 起動總線函數
函數原型: void  Start_I2c();
功能:       啟動I2C總線,即發送I2C起始條件.

********************************************************************/
void Start_I2c()
{
  SDA=1;             //發送起始條件的數據信號
  _nop_();
  SCL=1;
  _nop_();         //起始條件建立時間大于4.7us,延時
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  SDA=0;           //發送起始信號
  _nop_();        // 起始條件鎖定時間大于4μs
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  SCL=0;             //鉗住I2C總線,準備發送或接收數據
  _nop_();
  _nop_();
}
/*******************************************************************
                     (2)結束總線函數
函數原型: void  Stop_I2c();
功能:       結束I2C總線,即發送I2C結束條件.
 ********************************************************************/
void Stop_I2c()
{
  SDA=0;              //發送結束條件的數據信號
  _nop_();           //發送結束條件的時鐘信號
  SCL=1;             //結束條件建立時間大于4μs
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  SDA=1;            //發送I2C總線結束信號
  _nop_();
  _nop_();
  _nop_();
  _nop_();
}
/*******************************************************************
                (3)字節數據發送函數
函數原型: void  SendByte(uchar c);
功能:  將數據c發送出去,可以是地址,也可以是數據,發完后等待應答,并對
     此狀態位進行操作.(不應答或非應答都使ack=0 假)
     發送數據正常,ack=1; ack=0表示被控器無應答或損壞。
********************************************************************/
void  SendByte(uchar c)
{
 uchar BitCnt;
  for(BitCnt=0;BitCnt<8;BitCnt++)  //要傳送的數據長度為8位
    {
     if((c<<BitCnt)&0x80)SDA=1;   //判斷發送位
       else  SDA=0;
     _nop_();
     SCL=1;               //置時鐘線為高,通知被控器開始接收數據位
      _nop_();
      _nop_();               //保證時鐘高電平周期大于4μs
      _nop_();
      _nop_();
      _nop_();
     SCL=0;
    }
    _nop_();
    _nop_();
    SDA=1;               //8位發送完后釋放數據線,準備接收應答位
    _nop_();
    _nop_();
    SCL=1;
    _nop_();
    _nop_();
    _nop_();
    if(SDA==1)ack=0;
       else ack=1;        //判斷是否接收到應答信號
    SCL=0;
    _nop_();
    _nop_();
}
/*******************************************************************
                 (4)字節數據接收函數
函數原型: uchar  RcvByte();
功能:  用來接收從器件傳來的數據,并判斷總線錯誤(不發應答信號),
     發完后請用應答函數。
********************************************************************/
uchar  RcvByte()
{
  uchar retc;
  uchar BitCnt;

  retc=0;
  SDA=1;             //置數據線為輸入方式
  for(BitCnt=0;BitCnt<8;BitCnt++)
      {
        _nop_();
        SCL=0;          //置時鐘線為低,準備接收數據位
        _nop_();
        _nop_();         //時鐘低電平周期大于4.7μs
        _nop_();
        _nop_();
        _nop_();
        SCL=1;       //置時鐘線為高使數據線上數據有效
        _nop_();
        _nop_();
        retc=retc<<1;
        if(SDA==1)retc=retc+1; //讀數據位,接收的數據位放入retc中
        _nop_();
        _nop_();
      }
  SCL=0;
  _nop_();
  _nop_();
  return(retc);
}
/********************************************************************
                     (5)應答子函數
原型:  void Ack_I2c(bit a);

功能:主控器進行應答信號,(可以是應答或非應答信號)
********************************************************************/
void Ack_I2c(bit a)
{

  if(a==0)SDA=0;     //在此發出應答或非應答信號
        else SDA=1;
  _nop_();
  _nop_();
  _nop_();
  SCL=1;
    _nop_();
    _nop_();             //時鐘低電平周期大于4μs
    _nop_();
    _nop_();
    _nop_();
 SCL=0;                //清時鐘線,鉗住I2C總線以便繼續接收
    _nop_();
    _nop_();
}
/*******************************************************************
                    (6)向無子地址器件發送字節數據函數
函數原型: bit  ISendByte(uchar sla,ucahr c);
功能:     從啟動總線到發送地址,數據,結束總線的全過程,從器件地址sla.
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
********************************************************************/
bit ISendByte(uchar sla,uchar c)
{
   Start_I2c();               //啟動總線
   SendByte(sla);            //發送器件地址
     if(ack==0)return(0);
   SendByte(c);               //發送數據
     if(ack==0)return(0);
  Stop_I2c();                 //結束總線
  return(1);
}
/*******************************************************************
                    (7)向有子地址器件發送多字節數據函數
函數原型: bit  ISendStr(uchar sla,uchar suba,ucahr *s,uchar no);
功能:     從啟動總線到發送地址,子地址,數據,結束總線的全過程,從器件
          地址sla,子地址suba,發送內容是s指向的內容,發送no個字節。
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
********************************************************************/
bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no)
{
   uchar i;

   Start_I2c();               //啟動總線
   SendByte(sla);            //發送器件地址
     if(ack==0)return(0);
   SendByte(suba);            //發送器件子地址
     if(ack==0)return(0);

   for(i=0;i<no;i++)
    {
     SendByte(*s);               //發送數據
       if(ack==0)return(0);
     s++;
    }
 Stop_I2c();                 //結束總線
  return(1);
}
/*******************************************************************
                    (8)向無子地址器件讀字節數據函數
函數原型: bit  IRcvByte(uchar sla,ucahr *c);
功能:     從啟動總線到發送地址,讀數據,結束總線的全過程,從器件地
          址sla,返回值在c.
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
********************************************************************/
bit IRcvByte(uchar sla,uchar *c)
{
   Start_I2c();                //啟動總線
   SendByte(sla+1);           //發送器件地址
     if(ack==0)return(0);
   *c=RcvByte();               //讀取數據
     Ack_I2c(1);               //發送非就答位
  Stop_I2c();                  //結束總線
  return(1);
}
/*******************************************************************
                    (9)向有子地址器件讀取多字節數據函數
函數原型: bit  ISendStr(uchar sla,uchar suba,ucahr *s,uchar no);
功能:     從啟動總線到發送地址,子地址,讀數據,結束總線的全過程,從器件
          地址sla,子地址suba,讀出的內容放入s指向的存儲區,讀no個字節。
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
********************************************************************/
bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)
{
   uchar i;

   Start_I2c();               //啟動總線
   SendByte(sla);            //發送器件地址
     if(ack==0)return(0);
   SendByte(suba);            //發送器件子地址
     if(ack==0)return(0);
   Start_I2c();
   SendByte(sla+1);
      if(ack==0)return(0);
   for(i=0;i<no-1;i++)
    {
     *s=RcvByte();               //發送數據
      Ack_I2c(0);                //發送就答位
     s++;
    }
   *s=RcvByte();
    Ack_I2c(1);                 //發送非應位
 Stop_I2c();                    //結束總線
  return(1);
}

/*******************************************************************
                    向有子地址器件發送字節數據函數
函數原型: bit  ISendByte(uchar sla,uchar suba,uchar c);
功能:     從啟動總線到發送地址,數據,結束總線的全過程,從器件地址sla,
          子地址suba,如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
********************************************************************/
bit ISendByte3(uchar sla,uchar suba,uchar c)
{
   Start_I2c();               /*啟動總線*/
   SendByte(sla);            /*發送器件地址*/
     if(ack==0)return(0);
  SendByte(suba);            /*發送器件地址*/
     if(ack==0)return(0);
   SendByte(c);               /*發送數據*/
     if(ack==0)return(0);
  Stop_I2c();                 /*結束總線*/
  return(1);
}

/*******************************************************************
                    向有子地址器件讀字節數據函數
函數原型: bit  IRcvByte(uchar sla,ucahr *c);
功能:     從啟動總線到發送地址,讀數據,結束總線的全過程,從器件地
          址sla,返回值在c.
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
********************************************************************/
uchar IRcvByte2(uchar sla,uchar suba)
{
uchar c;
   Start_I2c();                /*啟動總線*/
   SendByte(sla);           /*發送器件地址*/
     if(ack==0)return(0);
   SendByte(suba);           /*發送子器件地址*/
     if(ack==0)return(0);

  Start_I2c();

 SendByte(sla+1);           /*發讀器件地址*/
     if(ack==0)return(0);
   c=RcvByte();               /*讀取數據*/
     Ack_I2c(1);               /*發送非就答位*/
  Stop_I2c();                  /*結束總線*/
  return c;
}

void main()
{
	
	 uchar min1,hour1,day1,mon1,year1;
	uchar min10,hour10,day10,mon10,year10;
	 ISendByte3(0xa2,0x00,0x00);
	 ISendByte3(0xa2,0x03,CP8563_Store[0]);//分
	 ISendByte3(0xa2,0x04,CP8563_Store[1]);//時
	 ISendByte3(0xa2,0x05,CP8563_Store[2]);//日
	 ISendByte3(0xa2,0x07,CP8563_Store[3]);//月
	 ISendByte3(0xa2,0x08,CP8563_Store[4]);//年
	while(1) 
	 {
	  P8563_Store[0]=IRcvByte2(0xa2, 0x03);
	  P8563_Store[1]=IRcvByte2(0xa2, 0x04);
	  P8563_Store[2]=IRcvByte2(0xa2, 0x05);
	  P8563_Store[3]=IRcvByte2(0xa2, 0x07);
	  P8563_Store[4]=IRcvByte2(0xa2, 0x08);
	 
  
	
		min1=P8563_Store[0]&0x0f;
		min10=P8563_Store[0]>>4&0x07;
		hour1=P8563_Store[1]&0x0f;
		hour10=P8563_Store[1]>>4&0x07; 
		day1=P8563_Store[2]&0x0f;
		day10=P8563_Store[2]>>4&0x03;
		mon1=P8563_Store[3]&0x0f;
		mon10=P8563_Store[3]>>4&0x01;
		year1=P8563_Store[4]&0x0f;
		year10=P8563_Store[4]>>4&0x0f;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文一区二区在线观看 | 国产福利不卡视频| 综合分类小说区另类春色亚洲小说欧美 | 日本大香伊一区二区三区| 九九热在线视频观看这里只有精品| 中文字幕免费一区| 日韩一级片在线播放| 91麻豆精品在线观看| 国产精品综合二区| 日韩激情一区二区| 亚洲精品写真福利| 国产精品免费视频观看| 欧美mv日韩mv亚洲| 欧美久久久久久久久久| 色婷婷av一区二区三区之一色屋| 国产麻豆日韩欧美久久| 蜜桃视频一区二区三区在线观看| 亚洲人成人一区二区在线观看| 国产欧美日韩视频在线观看| 欧美va亚洲va国产综合| 欧美久久久久久蜜桃| 欧美伊人久久久久久午夜久久久久| 成人精品一区二区三区四区 | 91色porny在线视频| 国产不卡视频在线观看| 美女性感视频久久| 首页亚洲欧美制服丝腿| 亚洲综合av网| 一区二区三区在线看| 自拍av一区二区三区| 国产精品国产三级国产三级人妇| 久久九九国产精品| 久久精品一区二区三区不卡 | 国产美女在线精品| 激情综合一区二区三区| 久久99热狠狠色一区二区| 日韩中文字幕一区二区三区| 亚洲高清中文字幕| 亚洲va韩国va欧美va| 亚洲成人久久影院| 日韩福利电影在线| 蜜臀av一区二区| 免费成人结看片| 久久99精品视频| 久久精品国产**网站演员| 狂野欧美性猛交blacked| 青青草国产成人99久久| 裸体歌舞表演一区二区| 九九久久精品视频| 国产成人午夜精品影院观看视频 | 成人精品国产福利| 成人激情动漫在线观看| 97久久人人超碰| 色狠狠一区二区三区香蕉| 欧美在线不卡视频| 欧美区视频在线观看| 日韩写真欧美这视频| 欧美刺激脚交jootjob| 久久一日本道色综合| 国产欧美日韩综合| 亚洲人亚洲人成电影网站色| 亚洲综合丝袜美腿| 美女免费视频一区| 国产精品白丝jk白祙喷水网站| 成人激情校园春色| 欧美日韩一区二区在线观看| 欧美一区二区在线看| 久久久久久久久久久99999| 日韩一区欧美一区| 日韩福利视频网| 丁香五精品蜜臀久久久久99网站| 中文字幕不卡在线| 国产欧美精品区一区二区三区 | 2022国产精品视频| **性色生活片久久毛片| 日韩精品成人一区二区在线| 国产精品资源网站| 欧美在线观看一区| 久久久久久日产精品| 亚洲欧美激情小说另类| 日韩国产欧美在线视频| 粉嫩在线一区二区三区视频| 欧美亚洲综合在线| 久久久国产精品麻豆| 一区二区高清在线| 国产麻豆成人精品| 欧美日韩一区国产| 国产精品久久久久aaaa| 日本va欧美va瓶| 色呦呦网站一区| 久久夜色精品国产欧美乱极品| 亚洲欧美色综合| 精品一区二区久久| 欧美日韩在线免费视频| 国产区在线观看成人精品| 亚洲电影欧美电影有声小说| 成人在线视频一区| 欧美一区二区日韩一区二区| 亚洲视频精选在线| 国产资源精品在线观看| 欧美喷潮久久久xxxxx| 国产精品福利一区| 精品一区二区精品| 欧美精品三级在线观看| 亚洲欧美日韩中文播放| 国产精品一品二品| 日韩欧美一二三区| 亚洲国产成人av好男人在线观看| 成人午夜视频福利| 久久人人97超碰com| 天天综合色天天综合色h| 91香蕉国产在线观看软件| 欧美第一区第二区| 视频一区国产视频| 欧美性猛交xxxx黑人交| 中文字幕视频一区| 丁香网亚洲国际| 国产亚洲欧洲一区高清在线观看| 蜜桃视频一区二区三区| 欧美猛男超大videosgay| 一区二区不卡在线播放 | 国产午夜亚洲精品理论片色戒| 免费在线成人网| 制服.丝袜.亚洲.另类.中文| 亚洲午夜精品在线| 91久久精品日日躁夜夜躁欧美| 亚洲欧美自拍偷拍| 不卡免费追剧大全电视剧网站| 日本乱码高清不卡字幕| 欧美精品丝袜中出| 亚洲成av人片在线观看| 欧美视频在线观看一区二区| 亚洲黄色免费网站| 91福利视频在线| 亚洲一区二区三区四区在线免费观看 | 国产精品视频yy9299一区| 国产精品一线二线三线精华| 久久影院午夜论| 国产乱国产乱300精品| 久久久综合九色合综国产精品| 激情六月婷婷久久| 久久久久久久久97黄色工厂| 风间由美一区二区av101| 欧美国产综合一区二区| 成人黄色av网站在线| 国产精品久久久久久一区二区三区| 成人综合在线观看| 亚洲人精品午夜| 欧美三级电影一区| 日韩电影在线观看网站| 欧美v日韩v国产v| 国产成a人无v码亚洲福利| 国产精品美女www爽爽爽| 99久久精品国产麻豆演员表| 亚洲欧美一区二区三区极速播放 | 国产精品伊人色| 国产精品福利影院| 欧美最新大片在线看| 欧美aⅴ一区二区三区视频| 欧美精品一区二区久久婷婷| 国产mv日韩mv欧美| 亚洲一区在线视频观看| 91精品在线观看入口| 国产在线视频一区二区三区| 中文字幕av一区二区三区| 色综合色综合色综合| 日韩成人午夜精品| 久久久久久一级片| 精品国产青草久久久久福利| 6080日韩午夜伦伦午夜伦| 精品一区二区三区在线观看 | 亚洲国产日产av| 日韩精品一区二区在线| 粉嫩蜜臀av国产精品网站| 亚洲激情六月丁香| 精品久久久久一区二区国产| 成人avav影音| 日本三级亚洲精品| 中文字幕一区二区三区在线观看| 欧美中文一区二区三区| 国产做a爰片久久毛片| 亚洲人一二三区| 日韩网站在线看片你懂的| 成人动漫视频在线| 日韩经典中文字幕一区| 欧美国产一区在线| 欧美一区二区三区思思人| 成人av在线看| 美国精品在线观看| 亚洲天天做日日做天天谢日日欢| 欧美一级日韩一级| 色综合久久66| 国产成a人亚洲精| 日韩精品欧美精品| 亚洲色图在线播放| 久久久久久夜精品精品免费| 7777精品伊人久久久大香线蕉| 99久久夜色精品国产网站| 精品亚洲成av人在线观看| 亚洲高清不卡在线|