⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash.lst

📁 CF8051F040开发板的 flash_download程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.02b   FLASH                                                                03/06/2006 15:41:23 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE FLASH
OBJECT MODULE PLACED IN .\output\flash.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE flash.c LARGE BROWSE DEBUG OBJECTEXTEND TABS(3) OBJECT(.\output\flash.obj)

stmt level    source

   1          /************************************************************************************
   2          *  Copyright (c) 2004,西安铭朗电子科技有限责任公司
   3          *            All rights reserved.
   4          *
   5          * 文件名称: flash.C
   6          * 文件标识: none
   7          * 适用器件: w29c020
   8          * 
   9          * 摘 要: 本文件是字库(GB2312)读写子程序;使用外部22.1184MHz晶振.
  10          * 
  11          * 当前版本:1.2
  12          * 作 者:张宁强
  13          * 完成日期:2006年1月10日
  14          *
  15          * 历史版本:1.0 
  16          * 原作者 : 李林利 卢阳
  17          * 完成日期:2005年6月1日
  18          *************************************************************************************/
  19          
  20          /************************************************************************************/
  21          // 引用外部头文件
  22          
  23          #include "c8051f040.h"
  24          #include "flash.h"
  25          #include "delay.h"
  26          
  27          /************************************************************************************/
  28          
  29          /************************************************************************************
  30          * 函数名称:flash_write_protect;
  31          *
  32          * 函数功能描述:Flash写保护函数;1:打开保护进行读写,0:进入保护状态模式;
  33          *              
  34          * 输入参数:Flash写保护开关;
  35          *
  36          * 返回数据:none;
  37          *
  38          * 注意:    none;
  39          ************************************************************************************/
  40          
  41          void flash_write_protect(bool flag)
  42          {  
  43   1         unsigned char xdata *ad;
  44   1         char data SFRPAGE_SAVE = SFRPAGE;    // Save Current SFR page   
  45   1          SFRPAGE = SFR_PAGE_F;           // set SFR page F
  46   1      
  47   1         if(flag==0)
  48   1         {
  49   2            P4&=0xf5;
  50   2            P4|=0x05;
  51   2            ad=0xd555;
  52   2            *ad=0xaa;
  53   2      
  54   2            P4&=0xf2;
  55   2            P4|=0x02;
C51 COMPILER V7.02b   FLASH                                                                03/06/2006 15:41:23 PAGE 2   

  56   2            ad=0xeaaa;
  57   2            *ad=0x55;
  58   2      
  59   2            P4&=0xf5;
  60   2            P4|=0x05;
  61   2            ad=0xd555;
  62   2            *ad=0x80;
  63   2      
  64   2            P4&=0xf5;
  65   2            P4|=0x05;
  66   2            ad=0xd555;
  67   2            *ad=0xaa;
  68   2      
  69   2            P4&=0xf2;
  70   2            P4|=0x02;
  71   2            ad=0xeaaa;
  72   2            *ad=0x55;
  73   2      
  74   2            P4&=0xf5;
  75   2            P4|=0x05;
  76   2            ad=0xd555;
  77   2            *ad=0x20;
  78   2      
  79   2            Delay_ms(10);
  80   2         }
  81   1         else
  82   1         {
  83   2            P4&=0xf5;
  84   2            P4|=0x05;
  85   2            ad=0xd555;
  86   2            *ad=0xaa;
  87   2      
  88   2            P4&=0xf2;
  89   2            P4|=0x02;
  90   2            ad=0xeaaa;
  91   2            *ad=0x55;
  92   2      
  93   2            P4&=0xf5;
  94   2            P4|=0x05;
  95   2            ad=0xd555;
  96   2            *ad=0xa0;
  97   2         }
  98   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
  99   1      }
 100          
 101          /***********************************************************************************
 102          * 函数名称:flash_chip_erase;
 103          *
 104          * 函数功能描述:Flash芯片擦除程序;
 105          *              
 106          * 输入参数:none;
 107          *
 108          * 返回数据:none;
 109          *
 110          * 注意:    none;
 111          ************************************************************************************/
 112          
 113          void flash_chip_erase(void)
 114          {
 115   1         unsigned char xdata *ad;
 116   1         char data SFRPAGE_SAVE = SFRPAGE;    // Save Current SFR page   
 117   1          SFRPAGE = SFR_PAGE_F;           // set SFR page F
C51 COMPILER V7.02b   FLASH                                                                03/06/2006 15:41:23 PAGE 3   

 118   1      
 119   1         P4&=0xf5;
 120   1         P4|=0x05;
 121   1         ad=0xd555;
 122   1         *ad=0xaa;
 123   1      
 124   1         P4&=0xf2;
 125   1         P4|=0x02;
 126   1         ad=0xeaaa;
 127   1         *ad=0x55;
 128   1      
 129   1         P4&=0xf5;
 130   1         P4|=0x05;
 131   1         ad=0xd555;
 132   1         *ad=0x80;
 133   1      
 134   1         P4&=0xf5;
 135   1         P4|=0x05;
 136   1         ad=0xd555;
 137   1         *ad=0xaa;
 138   1      
 139   1         P4&=0xf2;
 140   1         P4|=0x02;
 141   1         ad=0xeaaa;
 142   1         *ad=0x55;
 143   1      
 144   1         P4&=0xf5;
 145   1         P4|=0x05;
 146   1         ad=0xd555;
 147   1         *ad=0x10;
 148   1      
 149   1         Delay_ms(50);
 150   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 151   1      }
 152          
 153          
 154          /***********************************************************************************
 155          * 函数名称:flash_write_byte;
 156          *
 157          * 函数功能描述:Flash写入字节函数程序;
 158          *              
 159          * 输入参数:unsigned long类型地址,unsigned char类型数据;
 160          *
 161          * 返回数据:none;
 162          *
 163          * 注意:    none;
 164          ************************************************************************************/
 165          
 166          void flash_write_byte(unsigned long address, unsigned char dat)
 167          {
 168   1         unsigned char xdata *x;
 169   1         unsigned int temp;
 170   1         unsigned char sec;
 171   1         char data SFRPAGE_SAVE = SFRPAGE;    // Save Current SFR page   
 172   1          SFRPAGE = SFR_PAGE_F;           // set SFR page F
 173   1         temp=address|0xc000;
 174   1         sec=address>>14;
 175   1         P4=sec;
 176   1         x=temp;
 177   1         *x=dat;
 178   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 179   1      }
C51 COMPILER V7.02b   FLASH                                                                03/06/2006 15:41:23 PAGE 4   

 180          
 181          /***********************************************************************************
 182          * 函数名称:flash_write_byte_save;
 183          *

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -