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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2192|回復: 1
打印 上一主題 下一主題
收起左側

灑家寫的DS1302驅動

[復制鏈接]
跳轉到指定樓層
樓主
ID:80436 發表于 2015-5-21 23:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
sbit rst=P2^0;
sbit io=P2^1;
sbit sclk=P2^2;
//--------常數宏-----------//
#define second_write 0x80
#define minute_write 0x82
#define hour_wirte   0x84
#define day_write    0x86
#define week_write   0x8A
#define month_write         0x88
#define year_write   0x8c

#define second_read 0x81
#define minute_read 0x83
#define hour_read   0x85
#define day_read    0x87
#define week_read   0x8b
#define month_read        0x89
#define year_read   0x8d
//--------------操作宏---------//
#define sclk_high sclk=1;
#define sclk_low  sclk=0;

#define io_high io=1;
#define io_low  io=0;
#define io_read io

#define rst_high rst=1;
#define rst_low   rst=0;

//--------保存時間數據結構體--------
struct
{
  unsigned int Second;
  unsigned int Minute;
  unsigned int Hour;
  unsigned int Day;
  unsigned int Week;
  unsigned int Month;
  unsigned int Year;
}
CurrentTime;

/***************************
*Function static void ds1302write(unsigned Content)*
*unsigned content 要寫的字節
*****************************************/
static void ds1302_write(unsigned int Content)
{
unsigned int i=8;
for(;i>0;i--)
        {
         if(Content&0x01)
          {
          io_high
          }
         else
          {
           io_low
          }
          Content>>=1;
          sclk_high
          sclk_low
        }
}

/************************************/
static unsigned ds1302_read(void)
{
unsigned int i,value;
  io_high
  for(i=8;i>0;i--)
  {
   value>>=1;
   if(io_read)
    {
     value|=0x80;
    }
        else
         {
          value&=0x7f;
         }
         sclk_high
         sclk_low
  }       
  return value;
}
/***********************************
* function :unsingned 1302writebyte(unsigned int addess)
Description:從DS1302指定的地址獨處一個字節的內容
addess:數據地址
*************************************/
unsigned int 1302write_byte(unsigned int addess)
{
unsigned int readvalue;
        rst_low
        sclk_low;
        rst_high

ds1302_wirte(addess);
readvalue=1302_read();
rst_low
sclk_high
return readvalue;
}
/***********************************************
*function void clock_init(void);
*Description:初始化1302時鐘寄存器的值
*
***************************************************/
void clock_init(void)
{
  if(1302read_byte(0xc1)!=0xf0)
  {
   1302write_byte(0x8e,0x00)//允許寫操作
   1302write_byte(year_write,0x08);//年
   1302write_byte(week_write,0x04);//星期
   1302write_byte(month_write,0x12);//月
   1302write_byte(day_write,0x011);//日
   1302write_byte(hour_write,0x13);//時
   1302write_byte(minute_write,0x06);//分
   1302write_byte(second_write,0x04);//秒
   1302write_byte(0x90,0xa5);                 //充電
   1302write_byte(0xc0,0xf0);                 //判斷是否初始化
   1302write_byte(0x8e,0x80);                 //禁止寫操作
  }
}

void clock_updata(void)
{
  CurrentTime.Second=1302read_byte(second_read);
  CurrentTime.Minute=1302read_byte(minute_read);
  CurrentTime.Hour=1302read_byte(hour_read);
  CurrentTime.Day=1302read_byte(day_read);
  CurrentTime.Month=1302read_byte(month_read);
  CurrentTime.Week=1302read_byte(week_read);
  CurrentTime.Year=1302read_byte(year_read);



}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:165792 發表于 2017-3-20 22:06 | 只看該作者
謝謝分享,不過看不懂。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜精品视频 | 国产精品免费一区二区 | 亚洲永久| 91麻豆精品国产91久久久更新资源速度超快 | 久久久性色精品国产免费观看 | 久久久久国产一区二区三区四区 | 99久久精品免费看国产免费软件 | 成人二区| 欧美一级欧美三级在线观看 | 国产精品伦理一区 | 作爱视频免费观看 | 91传媒在线播放 | 久久精品国产一区二区三区不卡 | 久久在线 | 国产精品亚洲综合 | 日韩精品视频在线播放 | 粉嫩一区二区三区国产精品 | 欧美日韩国产精品一区二区 | 日韩成人免费视频 | 欧美影院 | 亚洲高清在线观看 | 精品无码久久久久国产 | 天天躁日日躁狠狠躁2018小说 | 天堂中文在线播放 | av电影一区 | 9999精品视频| 91欧美精品成人综合在线观看 | 日本成人三级电影 | 在线中文字幕av | 韩国久久精品 | 中文字幕免费视频 | 国产一区二区三区视频 | 国产午夜精品一区二区三区在线观看 | 国产精品久久久久久亚洲调教 | 欧美日韩久久 | 精品久久精品 | 欧美激情久久久 | 国产69久久精品成人看动漫 | 伊人影院99 | 国产乱码精品1区2区3区 | 中文字幕在线观看第一页 |