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

📄 stciap.lst

📁 用于测试步进电机
💻 LST
字号:
C51 COMPILER V7.00  STCIAP                                                                 09/14/2006 16:35:47 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE STCIAP
OBJECT MODULE PLACED IN STCIAP.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE STCIAP.C OPTIMIZE(9,SIZE) BROWSE ORDER DEBUG OBJECTEXTEND

stmt level    source

   1          /**********************************************
   2          *   文件名:STCIAP.C
   3          /**********************************************/
   4          #include "REG51STC.H"
   5          #include "CMD16887.H"
   6          #include "externxy.h"
   7          //-----------------------------------------------------
   8          #define DATA_FLASH_START_ADDRESS  0x8000  //STC89C58RD+
   9          
  10          #define ENABLE_ISP   0x81   //等待时间
  11          /************************************************
  12          *  功能:IAP字节读
  13          *************************************************/
  14          uchar byte_verify(uint add)
  15          {
  16   1              ISP_CMD=1;
  17   1              set_isp_add(add);
  18   1              trigger_isp();
  19   1              return(ISP_DATA);
  20   1      }
  21          /***********************************************
  22          * 功能:字节编程
  23          ************************************************/
  24          void byte_program(uint add,uchar *ptr)
  25          {
  26   1              ISP_CMD=2;
  27   1              set_isp_add(add);
  28   1              
  29   1              ISP_DATA=*ptr;
  30   1              trigger_isp();
  31   1              if(*ptr!=byte_verify(add)) isp_err=1; //只要有1个字节写入不正确则出错
  32   1      }
  33          /**********************************************
  34          *   功能:扇区擦除
  35          ***********************************************/
  36          void sector_erase(uint add)
  37          {
  38   1              ISP_CONTR=ENABLE_ISP;//等待时间
  39   1              ISP_CMD=0x03;
  40   1              set_isp_add(add);
  41   1              trigger_isp();
  42   1              iap_disable();   //关闭IAP功能
  43   1      }
  44          /**********************************************
  45          *   功能:触发ISP
  46          ***********************************************/
  47          void trigger_isp(void)
  48          {
  49   1              EA=0;
  50   1              ISP_TRIG=0x46;
  51   1              ISP_TRIG=0xb9;
  52   1              _nop_();_nop_();_nop_();_nop_();
  53   1              EA=1;
  54   1      }
  55          /***********************************************
C51 COMPILER V7.00  STCIAP                                                                 09/14/2006 16:35:47 PAGE 2   

  56          *  功能:送地址
  57          ************************************************/
  58          void set_isp_add(uint add)
  59          {
  60   1              ISP_ADDRH=add/256;
  61   1         ISP_ADDRL=add%256;
  62   1      }
  63          /***********************************************
  64          *  功能:关闭IAP功能
  65          ************************************************/
  66          void iap_disable(void)
  67          {
  68   1              ISP_CONTR=0;
  69   1         ISP_CMD=0;
  70   1         ISP_TRIG=0;
  71   1      }
  72          /*************************************************
  73          *  功能:保存IAP系统参数
  74          *************************************************/
  75          void iap_sys_save(uint add,uchar *pi,uchar amount)
  76          {       uchar i;
  77   1              sector_erase(add);  //扇区擦除
  78   1              ISP_CONTR=ENABLE_ISP;//等待时间
  79   1              for(i=0;i<amount;i++)
  80   1              {
  81   2                      byte_program(add+i,pi+i);
  82   2              }
  83   1              iap_disable();   //关闭IAP功能
  84   1      }
  85          /*************************************************
  86          *  功能:读IAP系统参数
  87          *************************************************/
  88          void iap_sys_read(uint add,uchar *pi,uchar amount)
  89          {       uchar i;
  90   1         ISP_CONTR=ENABLE_ISP;//等待时间
  91   1              for(i=0;i<amount;i++)
  92   1              {
  93   2                      *(pi+i)=byte_verify(add+i);
  94   2              }
  95   1              iap_disable();   //关闭IAP功能
  96   1      }
  97          /*************************************************
  98          *  功能:恢复系统参数
  99          **************************************************/
 100          void renew_sysdata(void)
 101          {   void  *pt;
 102   1              pt=&residue_a;
 103   1              iap_sys_read(DATA_FLASH_START_ADDRESS,pt,20);
 104   1      }
 105          /*************************************************
 106          *  功能:系统参数备份
 107          **************************************************/
 108          void backup_sysdata(void)
 109          {   void  *pt;
 110   1              pt=&residue_a;
 111   1              iap_sys_save(DATA_FLASH_START_ADDRESS,pt,20);
 112   1              pt=&invoice_number;   //发票编号   
 113   1          writebyteseq(506,pt,4);
 114   1      }
 115          
 116          /*************************************************
 117          *  功能:恢复打印格式
C51 COMPILER V7.00  STCIAP                                                                 09/14/2006 16:35:47 PAGE 3   

 118          **************************************************/
 119          void renew_printer_format(void)
 120          {   void  *pt;
 121   1              pt=&print_format;
 122   1              iap_sys_read(DATA_FLASH_START_ADDRESS+512,pt,150);
 123   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    299    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      19
   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 + -