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

📄 main.lst

📁 读卡器 fm1702实现收发 zlg7290实现按键与显示控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
 167   5                                      ZLG7290_WriteReg(0x12,duanma[money[3]]);
 168   5                                      Delay(1);
 169   5                                      ZLG7290_WriteReg(0x13,duanma[money[4]]);
 170   5                              Delay(1);       
 171   5                              }
 172   4                              else
 173   4                              {
 174   5                                      ZLG7290_cmd(0x60,0x1F);
 175   5                                      Delay(1);
 176   5                                      ZLG7290_cmd(0x61,0x80+money[2]);        
 177   5                                      Delay(1);
C51 COMPILER V7.06   MAIN                         09/20/2008 12:06:48 PAGE 4   

 178   5                                      ZLG7290_WriteReg(0x12,duanma[money[3]]);
 179   5                              Delay(1);
 180   5                                      ZLG7290_WriteReg(0x13,duanma[money[4]]);
 181   5                                      Delay(1);
 182   5                              }
 183   4                      }
 184   3                      else D1=0;                              // 卡值不足 二极管1亮
 185   3                      break;
 186   3              }
 187   2       
 188   2              case 16:                                                      
             -   // 放卡显示卡值 取卡退出
 189   2          {
 190   3             *d=15;
 191   3                 if(Ka_lab==0)                     // 放卡
 192   3                 {    
 193   4                       for(i=0;i<4;i++)
 194   4                   {
 195   5                         ZLG7290_cmd(0x60+i,0x1F);
 196   5                         Delay(1);       
 197   5                   }
 198   4                       if(money[0])
 199   4                       {
 200   5                              ZLG7290_WriteReg(0x10,duanma[money[0]]);
 201   5                              Delay(1);
 202   5                              ZLG7290_WriteReg(0x11,duanma[money[1]]);        
 203   5                              Delay(1);
 204   5                              ZLG7290_cmd(0x62,0x80+money[2]);
 205   5                      Delay(1);
 206   5                              ZLG7290_WriteReg(0x13,duanma[money[3]]);
 207   5                              Delay(1);
 208   5                       }
 209   4                       else if(money[1])
 210   4                       {
 211   5                              ZLG7290_WriteReg(0x10,duanma[money[1]]);        
 212   5                              Delay(1);
 213   5                              ZLG7290_cmd(0x61,0x80+money[2]);
 214   5                      Delay(1);
 215   5                              ZLG7290_WriteReg(0x12,duanma[money[3]]);
 216   5                              Delay(1);
 217   5                              ZLG7290_WriteReg(0x13,duanma[money[4]]);
 218   5                      Delay(1);                       
 219   5                       }
 220   4                       else
 221   4                       {
 222   5                              ZLG7290_cmd(0x60,0x1F);
 223   5                              Delay(1);
 224   5                              ZLG7290_cmd(0x61,0x80+money[2]);
 225   5                              Delay(1);
 226   5                              ZLG7290_WriteReg(0x12,duanma[money[3]]);        
 227   5                      Delay(1);
 228   5                              ZLG7290_WriteReg(0x13,duanma[money[4]]);
 229   5                              Delay(1);
 230   5                       }
 231   4                       Ka_lab=~Ka_lab;                                
 232   4                   break;
 233   4                 }
 234   3             else                        // 取卡清除显示
 235   3                 Ka_lab=~Ka_lab;      
 236   3                 for(i=0;i<4;i++)
 237   3                 {
 238   4                         ZLG7290_cmd(0x60+i,0x1F);
 239   4                         Delay(1);       
 240   4                 }
C51 COMPILER V7.06   MAIN                         09/20/2008 12:06:48 PAGE 5   

 241   3           }
 242   2          default: break;
 243   2        }
 244   1      }
 245          
 246          void int1() interrupt 2 using 0
 247          {
 248   1              unsigned char data KeyValue,p;
 249   1              //读取键值
 250   1          Delay(1);
 251   1              KeyValue=ZLG7290_ReadReg(ZLG7290_Key);
 252   1              Delay(1);
 253   1         
 254   1              //显示键值
 255   1              KeyFun(KeyValue,&p);
 256   1              if(p<10)
 257   1              {
 258   2            if(Add==1)
 259   2                {
 260   3                      Reset();
 261   3                      Add=0;
 262   3                      add1[0]=p;
 263   3                      ZLG7290_cmd(0x65,0x80+add1[1]);
 264   3                }   // 上次按的加键 先复位显示 加标志清除
 265   2            else if(Flag==1)                  // 上两次中按过小数点  
 266   2                {
 267   3                  if(jw<5)
 268   3                  {
 269   4                    add1[jw++]=p;
 270   4                    ZLG7290_WriteReg(0x13+jw,duanma[p]);
 271   4                  }
 272   3                }
 273   2                else if(Clear)
 274   2                {
 275   3                      add1[0]=p;
 276   3                      ZLG7290_cmd(0x65,0x80+add1[1]);
 277   3                      Clear=0;
 278   3                }
 279   2                else 
 280   2                {
 281   3                  add1[0]=add1[1];
 282   3                  add1[1]=p;
 283   3                  if(add1[0]!=0)
 284   3                  ZLG7290_WriteReg(ZLG7290_DpRam+4,duanma[add1[0]]);
 285   3                  Delay(5);
 286   3                  ZLG7290_cmd(0x65,0x80+add1[1]);
 287   3             }        
 288   2           }  
 289   1      }
 290          
 291          void main(void)
 292          {
 293   1         uchar data  i=0;
 294   1         EA = 0;
 295   1         EX1 = 1; 
 296   1         EA = 1;                               //开中断1  
 297   1      I2C_Wait();
 298   1      I2C_Wait();
 299   1       Delay(1);
 300   1       Delay(1);
 301   1         Clearall();               
 302   1         Reset();                  
 303   1         ZLG7290_cmd(0x60,0x88);              //第一位显示8.  
 304   1         Delay(5);
C51 COMPILER V7.06   MAIN                         09/20/2008 12:06:48 PAGE 6   

 305   1       //  PCON |= 0x01;                       //使CPU 进入空闲状态,任
             -一中断可唤醒   
 306   1         while(1)
 307   1         {
 308   2      
 309   2           if(Ka_lab==0)                           // 没卡时循环显示
 310   2               {      
 311   3              if(i<3)
 312   3                      {
 313   4                      i++;
 314   4                              ZLG7290_cmd(0x60+i-1,0x1F);
 315   4                              Delay(1);
 316   4                      ZLG7290_cmd(0x60+i,0x88);
 317   4                              Delay(2);
 318   4                      }
 319   3              else 
 320   3              {
 321   4                              ZLG7290_cmd(0x63,0x1F);   
 322   4                              Delay(1);
 323   4                      ZLG7290_cmd(0x60,0x88);
 324   4                      Delay(2);
 325   4                      i=0; 
 326   4                      }
 327   3               }
 328   2               Delay(10);                       //有卡时
 329   2              }
 330   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1829    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----       3
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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