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

📄 7290test.lst

📁 键盘led专用驱动芯片ZLG7290的驱动程序
💻 LST
字号:
C51 COMPILER V8.02   7290TEST                                                              08/18/2007 10:11:46 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 7290TEST
OBJECT MODULE PLACED IN 7290test.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE 7290test.c BROWSE INTVECTOR(0X8000) DEBUG OBJECTEXTEND

line level    source

   1          /****************************************Copyright (c)**************************************************
   2          **
   3          **------------------------------------------------------------------------------------------------------
   4          ** 修改人:
   5          ** 版  本:
   6          ** 日 期:
   7          ** 描 述:
   8          **
   9          **--------------当前版本修订------------------------------------------------------------------------------
  10          ** 修改人: 
  11          ** 日 期:
  12          ** 描 述:
  13          **
  14          **------------------------------------------------------------------------------------------------------
  15          ********************************************************************************************************/
  16          #include "REG52.h"
  17          #include <intrins.h>
  18          #include <absacc.h>
  19          #include "VIIC_C51.h"
  20          #include "ZLG7290.h"
  21          
  22          
  23          sbit KEY_INT=P3^2;
  24          
  25          /* 全局变量 */
  26          
  27          unsigned char disp_buf[8]={0,0,0,0,0,0,0,0};
  28          
  29          /*********************************************************************************************************
  30          ** 函数名称:    display
  31          ** 功能描述:    7298A led显示
  32          ** 输 入: *sd :        显示缓冲区的头地址
  33          **         
  34          ** 输 出: 0 :  OK;
  35          **         1 :  FAIL;
  36          ** 全局变量:    无
  37          ** 调用模块:    ZLG7289_SendBuf  
  38          **-------------------------------------------------------------------------------------------------------
  39          ** 修改人:
  40          ** 日 期:
  41          **------------------------------------------------------------------------------------------------------
  42          ********************************************************************************************************/
  43          unsigned char display(unsigned char  *sd)
  44          { 
  45   1              disp_buf[0] = (disp_buf[0]&0xf0)|(sd[0]%16);                    // 装载" dp-932"
  46   1          disp_buf[1] = (disp_buf[1]&0xf0)|(sd[0]/16);                
  47   1          disp_buf[2] = 31;
  48   1          disp_buf[3] = (disp_buf[3]&0xf0)|(sd[1]%16);
  49   1          disp_buf[4] = (disp_buf[4]&0xf0)|(sd[1]/16);
  50   1          disp_buf[5] = 31;
  51   1          disp_buf[6] = (disp_buf[6]&0xf0)|(sd[2]%16);        
  52   1          disp_buf[7] = (disp_buf[7]&0xf0)|(sd[2]/16);
  53   1          ZLG7290_SendBuf(disp_buf,8);
  54   1              return 0;
  55   1      }
C51 COMPILER V8.02   7290TEST                                                              08/18/2007 10:11:46 PAGE 2   

  56          
  57          /*********************************************************************************************************
  58          ** 函数名称:    DelayNS
  59          ** 功能描述:    长软件延时
  60          ** 输 入: no : 延时参数,值越大时延时越久
  61          **         
  62          ** 输 出: 0 :  OK;
  63          **         1 :  FAIL;
  64          ** 全局变量:    无
  65          ** 调用模块:    无
  66          **-------------------------------------------------------------------------------------------------------
  67          ** 修改人:
  68          ** 日 期:
  69          **------------------------------------------------------------------------------------------------------
  70          ********************************************************************************************************/
  71          unsigned char DelayNS(unsigned char  no)
  72          { 
  73   1              unsigned char  i,j;                                     //延时参数
  74   1      
  75   1              for(; no>0; no--)
  76   1              { 
  77   2                      for(i=0; i<100; i++)
  78   2                      for(j=0; j<100; j++);
  79   2              }
  80   1              return 0; 
  81   1      }
  82          
  83          /*********************************************************************************************************
  84          ** 函数名称:    delay
  85          ** 功能描述:    短软件延时
  86          ** 输 入: j :  延时参数,值越大时延时越久
  87          **         
  88          ** 输 出: 0 :  OK;
  89          **         1 :  FAIL;
  90          ** 全局变量:    无
  91          ** 调用模块:    无
  92          **-------------------------------------------------------------------------------------------------------
  93          ** 修改人:
  94          ** 日 期:
  95          **------------------------------------------------------------------------------------------------------
  96          ********************************************************************************************************/
  97          unsigned char  delay(unsigned char  j)
  98          {
  99   1              unsigned char  k,l;
 100   1              for(l=0;l<=j;l++)
 101   1              for(k=0;k<=250;k++);
 102   1              return 0;
 103   1      }
 104          
 105          void  main()
 106          {       
 107   1              /*定义发送缓冲区*/
 108   1              unsigned char  rd[5]={0x12,0x48,0x30,0x03,0x04};                
 109   1              unsigned char  key,flash,i,k;   
 110   1      
 111   1              flash=1;
 112   1              DelayNS(10);
 113   1              while(1)
 114   1              {
 115   2                      delay(100); 
 116   2                      display(rd);
 117   2                      delay(100);
C51 COMPILER V8.02   7290TEST                                                              08/18/2007 10:11:46 PAGE 3   

 118   2                      if(KEY_INT==0)
 119   2                      {
 120   3                              key=ZLG7290_GetKey();
 121   3                              switch(key)
 122   3                              {
 123   4                                      case 1 ://确定
 124   4                                              for(k=0;k<8;k++)
 125   4                                              {
 126   5                                                      disp_buf[k] = disp_buf[k]&0xbf;//去除闪烁
 127   5                                              }                        
 128   4                                              break;
 129   4                                      case 2 :                        //光标左移
 130   4                                              disp_buf[flash]= disp_buf[flash]&0xbf;
 131   4                                              flash=flash+1;
 132   4                                              if(flash==8)
 133   4                                                      flash=0;
 134   4                                              disp_buf[flash]= disp_buf[flash]|0x40;
 135   4                                              break;
 136   4                                      case 3 :                        //光标右移
 137   4                                              disp_buf[flash]= disp_buf[flash]&0xbf;
 138   4                                              flash=flash-1;
 139   4                                              if(flash==0)
 140   4                                                      flash=8;
 141   4                                              disp_buf[flash]= disp_buf[flash]|0x40;
 142   4                                              break;
 143   4                                      case 4 :                        //光标值加一
 144   4                                              if(flash==2||flash==5)  break;
 145   4                                              if((flash%3)==0) 
 146   4                                              {
 147   5                                                              i=flash;
 148   5                                                              i=(i/3);
 149   5                                                              rd[i]=rd[i]+1;
 150   5                                                      }
 151   4                                              else if((flash%3)!=0)
 152   4                                                      {
 153   5                                                              i=flash;
 154   5                                                              i=(i/3);
 155   5                                                              rd[i]=rd[i]+16; 
 156   5                                                      }
 157   4                                                      delay(50);
 158   4                                                      break;
 159   4                                      case 5 :                            //光标值减一
 160   4                                              if(flash==2||flash==5)  break;
 161   4                                              if((flash%3)==0) 
 162   4                                              {
 163   5                                                              i=flash;
 164   5                                                              i=(i/3);
 165   5                                                              rd[i]=rd[i]-1;
 166   5                                                      }
 167   4                                              else if((flash%3)!=0)
 168   4                                                      {
 169   5                                                              i=flash;
 170   5                                                              i=(i/3);
 171   5                                                              rd[i]=rd[i]-16; 
 172   5                                                      }
 173   4                                                      
 174   4                                              break;
 175   4                                      case 6 :
 176   4                                              
 177   4                                              break;
 178   4                                      case 7 :
 179   4                                      
C51 COMPILER V8.02   7290TEST                                                              08/18/2007 10:11:46 PAGE 4   

 180   4                                              break;
 181   4                                      case 8 :
 182   4                                              break;
 183   4                                      default :
 184   4                                              break;
 185   4                              }
 186   3                              while(KEY_INT==0);
 187   3                      }
 188   2              }
 189   1      }
 190          
 191          
 192          


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