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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

RX8080時鐘芯片驅動程序

[復制鏈接]
跳轉到指定樓層
樓主
RX8010時鐘驅動程序


單片機源程序如下:

  1. /*
  2. ****************************************************************************
  3.     FILE        : RX8010.c
  4.     PURPOSE     : the driver of RTC chip "RX-8010SJ"
  5.     AUTHOR      : Gtw
  6.     LOG         : 2014-11-28 , create it

  7. ****************************************************************************
  8. */

  9. #define _RX8010_C_

  10. #include ".\main\Header.h"

  11. #if ( RTC_SEL==RTC_RX8010 ) || ( NVMEM_SEL==NVMEM_RX8010 )

  12. #if ( RTC_SEL==RTC_RX8010 )
  13. TIME_t Time;
  14. #endif
  15. #if ( NVMEM_SEL==NVMEM_RX8010 )
  16. NVMEM_t NvMem;
  17. #endif

  18. // 延時
  19. #define DLY_TYPE_CNT        1
  20. #define DLY_TYPE_ASM        2

  21. #define DLY_TYPE            DLY_TYPE_ASM

  22. #if ( DLY_TYPE == DLY_TYPE_ASM )
  23.     #define delay()         { nop(); }
  24.     /*
  25.     static void delay(void){
  26.         asm("nop");
  27.     }
  28.     */
  29. #else
  30.     static void dly(uint08 cnt){
  31.         while( cnt-- );
  32.     }
  33.     #define delay()         { dly(1); }
  34. #endif

  35. /*
  36. **************************************************
  37.     函數名  :RX8010_START
  38.     目的    :對RX8010產生一個START信號
  39.     傳遞參數:無
  40.     返回    :IIC總線是否正常,正常返回true,異常返回false

  41.     注意,此子程序不支持多主機
  42. **************************************************
  43. */
  44. bool RX8010_START(void){
  45.     bool success = true;

  46.     IoDir(RX8010_SCL,GPIO_OUT);
  47.     IoWr(RX8010_SCL,GPIO_LO);
  48.     delay();

  49.     IoDir(RX8010_SDA,GPIO_IN);
  50.     delay();
  51.     if ( !IoRd(RX8010_SDA) ) success = false;   // SDA對地線短路

  52.     IoDir(RX8010_SCL,GPIO_IN);
  53.     delay();
  54.     if ( !IoRd(RX8010_SCL) ) success = false;   // SCL對地線短路

  55.     IoDir(RX8010_SDA,GPIO_OUT);
  56.     IoWr(RX8010_SDA,GPIO_LO);
  57.     delay();

  58.     IoDir(RX8010_SCL,GPIO_OUT);
  59.     IoWr(RX8010_SCL,GPIO_LO);
  60.     //delay();

  61.     return success;

  62. }

  63. /*
  64. **************************************************
  65.     函數名  :RX8010_STOP
  66.     目的    :對RX8010產生一個STOP信號
  67.     傳遞參數:無
  68.     返回    :無

  69.     注意,此子程序不支持多主機
  70. **************************************************
  71. */
  72. void RX8010_STOP(void){

  73.     IoDir(RX8010_SCL,GPIO_OUT);
  74.     IoWr(RX8010_SCL,GPIO_LO);
  75.     delay();

  76.     IoDir(RX8010_SDA,GPIO_OUT);
  77.     IoWr(RX8010_SDA,GPIO_LO);
  78.     delay();

  79.     IoDir(RX8010_SCL,GPIO_IN);
  80.     delay();

  81.     IoDir(RX8010_SDA,GPIO_IN);
  82.     delay();

  83.     IoDir(RX8010_SCL,GPIO_OUT);
  84.     IoWr(RX8010_SCL,GPIO_LO);
  85.     //delay();

  86. }

  87. /*
  88. **************************************************
  89.     函數名  :RX8010_SEND_BIT
  90.     目的    :向RX8010發送一個位
  91.     傳遞參數:bit,位的值
  92.     返回    :無

  93.     注意,如果以傳輸數據為目的,則調用此程序前應保證已經產生了START信號
  94. **************************************************
  95. */
  96. void RX8010_SEND_BIT(bool bit){

  97.     IoDir(RX8010_SCL,GPIO_OUT);
  98.     IoWr(RX8010_SCL,GPIO_LO);
  99.     delay();

  100.     if ( bit ){
  101.         IoDir(RX8010_SDA,GPIO_IN);
  102.     }else{
  103.         IoDir(RX8010_SDA,GPIO_OUT);
  104.         IoWr(RX8010_SDA,GPIO_LO);
  105.     }
  106.     delay();

  107.     IoDir(RX8010_SCL,GPIO_IN);
  108.     //delay();    // 函數最后的delay()在時鐘較慢的情況下可省略

  109. }

  110. /*
  111. **************************************************
  112.     函數名  :RX8010_GET_BIT
  113.     目的    :從RX8010讀出一個位
  114.     傳遞參數:無
  115.     返回    :讀取到的位

  116.     注意,調用此程序前應保證已經產生了START信號
  117. **************************************************
  118. */
  119. bool RX8010_GET_BIT(void){

  120.     IoDir(RX8010_SCL,GPIO_OUT);
  121.     IoWr(RX8010_SCL,GPIO_LO);
  122.     delay();

  123.     IoDir(RX8010_SDA,GPIO_IN);
  124.     delay();

  125.     IoDir(RX8010_SCL,GPIO_IN);
  126.     delay();

  127.     return IoRd(RX8010_SDA);

  128. }

  129. /*
  130. **************************************************
  131.     函數名  :RX8010_SEND_BYTE
  132.     目的    :向RX8010發出一個字節
  133.     傳遞參數:字節的值
  134.     返回    :無

  135.     注意,調用此程序前應保證已經產生了START信號
  136.          msb first!
  137. **************************************************
  138. */
  139. void RX8010_SEND_BYTE(uint08 data){
  140.     uint08 tmp;

  141.     for(tmp=8;tmp>0;tmp--){
  142.         

  143. ……………………

  144. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
RX8010.zip (4.56 KB, 下載次數: 13)






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

使用道具 舉報

沙發
ID:399111 發表于 2020-6-13 14:56 | 只看該作者
謝謝,我用下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美网站 | 欧美性高潮 | 中文字幕乱码亚洲精品一区 | 国产在线精品一区二区 | 亚洲精品一二三区 | 日韩中文字幕免费 | 狠狠操狠狠操 | 操操日 | 97精品超碰一区二区三区 | 日韩高清电影 | 国产亚洲精品a | 久久国产欧美日韩精品 | 一区精品国产欧美在线 | 99久久婷婷国产综合精品电影 | 69热视频在线观看 | 国产午夜精品一区二区三区 | 日韩av在线不卡 | 情侣酒店偷拍一区二区在线播放 | 国产91九色| 精品久久精品 | 国产一区欧美 | 给我免费的视频在线观看 | 天堂在线中文字幕 | 欧美精品日韩精品 | 久久精品日| 天天操夜夜看 | av入口| 国产精品毛片av | 国产精品一区二区三区久久久 | 日本精品国产 | 在线观看的av| 特黄视频 | 国产综合久久久久久鬼色 | 精品国产乱码久久久久久图片 | 亚洲国产精品久久久 | 九九热这里 | 一级免费a | 成人亚洲性情网站www在线观看 | 久久久久久免费免费 | 国产传媒毛片精品视频第一次 | 国产一区二区三区免费 |