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

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

?? upsd_flash.lst

?? 適合初學者學習的UPSD的點陣LCD漢字顯示
?? LST
?? 第 1 頁 / 共 3 頁
字號:
C51 COMPILER V7.10   UPSD_FLASH                                                            05/22/2006 11:27:18 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE UPSD_FLASH
OBJECT MODULE PLACED IN upsd_flash.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE upsd_flash.c OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /* upsd_flash.c
   2          
   3          These functions are provided to help you develop your initial code. 
   4          They are optimized for speed rather that size. As a result, you will 
   5          see very few nested function calls. If speed is not critical, you 
   6          can use function calls for common tasks (like dat polling after 
   7          writing a byte to Flash) The penalty is the extra processor 
   8          time to make the nested calls.
   9          
  10          These files have been compiled using a C cross compiler from COSMIC 
  11          Software Inc. You may have to implement some syntax changes to be 
  12          compatible with other compilers. The intent of this generated C code 
  13          is to provide you with a core of useful broadbased functions that are 
  14          adaptable to many vendor's compilers and microcontrollers.
  15          
  16          
  17          NOTES:
  18          
  19          1.Some of the routines provided may not have been thoroughly tested.  
  20            Please check them in your system. If you find a bug, or a place 
  21            where the code could be improved, PLEASE forward your comments by 
  22            emailing to apps.psd@st.com. Any comments and feedback are 
  23            appreciated. Please tell us what you like and or what you think 
  24            can be improved.
  25          
  26          2.The Software is provided "AS IS."
  27            LIMITATION OF LIABILITY:    NEITHER WSI NOR ITS VENDORS OR AGENTS
  28            SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
  29            INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
  30            CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
  31            OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  32          
  33          You are free to use/modify any of the provided code at your own risk
  34          in your applications with the expressed limitation of liability above.
  35          */
  36          
  37          #pragma large
  38          
  39          #include "upsd3200.h"                   // special function register declarations for UPSD
  40          #include "upsd_flash.h"          // include the definition of your system memory map
  41          
  42          
  43          /* Functions
  44             Group: Main Flash Memory
  45             Coverage: Program, Erase, Reset, Read ID, Read Protection */
  46          
  47          
  48          /*  Module: flash_write_with_poll
  49              Programs a single byte, checks status using polling method.
  50              You'll need to include the header files generated by PSDsoft
  51              Express. Important: if memory paging is used, the correct 
  52              page value must be set in the PSD page register prior to 
  53              calling this function. */
  54          
  55          unsigned char flash_write_with_poll(volatile unsigned char xdata* addr, unsigned char dat)
C51 COMPILER V7.10   UPSD_FLASH                                                            05/22/2006 11:27:18 PAGE 2   

  56          {
  57   1              unsigned char done;
  58   1              unsigned char error;
  59   1              unsigned char err;
  60   1              unsigned char poll;
  61   1      
  62   1              done = FALSE;
  63   1              err = FALSE;
  64   1      
  65   1              //  Note:  the following constants (FLASH_COMMON_XXXX)
  66   1              //     are declared type volatile in the header file 
  67   1              //         so they are not optimized away by the compiler
  68   1      
  69   1              
  70   1              *(FLASH_COMMON_X555) = 0xAA;     // unlock main flash, write 0xAA to addess 0xX555
  71   1              *(FLASH_COMMON_XAAA) = 0x55;     // unlock main flash, write 0x55 to addess 0xXAAA
  72   1              *(FLASH_COMMON_X555) = 0xA0;     // write 0xA0 command to program
  73   1      
  74   1              *(addr) = dat;                  // write byte to flash   
  75   1              
  76   1              dat = dat & NVM_DATA_POLL;     // get bit DQ7 of original dat   
  77   1              
  78   1              do                               // now use dat polling method to verify successful write
  79   1          {  
  80   2      
  81   2                      poll = *(addr);          // Read the location that was just programmed
  82   2      
  83   2                      error = poll & NVM_ERROR;   // save timeout error bit at DQ5
  84   2      
  85   2                      poll = poll & NVM_DATA_POLL;  // get DQ7 of poll byte read from flash  
  86   2      
  87   2                      if (dat == poll)        // compare DQ7 
  88   2          //   if( poll == NVM_DATA_POLL )
  89   2                              done = TRUE;     // dat byte programmed into flash OK,
  90   2                                               // indicate successful exit criteria
  91   2      
  92   2                      else if (error ==  NVM_ERROR )   // check for timeout error   
  93   2                              err = TRUE;      // indicate timeout error occurred
  94   2      
  95   2          } while((done == FALSE) && (err == FALSE)); 
  96   1      
  97   1      
  98   1              if (err == TRUE)                 // make sure timeout error and dat poll didn't 
  99   1                                               // occur simultaneously
 100   1              {
 101   2                      poll = *(addr);          // Read location in flash again
 102   2      
 103   2                      poll = poll & NVM_DATA_POLL;   // get DQ7 of poll byte read from flash  
 104   2      
 105   2                      if (dat == poll)        // compare DQ7 
 106   2      
 107   2                              done = TRUE;     // dat byte programmed into flash OK at the same
 108   2                                               // time timout error occured, indicate successful 
 109   2                                              // exit criteria
 110   2      
 111   2                      *(FLASH_COMMON_X555) = 0xF0;  // reset the flash array (short reset instruction) 
 112   2                              // now delay 3 msec per dat sheet
 113   2          }
 114   1      
 115   1              return(done);         // a successful flash write returns 1, timeout error returns 0
 116   1      }
 117          /*unsigned char flash_boot_write_with_poll(volatile unsigned char xdata* addr, unsigned char dat)
C51 COMPILER V7.10   UPSD_FLASH                                                            05/22/2006 11:27:18 PAGE 3   

 118          {
 119                  unsigned char done;
 120                  unsigned char error;
 121                  unsigned char err;
 122                  unsigned char poll;
 123          
 124                  done = FALSE;
 125                  err = FALSE;
 126          
 127                  //  Note:  the following constants (FLASH_BOOT_XXXX)
 128                  //     are declared type volatile in the header file 
 129                  //         so they are not optimized away by the compiler
 130          
 131                  
 132                  *(FLASH_BOOT_X555) = 0xAA;     // unlock main flash, write 0xAA to addess 0xX555
 133                  *(FLASH_BOOT_XAAA) = 0x55;     // unlock main flash, write 0x55 to addess 0xXAAA
 134                  *(FLASH_BOOT_X555) = 0xA0;     // write 0xA0 command to program
 135          
 136                  *(addr) = dat;                  // write byte to flash   
 137                  
 138                  dat = dat & NVM_DATA_POLL;     // get bit DQ7 of original dat   
 139                  
 140                  do                               // now use dat polling method to verify successful write
 141                   {  
 142          
 143                          poll = *(addr);          // Read the location that was just programmed
 144          
 145                          error = poll & NVM_ERROR;   // save timeout error bit at DQ5
 146          
 147                          poll = poll & NVM_DATA_POLL;  // get DQ7 of poll byte read from flash  
 148          
 149                          if (dat == poll)        // compare DQ7 
 150          
 151                                  done = TRUE;     // dat byte programmed into flash OK,
 152                                                   // indicate successful exit criteria
 153          
 154                          else if (error ==  NVM_ERROR )   // check for timeout error   
 155                                  err = TRUE;      // indicate timeout error occurred
 156          
 157                    } while((done == FALSE) && (err == FALSE)); 
 158          
 159          
 160                  if (err == TRUE)                 // make sure timeout error and dat poll didn't 
 161                                                   // occur simultaneously
 162                  {
 163                          poll = *(addr);          // Read location in flash again
 164          
 165                          poll = poll & NVM_DATA_POLL;   // get DQ7 of poll byte read from flash  
 166          
 167                          if (dat == poll)        // compare DQ7 
 168          
 169                                  done = TRUE;     // dat byte programmed into flash OK at the same
 170                                                   // time timout error occured, indicate successful 
 171                                                  // exit criteria
 172          
 173                          *(FLASH_BOOT_X555) = 0xF0;  // reset the flash array (short reset instruction) 
 174                                  // now delay 3 msec per dat sheet
 175                  }
 176          
 177                  return(done);         // a successful flash write returns 1, timeout error returns 0
 178          }
 179          */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91一区一区三区| 亚洲一区影音先锋| 日韩一区日韩二区| 亚洲人成人一区二区在线观看| 国产在线播放一区二区三区| www久久久久| 成人精品小蝌蚪| 亚洲欧美日韩国产手机在线 | 色婷婷综合久久久中文一区二区| 中文字幕av一区二区三区高| 丁香天五香天堂综合| 中文字幕乱码亚洲精品一区| 色婷婷av一区二区三区之一色屋| 亚洲综合免费观看高清完整版在线| 欧美视频一区二区三区在线观看 | 久久色.com| av高清不卡在线| 一区二区三区四区国产精品| 欧美日本在线看| 韩国一区二区在线观看| 国产精品色哟哟| 欧美日韩一区二区欧美激情| 蜜臀av性久久久久蜜臀av麻豆| 久久久亚洲精品石原莉奈| 成人app软件下载大全免费| 亚洲成av人在线观看| 久久久激情视频| 91久久精品国产91性色tv| 奇米精品一区二区三区四区| 国产精品免费aⅴ片在线观看| 91国偷自产一区二区使用方法| 日本不卡在线视频| 亚洲欧美在线视频观看| 91麻豆精品国产91久久久| 国产成人精品综合在线观看| 午夜日韩在线观看| 国产日产亚洲精品系列| 欧美日韩一区二区在线观看视频| 国产一区二区三区美女| 亚洲一区二区五区| 国产日韩欧美不卡在线| 在线观看免费一区| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲手机成人高清视频| 一区二区三区不卡视频在线观看| 亚洲精品福利视频网站| 欧美日韩国产小视频在线观看| 无码av免费一区二区三区试看| 91在线看国产| 亚洲视频一二三| 欧美视频中文一区二区三区在线观看| 亚洲精品视频自拍| 国产一本一道久久香蕉| 欧美—级在线免费片| 精品一区二区免费在线观看| 久久久久综合网| 91精品蜜臀在线一区尤物| 国产福利一区二区三区视频 | 精品视频1区2区| 国产黄色成人av| 精品一区二区在线播放| 婷婷六月综合亚洲| 中文字幕一区二区三区色视频| 精品国产免费视频| 欧美一区二区三区性视频| 91在线观看一区二区| 国产传媒日韩欧美成人| 国产综合色产在线精品| 毛片不卡一区二区| 日韩精品福利网| 亚洲一区在线观看视频| 一区二区在线观看免费视频播放| 国产精品盗摄一区二区三区| 欧美国产一区视频在线观看| 欧美大胆人体bbbb| 日韩午夜在线播放| 日韩午夜小视频| 欧美成人a在线| 日韩精品资源二区在线| 日韩欧美国产综合一区| 日韩片之四级片| 亚洲欧洲制服丝袜| 一区二区三区在线视频观看| 亚洲欧美激情视频在线观看一区二区三区 | 成人免费av在线| 国产成人精品www牛牛影视| 毛片一区二区三区| 国产一区二区三区四区五区美女 | 日本午夜一区二区| 日韩影院在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 久久精品久久久精品美女| 色噜噜久久综合| 国产一区二区看久久| 成人黄色免费短视频| 97久久精品人人爽人人爽蜜臀| 国产一区二区视频在线播放| 美女视频一区在线观看| 日韩精品1区2区3区| 亚洲自拍与偷拍| 亚洲国产精品天堂| 亚洲综合色在线| 亚洲高清视频在线| 美腿丝袜一区二区三区| 欧美专区亚洲专区| 国产成人激情av| 色综合久久久久网| 日韩一级二级三级| 国产日韩欧美精品综合| 亚洲精品美腿丝袜| 丝袜亚洲另类欧美| 国产一区二区三区免费看| 91色综合久久久久婷婷| 日韩一区二区三区在线视频| 国产午夜精品美女毛片视频| 亚洲免费三区一区二区| 裸体健美xxxx欧美裸体表演| 国产成人综合自拍| 欧美伦理影视网| 久久久99免费| 天天色天天操综合| 国产91精品欧美| 91精品国产综合久久久久| 国产片一区二区| 日韩精品亚洲一区二区三区免费| 国产露脸91国语对白| 欧美揉bbbbb揉bbbbb| 久久久久久久久久久99999| 一区二区在线观看免费| 国内精品久久久久影院薰衣草| 欧美专区亚洲专区| 中文字幕免费一区| 麻豆精品在线播放| 欧美在线一二三| 国产精品每日更新| 狠狠v欧美v日韩v亚洲ⅴ| 欧美性欧美巨大黑白大战| 国产精品免费久久| 国产在线精品一区二区夜色| 欧美精品一卡二卡| 自拍偷在线精品自拍偷无码专区| 国产综合色视频| 欧美一区二区三区在线电影| 亚洲美女偷拍久久| 懂色av中文一区二区三区| 欧美一个色资源| 丝袜亚洲另类欧美| 在线观看国产日韩| 综合激情成人伊人| 国产不卡视频在线播放| 日韩精品综合一本久道在线视频| 亚洲一区二区精品3399| 色综合久久99| 国产精品久久毛片a| 大桥未久av一区二区三区中文| 日韩欧美国产午夜精品| 五月激情丁香一区二区三区| 日本丰满少妇一区二区三区| 中文字幕亚洲电影| 成人av免费观看| 国产精品嫩草影院com| 国产成人在线网站| 国产欧美日韩综合| 国产成人亚洲综合a∨婷婷| www国产成人| 国产精品一区二区男女羞羞无遮挡| 精品美女一区二区| 国内精品在线播放| 久久精品日韩一区二区三区| 国产自产视频一区二区三区| 精品日产卡一卡二卡麻豆| 美女视频黄久久| 精品久久久久一区二区国产| 国产一区二区女| 国产精品免费看片| 99久久综合国产精品| 日韩美女啊v在线免费观看| 99久久er热在这里只有精品15 | 欧美精品丝袜中出| 亚洲丰满少妇videoshd| 精品视频在线免费| 婷婷六月综合亚洲| 欧美一区二区视频观看视频| 加勒比av一区二区| 国产片一区二区| 日本道色综合久久| 日韩经典一区二区| 久久久久97国产精华液好用吗| 国产.欧美.日韩| 有码一区二区三区| 欧美日韩美少妇| 另类综合日韩欧美亚洲| 国产亚洲综合在线| 色哟哟欧美精品| 男女激情视频一区| 欧美激情一区二区三区| 色婷婷综合中文久久一本| 日韩国产一区二| 亚洲国产成人在线| 欧美色男人天堂|