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

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

?? function.lst

?? 51單片機(jī)C語(yǔ)言常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講
?? LST
字號(hào):
C51 COMPILER V7.06   FUNCTION                                                              10/29/2006 14:34:14 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE FUNCTION
OBJECT MODULE PLACED IN function.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE function.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          void delay_macnine_ncircle(unsigned char cnt){//11+6*cnt machin circle. /*延時(shí)ns*/
   8   1              while(cnt--);
   9   1      }
  10          void delay_10us(unsigned char tus){//fosc=18.432 /*延時(shí)10us的整數(shù)倍,其中tus為10us的整數(shù)倍*/
  11   1              tus--;
  12   1              while(tus--){
  13   2                      _nop_();_nop_();_nop_();
  14   2                      _nop_();_nop_();_nop_();
  15   2                      _nop_();_nop_();_nop_();
  16   2              }
  17   1      }
  18          /*i2c max rate: 100k, so delay is needed*/
  19          /*定義宏,把I2C的函數(shù)進(jìn)行抽象*/
  20          #define DELAY   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop
             -_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
  21                  #define I2CDATA                 SDA     /*for read data from bit port*/
  22                  #define I2CSETDATA              SDA=1   /*sda=1 macro*/
  23                  #define I2CCLRDATA              SDA=0   /*sda=0 macro*/
  24                  #define I2CSETCLK               SCL=1   /*scl=1 macro*/
  25                  #define I2CCLRCLK               SCL=0   /*scl=0 macro*/
  26          
  27                  #define i2c_start               AT24C64_start
  28                  #define i2c_stop                AT24C64_stop
  29                  #define i2c_write_byte  AT24C64_write_byte
  30                  #define i2c_read_byte   AT24C64_read_byte 
  31                  #define i2c_wait_ack    AT24C64_wait_ack 
  32                  #define i2c_send_ack    AT24C64_send_ack 
  33                  #define i2c_send_notack AT24C64_send_notack
  34          void    i2c_start(){/*I2C的開(kāi)始函數(shù)*/
  35   1              I2CSETDATA;
  36   1              I2CSETCLK;
  37   1              DELAY;
  38   1              I2CCLRDATA;
  39   1              DELAY;
  40   1              I2CCLRCLK;
  41   1      }
  42          void    i2c_stop(){/*I2C的停止函數(shù)*/
  43   1              I2CCLRCLK;
  44   1              I2CCLRDATA;
  45   1              DELAY;
  46   1              I2CSETCLK;
  47   1              DELAY;
  48   1              I2CSETDATA;
  49   1      }
  50          void    i2c_write_byte(unsigned char  ch)/*I2C的寫一個(gè)字節(jié)*/
  51          {
  52   1              unsigned char   i=8;
  53   1              while(i--){
  54   2                      I2CCLRCLK;_nop_();
C51 COMPILER V7.06   FUNCTION                                                              10/29/2006 14:34:14 PAGE 2   

  55   2                      if(ch&0x80)
  56   2                              I2CSETDATA;
  57   2                      else
  58   2                              I2CCLRDATA;
  59   2                      ch<<=1;DELAY;
  60   2                      I2CSETCLK;DELAY;
  61   2              }
  62   1              I2CCLRCLK;
  63   1      }
  64          
  65          unsigned char i2c_read_byte(void)/*I2C讀一個(gè)字節(jié)*/
  66          {
  67   1              unsigned char   i=8;
  68   1              unsigned char   ddata=0;
  69   1              I2CSETDATA ;
  70   1              while (i--){
  71   2                      ddata<<=1 ;
  72   2                      I2CCLRCLK;DELAY;
  73   2                      I2CSETCLK;DELAY;        
  74   2                      ddata|=I2CDATA;
  75   2              }
  76   1              I2CCLRCLK;
  77   1              return ddata;
  78   1      }
  79          bit     i2c_wait_ack(void)/*I2C等待芯片的ACK*/
  80          {
  81   1              unsigned char   errtime=255;//因故障接收方無(wú)ACK 超時(shí)值為255
  82   1              I2CSETDATA;DELAY;
  83   1              I2CSETCLK ;DELAY;
  84   1              while(I2CDATA){
  85   2                      errtime--; 
  86   2                      if (!errtime){
  87   3                              i2c_stop();
  88   3                              return 0;
  89   3                      }
  90   2              }
  91   1              I2CCLRCLK;
  92   1              return 1;
  93   1      }
  94          void    i2c_send_ack(void)/*對(duì)I2C芯片發(fā)送ACK*/
  95          {
  96   1              I2CCLRDATA; DELAY;
  97   1              I2CSETCLK; DELAY;
  98   1              I2CCLRCLK;
  99   1      }
 100          
 101          void    i2c_send_notack(void)/*對(duì)I2C芯片發(fā)送NO ACK*/
 102          {
 103   1              I2CSETDATA ; DELAY;
 104   1              I2CSETCLK ; DELAY;
 105   1              I2CCLRCLK;
 106   1      }
 107          
 108          #define DEVICEAW 0Xa0
 109          #define DEVICEAR 0Xa1
 110          /*下面是把以上的I2C操作轉(zhuǎn)換為對(duì)AT24C64的EEPROM的操作以上介紹,可以得出以下函數(shù)*/
 111          void AT24C64_wbytes(unsigned char *add,unsigned char len,unsigned char *buf){//max 32 bytes
 112   1                                              /*為對(duì)EEPROM寫多個(gè)字節(jié),由于地址回轉(zhuǎn)的問(wèn)題,最多寫32個(gè)字節(jié)*/
 113   1              unsigned char hadd,ladd;
 114   1              unsigned char i;
 115   1              hadd=add[0];
 116   1              ladd=add[1];
C51 COMPILER V7.06   FUNCTION                                                              10/29/2006 14:34:14 PAGE 3   

 117   1              AT24C64_start();
 118   1              AT24C64_write_byte(DEVICEAW);
 119   1              AT24C64_wait_ack();
 120   1              AT24C64_write_byte(hadd);
 121   1              AT24C64_wait_ack();
 122   1              AT24C64_write_byte(ladd);
 123   1              AT24C64_wait_ack();
 124   1              for(i=0;i<len;i++){
 125   2                      AT24C64_write_byte(buf[i]);
 126   2                      AT24C64_wait_ack();
 127   2              }
 128   1              AT24C64_stop(); 
 129   1              delay_10us(100);//delay 1 ms for write byte.
 130   1              delay_10us(100);
 131   1              delay_10us(100);
 132   1              delay_10us(100);
 133   1              delay_10us(100);/*延時(shí)5毫秒,因?yàn)樵趦纱螌懖僮髦g必須有5ms的延時(shí)才能進(jìn)行下一次寫*/
 134   1      }
 135          void AT24C64_rbytes(unsigned char *add,unsigned char len,unsigned char *buf){
 136   1                      /*對(duì)EEPROM進(jìn)行多個(gè)字節(jié)的讀操作,同樣由于地址回轉(zhuǎn)的問(wèn)題,最多只能讀32個(gè)字節(jié)*/
 137   1              unsigned char hadd,ladd;
 138   1              unsigned char i;
 139   1              hadd=add[0];
 140   1              ladd=add[1];
 141   1              AT24C64_start();
 142   1              AT24C64_write_byte(DEVICEAW);
 143   1              AT24C64_wait_ack();
 144   1              AT24C64_write_byte(hadd);
 145   1              AT24C64_wait_ack();
 146   1              AT24C64_write_byte(ladd);
 147   1              AT24C64_wait_ack();
 148   1              for(i=0;i<len;i++){
 149   2                      AT24C64_start();
 150   2                      AT24C64_write_byte(DEVICEAR);
 151   2                      AT24C64_wait_ack();
 152   2                      buf[i]=AT24C64_read_byte();
 153   2              }
 154   1              AT24C64_stop(); 
 155   1      }
 156          void init_eeprom(void){/*開(kāi)始時(shí),對(duì)EEPROM進(jìn)行初始化,把EEPROM的存儲(chǔ)單元都設(shè)置為0*/
 157   1              unsigned char temp;
 158   1              unsigned int add;
 159   1              temp=0;
 160   1              for(add=0;add<EEPROM_MAX_SPACE;add++){
 161   2                      AT24C64_wbytes((unsigned char *)&add,1,&temp);
 162   2              }
 163   1      
 164   1      }
 165          unsigned char  eeprom_write(unsigned int adr, unsigned int len, unsigned char *src){
 166   1              /*為寫EEPROM的進(jìn)一步封裝,這個(gè)函數(shù)的寫的字節(jié)數(shù)可以任意長(zhǎng)的*/
 167   1              unsigned int temp;
 168   1              unsigned int eeprom_grid;/*為取EEPROM一個(gè)頁(yè)面64字節(jié)的整數(shù)地址*/
 169   1              unsigned int eeprom_last;/*寫EEPROM的最后存儲(chǔ)單元的地址*/
 170   1              unsigned char i;
 171   1              eeprom_last=adr+len;    
 172   1              temp=adr/EEPROM_PAGE_LEN;
 173   1              eeprom_grid=(temp+1)*EEPROM_PAGE_LEN;
 174   1              temp=eeprom_last>eeprom_grid?eeprom_grid:eeprom_last;
 175   1              AT24C64_wbytes((unsigned char *)&adr,temp-adr,src);
 176   1              while(1){
 177   2                      if(eeprom_grid<eeprom_last){
 178   3                              adr=eeprom_grid;
C51 COMPILER V7.06   FUNCTION                                                              10/29/2006 14:34:14 PAGE 4   

 179   3                              eeprom_grid +=EEPROM_PAGE_LEN;
 180   3                              temp=eeprom_last>eeprom_grid?eeprom_grid:eeprom_last;
 181   3                              AT24C64_wbytes((unsigned char *)&adr,temp-adr,src);
 182   3                      }
 183   2                      else
 184   2                              break;//jump out the while
 185   2              }
 186   1      }
*** WARNING C173 IN LINE 186 OF FUNCTION.C: missing return-expression
*** WARNING C280 IN LINE 170 OF FUNCTION.C: 'i': unreferenced local variable
 187          
 188          unsigned char eeprom_read(unsigned int adr, unsigned int len, unsigned char *src){
 189   1              /**為對(duì)EEPROM的讀函數(shù)的進(jìn)一步封裝,可以讀任意個(gè)字節(jié)數(shù)*/
 190   1              unsigned int i=0;
 191   1              unsigned int rest;
 192   1              while(1){
 193   2                      rest=len;
 194   2                      if(rest<=EEPROM_PAGE_LEN){/*如果剩下的字節(jié)數(shù)小于EEPROM_PAGE_LEN就把剩下的字節(jié)數(shù)讀出來(lái)*/
 195   3                              AT24C64_rbytes((unsigned char *)&adr,(unsigned char)rest,src+i*EEPROM_PAGE_LEN);
 196   3                              break;
 197   3                      }
 198   2                      else{/*如果剩下的字節(jié)數(shù)大于EEPROM_PAGE_LEN就讀EEPROM_PAGE_LEN個(gè)字節(jié)*/
 199   3                              AT24C64_rbytes((unsigned char *)&adr,EEPROM_PAGE_LEN,src+i*EEPROM_PAGE_LEN);
 200   3                              rest -=EEPROM_PAGE_LEN;
 201   3                      }
 202   2                      i++;
 203   2              }
 204   1      }
*** WARNING C173 IN LINE 204 OF FUNCTION.C: missing return-expression
 205          
 206          


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


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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美女孩性生活视频| 国产成人一区在线| 亚洲小少妇裸体bbw| 午夜不卡av免费| 久久成人免费日本黄色| 91网页版在线| 日韩欧美一级二级| 亚洲免费三区一区二区| 九九精品视频在线看| av电影在线观看完整版一区二区| 欧美精品久久一区二区三区| 中文文精品字幕一区二区| 国产丝袜在线精品| 日韩国产精品久久久| 国产精品69久久久久水密桃| 色婷婷激情综合| 久久一日本道色综合| 中文字幕字幕中文在线中不卡视频| 午夜激情一区二区三区| 色一区在线观看| 91精品国产麻豆国产自产在线 | 精品剧情v国产在线观看在线| 国产在线观看一区二区| 蜜臂av日日欢夜夜爽一区| 国产女人水真多18毛片18精品视频| 婷婷综合在线观看| 中国av一区二区三区| 精品在线观看视频| 欧美老肥妇做.爰bbww视频| 日本一区二区视频在线| 久久99九九99精品| 91精品欧美一区二区三区综合在| 亚洲你懂的在线视频| 91亚洲国产成人精品一区二区三 | 亚洲裸体在线观看| 青青青伊人色综合久久| 欧美日韩国产大片| 午夜亚洲福利老司机| 欧美体内she精高潮| 亚洲主播在线观看| 色播五月激情综合网| 亚洲欧美aⅴ...| 色婷婷综合久久久中文一区二区| 国产精品激情偷乱一区二区∴| 国产精品99久久久| 中文av一区二区| 91在线观看成人| 日韩制服丝袜av| 欧美精品九九99久久| 日韩**一区毛片| 91精品国产91久久综合桃花 | 久热成人在线视频| 日韩欧美一区电影| 日韩激情一二三区| 色综合天天综合在线视频| 欧美日韩中文国产| 日韩av中文字幕一区二区三区| 欧美美女喷水视频| 裸体歌舞表演一区二区| 精品电影一区二区三区| 成人做爰69片免费看网站| 综合电影一区二区三区 | 狠狠色综合日日| 中文字幕av一区二区三区免费看| av成人老司机| 午夜精品一区二区三区免费视频| 91精品久久久久久久99蜜桃 | 不卡的av网站| 亚洲综合精品自拍| 欧美变态凌虐bdsm| 成人一区二区三区视频| 亚洲一区视频在线观看视频| 91精品国产综合久久久久久 | 日本伦理一区二区| 麻豆久久久久久| 一区在线观看视频| 91精品国产一区二区人妖| 国产成人综合网站| 亚洲va韩国va欧美va精品 | 亚洲国产精品自拍| 99久久综合精品| 一区二区三区在线看| 欧美日韩黄色影视| 国产成人免费网站| 亚洲综合视频网| 久久麻豆一区二区| 欧美日韩日日夜夜| 99精品在线免费| 国产一区二区精品久久99| 亚洲狠狠爱一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 欧美视频中文字幕| 国产成人精品aa毛片| 亚洲电影第三页| 国产精品国产自产拍在线| 欧美成人a视频| 欧美日韩一二三| jlzzjlzz欧美大全| 激情都市一区二区| 天堂精品中文字幕在线| 综合激情网...| 国产精品免费aⅴ片在线观看| 日韩午夜激情免费电影| 欧美性感一类影片在线播放| 不卡一区在线观看| 国产精品99久久久久久久vr| 毛片一区二区三区| 免费在线一区观看| 亚洲大片精品永久免费| 成人欧美一区二区三区白人 | 国产成人在线色| 伦理电影国产精品| 午夜电影网一区| 亚洲18女电影在线观看| 亚洲精品va在线观看| 成人免费一区二区三区视频 | 亚洲午夜电影在线| 成人欧美一区二区三区黑人麻豆| 国产欧美综合在线观看第十页| 欧美不卡视频一区| 欧美va亚洲va香蕉在线| 99热在这里有精品免费| www.欧美.com| 色又黄又爽网站www久久| 91欧美激情一区二区三区成人| 99久久综合色| 欧美伊人久久久久久久久影院| 99亚偷拍自图区亚洲| 不卡一区二区三区四区| 色菇凉天天综合网| 91成人网在线| 欧美日韩国产一级| 日韩亚洲欧美综合| 国产亚洲成aⅴ人片在线观看| 久久精品免费在线观看| 国产精品久久久久影院色老大| 国产欧美1区2区3区| 国产精品护士白丝一区av| 亚洲欧洲精品一区二区精品久久久| 中文字幕在线不卡视频| 一区二区三区毛片| 日本不卡免费在线视频| 激情久久久久久久久久久久久久久久| 国产一区不卡精品| 色丁香久综合在线久综合在线观看| 欧美丝袜第三区| 日韩久久精品一区| 国产精品乱人伦一区二区| 一区二区在线观看av| 日产欧产美韩系列久久99| 国产一区福利在线| 91免费看片在线观看| 欧美日韩精品专区| 中文字幕电影一区| 亚洲一级在线观看| 国产自产高清不卡| 色94色欧美sute亚洲13| 日韩一级在线观看| 亚洲精品成人悠悠色影视| 日韩精品电影在线观看| 懂色av一区二区在线播放| 欧美日本一道本在线视频| 久久久99精品免费观看| 亚洲一区免费观看| 成人性生交大片免费看在线播放| 欧美三级三级三级爽爽爽| 精品国产乱码久久久久久免费| 亚洲日本在线a| 色婷婷久久一区二区三区麻豆| 精品久久久三级丝袜| 亚洲激情男女视频| 日本在线不卡视频| 不卡欧美aaaaa| 久久天堂av综合合色蜜桃网| 性久久久久久久久| 97se亚洲国产综合自在线观| 久久综合色一综合色88| 午夜伊人狠狠久久| 色婷婷综合久久久久中文| 国产亚洲精品福利| 精东粉嫩av免费一区二区三区| 欧美唯美清纯偷拍| 亚洲人成在线播放网站岛国| 国产乱人伦精品一区二区在线观看| 欧美久久久一区| 亚洲一区二区三区四区在线免费观看 | 97精品电影院| 国产欧美视频一区二区三区| 久久国产麻豆精品| 91精品国产色综合久久不卡蜜臀 | 日韩1区2区3区| 欧美中文字幕亚洲一区二区va在线 | 欧美精品丝袜久久久中文字幕| 国产精品美女久久久久久| 韩国毛片一区二区三区| 欧美老年两性高潮| 亚洲成人在线观看视频| 99r精品视频| 国产丝袜在线精品| 久久精品免费观看|