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

📄 pcf8563.lst

📁 电可擦除可编程只读存储器EEPROM可分为并行和串行两大类。并行EEPROM在读写数据是通过8位数据总线传输
💻 LST
字号:
C51 COMPILER V7.01  PCF8563                                                                01/06/1999 10:14:17 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE PCF8563
OBJECT MODULE PLACED IN PCF8563.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE PCF8563.c OPTIMIZE(2,SPEED) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /****************************************Copyright (c)**************************************************
   2          **                               广州周立功单片机发展有限公司
   3          **                                     研    究    所
   4          **                                        产品一部 
   5          **
   6          **                                 http://www.zlgmcu.com
   7          **
   8          **--------------文件信息--------------------------------------------------------------------------------
   9          **文   件   名: PCF8563.C
  10          **创   建   人: 叶皓贲
  11          **最后修改日期:  2003-3-4
  12          **描        述: DP-1581的8563T及7289a键盘LED演示程序
  13          **
  14          **--------------历史版本信息----------------------------------------------------------------------------
  15          ** 创建人: 叶皓贲
  16          ** 版  本: 1.0
  17          ** 日 期: 2003-3-4
  18          ** 描 述: DP-1581演示程序
  19          **
  20          **------------------------------------------------------------------------------------------------------
  21          ** 修改人:
  22          ** 版  本:
  23          ** 日 期:
  24          ** 描 述:
  25          **
  26          **--------------当前版本修订------------------------------------------------------------------------------
  27          ** 修改人: 
  28          ** 日 期:
  29          ** 描 述:
  30          **
  31          **------------------------------------------------------------------------------------------------------
  32          ********************************************************************************************************/
  33          
  34          #include "config.h"
  35          
  36          /* 全局变量 */
  37          
  38          uint8 disp_buf[8]={0,0,0,0,0,0,0,0};
  39          
  40          /*********************************************************************************************************
  41          ** 函数名称:    display
  42          ** 功能描述:    7298A led显示
  43          ** 输 入: *sd :        显示缓冲区的头地址
  44          **         
  45          ** 输 出: 0 :  OK;
  46          **         1 :  FAIL;
  47          ** 全局变量:    无
  48          ** 调用模块:    ZLG7289_SendBuf
  49          **
  50          ** 作 者: 叶皓贲
  51          ** 日 期: 2003-3-4
  52          **-------------------------------------------------------------------------------------------------------
  53          ** 修改人:
  54          ** 日 期:
  55          **------------------------------------------------------------------------------------------------------
C51 COMPILER V7.01  PCF8563                                                                01/06/1999 10:14:17 PAGE 2   

  56          ********************************************************************************************************/
  57          uint8 display(uint8 *sd)
  58          { 
  59   1              disp_buf[0] = sd[2]/16;                 // 装载" dp-932"
  60   1          disp_buf[1] = sd[2]%16;             
  61   1          disp_buf[2] = 10;
  62   1          disp_buf[3] = sd[1]/16;
  63   1          disp_buf[4] = sd[1]%16;
  64   1          disp_buf[5] = 10;
  65   1          disp_buf[6] = sd[0]/16;     
  66   1          disp_buf[7] = sd[0]%16;
  67   1          ZLG7289_SendBuf(disp_buf);
  68   1              return 0;
  69   1      }
  70          
  71          /*********************************************************************************************************
  72          ** 函数名称:    DelayNS
  73          ** 功能描述:    长软件延时
  74          ** 输 入: no : 延时参数,值越大时延时越久
  75          **         
  76          ** 输 出: 0 :  OK;
  77          **         1 :  FAIL;
  78          ** 全局变量:    无
  79          ** 调用模块:    无
  80          **
  81          ** 作 者: 叶皓贲
  82          ** 日 期: 2003-3-4
  83          **-------------------------------------------------------------------------------------------------------
  84          ** 修改人:
  85          ** 日 期:
  86          **------------------------------------------------------------------------------------------------------
  87          ********************************************************************************************************/
  88          uint8 DelayNS(uint8 no)
  89          { 
  90   1              uint8 i,j;                                      //延时参数
  91   1      
  92   1              for(; no>0; no--)
  93   1              { 
  94   2                      for(i=0; i<100; i++)
  95   2                      for(j=0; j<100; j++);
  96   2              }
  97   1              return 0; 
  98   1      }
  99          
 100          /*********************************************************************************************************
 101          ** 函数名称:    delay
 102          ** 功能描述:    短软件延时
 103          ** 输 入: j :  延时参数,值越大时延时越久
 104          **         
 105          ** 输 出: 0 :  OK;
 106          **         1 :  FAIL;
 107          ** 全局变量:    无
 108          ** 调用模块:    无
 109          **
 110          ** 作 者: 叶皓贲
 111          ** 日 期: 2003-3-4
 112          **-------------------------------------------------------------------------------------------------------
 113          ** 修改人:
 114          ** 日 期:
 115          **------------------------------------------------------------------------------------------------------
 116          ********************************************************************************************************/
 117          uint8 delay(uint8 j)
C51 COMPILER V7.01  PCF8563                                                                01/06/1999 10:14:17 PAGE 3   

 118          {
 119   1              uint8 k,l;
 120   1              for(l=0;l<=j;l++)
 121   1              for(k=0;k<=250;k++);
 122   1              return 0;
 123   1      }
 124          
 125          void  main()
 126          {       
 127   1              /*定义发送缓冲区*/
 128   1              uint8 td[5]={0x00,0x12,0x48,0x30,0x12};
 129   1              uint8 rd[5]={0x00,0x01,0x02,0x03,0x04};                 
 130   1              uint8 key,flash=0xf7,i,j;       
 131   1      
 132   1              ISendStr(PCF8563,WRADDR,td,0x5);
 133   1              ZLG7289_Rest();         // 复位ZLG7289
 134   1          DelayNS(10);
 135   1              while(1)
 136   1              {
 137   2                      IRcvStr(PCF8563,RDADDR,rd,0x3);
 138   2                      if(rd[2]>0x30)
 139   2                              rd[2]=rd[2]-0x40;
 140   2                      delay(100); 
 141   2                      display(rd);
 142   2                      delay(100);
 143   2                      if(KEY_INT==0)
 144   2                      {
 145   3                              key=ZLG7289_GetKey();
 146   3                              switch(key)
 147   3                              {
 148   4                                      case 0 :                        //确定
 149   4                                              ZLG7289_SendData(0x88, 0xff);
 150   4                                              break;
 151   4                                      case 1 :                        //光标左移
 152   4                                              flash= _crol_ (flash, 1);
 153   4                                              ZLG7289_SendData(0x88, flash);
 154   4                                              break;
 155   4                                      case 2 :                        //光标右移
 156   4                                              flash= _cror_ (flash, 1);
 157   4                                              ZLG7289_SendData(0x88, flash);
 158   4                                              break;
 159   4                                      case 3 :                        //光标值加一
 160   4                                              IRcvStr(PCF8563,RDADDR,rd,0x3);
 161   4                                              key=(flash^0xff);
 162   4                                              if(key==0) break;
 163   4                                              j=1;
 164   4                                              if(key==1) i=0;
 165   4                                              else
 166   4                                                      for(i=0;i<key;i++)
 167   4                                                      {
 168   5                                                              j=j<<1;
 169   5                                                              if(j==key)  key=0;
 170   5                                                      }
 171   4                                              if(disp_buf[i] == 10) break;
 172   4                                              else if((i%3)==0) 
 173   4                                              {
 174   5                                                              i=2-(i/3);
 175   5                                                              rd[i]=rd[i]+16;
 176   5                                                      }
 177   4                                              else if((i%3)!=0)
 178   4                                                      {
 179   5                                                              i=2-(i/3);
C51 COMPILER V7.01  PCF8563                                                                01/06/1999 10:14:17 PAGE 4   

 180   5                                                              rd[i]=rd[i]+1;  
 181   5                                                      }
 182   4                                                      delay(50);
 183   4                                                      ISendStr(PCF8563,RDADDR,rd,0x3);
 184   4                                                      delay(50);
 185   4                                              break;
 186   4                                      case 4 :                            //光标值减一
 187   4                                              IRcvStr(PCF8563,RDADDR,rd,0x3);
 188   4                                              key=(flash^0xff);
 189   4                                              if(key==0) break;
 190   4                                              j=1;
 191   4                                              if(key==1) i=0;
 192   4                                              else
 193   4                                                      for(i=0;i<key;i++)
 194   4                                                      {
 195   5                                                              j=j<<1;
 196   5                                                              if(j==key)  key=0;
 197   5                                                      }
 198   4                                              if(disp_buf[i] == 10) break;
 199   4                                              else if((i%3)==0) 
 200   4                                              {
 201   5                                                              i=2-(i/3);
 202   5                                                              rd[i]=rd[i]-16;
 203   5                                                      }
 204   4                                              else if((i%3)!=0)
 205   4                                                      {
 206   5                                                              i=2-(i/3);
 207   5                                                              rd[i]=rd[i]-1;  
 208   5                                                      }
 209   4                                                      delay(50);
 210   4                                                      ISendStr(PCF8563,RDADDR,rd,0x3);
 211   4                                                      delay(50);
 212   4                                              break;
 213   4                                      case 5 :
 214   4                                              
 215   4                                              break;
 216   4                                      case 6 :
 217   4                                      
 218   4                                              break;
 219   4                                      case 7 :
 220   4                                              break;
 221   4                                      default :
 222   4                                              break;
 223   4                              }
 224   3                              while(KEY_INT==0);
 225   3                      }
 226   2              }
 227   1      }
 228          
 229          
 230          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    835    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8      23
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V7.01  PCF8563                                                                01/06/1999 10:14:17 PAGE 5   


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

⌨️ 快捷键说明

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