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

📄 89c58rd_flash.lst

📁 此程序是及iic、rs485、rs232于一身的单片机c语言编写
💻 LST
字号:
C51 COMPILER V6.12  89C58RD_FLASH                                                          04/20/2006 17:14:58 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 89C58RD_FLASH
OBJECT MODULE PLACED IN 89C58RD_flash.OBJ
COMPILER INVOKED BY: C:\c51\BIN\C51.EXE 89C58RD_flash.c DB OE SMALL ROM(LARGE) 

stmt level    source

   1          #include <main.h>
   2          
   3          void Isp_enable(void);
   4          void Isp_disable(void);
   5          byte SFR_RDB(byte A_H,byte A_L);
   6          bit SFR_Erase(byte A_H,byte A_L);
   7          bit SFR_WRB(byte A_H,byte A_L,byte Para);
   8          bit SaveData_SFR(void);
   9          
  10          //**********STC89C58RD+**************
  11          void Isp_enable(void)
  12          {
  13   1          EA=0;
  14   1          ISP_CONTR = ISP_CONTR & 0x18; //禁止ISP编程
  15   1          ISP_CONTR = ISP_CONTR | 0x01; //等待时间
  16   1          ISP_CONTR = ISP_CONTR | 0x80; //启动ISP编程
  17   1      }
  18          
  19          void Isp_disable(void)
  20          {
  21   1        ISP_CONTR = ISP_CONTR & 0x7f; //禁止ISP编程
  22   1        ISP_TRIG  = 0x00;
  23   1        EA=1;
  24   1      }
  25          
  26          byte SFR_RDB(byte A_H,byte A_L)
  27          {
  28   1           ISP_ADDRH = A_H;
  29   1           ISP_ADDRL = A_L;
  30   1      
  31   1           ISP_CMD = ISP_CMD & 0xf8; //flash 
  32   1           ISP_CMD = ISP_CMD | 0x01; //flash 
  33   1           Isp_enable();
  34   1      
  35   1           ISP_TRIG = 0x46;
  36   1           ISP_TRIG = 0xb9;
  37   1           _nop_();
  38   1           Isp_disable(); 
  39   1           return(ISP_DATA);  
  40   1           
  41   1      }
  42          
  43          bit SFR_Erase(byte A_H,byte A_L)//错误return 1   正确return 0
  44          {
  45   1      
  46   1      	ISP_ADDRH = A_H;
  47   1      	ISP_ADDRL = A_L;
  48   1      	
  49   1      	ISP_CMD = ISP_CMD & 0xf8; //flash 
  50   1      	ISP_CMD = ISP_CMD | 0x03; //flash 
  51   1              	
  52   1              Isp_enable();
  53   1      	ISP_TRIG = 0x46;
  54   1      	ISP_TRIG = 0xb9;
  55   1      	_nop_();
C51 COMPILER V6.12  89C58RD_FLASH                                                          04/20/2006 17:14:58 PAGE 2   

  56   1              Isp_disable(); 
  57   1              return(0);       
  58   1      }
  59          
  60          bit SFR_WRB(byte A_H,byte A_L,byte Para )//错误return 1   正确return 0
  61          {
  62   1      	ISP_ADDRH = A_H;
  63   1      	ISP_ADDRL = A_L;
  64   1      	
  65   1      	ISP_CMD = ISP_CMD & 0xf8;
  66   1      	ISP_CMD = ISP_CMD | 0x02;
  67   1      	ISP_DATA = Para;
  68   1      
  69   1      	Isp_enable();
  70   1      	ISP_TRIG = 0x46;
  71   1      	ISP_TRIG = 0xb9;
  72   1      	_nop_();
  73   1      	
  74   1      	ISP_DATA = 0x00;
  75   1      	ISP_CMD = ISP_CMD & 0xf8;
  76   1      	ISP_CMD = ISP_CMD | 0x01;
  77   1      	ISP_TRIG = 0x46;
  78   1      	ISP_TRIG = 0xb9;
  79   1      	Isp_disable();
  80   1      	_nop_();
  81   1      
  82   1      	if(ISP_DATA == Para)
  83   1      		return(0);
  84   1      	else
  85   1      		return(1);
  86   1      	
  87   1      }
  88          
  89          bit SaveData_SFR(void)//错误return 1   正确return 0
  90          {
  91   1      	if (SFR_Erase(ADH,ADL))
  92   1      	{
  93   2      		return(1);
  94   2      	}
  95   1      	if (SFR_WRB(ADH,SFR_VA,vlm_main))//8000
  96   1      	{
  97   2      		return(1);
  98   2      	}
  99   1      	if (SFR_WRB(ADH,SFR_TA,treble_main))//8001
 100   1      	{
 101   2      		return(1);
 102   2      	}
 103   1      	if (SFR_WRB(ADH,SFR_BA,bass_main))//8002
 104   1      	{
 105   2      		return(1);
 106   2      	}
 107   1      	if (SFR_WRB(ADH,SFR_RADIO,prior_radio))//8003
 108   1      	{
 109   2      		return(1);
 110   2      	}
 111   1      	if (SFR_WRB(ADH,SFR_MIC,prior_mic))//8004
 112   1      	{
 113   2      		return(1);
 114   2      	}
 115   1      	if (SFR_WRB(ADH,SFR_MP3,prior_mp3))//8005
 116   1      	{
 117   2      		return(1);
C51 COMPILER V6.12  89C58RD_FLASH                                                          04/20/2006 17:14:58 PAGE 3   

 118   2      	}
 119   1      	if (SFR_WRB(ADH,SFR_LCD,prior_lcd))//8006
 120   1      	{
 121   2      		return(1);
 122   2      	}
 123   1      	if (SFR_WRB(ADH,SFR_FRONTGAIN,gain_front))//8007
 124   1      	{
 125   2      		return(1);
 126   2      	}
 127   1      	return(0);
 128   1      }
 129          
 130          void init_flash(void)			//读高4k
 131          {
 132   1      	vlm_main = SFR_RDB(ADH,SFR_VA);
 133   1      	treble_main = SFR_RDB(ADH,SFR_TA);
 134   1      	bass_main = SFR_RDB(ADH,SFR_BA);	
 135   1      	gain_front = SFR_RDB(ADH,SFR_FRONTGAIN);
 136   1      	prior_radio = SFR_RDB(ADH,SFR_RADIO);
 137   1      	prior_mic = SFR_RDB(ADH,SFR_MIC);
 138   1      	prior_mp3 = SFR_RDB(ADH,SFR_MP3);
 139   1      	prior_lcd = SFR_RDB(ADH,SFR_LCD);  
 140   1      	if((vlm_main == 0xff)&&(treble_main == 0xff)&&(bass_main == 0xff)&&(prior_radio == 0xff)&&(prior_mic == 0
             -xff)&&(prior_mp3 == 0xff)&&(prior_lcd == 0xff)&&(gain_front == 0xff))
 141   1      	{
 142   2      		vlm_main = 0x28;
 143   2      		treble_main = 0x10;
 144   2      		bass_main = 0x10;
 145   2      		gain_front = 0x37 | 0x80;
 146   2      		prior_radio = 0x04;
 147   2      		prior_mic = 0x03;
 148   2      		prior_mp3 = 0x02;
 149   2      		prior_lcd = 0x01;
 150   2      	}
 151   1      	
 152   1      	if(bass_main == 0xff)
 153   1      	{
 154   2      		bass_main = 0x10;
 155   2      		SaveData_SFR();
 156   2      	}
 157   1      	else if(bass_main > 0x1f)
 158   1      	{
 159   2      		bass_main = 0x10;
 160   2      		SaveData_SFR();
 161   2      	}
 162   1      	if(gain_front == 0xff)
 163   1      	{
 164   2      		gain_front = 0x37 | 0x80;
 165   2      		SaveData_SFR();
 166   2      	}
 167   1      	else if(gain_front > 0xbf || gain_front < 0xa1)
 168   1      	{
 169   2      		gain_front = 0x37 | 0x80;
 170   2      		SaveData_SFR();
 171   2      	}
 172   1      	
 173   1      	if(treble_main == 0xff)
 174   1      	{
 175   2      		treble_main = 0x10;
 176   2      		SaveData_SFR();
 177   2      	}
 178   1      	else if(treble_main > 0x1f)
C51 COMPILER V6.12  89C58RD_FLASH                                                          04/20/2006 17:14:58 PAGE 4   

 179   1      	{
 180   2      		treble_main = 0x10;	
 181   2      		SaveData_SFR();
 182   2      	}
 183   1      	
 184   1      	if(vlm_main == 0xff)
 185   1      	{
 186   2      		vlm_main = 0x28;
 187   2      		SaveData_SFR();
 188   2      	}
 189   1      	else if(vlm_main > 0x28)
 190   1      	{
 191   2      		vlm_main = 0x28;
 192   2      		SaveData_SFR();
 193   2      	}
 194   1      	
 195   1      	if(prior_radio == 0xff)
 196   1      	{
 197   2      		prior_radio = 0x04;
 198   2      		SaveData_SFR();
 199   2      	}
 200   1      	else if(prior_radio > 0x05 || prior_radio < 0x01)
 201   1      	{
 202   2      		prior_radio = 0x04;
 203   2      		SaveData_SFR();
 204   2      	}
 205   1      	
 206   1      	if(prior_mic == 0xff)
 207   1      	{
 208   2      		prior_mic = 0x03;
 209   2      		SaveData_SFR();
 210   2      	}
 211   1      	else if(prior_mic > 0x05 || prior_mic < 0x01)
 212   1      	{
 213   2      		prior_mic = 0x03;
 214   2      		SaveData_SFR();
 215   2      	}
 216   1      	
 217   1      	if(prior_mp3 == 0xff)
 218   1      	{
 219   2      		prior_mp3 = 0x02;
 220   2      		SaveData_SFR();
 221   2      	}
 222   1      	else if(prior_mp3 > 0x05 || prior_mp3 < 0x01)
 223   1      	{
 224   2      		prior_mp3 = 0x02;
 225   2      		SaveData_SFR();
 226   2      	}
 227   1      	
 228   1      	if(prior_lcd == 0xff)
 229   1      	{
 230   2      		prior_lcd = 0x02;
 231   2      		SaveData_SFR();
 232   2      	}
 233   1      	else if(prior_lcd > 0x05 || prior_lcd < 0x01)
 234   1      	{
 235   2      		prior_lcd = 0x01;
 236   2      		SaveData_SFR();
 237   2      	}	
 238   1      	
 239   1      }
 240          
C51 COMPILER V6.12  89C58RD_FLASH                                                          04/20/2006 17:14:58 PAGE 5   



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


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

⌨️ 快捷键说明

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