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

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

?? rtc.lst

?? 51單片機C語言常用模塊與綜合系統設計實例精講
?? LST
字號:
C51 COMPILER V7.06   RTC                                                                   10/13/2006 09:21:10 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE RTC
OBJECT MODULE PLACED IN rtc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE rtc.c LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <./Atmel/at89x52.h>
   2          #include <stdio.h>
   3          #include "source.h"
   4          #include <intrins.h>
   5          #include  <absacc.h>
   6          //_nop_();0.65us fosc=18.432
   7          /*i2c max rate: 100k, so delay is needed*/
   8          #define DELAY   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop
             -_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
   9          #define I2CDATA                   SDA   /*為I2C的數據口*/
  10          #define I2CSETDATA              SDA=1   /*設置SDA為1*/
  11          #define I2CCLRDATA              SDA=0   /*設置SDA為0*/
  12          #define I2CSETCLK                 SCL=1 /*設置SCL為1*/
  13          #define I2CCLRCLK                 SCL=0 /*設置SCL為0*/
  14          void    i2c_start(){//為I2C的開始時序列
  15   1              I2CSETDATA;
  16   1              I2CSETCLK;
  17   1              DELAY;
  18   1              I2CCLRDATA;
  19   1              DELAY;
  20   1              I2CCLRCLK;
  21   1      }
  22          void    i2c_stop(){//為I2C的停止時序
  23   1              I2CCLRCLK;
  24   1              I2CCLRDATA;
  25   1              DELAY;
  26   1              I2CSETCLK;
  27   1              DELAY;
  28   1              I2CSETDATA;
  29   1      }
  30          void    i2c_write_byte(unsigned char  ch)//為I2C的寫一個字節的時序
  31          {
  32   1              unsigned char   i=8;
  33   1              while(i--){
  34   2                      I2CCLRCLK;_nop_();
  35   2                      if(ch&0x80)
  36   2                              I2CSETDATA;
  37   2                      else
  38   2                              I2CCLRDATA;
  39   2                      ch<<=1;DELAY;
  40   2                      I2CSETCLK;DELAY;
  41   2              }
  42   1              I2CCLRCLK;
  43   1      }
  44          
  45          unsigned char i2c_read_byte(void)//為I2C的讀一個字節的時序
  46          {
  47   1              unsigned char   i=8;
  48   1              unsigned char   ddata=0;
  49   1              I2CSETDATA ;
  50   1              while (i--){
  51   2                      ddata<<=1 ;
  52   2                      I2CCLRCLK;DELAY;
  53   2                      I2CSETCLK;DELAY;        
  54   2                      ddata|=I2CDATA;
C51 COMPILER V7.06   RTC                                                                   10/13/2006 09:21:10 PAGE 2   

  55   2              }
  56   1              I2CCLRCLK;
  57   1              return ddata;
  58   1      }
  59          bit     i2c_wait_ack(void)//為I2C的等待應答時序
  60          {
  61   1              unsigned char   errtime=255;//因故障接收方無ACK 超時值為255
  62   1              I2CSETDATA;DELAY;
  63   1              I2CSETCLK ;DELAY;
  64   1              while(I2CDATA){
  65   2                      errtime--; 
  66   2                      if (!errtime){
  67   3                              i2c_stop();
  68   3                              return 0;
  69   3                      }
  70   2              }
  71   1              I2CCLRCLK;
  72   1              return 1;
  73   1      }
  74          void    i2c_send_ack(void)//為I2C的發送應答時序
  75          {
  76   1              I2CCLRDATA; DELAY;
  77   1              I2CSETCLK; DELAY;
  78   1              I2CCLRCLK;
  79   1      }
  80          
  81          void    i2c_send_notack(void)//為I2C的發送無應答的時序列
  82          {
  83   1              I2CSETDATA ; DELAY;
  84   1              I2CSETCLK ; DELAY;
  85   1              I2CCLRCLK;
  86   1      }
  87          #define RTCWTIME 0X64
  88          #define RTCRTIME 0X65
  89          #define RTCRHOUR 0X67
  90          #define RTCWSTAT 0X62
  91          #define RTCWINT1 0X68
  92          #define RTCWINT2 0X6A
  93          unsigned char MSBTOLSM(unsigned char ch){//把MSB形式的字節轉化為LSM的形式
  94   1              unsigned char tmp=0;
  95   1              unsigned char cvt;
  96   1              unsigned char i;
  97   1              cvt=ch;
  98   1              for(i=0;i<8;i++){
  99   2                      tmp>>=1;
 100   2                      if(cvt&0x80){
 101   3                              tmp |=0x80;
 102   3                      }
 103   2                      else{
 104   3                      }
 105   2                      cvt<<=1;
 106   2              }
 107   1              return tmp;
 108   1      }
 109          unsigned char SD2000_set_time(struct RTC_TIME *p){//為SDA200設置時間的函數
 110   1              unsigned char ch;
 111   1              EA=0;
 112   1              i2c_start();
 113   1              i2c_write_byte(RTCWTIME);
 114   1              ch=MSBTOLSM(p->year);
 115   1              if(i2c_wait_ack()){
 116   2                      i2c_write_byte(ch);
C51 COMPILER V7.06   RTC                                                                   10/13/2006 09:21:10 PAGE 3   

 117   2                      ch=MSBTOLSM(p->month);
 118   2                      i2c_wait_ack();
 119   2                      i2c_write_byte(ch);
 120   2                      ch=MSBTOLSM(p->dayom);
 121   2                      i2c_wait_ack();
 122   2                      i2c_write_byte(ch);
 123   2                      ch=MSBTOLSM(p->week);
 124   2                      i2c_wait_ack();
 125   2                      i2c_write_byte(ch);
 126   2                      ch=MSBTOLSM(p->hour);
 127   2                      i2c_wait_ack();
 128   2                      i2c_write_byte(ch);
 129   2                      ch=MSBTOLSM(p->minute);
 130   2                      i2c_wait_ack();
 131   2                      i2c_write_byte(ch);
 132   2                      ch=MSBTOLSM(p->second);
 133   2                      i2c_wait_ack();
 134   2                      i2c_write_byte(ch);
 135   2                      i2c_wait_ack();
 136   2                      i2c_stop();             
 137   2              }
 138   1              else{
 139   2                      // RTC write ack error.
 140   2              }
 141   1              EA=1;
 142   1              return 1;
 143   1      }
 144          unsigned char  SD2000_read_time(struct RTC_TIME *p){//為SDA2000讀時間(年月日時分秒)的函數
 145   1              unsigned char ch;
 146   1              EA=0;
 147   1              i2c_start();
 148   1              i2c_write_byte(RTCRTIME);
 149   1              if(!i2c_wait_ack()){
 150   2                      EA=1;
 151   2                      return 0;//no ack.
 152   2              }
 153   1              ch=i2c_read_byte();
 154   1              i2c_send_ack();
 155   1              p->year=MSBTOLSM(ch);
 156   1              ch=i2c_read_byte();
 157   1              i2c_send_ack();
 158   1              p->month=MSBTOLSM(ch);
 159   1              ch=i2c_read_byte();
 160   1              i2c_send_ack();
 161   1              p->dayom=MSBTOLSM(ch);
 162   1              ch=i2c_read_byte();
 163   1              i2c_send_ack();
 164   1              p->week=MSBTOLSM(ch);
 165   1              ch=i2c_read_byte();
 166   1              i2c_send_ack();
 167   1              p->hour=MSBTOLSM(ch);
 168   1              p->hour &=0x3f;//24 hour AM/PM bit ivalid.
 169   1              ch=i2c_read_byte();
 170   1              i2c_send_ack();
 171   1              p->minute=MSBTOLSM(ch);
 172   1              ch=i2c_read_byte();
 173   1              i2c_send_notack();
 174   1              p->second=MSBTOLSM(ch);
 175   1              i2c_stop();
 176   1              EA=1;
 177   1      }
 178          void SD2000_read_hour(struct RTC_TIME *p){//為SDA2000讀時間(時分秒)的函數
C51 COMPILER V7.06   RTC                                                                   10/13/2006 09:21:10 PAGE 4   

 179   1              unsigned char ch;
 180   1              i2c_start();
 181   1              i2c_write_byte(RTCRHOUR);
 182   1              if(i2c_wait_ack()){
 183   2                      // I2c read ack ok.
 184   2              }
 185   1              else{
 186   2                      //I2c read ack error.
 187   2                      return;
 188   2              }
 189   1              ch=i2c_read_byte();
 190   1              i2c_send_ack();
 191   1              ch=MSBTOLSM(ch);
 192   1              ch &=0x3f;//24 hour AM/PM bit invalid.
 193   1              ch=i2c_read_byte();
 194   1              i2c_send_ack();
 195   1              ch=MSBTOLSM(ch);
 196   1              ch=i2c_read_byte();
 197   1              i2c_send_notack();
 198   1              ch=MSBTOLSM(ch);
 199   1              i2c_stop();
 200   1      }
*** WARNING C280 IN LINE 178 OF RTC.C: 'p': unreferenced local variable
 201          void SD2000_set_status(unsigned char ch){//為SDA200的設置狀態函數
 202   1              EA=0;
 203   1              i2c_start();
 204   1              i2c_write_byte(RTCWSTAT);
 205   1              if(i2c_wait_ack()){
 206   2                      //I2c set status ack ok.
 207   2              }
 208   1              else{
 209   2                      //I2c set status ack  error.
 210   2                      EA=1;
 211   2                      return;
 212   2              }
 213   1              ch |=0x40;//interrupt 1 output vaild.
 214   1              i2c_write_byte(ch);//24hour 1Hz interrupt.
 215   1              i2c_wait_ack();
 216   1              i2c_stop();
 217   1              for(ch=0;ch<250;ch++){
 218   2                      ;//delay;
 219   2              }
 220   1              i2c_start();
 221   1              i2c_write_byte(RTCWINT1);
 222   1              if(i2c_wait_ack()){
 223   2                      //I2c set Freq ack ok.
 224   2              }
 225   1              else{
 226   2                      // I2c set Freq ack  error.
 227   2                      EA=1;
 228   2                      return;
 229   2              }
 230   1              i2c_write_byte(0);//f7~f0=0;
 231   1              i2c_wait_ack();
 232   1              i2c_write_byte(1);//f15=1,f14~f8=0;
 233   1              i2c_wait_ack();
 234   1              i2c_stop();
 235   1              EA=1;
 236   1      }
 237          
 238          void SD2000_set_freq(unsigned char ch1,unsigned char ch2, unsigned char ch3){//為SDA200設置中斷頻率的函數
 239   1          unsigned char ch;
C51 COMPILER V7.06   RTC                                                                   10/13/2006 09:21:10 PAGE 5   

 240   1              EA=0;
 241   1              i2c_start();
 242   1              i2c_write_byte(RTCWSTAT);
 243   1              if(i2c_wait_ack()){
 244   2                      //I2c set status ack ok.
 245   2              }
 246   1              else{
 247   2                      //I2c set status ack  error.
 248   2                      EA=1;
 249   2                      return;
 250   2              }
 251   1              ch=MSBTOLSM(ch1);
 252   1              i2c_write_byte(ch);//24hour 1Hz interrupt.
 253   1              i2c_wait_ack();
 254   1              i2c_stop();
 255   1              for(ch=0;ch<250;ch++){
 256   2                      ;//delay;
 257   2              }
 258   1              i2c_start();
 259   1              i2c_write_byte(RTCWINT1);
 260   1              if(i2c_wait_ack()){
 261   2                      //I2c set Freq ack ok.
 262   2              }
 263   1              else{
 264   2                  // I2c set Freq ack  error.
 265   2                      EA=1;
 266   2                      return;
 267   2              }
 268   1              ch=MSBTOLSM(ch2);
 269   1              // f0~f7=%bx",ch
 270   1              i2c_write_byte(ch);//f7~f0=0;
 271   1              i2c_wait_ack();
 272   1              ch=MSBTOLSM(ch3);
 273   1              // f8~f15=%bx",ch
 274   1              i2c_write_byte(ch);//f15=1,f14~f8=0;
 275   1              i2c_wait_ack();
 276   1              i2c_stop();
 277   1              EA=1;
 278   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    912    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       6
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久97超碰色| 6080亚洲精品一区二区| 欧美日韩色综合| 精品少妇一区二区三区免费观看 | 色呦呦国产精品| 在线播放日韩导航| 亚洲图片你懂的| 国产一本一道久久香蕉| 911精品国产一区二区在线| 国产精品天干天干在观线| 日韩国产一二三区| 色综合久久中文综合久久97| 日本一区二区三区电影| 蜜桃视频第一区免费观看| 91激情在线视频| 中文字幕一区免费在线观看| 免费视频最近日韩| 欧美日韩成人一区| 亚洲综合成人网| 91亚洲精华国产精华精华液| 日本一区二区三区在线观看| 美腿丝袜亚洲一区| 欧美精品自拍偷拍| 亚洲v日本v欧美v久久精品| 99久久er热在这里只有精品15| 久久久91精品国产一区二区精品| 日本va欧美va精品| 日韩一区二区免费电影| 视频在线观看国产精品| 在线播放中文字幕一区| 日韩黄色免费电影| 日韩一区二区在线观看视频| 日韩成人一区二区三区在线观看| 欧美性淫爽ww久久久久无| 一区二区三区成人| 在线看国产一区二区| 亚洲国产aⅴ成人精品无吗| 欧美午夜不卡视频| 午夜成人免费电影| 欧美成人a∨高清免费观看| 国内外成人在线| 欧美精品一区二区三区四区 | 亚洲国产成人av好男人在线观看| 欧美一a一片一级一片| 亚洲国产精品影院| 欧美日韩国产欧美日美国产精品| 亚洲444eee在线观看| 日韩欧美中文一区二区| 国产成人日日夜夜| 亚洲欧洲国产专区| 色av一区二区| 日韩高清在线一区| 精品粉嫩aⅴ一区二区三区四区| 国精产品一区一区三区mba视频| 中文字幕欧美三区| 国产精品麻豆视频| 色综合久久精品| 亚洲成人综合在线| 久久久亚洲高清| 99re视频这里只有精品| 亚洲超碰97人人做人人爱| 日韩三级在线免费观看| 国产传媒久久文化传媒| 亚洲欧美电影一区二区| 69av一区二区三区| 成人福利视频网站| 天天av天天翘天天综合网色鬼国产| 日韩欧美在线网站| 99久精品国产| 蜜桃视频在线观看一区| 18成人在线视频| 制服丝袜亚洲色图| 成人a级免费电影| 美女国产一区二区三区| 成人免费在线视频| 337p粉嫩大胆色噜噜噜噜亚洲| 91在线视频免费观看| 另类综合日韩欧美亚洲| 最近日韩中文字幕| 欧美精品一区二区久久久| 色菇凉天天综合网| 成人av先锋影音| 麻豆精品一区二区三区| 亚洲免费av网站| 国产日韩影视精品| 日韩一级免费观看| 在线观看一区不卡| 波多野结衣一区二区三区| 老司机午夜精品| 亚洲午夜精品网| 亚洲欧美日韩国产综合| 国产亚洲va综合人人澡精品| 91精品国产高清一区二区三区| 91偷拍与自偷拍精品| 国产精品综合网| 捆绑紧缚一区二区三区视频| 一区二区三国产精华液| 亚洲国产精品传媒在线观看| 91精品福利在线一区二区三区| 色婷婷综合视频在线观看| 成人国产亚洲欧美成人综合网| 精品一区二区三区视频在线观看| 亚洲第一狼人社区| 亚洲最大的成人av| 亚洲色图第一区| 亚洲色大成网站www久久九九| 久久久久久免费毛片精品| 精品国产91乱码一区二区三区| 91精选在线观看| 欧美日韩精品一区二区天天拍小说| 色哟哟日韩精品| 色婷婷av一区二区三区gif| 91污在线观看| 色吧成人激情小说| 欧美探花视频资源| 欧美私人免费视频| 91麻豆精品国产91久久久久久| 欧美日韩视频第一区| 欧美精品乱码久久久久久按摩| 在线电影国产精品| 日韩午夜在线影院| 国产亚洲欧美在线| 韩国中文字幕2020精品| 韩国av一区二区三区在线观看| 久久精品国产秦先生| 国产综合色视频| 懂色av中文一区二区三区| aaa国产一区| 91国偷自产一区二区使用方法| 欧美中文字幕一区二区三区亚洲| 在线免费不卡视频| 日韩亚洲欧美中文三级| 精品久久久久久久久久久久久久久| 精品国产免费人成在线观看| 久久精品水蜜桃av综合天堂| 国产精品剧情在线亚洲| 亚洲一区二区av在线| 日韩一区精品视频| 国产一区二区在线观看视频| 福利一区福利二区| 欧美视频日韩视频| 精品伦理精品一区| 亚洲视频免费在线| 日韩高清不卡一区| 成人免费va视频| 欧美美女黄视频| 久久亚洲精品国产精品紫薇| 亚洲欧洲综合另类在线| 免费在线看一区| aaa欧美日韩| 欧美一级午夜免费电影| 国产精品欧美精品| 视频在线观看一区二区三区| 国产成人在线视频网站| 日本乱码高清不卡字幕| 日韩精品一区二区在线| 最新国产精品久久精品| 麻豆精品一区二区综合av| 色综合网色综合| 精品少妇一区二区三区日产乱码| 亚洲欧美欧美一区二区三区| 精品一区二区精品| 在线免费观看不卡av| 国产精品视频观看| 青娱乐精品在线视频| 在线国产亚洲欧美| 中文字幕的久久| 久久爱www久久做| 欧美日韩久久久一区| 国产精品网站导航| 开心九九激情九九欧美日韩精美视频电影 | 亚洲欧美在线视频观看| 蜜臀久久99精品久久久久宅男 | 亚洲欧洲综合另类| 懂色av中文字幕一区二区三区| 欧美高清激情brazzers| 亚洲欧美日韩国产综合| 丁香天五香天堂综合| 日韩欧美久久久| 天堂精品中文字幕在线| 97久久精品人人澡人人爽| 久久蜜桃香蕉精品一区二区三区| 亚洲二区视频在线| 在线视频亚洲一区| 亚洲视频一区二区免费在线观看| 精品一区二区三区欧美| 欧美军同video69gay| 亚洲制服丝袜av| 色综合 综合色| 18成人在线观看| av一区二区三区四区| 久久久综合视频| 蜜臀91精品一区二区三区| 欧美伊人久久久久久久久影院 | 91婷婷韩国欧美一区二区| 欧美国产精品专区| 国产风韵犹存在线视精品| xnxx国产精品| 国产一区二区91| 国产网站一区二区三区|