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

📄 zlg7290b.lst

📁 msp430f247下周立功ZLG7290键盘显示测试
💻 LST
字号:
C51 COMPILER V7.09   ZLG7290B                                                              01/10/2006 12:40:52 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE ZLG7290B
OBJECT MODULE PLACED IN ZLG7290B.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE ZLG7290B.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include "zlg7290B.h"
   3          volatile bit FlagINT = 0;                          //定义键盘中断标志,FlagINT=1 表示有键按下
   4          sbit p34=P3^4;
   5          bit ZLG7290_Download(char addr, bit dp, bit flash, char dat); 
   6          unsigned char i=0;
   7          unsigned char KeyValue=1;
   8          unsigned char RepeatCnt=0;
   9          unsigned char FunctionKey=0;
  10          
  11          /******************************************************************************
  12          函数:INT0_SVC()
  13          功能:ZLG7290 键盘中断服务程序
  14          说明:中断触发方式选择负边沿触发,因此不必等待中断请求信号恢复为高电平
  15          ******************************************************************************/
  16          void Test_Flash();
  17          void DispValue(char x, unsigned char dat);
  18          void INT0_SVC() interrupt 0
  19          {
  20   1      /*unsigned char x;
  21   1      i++;
  22   1      if((i%2)==0)
  23   1      {
  24   1      //for ( x=0; x<8; x++ )//显示01234567
  25   1      //{
  26   1        ZLG7290_Download(4,0,0,3);
  27   1      //}
  28   1      }
  29   1      else
  30   1      {
  31   1      //for ( x=7; x>0; x-- )//显示01234567
  32   1      //{
  33   1        
  34   1      }*/
  35   1      //Test_Flash(); //测试闪烁功能
  36   1      //ZLG7290_Download(4,0,0,4);
  37   1      //p34=0;
  38   1      FlagINT = 1;
  39   1      //ZLG7290_ReadReg(0x01,&KeyValue);
  40   1      //I2C_Read();
  41   1      //DispValue(0,KeyValue-200);//显示键值、连击计数器值、功能键值
  42   1      //}
  43   1      }
  44          
  45          /****************************
  46          函数:Delay1()
  47          功能:延时10ms~655.36s
  48          参数:
  49          t>0 时,延时(t*0.01)s
  50          t=0 时,延时655.36s
  51          说明:
  52          晶振采用11.0592MHz
  53          *****************************/
  54          void Delay1(unsigned int t)
  55          {
C51 COMPILER V7.09   ZLG7290B                                                              01/10/2006 12:40:52 PAGE 2   

  56   1      do
  57   1      {
  58   2      TH0 = 0xDC;
  59   2      TL0 = 0x00;
  60   2      TR0 = 1;
  61   2      while ( !TF0 );
  62   2      TF0 = 0;
  63   2      TR0 = 0;
  64   2      } while (--t);
  65   1      /*int i,j;
  66   1      for(i=0;i<10;i++)
  67   1      for(j=0;j<t;j++);*/
  68   1      }
  69          
  70          /********************
  71          函数:SystemInit()
  72          功能:系统初始化
  73          ********************/
  74          void SystemInit()
  75          {
  76   1      TMOD = 0x01;
  77   1      EA=1;
  78   1      Delay1(30); //等待ZLG7290 复位完毕
  79   1      }
  80          
  81          /*************************
  82          函数:ClearAll()
  83          功能:清除所有显示
  84          *************************/
  85          void ClearAll()
  86          {
  87   1      unsigned char x;
  88   1      for ( x=0; x<8; x++ )
  89   1      {
  90   2      ZLG7290_Download(x,0,0,31);    //00011111,表示不显示,循环8次,将8个数码管显示都清除
  91   2      }
  92   1      }
  93          
  94          
  95          /*********************
  96          函数:Test_DispBuf()
  97          功能:测试直接写显存
  98          *********************/
  99          void Test_DispBuf()
 100          { 
 101   1      code char DispDat[16] ={0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0xF6,0x6E,0x20,0x70,0x0E,0x1C,0x3A,0xCE,0xE6,0x0A};
 102   1                             //字母AbCdEFgHiJkLoPqr 的字形数据    ?
 103   1      unsigned char n;
 104   1      unsigned char x;
 105   1      unsigned char reg;
 106   1      unsigned char dat;
 107   1      for ( n=0; n<16; n++ )
 108   1        {
 109   2          for ( x=0; x<8; x++ )
 110   2            {
 111   3                reg = ZLG7290_DpRam + x;
 112   3                dat = DispDat[n];
 113   3                ZLG7290_WriteReg(reg,dat);
 114   3            }
 115   2           Delay1(50);
 116   2        }
 117   1      }
C51 COMPILER V7.09   ZLG7290B                                                              01/10/2006 12:40:52 PAGE 3   

 118          
 119          
 120          /***********************
 121          函数:Test_Download()
 122          功能:测试下载数据功能
 123          ***********************/
 124          void Test_Download()
 125          {
 126   1      unsigned char x;
 127   1      bit dp;
 128   1      bit flash;
 129   1      char dat;
 130   1      dp = 1;//点亮所有数码管
 131   1      flash = 0;
 132   1      dat = 8;
 133   1      for ( x=0; x<8; x++ )
 134   1      {
 135   2      ZLG7290_Download(x,dp,flash,dat);
 136   2      }
 137   1      Delay1(100);
 138   1      
 139   1      dp = 0;  //依次显示所有字型
 140   1      flash = 0;
 141   1      for ( dat=0; dat<32; dat++ )
 142   1      {
 143   2      for ( x=0; x<8; x++ )
 144   2      {
 145   3      ZLG7290_Download(x,dp,flash,dat);
 146   3      }
 147   2      Delay1(50);
 148   2      }
 149   1      }
 150          
 151          
 152          /*********************************
 153          函数:Test_ScanNum()
 154          功能:测试不同扫描位数
 155          说明:扫描位数越少,数码管就越亮
 156          **********************************/
 157          void Test_ScanNum()
 158          {
 159   1      unsigned char x;
 160   1      for ( x=0; x<8; x++ )
 161   1      {
 162   2      ZLG7290_Download(x,1,0,8);
 163   2      }
 164   1      Delay1(100);
 165   1      for ( x=0; x<8; x++ )
 166   1      {
 167   2      ZLG7290_WriteReg(ZLG7290_ScanNum,x);
 168   2      Delay1(100);
 169   2      }
 170   1      }
 171          
 172          
 173          /***************************
 174          函数:Test_Flash()
 175          功能:测试闪烁功能
 176          ***************************/
 177          void Test_Flash()
 178          {
 179   1      char dat = 0x01;
C51 COMPILER V7.09   ZLG7290B                                                              01/10/2006 12:40:52 PAGE 4   

 180   1      unsigned char x;
 181   1      for ( x=0; x<8; x++ )//显示01234567
 182   1      {
 183   2        ZLG7290_Download(x,0,0,x);
 184   2      }
 185   1      ZLG7290_WriteReg(ZLG7290_FlashOnOff,0x11);//设置闪烁控制寄存器    ?
 186   1      for ( x=0; x<8; x++ )              //闪烁演示
 187   1      {
 188   2          ZLG7290_Flash(dat);
 189   2          dat <<= 1;
 190   2          Delay1(300);
 191   2      }
 192   1      ZLG7290_Flash(0xFF);               //数码管的8 个位一起闪烁
 193   1      Delay1(350);
 194   1      ZLG7290_Flash(0x00);                //停止闪烁
 195   1      Delay1(50);
 196   1      }
 197          
 198          
 199          /*********************
 200          函数:Test_SegOnOff()
 201          功能:测试段寻址功能
 202          **********************/
 203          void Test_SegOnOff()
 204          {
 205   1      unsigned char seg;
 206   1      ClearAll();
 207   1      Delay1(100);
 208   1      for ( seg=0; seg<64; seg++ )
 209   1       {
 210   2         ZLG7290_SegOnOff(seg,1);
 211   2         Delay1(30);
 212   2       }
 213   1      Delay1(100);
 214   1      for ( seg=0; seg<64; seg++ )
 215   1       {
 216   2         ZLG7290_SegOnOff(seg,0);
 217   2         Delay1(30);
 218   2       }
 219   1      Delay1(100);
 220   1      }
 221          
 222          
 223          /******************************
 224          函数:DispValue()
 225          功能:显示100 以内的数值
 226          参数:
 227          x:显示位置,取值0~6
 228          dat:要显示的数据,取值0~99
 229          ******************************/
 230          void DispValue(char x, unsigned char dat)
 231          {
 232   1      unsigned char d;
 233   1      d = dat / 10;
 234   1      ZLG7290_Download(x,0,0,d);
 235   1      d = dat - d * 10;
 236   1      ZLG7290_Download(x+1,0,0,d);
 237   1      }
 238          
 239          
 240          /**********************************
 241          函数:DispHexValue()
C51 COMPILER V7.09   ZLG7290B                                                              01/10/2006 12:40:52 PAGE 5   

 242          功能:以16 进制方式显示数值
 243          参数:
 244          x:显示位置,取值0~6
 245          dat:要显示的数据,取值0~255
 246          ***********************************/
 247          void DispHexValue(char x, unsigned char dat)
 248          {
 249   1      unsigned char d;
 250   1      d = dat / 16;
 251   1      ZLG7290_Download(x,0,0,d);
 252   1      d = dat - d * 16;
 253   1      ZLG7290_Download(x+1,0,0,d);
 254   1      }
 255          
 256          
 257          
 258          /**************************
 259          函数:Test_Key()
 260          功能:测试按键功能
 261          **************************/
 262          void Test_Key()
 263          {
 264   1      
 265   1      //unsigned char RepeatCnt;
 266   1      //unsigned char FnKeyValue;
 267   1      //unsigned char i,j;
 268   1      ClearAll();
 269   1      //ZLG7290_Download(7,0,0,6);
 270   1      while(1)
 271   1      {
 272   2        if ( FlagINT ) //如果有键按下
 273   2        {
 274   3          FlagINT = 0;    //清除中断标志
 275   3              
 276   3              //idle();
 277   3      
 278   3              //FunctionKey=gets2(ZLG7290_FunctionKey);
 279   3              KeyValue=gets2(ZLG7290_Key);
 280   3              RepeatCnt=gets2(ZLG7290_RepeatCnt);
 281   3          
 282   3              
 283   3          //KeyValue=ZLG7290_ReadReg(ZLG7290_Key);
 284   3          
 285   3              
 286   3              DispValue(0,KeyValue);
 287   3              DispValue(3,RepeatCnt/2);
 288   3         // Delay1(30);
 289   3          
 290   3              //DispValue(6,FunctionKey);
 291   3              
 292   3              
 293   3              /*for(i=0;i<50;i++)
 294   3              {
 295   3                  for(j=0;j<100;j++){;}}*/
 296   3              //idle();
 297   3              
 298   3              
 299   3         //if(ZLG7290_ReadReg(ZLG7290_Key,&KeyValue)) 
 300   3            //读取键值、连击计数器值、功能键值
 301   3         //p34=1;
 302   3              //
 303   3          //ZLG7290_ReadReg(ZLG7290_RepeatCnt,&RepeatCnt);
C51 COMPILER V7.09   ZLG7290B                                                              01/10/2006 12:40:52 PAGE 6   

 304   3          //ZLG7290_ReadReg(ZLG7290_FunctionKey,&FnKeyValue);
 305   3          
 306   3              
 307   3          //DispHexValue(3,RepeatCnt);
 308   3          //DispHexValue(6,FnKeyValue);
 309   3        }
 310   2       PCON |= 0x01; //使CPU 进入空闲状态,任一中断可唤醒
 311   2      }
 312   1      }
 313          
 314          
 315          
 316          void main()
 317          {
 318   1      unsigned char i;
 319   1      SystemInit(); //系统初始化
 320   1      I2CCON=0xa8;
 321   1      IT0 = 0; //负边沿触发中断
 322   1      EX0 = 1; //允许外部中断
 323   1      PT0=1;
 324   1      EA = 1;
 325   1      I2C_Init();
 326   1      /*while(1)
 327   1      {
 328   1        //for(i=0;i<8;i++)
 329   1       //ZLG7290_WriteReg(ZLG7290_DpRam+i,0xfe);
 330   1       for(i=0;i<8;i++)
 331   1       {ZLG7290_Download(i,0,0,i+1);}
 332   1      }
 333   1      
 334   1      //{for(i=0;i<8;i++)
 335   1      //{ZLG7290_Download(i,0,0,i+1);}
 336   1      //}
 337   1      
 338   1      ZLG7290_Download(0,0,0,0);*/
 339   1      
 340   1      
 341   1      //Test_DispBuf(); //测试直接写显存
 342   1      //Test_Download(); //测试下载数据
 343   1      //Test_ScanNum(); //测试不同扫描位数
 344   1      //Test_Flash(); //测试闪烁功能
 345   1      //Test_SegOnOff(); //测试段寻址功能
 346   1      Test_Key(); //测试键盘功能
 347   1      //while (1)
 348   1                                                                                                                
             -                                 
 349   1      //{
 350   1      
 351   1      //}
 352   1      }
*** WARNING C280 IN LINE 318 OF ZLG7290B.C: 'i': unreferenced local variable


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1156    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4      47
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       9
END OF MODULE INFORMATION.

C51 COMPILER V7.09   ZLG7290B                                                              01/10/2006 12:40:52 PAGE 7   


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

⌨️ 快捷键说明

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