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

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

?? at45db.lst

?? SM858單片機完成AT45DB內部數據讀寫程序
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V7.50   AT45DB                                                                05/14/2008 18:26:14 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE AT45DB
OBJECT MODULE PLACED IN AT45DB.OBJ
COMPILER INVOKED BY: E:\keil\C51\BIN\C51.EXE AT45DB.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************************/ 
   2          /*正常操作電壓為2.7~3.6V,實驗中發現當電壓超過4.25V后讀出的狀態字節為9A(正常 */ 
   3          /*的狀態字節值為9D),并且讀寫數據均不準確,所以應當保證卡片的供電電壓不超過  */ 
   4          /*4.25V。                                                                     */ 
   5          /*SPI規范:Data is always clocked into the device on the rising edge of SCK a-*/ 
   6          /*    nd clocked out of the device on the falling edge of SCK.All instruction-*/ 
   7          /*    s,addresses and data are transferred with the most significant bit(MSB) */ 
   8          /*    first.                                                                  */ 
   9          /*                                                                  2005-06-02*/ 
  10          /******************************************************************************/ 
  11          
  12          #pragma    optimize(5)
  13          #include   <reg52.h> 
  14          #include   <string.h> 
  15          #include"charcode.h"
  16          #define    UCHAR                      unsigned char 
  17          #define    UINT                       unsigned int 
  18          
  19          sbit       SPI_CS                   = P0^1; 
  20          sbit       SPI_SCK                  = P0^3; 
  21          sbit       SPI_SO                   = P2^3; 
  22          sbit       SPI_SI                   = P0^4; 
  23          sbit       SPI_RES                  = P0^2;
  24          sbit       SPI_WP                   = P0^0;
  25          sbit       SPI_AY1                  = P2^4;
  26          sbit       SPI_AY2                  = P2^5;
  27          sbit       SPI_AY3                  = P2^6;
  28          
  29          
  30          
  31          
  32          
  33          static void delay(unsigned int s)
  34          {
  35   1              unsigned int i;
  36   1              for(i=0; i<s; i++);
  37   1              for(i=0; i<s; i++);
  38   1      }
  39          
  40          
  41          void init_serial(void) 
  42          
  43          {
  44   1                                      //定時器1的工作方式2
  45   1              TMOD=0x20;      //裝載計數初值
  46   1              TL1=0xfb;
  47   1              TH1=0xfb;       //采用串口工作方式1,無奇偶校驗
  48   1              SCON=0x50;      //串口波特率不加倍
  49   1              PCON=0x00;      //開總中斷,開串口中斷
  50   1              TCON=0x01;  //中斷設置
  51   1              IE=0x90;
  52   1                      //啟動定時器1
  53   1              TR1=1;
  54   1      }
  55          
C51 COMPILER V7.50   AT45DB                                                                05/14/2008 18:26:14 PAGE 2   

  56          
  57          void SendCh(unsigned char c)
  58          {EA=0;
  59   1       TI=0;
  60   1       SBUF=c;
  61   1       while(!TI);
  62   1       TI=0;
  63   1       EA=1;
  64   1      }
  65          
  66          
  67          unsigned char SPI_HostReadByte(void){ 
  68   1          unsigned char i,rByte=0; 
  69   1           
  70   1          for(i=0;i<8;i++){ 
  71   2              SPI_SCK=0; 
  72   2              SPI_SCK=1; 
  73   2               
  74   2              rByte<<=1; 
  75   2              rByte|=SPI_SO; 
  76   2          } 
  77   1          return rByte;     
  78   1      } 
  79          void SPI_HostWriteByte(unsigned char wByte){ 
  80   1          unsigned char i; 
  81   1           
  82   1          for(i=0;i<8;i++){ 
  83   2              if((wByte<<i)&0x80){SPI_SI=1;} 
  84   2              else{SPI_SI=0;} 
  85   2               
  86   2              SPI_SCK=0; 
  87   2              SPI_SCK=1; 
  88   2          }     
  89   1      } 
  90          /******************************************************************************/ 
  91          /*Status Register Format:                                                     */ 
  92          /*   -----------------------------------------------------------------------  */ 
  93          /*  |  bit7  |  bit6  |  bit5  |  bit4  |  bit3  |  bit2  |  bit1  |  bit0  | */ 
  94          /*  |--------|--------|--------|--------|--------|--------|--------|--------| */ 
  95          /*  |RDY/BUSY|  COMP  |   0    |   1    |   1    |   1    |   X    |   X    | */ 
  96          /*   -----------------------------------------------------------------------  */ 
  97          /*  bit7 - 忙標記,0為忙1為不忙。                                             */ 
  98          /*         當Status Register的位0移出之后,接下來的時鐘脈沖序列將使SPI器件繼續*/ 
  99          /*         將最新的狀態字節送出。                                             */ 
 100          /*  bit6 - 標記最近一次Main Memory Page和Buffer的比較結果,0相同,1不同。     */ 
 101          /*  bit5                                                                      */ 
 102          /*  bit4                                                                      */ 
 103          /*  bit3                                                                      */ 
 104          /*  bit2 - 這4位用來標記器件密度,對于AT45DB041B,這4位應該是0111,一共能標記 */ 
 105          /*         16種不同密度的器件。                                               */ 
 106          /*  bit1                                                                      */ 
 107          /*  bit0 - 這2位暫時無效                                                      */ 
 108          /******************************************************************************/ 
 109          unsigned char AT45DB041B_StatusRegisterRead(void){ 
 110   1          unsigned char i; 
 111   1                       
 112   1          SPI_CS=0;     
 113   1          SPI_HostWriteByte(0xd7); 
 114   1          i=SPI_HostReadByte(); 
 115   1          SPI_CS=1; 
 116   1           
 117   1          return i;     
C51 COMPILER V7.50   AT45DB                                                                05/14/2008 18:26:14 PAGE 3   

 118   1      } 
 119          /******************************************************************************/ 
 120          /*描述:                                                                      */ 
 121          /*    When the last bit in the main memory array has been read,the device will*/ 
 122          /*    continue reading back at the beginning of the first page of memory.As w-*/ 
 123          /*    ith crossing over page boundaries,no delays will be incurred when wrapp-*/ 
 124          /*    ing around from the end of the array to the beginning of the array.     */ 
 125          /*參數:                                                                      */ 
 126          /*    PA      - 頁地址,0~2047                                                */ 
 127          /*    BFA     - 指定BUFFER中的起始寫入地址                                    */ 
 128          /*    pHeader - 指定數據的首地址                                              */ 
 129          /*    len     - 指定數據的長度                                                */ 
 130          /******************************************************************************/ 
 131          void AT45DB041B_ContinuousArrayRead(UINT PA,UINT BFA,unsigned char *pHeader,UINT len){        
 132   1          unsigned int i;       
 133   1           
 134   1          while(i++<255){if(AT45DB041B_StatusRegisterRead()&0x80){break;}} 
 135   1          SPI_CS=0;     
 136   1          SPI_HostWriteByte(0xe8);     
 137   1          SPI_HostWriteByte((unsigned char)(PA>>7));     
 138   1          SPI_HostWriteByte((unsigned char)((PA<<1)|(BFA>>8))); 
 139   1          SPI_HostWriteByte((unsigned char)BFA); 
 140   1          for(i=0;i<4;i++){SPI_HostWriteByte(0x00);} 
 141   1           
 142   1          for(i=0;i<len;i++){pHeader[i]=SPI_HostReadByte();} 
 143   1          SPI_CS=1; 
 144   1      } 
 145          /******************************************************************************/ 
 146          /*描述:                                                                      */ 
 147          /*    將指定數據讀出從某個地址(0~263)開始的BUFFER中。                       */ 
 148          /*參數:                                                                      */ 
 149          /*    buffer  - 選擇BUFFER,01H選擇BUFFER 1,02H選擇BUFFER 2                  */ 
 150          /*              在該指令序列中,操作碼d4H選擇BUFFER 1,d6H選擇BUFFER 2        */ 
 151          /*    BFA     - BUFFER中的起始地址,0~263                                     */ 
 152          /*    pHeader - 待存數據的頭指針                                              */ 
 153          /*    len     - 待存數據的長度1~264                                           */ 
 154          /******************************************************************************/ 
 155          void AT45DB041B_BufferRead(UCHAR buffer,UINT BFA,UCHAR *pHeader,UINT len){ 
 156   1          unsigned int i; 
 157   1           
 158   1          while(i++<255){if(AT45DB041B_StatusRegisterRead()&0x80){break;}} 
 159   1          SPI_CS=0;     
 160   1          switch(buffer){ 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一二三四在线| 欧美日韩美少妇| 色视频欧美一区二区三区| 91精品免费在线| 国产精品萝li| 精品伊人久久久久7777人| 色婷婷av久久久久久久| 久久久精品中文字幕麻豆发布| 亚洲一区二区av在线| 国产成人精品免费一区二区| 欧美精品乱人伦久久久久久| 亚洲色图视频网| 国产不卡免费视频| 精品99久久久久久| 男女性色大片免费观看一区二区 | 中日韩免费视频中文字幕| 日日摸夜夜添夜夜添国产精品| 成人美女在线视频| 国产色婷婷亚洲99精品小说| 欧美a一区二区| 欧美一区二区在线免费播放| 一区2区3区在线看| 日本高清不卡视频| 日韩美女视频一区二区 | 91精品国产麻豆国产自产在线 | 日本中文一区二区三区| 在线免费观看日本欧美| 亚洲色图第一区| 99久久精品99国产精品| 国产人成一区二区三区影院| 国产伦精品一区二区三区在线观看| 欧美日韩视频在线第一区| 亚洲免费观看高清| 色欧美88888久久久久久影院| 国产精品嫩草影院com| 国产**成人网毛片九色| 国产精品久线观看视频| 国产成人精品aa毛片| 国产精品污网站| 不卡一区二区在线| 18成人在线观看| 972aa.com艺术欧美| 亚洲精品国产视频| 欧美探花视频资源| 热久久国产精品| 2024国产精品| 成人免费高清视频| 亚洲欧美日韩精品久久久久| 色天天综合色天天久久| 亚洲gay无套男同| 日韩精品一区国产麻豆| 韩国三级在线一区| 一区在线中文字幕| 欧美亚洲国产一卡| 麻豆91在线观看| 国产精品拍天天在线| 色拍拍在线精品视频8848| 午夜亚洲福利老司机| 精品91自产拍在线观看一区| 国产99精品国产| 亚洲一区二区三区中文字幕| 91精品久久久久久久久99蜜臂| 精品午夜久久福利影院| 国产精品视频yy9299一区| 在线视频你懂得一区| 日韩av中文字幕一区二区三区 | 欧美日本国产视频| 久久机这里只有精品| 中文成人综合网| 欧美唯美清纯偷拍| 激情偷乱视频一区二区三区| 亚洲同性gay激情无套| 欧美一区二区免费观在线| 国产精品一二一区| 亚洲国产aⅴ成人精品无吗| 精品国产乱码久久久久久图片 | 亚洲色图清纯唯美| 欧美www视频| 在线观看一区二区视频| 国产成人亚洲综合a∨婷婷图片| 亚洲乱码国产乱码精品精小说 | 亚洲人亚洲人成电影网站色| 91精品国产品国语在线不卡| www.性欧美| 国内精品视频一区二区三区八戒| 亚洲免费在线播放| 中文字幕欧美激情一区| 欧美一区二区三区四区五区 | 欧美一三区三区四区免费在线看| 成人网在线播放| 久久国产精品无码网站| 亚洲一区在线播放| 中文字幕一区二区视频| 久久综合网色—综合色88| 欧美日本在线一区| 一本大道综合伊人精品热热| 国产乱码一区二区三区| 美女视频一区在线观看| 亚洲第一在线综合网站| 亚洲视频香蕉人妖| 欧美国产精品一区二区三区| 欧美成人a视频| 日韩一区二区在线观看视频播放| 欧美私人免费视频| 欧美无乱码久久久免费午夜一区| 99久久亚洲一区二区三区青草| 国产99久久久精品| 国产成人亚洲综合a∨婷婷 | 亚洲一区二区三区中文字幕 | 99精品视频在线观看免费| 久久成人免费日本黄色| 免费在线观看视频一区| 亚洲午夜久久久久久久久电影网| 1000部国产精品成人观看| 欧美国产成人精品| 国产午夜精品久久久久久久 | 亚洲精品精品亚洲| 亚洲色图制服丝袜| 亚洲欧美日韩国产综合在线 | 色综合久久99| 色综合久久综合网97色综合 | 一区二区三区免费| 夜夜夜精品看看| 亚洲狠狠丁香婷婷综合久久久| 成人欧美一区二区三区小说| 综合久久给合久久狠狠狠97色 | 日韩中文字幕av电影| 丝袜亚洲另类丝袜在线| 日本不卡视频在线| 极品美女销魂一区二区三区| 韩国精品主播一区二区在线观看| 国产乱国产乱300精品| 国产99久久久精品| 色老汉av一区二区三区| 欧美天堂亚洲电影院在线播放| 欧美精品在欧美一区二区少妇| 制服丝袜亚洲播放| 2019国产精品| 亚洲免费色视频| 视频一区欧美日韩| 国产盗摄精品一区二区三区在线| 国产寡妇亲子伦一区二区| jizzjizzjizz欧美| 欧美日韩一区二区在线观看| 制服丝袜成人动漫| 久久亚洲精精品中文字幕早川悠里| 国产亚洲成年网址在线观看| 亚洲免费av网站| 麻豆高清免费国产一区| 成人在线综合网| 欧美日韩极品在线观看一区| xf在线a精品一区二区视频网站| 国产精品美日韩| 日韩中文欧美在线| 99综合电影在线视频| 538在线一区二区精品国产| 国产午夜亚洲精品午夜鲁丝片 | 国产精品蜜臀av| 日韩综合一区二区| 99视频国产精品| 日韩欧美专区在线| 一区二区三区91| 国产精品一品视频| 欧美日韩成人综合天天影院| 国产亚洲精品aa午夜观看| 亚洲高清久久久| 国产1区2区3区精品美女| 欧美理论在线播放| 亚洲欧美激情一区二区| 久久精品国产精品青草| 欧美亚洲禁片免费| 国产精品欧美久久久久一区二区| 免费在线观看精品| 欧美色倩网站大全免费| 中文字幕在线不卡一区| 久久国产欧美日韩精品| 欧美色区777第一页| 综合久久久久综合| 国产99久久久国产精品免费看 | 欧美日韩亚洲综合在线 | 99视频在线精品| 久久午夜老司机| 久久99深爱久久99精品| 精品日韩一区二区三区免费视频| 日韩理论片网站| 成人aa视频在线观看| 久久久久久久久久久久电影 | 亚洲第一久久影院| 在线中文字幕不卡| 综合久久久久综合| 99精品久久久久久| 亚洲欧洲日本在线| 成人av资源在线观看| 国产嫩草影院久久久久| 国产一区二区看久久| 精品国产制服丝袜高跟| 精品一区二区三区免费观看 | 男人的天堂久久精品| 欧美另类高清zo欧美| 亚洲成av人片一区二区|