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

📄 zlg7290.lst

📁 ucos v2.62 安装程序 附带已移植到C8051F020的UCOS源码
💻 LST
字号:
C51 COMPILER V8.02   ZLG7290                                                               03/26/2007 19:14:28 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE ZLG7290
OBJECT MODULE PLACED IN ..\Output\zlg7290.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\app\zlg7290.c LARGE BROWSE INCDIR(..\app;..\Main;..\Port;..\SOURCE) DEBU
                    -G OBJECTEXTEND PRINT(..\Output\zlg7290.lst) OBJECT(..\Output\zlg7290.obj)

line level    source

   1          #include "zlg7290.h"
   2          #include "IIC.h"
   3          #include <C8051F020.H>
   4          
   5          /***********************************************************************
   6          *函数:       ZLG7290_WriteReg()
   7          *调用函数:   bit SmbSend (unsigned char slaveAddr, unsigned char subAddr, 
   8          *                          unsigned char subMod, unsigned char size, unsigned char *sendPtr)
   9          *功能:       向ZLG7290 的某个内部寄存器写入数据
  10          *参数:
  11          *             RegAddr:ZLG7290 的内部寄存器地址
  12          *             dat:要写入的数据
  13          *返回:
  14          *             1:正常
  15          *             0:访问ZLG7290 时出现异常
  16          ************************************************************************/
  17          unsigned char  ZLG7290_WriteReg(unsigned char regAddr, unsigned char dat)
  18          {
  19   1         unsigned char  b;
  20   1         b = SmbSend(ZLG7290_I2C_ADDR, &regAddr, 1, 1, &dat);
  21   1         return b;
  22   1      }
  23          /***********************************************************************
  24          *函数:    ZLG7290_ReadReg()
  25          *功能:    从ZLG7290 的某个内部寄存器读出数据
  26          *调用函数:bit SmbRec(unsigned char slaveAddr,unsigned char subAddr,
  27                                unsigned char subMod,unsigned char size, unsigned char *recPtr )
  28          *参数:
  29          *          RegAddr:ZLG7290 的内部寄存器地址
  30          *          *dat:保存读出的数据
  31          *返回:
  32          *          1:正常
  33          *          0:访问ZLG7290 时出现异常
  34          ************************************************************************/
  35          unsigned char  ZLG7290_ReadReg(unsigned char regAddr, unsigned char *dat)
  36          {
  37   1         unsigned char  b;
  38   1         b = SmbRec(ZLG7290_I2C_ADDR, &regAddr, 1, 1, dat);
  39   1         return b;
  40   1      }
  41          
  42          /***********************************************************************
  43          *函数:ZLG7290_Cmd()
  44          *功能:向ZLG7290 发送控制命令
  45          *调用函数:   bit SmbSend (unsigned char slaveAddr, unsigned char subAddr, 
  46          *                          unsigned char subMod, unsigned char size, unsigned char *sendPtr)
  47          *参数:
  48          *      cmd0:写入CmdBuf0 寄存器的命令字(第1 字节)
  49          *      cmd1:写入CmdBuf1 寄存器的命令字(第2 字节)
  50          *返回:
  51          *      1:正常
  52          *      0:访问ZLG7290 时出现异常
  53          **********************************************************************/
  54          unsigned char ZLG7290_Cmd(unsigned char cmd0, unsigned char cmd1) reentrant 
C51 COMPILER V8.02   ZLG7290                                                               03/26/2007 19:14:28 PAGE 2   

  55          {
  56   1         unsigned  b;
  57   1         unsigned char buf[2];
  58   1         unsigned char cmdBuf;
  59   1         cmdBuf = ZLG7290_CmdBuf;
  60   1         buf[0] = cmd0;
  61   1         buf[1] = cmd1;
  62   1         b = SmbSend(ZLG7290_I2C_ADDR,&cmdBuf,1,2,buf);
  63   1      return b;
  64   1      }
  65          
  66          /*******************************************************************
  67          *函数:ZLG7290_SegOnOff()
  68          *功能:段寻址,单独点亮或熄灭数码管(或LED)中的某一段
  69          *参数:
  70          *      seg:取值0~63,表示数码管(或LED)的段号
  71          *      b:0 表示熄灭,1 表示点亮
  72          *返回:
  73          *      0:正常
  74          *      1:访问ZLG7290 时出现异常
  75          *说明:
  76          *      在每一位数码管中,段号顺序按照“a,b,c,d,e,f,g,dp”进行
  77          *******************************************************************/
  78          unsigned char  ZLG7290_SegOnOff(unsigned char seg, unsigned char  b)
  79          {
  80   1         unsigned char cmd;
  81   1         cmd = seg & 0x3F;
  82   1         if ( b ) 
  83   1         cmd |= 0x80;
  84   1         return ZLG7290_Cmd(0x01,cmd);
  85   1      }
  86          
  87          /*****************************************************************
  88          *函数:ZLG7290_Download()
  89          *功能:下载数据并译码
  90          *
  91          *参数:
  92          *      addr:取值0~7,显示缓存DpRam0~DpRam7 的编号
  93          *      dp:是否点亮该位的小数点,0-熄灭,1-点亮
  94          *      flash:控制该位是否闪烁,0-不闪烁,1-闪烁
  95          *      dat:取值0~31,表示要显示的数据
  96          *返回:
  97          *      1:正常
  98          *      0:访问ZLG7290 时出现异常
  99          *说明:
 100          *      显示数据具体的译码方式请参见ZLG7290 的数据手册
 101          *****************************************************************/
 102          unsigned char  ZLG7290_Download(unsigned char addr, unsigned char  dp, unsigned char  flash, unsigned char
             - dat)
 103          {
 104   1         unsigned char cmd0;
 105   1         unsigned char cmd1;
 106   1         cmd0 = addr & 0x0F;
 107   1         cmd0 |= 0x60;
 108   1         cmd1 = dat & 0x1F;
 109   1         if ( dp ) 
 110   1            cmd1 |= 0x80;
 111   1         if ( flash ) 
 112   1            cmd1 |= 0x40;
 113   1         return ZLG7290_Cmd(cmd0,cmd1);
 114   1      }
 115          
C51 COMPILER V8.02   ZLG7290                                                               03/26/2007 19:14:28 PAGE 3   

 116          void ZLG7290_GetKey(unsigned char * keyValue)
 117          {
 118   1              while(IE0==0);
 119   1              ZLG7290_ReadReg(ZLG7290_Key,keyValue);   //读取键值、
 120   1               
 121   1              
 122   1      }
 123          void ZLG7290_GetRepeatCnt(unsigned char *repeatCnt)
 124          {
 125   1          while(IE0==0);
 126   1              ZLG7290_ReadReg(ZLG7290_RepeatCnt,repeatCnt); // 连击计数器值
 127   1      
 128   1      }
 129          /*****************************************************************
 130          *函数:ZLG7290_Clear(char a)
 131          *功能:清除指定位的显示
 132          *
 133          *参数:
 134          *      a:   取小于-1全部清除,a>=0,a<=7 时清楚该位的显示
 135          
 136          *返回: 无
 137          
 138          *说明:
 139          *      显示数据具体的译码方式请参见ZLG7290 的数据手册
 140          */
 141          void ZLG7290_Clear(char a)
 142          {       
 143   1              unsigned char i = 0;
 144   1              if(a<=-1)
 145   1              {
 146   2                      for(i=0;i<8;i++)
 147   2                      ZLG7290_Download(i,0,0,0x1f);
 148   2              }
 149   1              if(a>-1&&a<8)
 150   1                      ZLG7290_Download(a,0,0,0x1f);
 151   1              if(a>=8)
 152   1              return;
 153   1      }
 154          unsigned char ZLG7290_DispValue(unsigned char x, unsigned long int dat)
 155          {
 156   1          unsigned char d[8];
 157   1              unsigned char i = 0;
 158   1              unsigned char j;
 159   1              while(dat>0)
 160   1              {
 161   2                  d[i] = dat%10;
 162   2                      dat /= 10;
 163   2                      i++;    
 164   2              }
 165   1              if(x<i-1)
 166   1                  return 0;
 167   1              for(j=0;j<i;j++)
 168   1              {
 169   2            ZLG7290_Download(x-j,0,0,d[j]);
 170   2          }
 171   1              return 1;
 172   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    562    ----
   CONSTANT SIZE    =   ----    ----
C51 COMPILER V8.02   ZLG7290                                                               03/26/2007 19:14:28 PAGE 4   

   XDATA SIZE       =   ----      27
   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 + -