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

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

?? upsd_flash.lst

?? 適合初學(xué)者學(xué)習(xí)的UPSD的點(diǎn)陣LCD漢字顯示
?? LST
?? 第 1 頁 / 共 3 頁
字號(hào):
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          */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲三级在线观看| 亚洲嫩草精品久久| 色吊一区二区三区| 国产在线精品一区二区三区不卡 | 国产精品 欧美精品| 亚洲风情在线资源站| 国产精品久久久爽爽爽麻豆色哟哟| 欧美性受极品xxxx喷水| 成人av在线网| 国产成人一区在线| 狠狠色丁香婷综合久久| 日韩专区一卡二卡| 亚洲一区二区三区影院| 国产精品二三区| 久久精品夜夜夜夜久久| 3d动漫精品啪啪一区二区竹菊 | 日韩激情一二三区| 一区二区三区影院| 国产精品你懂的在线| 精品免费一区二区三区| 制服.丝袜.亚洲.中文.综合| 欧美视频精品在线观看| 日本高清成人免费播放| 成人动漫视频在线| 国产乱码精品一品二品| 激情五月播播久久久精品| 日韩国产欧美在线视频| 亚洲成人第一页| 夜夜揉揉日日人人青青一国产精品 | 男女男精品网站| 性久久久久久久| 亚洲国产精品久久久男人的天堂 | 日韩精品一二区| 亚洲123区在线观看| 亚洲国产日韩一级| 亚洲国产精品一区二区久久恐怖片| 亚洲精品国产一区二区三区四区在线| 国产精品第五页| 亚洲日本在线a| 亚洲精品免费视频| 一区二区三区免费| 亚洲午夜电影网| 亚洲成人免费观看| 日韩激情一二三区| 久久66热re国产| 国产精品一二二区| 成人av在线影院| 在线精品视频小说1| 欧美另类一区二区三区| 日韩欧美区一区二| 国产日韩欧美一区二区三区乱码| 国产日韩一级二级三级| 亚洲三级在线播放| 亚洲3atv精品一区二区三区| 久久99国产精品成人| 高清国产一区二区| 色综合久久九月婷婷色综合| 在线一区二区视频| 日韩午夜电影在线观看| 久久亚洲综合色| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲欧美日韩中文播放| 亚洲欧美一区二区三区极速播放| 亚洲成人激情av| 黄色日韩三级电影| 成人app网站| 欧美美女网站色| 久久九九国产精品| 一区二区国产视频| 美日韩黄色大片| jvid福利写真一区二区三区| 欧美精品在线一区二区| 香蕉成人伊视频在线观看| 美国毛片一区二区| 波多野洁衣一区| 欧美一区二区成人6969| 欧美激情一区二区三区不卡| 亚洲第一会所有码转帖| 国产一区二区久久| 欧美在线视频不卡| www国产成人| 亚洲综合色区另类av| 国产综合色产在线精品| 色狠狠桃花综合| 欧美精品一区二区三| 亚洲天堂av一区| 麻豆国产精品官网| 色综合久久九月婷婷色综合| 精品国产麻豆免费人成网站| 亚洲柠檬福利资源导航| 国产精品综合一区二区三区| 欧美中文字幕一区二区三区 | 欧美激情综合网| 五月天欧美精品| av中文一区二区三区| 日韩亚洲欧美一区| 亚洲精品国产品国语在线app| 国产剧情一区在线| 欧美高清视频一二三区| 亚洲天堂久久久久久久| 国产二区国产一区在线观看| 91麻豆精品国产综合久久久久久| 最新久久zyz资源站| 国产一区二区精品久久99| 欧美日韩一区二区三区四区 | 韩国一区二区三区| 欧美精品粉嫩高潮一区二区| 亚洲欧美另类久久久精品| 国产白丝精品91爽爽久久| 日韩欧美资源站| 日韩国产在线观看| 欧美特级限制片免费在线观看| 国产精品久久久久久妇女6080 | 欧美日韩不卡在线| 亚洲日本韩国一区| 成人国产电影网| 欧美韩国一区二区| 国产成人免费在线观看| 久久综合久久综合久久综合| 久久国产福利国产秒拍| 日韩一区二区中文字幕| 日韩不卡一二三区| 9191精品国产综合久久久久久| 亚洲一区二区三区四区五区黄| 一本到不卡精品视频在线观看| 中文字幕日韩欧美一区二区三区| 国产91清纯白嫩初高中在线观看| 久久九九久精品国产免费直播| 激情欧美一区二区| 精品国产91乱码一区二区三区| 免费精品99久久国产综合精品| 在线91免费看| 日韩中文字幕不卡| 日韩欧美电影在线| 另类小说综合欧美亚洲| 日韩精品一区二区三区四区| 麻豆成人久久精品二区三区红| 欧美一区二区三区免费观看视频| 五月婷婷欧美视频| 日韩午夜电影av| 国产一区二区三区四区五区美女 | 国产不卡在线一区| 国产精品视频一二| 99国产精品久久久| 亚洲综合一区二区三区| 欧美日韩精品三区| 日韩电影在线一区二区三区| 欧美一区二区大片| 国产精品一卡二卡| 国产精品久久久久影视| 一本一道综合狠狠老| 亚洲一区精品在线| 日韩免费电影一区| 高清免费成人av| 亚洲激情在线激情| 91精品国产综合久久久久久久| 蜜桃一区二区三区在线观看| 亚洲精品在线电影| eeuss鲁片一区二区三区在线观看| 一区二区三区中文字幕在线观看| 欧美精品九九99久久| 国内精品嫩模私拍在线| 国产精品色一区二区三区| 色猫猫国产区一区二在线视频| 偷拍亚洲欧洲综合| 久久精品视频网| 欧洲视频一区二区| 精彩视频一区二区| 亚洲精品欧美二区三区中文字幕| 欧美一区二区三区不卡| 粉嫩嫩av羞羞动漫久久久| 亚洲主播在线观看| 久久久久久久网| 欧美色手机在线观看| 国产麻豆精品视频| 亚洲一区免费观看| 久久久久国产免费免费| 欧美日免费三级在线| 国产成a人亚洲精品| 午夜私人影院久久久久| 久久久久久一级片| 欧美日韩一级片在线观看| 国产精品一级在线| 日韩一区欧美二区| 亚洲色图都市小说| 精品国产乱码久久久久久图片| 91香蕉视频黄| 久久99久久精品| 亚洲永久免费视频| 国产免费观看久久| 日韩一区二区三区四区五区六区| 成人h精品动漫一区二区三区| 蜜臀久久99精品久久久久宅男 | 亚州成人在线电影| 中文字幕亚洲区| 久久久99免费| 欧美一级高清大全免费观看| 在线亚洲+欧美+日本专区| 成人午夜激情片| 国产一区在线精品|